Skip to content

[clang] Minor updates to C++ DR page design #106360

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 60 additions & 12 deletions clang/www/cxx_dr_status.html
Original file line number Diff line number Diff line change
Expand Up @@ -2879,7 +2879,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td><a href="https://cplusplus.github.io/CWG/issues/472.html">472</a></td>
<td>drafting</td>
<td>Casting across protected inheritance</td>
<td title="Clang does not implement 2011-04 resolution" align="center">Not Resolved*</td>
<td align="center">
<details>
<summary>Not resolved</summary>
Clang does not implement 2011-04 resolution
</details></td>
</tr>
<tr id="473">
<td><a href="https://cplusplus.github.io/CWG/issues/473.html">473</a></td>
Expand Down Expand Up @@ -7153,7 +7157,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td><a href="https://cplusplus.github.io/CWG/issues/1223.html">1223</a></td>
<td>drafting</td>
<td>Syntactic disambiguation and <I>trailing-return-type</I>s</td>
<td title="Clang 17 implements 2023-05-12 resolution" align="center">Not Resolved*</td>
<td align="center">
<details>
<summary>Not resolved</summary>
Clang 17 implements 2023-05-12 resolution
</details></td>
</tr>
<tr id="1224">
<td><a href="https://cplusplus.github.io/CWG/issues/1224.html">1224</a></td>
Expand Down Expand Up @@ -9319,7 +9327,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td><a href="https://cplusplus.github.io/CWG/issues/1584.html">1584</a></td>
<td>drafting</td>
<td>Deducing function types from cv-qualified types</td>
<td title="Clang 7 implements 2015-05 resolution" align="center">Not Resolved*</td>
<td align="center">
<details>
<summary>Not resolved</summary>
Clang 7 implements 2015-05 resolution
</details></td>
</tr>
<tr id="1585">
<td><a href="https://cplusplus.github.io/CWG/issues/1585.html">1585</a></td>
Expand Down Expand Up @@ -11155,7 +11167,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td><a href="https://cplusplus.github.io/CWG/issues/1890.html">1890</a></td>
<td>drafting</td>
<td>Member type depending on definition of member function</td>
<td title="Clang does not implement 2018-06-04 resolution" align="center">Not Resolved*</td>
<td align="center">
<details>
<summary>Not resolved</summary>
Clang does not implement 2018-06-04 resolution
</details></td>
</tr>
<tr id="1891">
<td><a href="https://cplusplus.github.io/CWG/issues/1891.html">1891</a></td>
Expand Down Expand Up @@ -13825,7 +13841,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td><a href="https://cplusplus.github.io/CWG/issues/2335.html">2335</a></td>
<td>drafting</td>
<td>Deduced return types vs member types</td>
<td title="Clang does not implement 2018-06 resolution" align="center">Not Resolved*</td>
<td align="center">
<details>
<summary>Not resolved</summary>
Clang does not implement 2018-06 resolution
</details></td>
</tr>
<tr id="2336">
<td><a href="https://cplusplus.github.io/CWG/issues/2336.html">2336</a></td>
Expand Down Expand Up @@ -15133,13 +15153,21 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td><a href="https://cplusplus.github.io/CWG/issues/2553.html">2553</a></td>
<td>review</td>
<td>Restrictions on explicit object member functions</td>
<td title="Clang 18 implements 2023-07-14 resolution" align="center">Not Resolved*</td>
<td align="center">
<details>
<summary>Not resolved</summary>
Clang 18 implements 2023-07-14 resolution
</details></td>
</tr>
<tr class="open" id="2554">
<td><a href="https://cplusplus.github.io/CWG/issues/2554.html">2554</a></td>
<td>review</td>
<td>Overriding virtual functions, also with explicit object parameters</td>
<td title="Clang 18 implements 2021-12-10 resolution" align="center">Not Resolved*</td>
<td align="center">
<details>
<summary>Not resolved</summary>
Clang 18 implements 2021-12-10 resolution
</details></td>
</tr>
<tr class="open" id="2555">
<td><a href="https://cplusplus.github.io/CWG/issues/2555.html">2555</a></td>
Expand Down Expand Up @@ -15205,7 +15233,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td><a href="https://cplusplus.github.io/CWG/issues/2565.html">2565</a></td>
<td>open</td>
<td>Invalid types in the <I>parameter-declaration-clause</I> of a <I>requires-expression</I></td>
<td title="Clang 16 implements 2023-06-07 resolution" align="center">Not Resolved*</td>
<td align="center">
<details>
<summary>Not resolved</summary>
Clang 16 implements 2023-06-07 resolution
</details></td>
</tr>
<tr class="open" id="2566">
<td><a href="https://cplusplus.github.io/CWG/issues/2566.html">2566</a></td>
Expand Down Expand Up @@ -16898,7 +16930,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td><a href="https://cplusplus.github.io/CWG/issues/2847.html">2847</a></td>
<td>review</td>
<td>Constrained explicit specializations of function templates at class scope</td>
<td title="Clang 19 implements 2024-03-01 resolution" align="center">Not Resolved*</td>
<td align="center">
<details>
<summary>Not resolved</summary>
Clang 19 implements 2024-03-01 resolution
</details></td>
</tr>
<tr id="2848">
<td><a href="https://cplusplus.github.io/CWG/issues/2848.html">2848</a></td>
Expand Down Expand Up @@ -17126,7 +17162,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td><a href="https://cplusplus.github.io/CWG/issues/2885.html">2885</a></td>
<td>review</td>
<td>Non-eligible trivial default constructors</td>
<td title="Clang 16 implements 2024-05-31 resolution" align="center">Not Resolved*</td>
<td align="center">
<details>
<summary>Not resolved</summary>
Clang 16 implements 2024-05-31 resolution
</details></td>
</tr>
<tr id="2886">
<td><a href="https://cplusplus.github.io/CWG/issues/2886.html">2886</a></td>
Expand Down Expand Up @@ -17318,7 +17358,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td><a href="https://cplusplus.github.io/CWG/issues/2917.html">2917</a></td>
<td>review</td>
<td>Disallow multiple <I>friend-type-specifier</I>s for a friend template</td>
<td title="Clang 20 implements 2024-07-30 resolution" align="center">Not Resolved*</td>
<td align="center">
<details>
<summary>Not resolved</summary>
Clang 20 implements 2024-07-30 resolution
</details></td>
</tr>
<tr class="open" id="2918">
<td><a href="https://cplusplus.github.io/CWG/issues/2918.html">2918</a></td>
Expand Down Expand Up @@ -17348,7 +17392,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
<td><a href="https://cplusplus.github.io/CWG/issues/2922.html">2922</a></td>
<td>tentatively ready</td>
<td>constexpr placement-new is too permissive</td>
<td title="Clang 20 implements 2024-07-10 resolution" align="center">Not Resolved*</td>
<td align="center">
<details>
<summary>Not resolved</summary>
Clang 20 implements 2024-07-10 resolution
</details></td>
</tr>
<tr class="open" id="2923">
<td><a href="https://cplusplus.github.io/CWG/issues/2923.html">2923</a></td>
Expand Down
45 changes: 26 additions & 19 deletions clang/www/make_cxx_dr_status
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ def availability(issue):

