[clang] 02571f8 - [clang][www] Port make_cxx_dr_status script to Python3
Timm Bäder via cfe-commits
cfe-commits at lists.llvm.org
Tue Feb 22 06:48:30 PST 2022
Author: Timm Bäder
Date: 2022-02-22T15:47:43+01:00
New Revision: 02571f86bb01bbea171072996533d7a6e63bba54
URL: https://github.com/llvm/llvm-project/commit/02571f86bb01bbea171072996533d7a6e63bba54
DIFF: https://github.com/llvm/llvm-project/commit/02571f86bb01bbea171072996533d7a6e63bba54.diff
LOG: [clang][www] Port make_cxx_dr_status script to Python3
And run it to re-generate the cxx_dr_status.html
Differential Revision: https://reviews.llvm.org/D120313
Added:
Modified:
clang/www/cxx_dr_status.html
clang/www/make_cxx_dr_status
Removed:
################################################################################
diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html
index 462b335f7801c..62ccfc518d456 100755
--- a/clang/www/cxx_dr_status.html
+++ b/clang/www/cxx_dr_status.html
@@ -7304,11 +7304,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td>Updating Annex C to C99</td>
<td align="center">Not resolved</td>
</tr>
- <tr class="open" id="1249">
+ <tr id="1249">
<td><a href="https://wg21.link/cwg1249">1249</a></td>
- <td>drafting</td>
+ <td>DRWP</td>
<td>Cv-qualification of nested lambda capture</td>
- <td align="center">Not resolved</td>
+ <td class="none" align="center">Unknown</td>
</tr>
<tr id="1250">
<td><a href="https://wg21.link/cwg1250">1250</a></td>
@@ -10006,9 +10006,9 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
</tr>
<tr class="open" id="1699">
<td><a href="https://wg21.link/cwg1699">1699</a></td>
- <td>open</td>
+ <td>extension</td>
<td>Does befriending a class befriend its friends?</td>
- <td align="center">Not resolved</td>
+ <td align="center">Extension</td>
</tr>
<tr id="1700">
<td><a href="https://wg21.link/cwg1700">1700</a></td>
@@ -10154,11 +10154,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td>Multicharacter user-defined character literals</td>
<td align="center">Not resolved</td>
</tr>
- <tr class="open" id="1724">
+ <tr id="1724">
<td><a href="https://wg21.link/cwg1724">1724</a></td>
- <td>drafting</td>
+ <td>DRWP</td>
<td>Unclear rules for deduction failure</td>
- <td align="center">Not resolved</td>
+ <td class="none" align="center">Unknown</td>
</tr>
<tr id="1725">
<td><a href="https://wg21.link/cwg1725">1725</a></td>
@@ -10166,11 +10166,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td>Trailing return type with nested function declarator</td>
<td class="none" align="center">Unknown</td>
</tr>
- <tr class="open" id="1726">
+ <tr id="1726">
<td><a href="https://wg21.link/cwg1726">1726</a></td>
- <td>drafting</td>
+ <td>DR</td>
<td>Declarator operators and conversion function</td>
- <td align="center">Not resolved</td>
+ <td class="none" align="center">Unknown</td>
</tr>
<tr id="1727">
<td><a href="https://wg21.link/cwg1727">1727</a></td>
@@ -10208,11 +10208,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td>Defining types in <I>condition</I>s and range-based <TT>for</TT> statements</td>
<td class="none" align="center">Unknown</td>
</tr>
- <tr class="open" id="1733">
+ <tr id="1733">
<td><a href="https://wg21.link/cwg1733">1733</a></td>
- <td>drafting</td>
+ <td>DRWP</td>
<td>Return type and value for <TT>operator=</TT> with <I>ref-qualifier</I></td>
- <td align="center">Not resolved</td>
+ <td class="none" align="center">Unknown</td>
</tr>
<tr id="1734">
<td><a href="https://wg21.link/cwg1734">1734</a></td>
@@ -14154,7 +14154,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td><a href="https://wg21.link/cwg2390">2390</a></td>
<td>CD5</td>
<td>Is the argument of <TT>__has_cpp_attribute</TT> macro-expanded?</td>
- <td class="none" align="center">Unknown</td>
+ <td class="full" align="center">Yes</td>
</tr>
<tr id="2391">
<td><a href="https://wg21.link/cwg2391">2391</a></td>
@@ -14194,7 +14194,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
</tr>
<tr id="2397">
<td><a href="https://wg21.link/cwg2397">2397</a></td>
- <td>DR</td>
+ <td>DRWP</td>
<td><TT>auto</TT> specifier for pointers and references to arrays</td>
<td class="none" align="center">Unknown</td>
</tr>
@@ -14250,7 +14250,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td><a href="https://wg21.link/cwg2406">2406</a></td>
<td>CD5</td>
<td><TT>[[fallthrough]]</TT> attribute and iteration statements</td>
- <td class="none" align="center">Unknown</td>
+ <td class="full" align="center">Yes</td>
</tr>
<tr class="open" id="2407">
<td><a href="https://wg21.link/cwg2407">2407</a></td>
@@ -14500,7 +14500,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
</tr>
<tr id="2448">
<td><a href="https://wg21.link/cwg2448">2448</a></td>
- <td>DR</td>
+ <td>DRWP</td>
<td>Cv-qualification of arithmetic types and deprecation of volatile</td>
<td class="none" align="center">Unknown</td>
</tr>
@@ -14540,11 +14540,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td>Tail recursion and coroutine symmetric transfer</td>
<td class="none" align="center">Unknown</td>
</tr>
- <tr class="open" id="2455">
+ <tr id="2455">
<td><a href="https://wg21.link/cwg2455">2455</a></td>
- <td>drafting</td>
+ <td>WP</td>
<td>Concatenation of string literals vs translation phases 5 and 6</td>
- <td align="center">Not resolved</td>
+ <td class="none" align="center">Unknown</td>
</tr>
<tr class="open" id="2456">
<td><a href="https://wg21.link/cwg2456">2456</a></td>
@@ -14560,7 +14560,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
</tr>
<tr id="2458">
<td><a href="https://wg21.link/cwg2458">2458</a></td>
- <td>DR</td>
+ <td>DRWP</td>
<td>Value category of expressions denoting non-static member functions</td>
<td class="none" align="center">Unknown</td>
</tr>
@@ -14602,13 +14602,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
</tr>
<tr id="2465">
<td><a href="https://wg21.link/cwg2465">2465</a></td>
- <td>DR</td>
+ <td>DRWP</td>
<td>Coroutine parameters passed to a promise constructor</td>
<td class="none" align="center">Unknown</td>
</tr>
<tr id="2466">
<td><a href="https://wg21.link/cwg2466">2466</a></td>
- <td>DR</td>
+ <td>DRWP</td>
<td><TT>co_await</TT> should be a single evaluation</td>
<td class="none" align="center">Unknown</td>
</tr>
@@ -14656,7 +14656,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
</tr>
<tr id="2474">
<td><a href="https://wg21.link/cwg2474">2474</a></td>
- <td>DR</td>
+ <td>DRWP</td>
<td>Cv-qualification and deletion</td>
<td class="none" align="center">Unknown</td>
</tr>
@@ -14674,7 +14674,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
</tr>
<tr id="2477">
<td><a href="https://wg21.link/cwg2477">2477</a></td>
- <td>DR</td>
+ <td>DRWP</td>
<td>Defaulted vs deleted copy constructors/assignment operators</td>
<td class="none" align="center">Unknown</td>
</tr>
@@ -14686,7 +14686,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
</tr>
<tr id="2479">
<td><a href="https://wg21.link/cwg2479">2479</a></td>
- <td>DR</td>
+ <td>DRWP</td>
<td>Missing specifications for <TT>consteval</TT> and <TT>constinit</TT></td>
<td class="none" align="center">Unknown</td>
</tr>
@@ -14698,15 +14698,15 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
</tr>
<tr id="2481">
<td><a href="https://wg21.link/cwg2481">2481</a></td>
- <td>DR</td>
+ <td>DRWP</td>
<td>Cv-qualification of temporary to which a reference is bound</td>
<td class="none" align="center">Unknown</td>
</tr>
- <tr class="open" id="2482">
+ <tr id="2482">
<td><a href="https://wg21.link/cwg2482">2482</a></td>
- <td>review</td>
+ <td>WP</td>
<td><TT>bit_cast</TT> and indeterminate values</td>
- <td align="center">Not resolved</td>
+ <td class="none" align="center">Unknown</td>
</tr>
<tr class="open" id="2483">
<td><a href="https://wg21.link/cwg2483">2483</a></td>
@@ -14714,11 +14714,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td>Language linkage of static member functions</td>
<td align="center">Not resolved</td>
</tr>
- <tr class="open" id="2484">
+ <tr id="2484">
<td><a href="https://wg21.link/cwg2484">2484</a></td>
- <td>open</td>
+ <td>DRWP</td>
<td><TT>char8_t</TT> and <TT>char16_t</TT> in integral promotions</td>
- <td align="center">Not resolved</td>
+ <td class="none" align="center">Unknown</td>
</tr>
<tr class="open" id="2485">
<td><a href="https://wg21.link/cwg2485">2485</a></td>
@@ -14726,11 +14726,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td>Bit-fields in integral promotions</td>
<td align="center">Not resolved</td>
</tr>
- <tr class="open" id="2486">
+ <tr id="2486">
<td><a href="https://wg21.link/cwg2486">2486</a></td>
- <td>drafting</td>
+ <td>DRWP</td>
<td>Call to <TT>noexcept</TT> function via <TT>noexcept(false)</TT> pointer/lvalue</td>
- <td align="center">Not resolved</td>
+ <td class="none" align="center">Unknown</td>
</tr>
<tr class="open" id="2487">
<td><a href="https://wg21.link/cwg2487">2487</a></td>
@@ -14738,11 +14738,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td>Type dependence of function-style cast to incomplete array type</td>
<td align="center">Not resolved</td>
</tr>
- <tr id="2488">
+ <tr class="open" id="2488">
<td><a href="https://wg21.link/cwg2488">2488</a></td>
- <td>NAD</td>
+ <td>open</td>
<td>Overloading virtual functions and functions with trailing <I>requires-clause</I>s</td>
- <td class="none" align="center">Unknown</td>
+ <td align="center">Not resolved</td>
</tr>
<tr class="open" id="2489">
<td><a href="https://wg21.link/cwg2489">2489</a></td>
@@ -14750,35 +14750,35 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td>Storage provided by array of <TT>char</TT></td>
<td align="center">Not resolved</td>
</tr>
- <tr class="open" id="2490">
+ <tr id="2490">
<td><a href="https://wg21.link/cwg2490">2490</a></td>
- <td>drafting</td>
+ <td>DRWP</td>
<td>Restrictions on destruction in constant expressions</td>
- <td align="center">Not resolved</td>
+ <td class="none" align="center">Unknown</td>
</tr>
<tr id="2491">
<td><a href="https://wg21.link/cwg2491">2491</a></td>
- <td>ready</td>
+ <td>DRWP</td>
<td>Export of typedef after its first declaration</td>
<td class="none" align="center">Unknown</td>
</tr>
- <tr id="2492">
+ <tr class="open" id="2492">
<td><a href="https://wg21.link/cwg2492">2492</a></td>
- <td>NAD</td>
+ <td>drafting</td>
<td>Comparing user-defined conversion sequences in list-initialization</td>
- <td class="none" align="center">Unknown</td>
+ <td align="center">Not resolved</td>
</tr>
- <tr class="open" id="2493">
+ <tr id="2493">
<td><a href="https://wg21.link/cwg2493">2493</a></td>
- <td>open</td>
+ <td>dup</td>
<td><TT>auto</TT> as a <I>conversion-type-id</I></td>
- <td align="center">Not resolved</td>
+ <td class="none" align="center">Unknown</td>
</tr>
- <tr class="open" id="2494">
+ <tr id="2494">
<td><a href="https://wg21.link/cwg2494">2494</a></td>
- <td>drafting</td>
+ <td>DR</td>
<td>Multiple definitions of non-odr-used entities</td>
- <td align="center">Not resolved</td>
+ <td class="none" align="center">Unknown</td>
</tr>
<tr class="open" id="2495">
<td><a href="https://wg21.link/cwg2495">2495</a></td>
@@ -14788,13 +14788,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
</tr>
<tr id="2496">
<td><a href="https://wg21.link/cwg2496">2496</a></td>
- <td>ready</td>
+ <td>DRWP</td>
<td><I>ref-qualifier</I>s and virtual overriding</td>
<td class="none" align="center">Unknown</td>
</tr>
<tr class="open" id="2497">
<td><a href="https://wg21.link/cwg2497">2497</a></td>
- <td>open</td>
+ <td>drafting</td>
<td>Points of instantiation for constexpr function templates</td>
<td align="center">Not resolved</td>
</tr>
@@ -14804,11 +14804,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td>Partial specialization failure and the immediate context</td>
<td align="center">Not resolved</td>
</tr>
- <tr class="open" id="2499">
+ <tr id="2499">
<td><a href="https://wg21.link/cwg2499">2499</a></td>
- <td>open</td>
+ <td>DR</td>
<td>Inconsistency in definition of pointer-interconvertibility</td>
- <td align="center">Not resolved</td>
+ <td class="none" align="center">Unknown</td>
</tr>
<tr class="open" id="2500">
<td><a href="https://wg21.link/cwg2500">2500</a></td>
@@ -14822,7 +14822,180 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td>Explicit instantiation and trailing <I>requires-clause</I>s</td>
<td align="center">Not resolved</td>
</tr>
-</table>
+ <tr id="2502">
+ <td><a href="https://wg21.link/cwg2502">2502</a></td>
+ <td>accepted</td>
+ <td>Unintended declaration conflicts in nested statement scopes</td>
+ <td class="none" align="center">Unknown</td>
+ </tr>
+ <tr class="open" id="2503">
+ <td><a href="https://wg21.link/cwg2503">2503</a></td>
+ <td>drafting</td>
+ <td>Unclear relationship among name, qualified name, and unqualified name</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2504">
+ <td><a href="https://wg21.link/cwg2504">2504</a></td>
+ <td>open</td>
+ <td>Inheriting constructors from virtual base classes</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2505">
+ <td><a href="https://wg21.link/cwg2505">2505</a></td>
+ <td>drafting</td>
+ <td>Nested unnamed namespace of inline unnamed namespace</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr id="2506">
+ <td><a href="https://wg21.link/cwg2506">2506</a></td>
+ <td>DR</td>
+ <td>Structured bindings and array cv-qualifiers</td>
+ <td class="none" align="center">Unknown</td>
+ </tr>
+ <tr class="open" id="2507">
+ <td><a href="https://wg21.link/cwg2507">2507</a></td>
+ <td>review</td>
+ <td>Default arguments for <TT>operator[]</TT></td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2508">
+ <td><a href="https://wg21.link/cwg2508">2508</a></td>
+ <td>review</td>
+ <td>Restrictions on uses of template parameter names</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr id="2509">
+ <td><a href="https://wg21.link/cwg2509">2509</a></td>
+ <td>DR</td>
+ <td><I>decl-specifier-seq</I> in <I>lambda-specifiers</I></td>
+ <td class="none" align="center">Unknown</td>
+ </tr>
+ <tr class="open" id="2510">
+ <td><a href="https://wg21.link/cwg2510">2510</a></td>
+ <td>open</td>
+ <td><I>noexcept-specifier</I> of friend function vs class completeness</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr id="2511">
+ <td><a href="https://wg21.link/cwg2511">2511</a></td>
+ <td>DR</td>
+ <td>cv-qualified bit-fields</td>
+ <td class="none" align="center">Unknown</td>
+ </tr>
+ <tr id="2512">
+ <td><a href="https://wg21.link/cwg2512">2512</a></td>
+ <td>NAD</td>
+ <td><TT>typeid</TT> and incomplete class types</td>
+ <td class="none" align="center">Unknown</td>
+ </tr>
+ <tr class="open" id="2513">
+ <td><a href="https://wg21.link/cwg2513">2513</a></td>
+ <td>open</td>
+ <td>Ambiguity with <I>requires-clause</I> and <I>operator-function-id</I></td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2514">
+ <td><a href="https://wg21.link/cwg2514">2514</a></td>
+ <td>open</td>
+ <td>Modifying const subobjects</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2515">
+ <td><a href="https://wg21.link/cwg2515">2515</a></td>
+ <td>open</td>
+ <td>Result of a function call</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2516">
+ <td><a href="https://wg21.link/cwg2516">2516</a></td>
+ <td>open</td>
+ <td>Locus of <I>enum-specifier</I> or <I>opaque-enum-declaration</I></td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2517">
+ <td><a href="https://wg21.link/cwg2517">2517</a></td>
+ <td>open</td>
+ <td>Useless restriction on use of parameter in <I>constraint-expression</I></td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2518">
+ <td><a href="https://wg21.link/cwg2518">2518</a></td>
+ <td>open</td>
+ <td>Conformance requirements and <TT>#error</TT>/<TT>#warning</TT></td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2519">
+ <td><a href="https://wg21.link/cwg2519">2519</a></td>
+ <td>open</td>
+ <td>Object representation of a bit-field</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2520">
+ <td><a href="https://wg21.link/cwg2520">2520</a></td>
+ <td>open</td>
+ <td>Template signature and default template arguments</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2521">
+ <td><a href="https://wg21.link/cwg2521">2521</a></td>
+ <td>open</td>
+ <td>User-defined literals and reserved identifiers</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2522">
+ <td><a href="https://wg21.link/cwg2522">2522</a></td>
+ <td>open</td>
+ <td>Removing placemarker tokens and retention of whitespace</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2523">
+ <td><a href="https://wg21.link/cwg2523">2523</a></td>
+ <td>open</td>
+ <td>Undefined behavior via omitted destructor call in constant expressions</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2524">
+ <td><a href="https://wg21.link/cwg2524">2524</a></td>
+ <td>open</td>
+ <td>Distinguishing user-defined conversion sequences by <I>ref-qualifier</I></td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2525">
+ <td><a href="https://wg21.link/cwg2525">2525</a></td>
+ <td>open</td>
+ <td>Incorrect definition of implicit conversion sequence</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2526">
+ <td><a href="https://wg21.link/cwg2526">2526</a></td>
+ <td>open</td>
+ <td>Relational comparison of <TT>void*</TT> pointers</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2527">
+ <td><a href="https://wg21.link/cwg2527">2527</a></td>
+ <td>open</td>
+ <td>Non-class potentially-overlapping objects</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2528">
+ <td><a href="https://wg21.link/cwg2528">2528</a></td>
+ <td>open</td>
+ <td>Three-way comparison and the usual arithmetic conversions</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2529">
+ <td><a href="https://wg21.link/cwg2529">2529</a></td>
+ <td>open</td>
+ <td>Constant destruction of constexpr references</td>
+ <td align="center">Not resolved</td>
+ </tr>
+ <tr class="open" id="2530">
+ <td><a href="https://wg21.link/cwg2530">2530</a></td>
+ <td>open</td>
+ <td>Multiple definitions of enumerators</td>
+ <td align="center">Not resolved</td>
+ </tr></table>
</div>
</body>
diff --git a/clang/www/make_cxx_dr_status b/clang/www/make_cxx_dr_status
index d35165f90ed03..e98dfbab77402 100755
--- a/clang/www/make_cxx_dr_status
+++ b/clang/www/make_cxx_dr_status
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
import sys, os, re
index = 'cwg_index.html'
@@ -10,7 +10,7 @@ if len(sys.argv) == 1:
elif len(sys.argv) == 2:
index = sys.argv[1]
else:
- print >>sys.stderr, 'Usage: make_drs [<path to cwg_index.html>]'
+ print('Usage: make_drs [<path to cwg_index.html>]', file=sys.stderr)
sys.exit(1)
class DR:
@@ -38,17 +38,16 @@ for test_cpp in os.listdir(dr_test_dir):
continue
test_cpp = os.path.join(dr_test_dir, test_cpp)
found_any = False;
- for match in re.finditer(status_re, file(test_cpp, 'r').read()):
+ for match in re.finditer(status_re, open(test_cpp, 'r').read()):
status_map[int(match.group(1))] = match.group(2)
found_any = True
if not found_any:
- print >> sys.stderr, "warning:%s: no '// dr123: foo' comments in this file" % test_cpp
+ print("warning:%s: no '// dr123: foo' comments in this file" % test_cpp, file=sys.stderr)
-drs = sorted((parse(dr) for dr in file(index, 'r').read().split('<TR>')[2:]),
+drs = sorted((parse(dr) for dr in open(index, 'r').read().split('<TR>')[2:]),
key = lambda dr: dr.issue)
-out_file = file(output, 'w')
-
-print >> out_file, '''\
+out_file = open(output, 'w')
+out_file.write('''\
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<!-- This file is auto-generated by make_cxx_dr_status. Do not modify. -->
@@ -90,7 +89,7 @@ print >> out_file, '''\
<th>Status</th>
<th>Issue title</th>
<th>Available in Clang?</th>
- </tr>'''
+ </tr>''')
latest_release = 13
@@ -143,7 +142,7 @@ def availability(issue):
try:
_, avail_style = availability(int(dup))
except:
- print >>sys.stderr, "issue %s marked as sup %s" % (issue, dup)
+ print("issue %s marked as sup %s" % (issue, dup), file=sys.stderr)
avail_style = ' class="none"'
elif status.startswith('dup '):
dup = int(status.split(' ', 1)[1])
@@ -174,20 +173,23 @@ for dr in drs:
if not avail.startswith('Sup') and not avail.startswith('Dup'):
count[avail] = count.get(avail, 0) + 1
- print >> out_file, '''\
+ out_file.write('''
<tr%s id="%s">
<td><a href="https://wg21.link/cwg%s">%s</a></td>
<td>%s</td>
<td>%s</td>
<td%s align="center">%s</td>
- </tr>''' % (row_style, dr.issue, dr.issue, dr.issue, dr.status, dr.title, avail_style, avail)
+ </tr>''' % (row_style, dr.issue, dr.issue, dr.issue, dr.status, dr.title, avail_style, avail))
for status, num in sorted(count.items()):
- print "%s: %s" % (status, num)
+ print("%s: %s" % (status, num))
-print >> out_file, '''\
+out_file.write('''\
</table>
</div>
</body>
-</html>'''
+</html>
+''')
+out_file.close()
+
More information about the cfe-commits
mailing list