[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