avail_suffix = ''
avail_style = ''
tooltip = ''
details = ''
if status.endswith(' c++11'):
status = status[:-6]
avail_suffix = ' (C++11 onwards)'
Expand All @@ -180,29 +180,29 @@ def availability(issue):
else:
avail_style = 'full'
else:
avail = 'Not Resolved*'
tooltip = f' title="Clang {status} implements {proposed_resolution} resolution"'
avail = 'Not resolved'
details = f'Clang {status} implements {proposed_resolution} resolution'
elif status == 'yes':
if not proposed_resolution:
avail = 'Yes'
avail_style = 'full'
else:
avail = 'Not Resolved*'
tooltip = f' title="Clang implements {proposed_resolution} resolution"'
avail = 'Not resolved'
details = f'Clang implements {proposed_resolution} resolution'
elif status == 'partial':
if not proposed_resolution:
avail = 'Partial'
avail_style = 'partial'
else:
avail = 'Not Resolved*'
tooltip = f' title="Clang partially implements {proposed_resolution} resolution"'
avail = 'Not resolved'
details = f'Clang partially implements {proposed_resolution} resolution'
elif status == 'no':
if not proposed_resolution:
avail = 'No'
avail_style = 'none'
else:
avail = 'Not Resolved*'
tooltip = f' title="Clang does not implement {proposed_resolution} resolution"'
avail = 'Not resolved'
details = f'Clang does not implement {proposed_resolution} resolution'
elif status == 'na':
avail = 'N/A'
avail_style = 'na'
Expand Down Expand Up @@ -231,7 +231,7 @@ def availability(issue):
_, avail_style, _, _ = availability(dup)
else:
raise AvailabilityError('Unknown status %s for issue %s' % (status, dr.issue))
return (avail + avail_suffix, avail_style, unresolved_status, tooltip)
return (avail + avail_suffix, avail_style, unresolved_status, details)

count = {}
for dr in drs:
Expand All @@ -248,7 +248,7 @@ for dr in drs:
elif dr.status in ('open', 'drafting', 'review', 'tentatively ready', 'ready'):
row_style = ' class="open"'
try:
avail, avail_style, unresolved_status, tooltip = availability(dr.issue)
avail, avail_style, unresolved_status, details = availability(dr.issue)
except AvailabilityError as e:
availability_error_occurred = True
print(e.args[0])
Expand All @@ -266,7 +266,7 @@ for dr in drs:
else:
row_style = ''
try:
avail, avail_style, unresolved_status, tooltip = availability(dr.issue)
avail, avail_style, unresolved_status, details = availability(dr.issue)
except AvailabilityError as e:
availability_error_occurred = True
print(e.args[0])
Expand All @@ -283,13 +283,20 @@ for dr in drs:

if avail_style != '':
avail_style = ' class="{}"'.format(avail_style)
out_file.write('''
<tr%s id="%s">
<td><a href="https://cplusplus.github.io/CWG/issues/%s.html">%s</a></td>
<td>%s</td>
<td>%s</td>
<td%s%s align="center">%s</td>
</tr>''' % (row_style, dr.issue, dr.issue, dr.issue, dr.status, dr.title, avail_style, tooltip, avail))

if details != '':
avail = f'''
<details>
<summary>{avail}</summary>
{details}
</details>'''
out_file.write(f'''
<tr{row_style} id="{dr.issue}">
<td><a href="https://cplusplus.github.io/CWG/issues/{dr.issue}.html">{dr.issue}</a></td>
<td>{dr.status}</td>
<td>{dr.title}</td>
<td{avail_style} align="center">{avail}</td>
</tr>''')

if availability_error_occurred:
exit(1)
Expand Down
Loading