[libcxx-commits] [libcxx] 64b11db - [libc++] Add WG21 issues and papers voted in Brno (#204191)
via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Jun 17 06:14:42 PDT 2026
Author: Louis Dionne
Date: 2026-06-17T09:14:37-04:00
New Revision: 64b11dbaf97b8b094b2836ae92db30b732f4a069
URL: https://github.com/llvm/llvm-project/commit/64b11dbaf97b8b094b2836ae92db30b732f4a069
DIFF: https://github.com/llvm/llvm-project/commit/64b11dbaf97b8b094b2836ae92db30b732f4a069.diff
LOG: [libc++] Add WG21 issues and papers voted in Brno (#204191)
All papers were targeting C++29, so I created new CSV tracking files. A
few papers were forwarded by CWG in plenary but have library wording, so
they are included here. I believe at least some of them will be *nothing
to do*, but should still be included for completeness.
Minor drive-bys:
- rename Cxx2c to Cxx26
- synchronize RST notes from CSVs to Github issues
Assisted by Claude
Added:
libcxx/docs/Status/Cxx26.rst
libcxx/docs/Status/Cxx26Issues.csv
libcxx/docs/Status/Cxx26Papers.csv
libcxx/docs/Status/Cxx29.rst
libcxx/docs/Status/Cxx29Issues.csv
libcxx/docs/Status/Cxx29Papers.csv
Modified:
libcxx/docs/index.rst
libcxx/utils/conformance
Removed:
libcxx/docs/Status/Cxx2c.rst
libcxx/docs/Status/Cxx2cIssues.csv
libcxx/docs/Status/Cxx2cPapers.csv
################################################################################
diff --git a/libcxx/docs/Status/Cxx2c.rst b/libcxx/docs/Status/Cxx26.rst
similarity index 82%
rename from libcxx/docs/Status/Cxx2c.rst
rename to libcxx/docs/Status/Cxx26.rst
index d94b3cfacbb03..014e6f1b9a3e2 100644
--- a/libcxx/docs/Status/Cxx2c.rst
+++ b/libcxx/docs/Status/Cxx26.rst
@@ -1,7 +1,7 @@
-.. _cxx2c-status:
+.. _cxx26-status:
================================
-libc++ C++2c Status
+libc++ C++26 Status
================================
.. include:: ../Helpers/Styles.rst
@@ -13,9 +13,9 @@ libc++ C++2c Status
Overview
================================
-In June 2023, the C++ standard committee adopted the first changes to the next version of the C++ standard, known here as "C++2c" (probably to be C++26).
+In June 2023, the C++ standard committee adopted the first changes to the next version of the C++ standard, known here as "C++26".
-This page shows the status of libc++; the status of clang's support of the language features is `here <https://clang.llvm.org/cxx_status.html#cxx2c>`__.
+This page shows the status of libc++; the status of clang's support of the language features is `here <https://clang.llvm.org/cxx_status.html#cxx26>`__.
.. attention:: Features in unreleased drafts of the standard are subject to change.
@@ -31,7 +31,7 @@ Paper Status
====================================
.. csv-table::
- :file: Cxx2cPapers.csv
+ :file: Cxx26Papers.csv
:header-rows: 1
:widths: auto
@@ -39,6 +39,6 @@ Library Working Group Issues Status
====================================
.. csv-table::
- :file: Cxx2cIssues.csv
+ :file: Cxx26Issues.csv
:header-rows: 1
:widths: auto
diff --git a/libcxx/docs/Status/Cxx2cIssues.csv b/libcxx/docs/Status/Cxx26Issues.csv
similarity index 100%
rename from libcxx/docs/Status/Cxx2cIssues.csv
rename to libcxx/docs/Status/Cxx26Issues.csv
diff --git a/libcxx/docs/Status/Cxx2cPapers.csv b/libcxx/docs/Status/Cxx26Papers.csv
similarity index 100%
rename from libcxx/docs/Status/Cxx2cPapers.csv
rename to libcxx/docs/Status/Cxx26Papers.csv
diff --git a/libcxx/docs/Status/Cxx29.rst b/libcxx/docs/Status/Cxx29.rst
new file mode 100644
index 0000000000000..e4227dfa84cc4
--- /dev/null
+++ b/libcxx/docs/Status/Cxx29.rst
@@ -0,0 +1,44 @@
+.. _cxx29-status:
+
+================================
+libc++ C++29 Status
+================================
+
+.. include:: ../Helpers/Styles.rst
+
+.. contents::
+ :local:
+
+
+Overview
+================================
+
+In June 2026, the C++ standard committee adopted the first changes to the next version of the C++ standard, known here as "C++29".
+
+This page shows the status of libc++; the status of clang's support of the language features is `here <https://clang.llvm.org/cxx_status.html#cxx29>`__.
+
+.. attention:: Features in unreleased drafts of the standard are subject to change.
+
+The groups that have contributed papers:
+
+- CWG - Core Language Working group
+- LWG - Library working group
+- SG1 - Study group #1 (Concurrency working group)
+
+.. note:: "Nothing to do" means that no library changes were needed to implement this change.
+
+Paper Status
+====================================
+
+.. csv-table::
+ :file: Cxx29Papers.csv
+ :header-rows: 1
+ :widths: auto
+
+Library Working Group Issues Status
+====================================
+
+.. csv-table::
+ :file: Cxx29Issues.csv
+ :header-rows: 1
+ :widths: auto
diff --git a/libcxx/docs/Status/Cxx29Issues.csv b/libcxx/docs/Status/Cxx29Issues.csv
new file mode 100644
index 0000000000000..e3303bf399bb3
--- /dev/null
+++ b/libcxx/docs/Status/Cxx29Issues.csv
@@ -0,0 +1,19 @@
+"Issue #","Issue Name","Meeting","Status","First released version","GitHub issue","Notes"
+"`LWG3417 <https://wg21.link/LWG3417>`__","Missing ``volatile`` atomic deprecations","2026-06 (Brno)","","","",""
+"`LWG4121 <https://wg21.link/LWG4121>`__","``ranges::to`` constructs associative containers via ``c.emplace(c.end(), *it)``","2026-06 (Brno)","","","",""
+"`LWG4125 <https://wg21.link/LWG4125>`__","``move_iterator``'s default constructor should be constrained","2026-06 (Brno)","","","",""
+"`LWG4158 <https://wg21.link/LWG4158>`__","``packaged_task::operator=`` should abandon its shared state","2026-06 (Brno)","","","",""
+"`LWG4182 <https://wg21.link/LWG4182>`__","Definition of ``NULL`` is too broad","2026-06 (Brno)","","","",""
+"`LWG4218 <https://wg21.link/LWG4218>`__","Constraint recursion in ``basic_const_iterator``'s relational operators due to ADL + CWG 2369","2026-06 (Brno)","","","",""
+"`LWG4249 <https://wg21.link/LWG4249>`__","The past end issue for ``lazy_split_view``","2026-06 (Brno)","","","",""
+"`LWG4267 <https://wg21.link/LWG4267>`__","Uses-allocator construction is meaningless for tuple of references","2026-06 (Brno)","","","",""
+"`LWG4359 <https://wg21.link/LWG4359>`__","``as_awaitable(expr, p)`` does not define semantics of call if ``p`` is not an lvalue","2026-06 (Brno)","","","",""
+"`LWG4385 <https://wg21.link/LWG4385>`__","Including ``<simd>`` doesn't provide ``std::begin``/``end``","2026-06 (Brno)","","","",""
+"`LWG4471 <https://wg21.link/LWG4471>`__","Remove test for ``get_env`` ``noexcept``-ness from ``inline_scheduler``","2026-06 (Brno)","","","",""
+"`LWG4487 <https://wg21.link/LWG4487>`__","Is member ``is_steady`` of a *Cpp17Clock* type required to be usable in constant expressions?","2026-06 (Brno)","","","",""
+"`LWG4490 <https://wg21.link/LWG4490>`__","Allow calling ``std::ranges::size`` in ranges algorithms","2026-06 (Brno)","","","",""
+"`LWG4521 <https://wg21.link/LWG4521>`__","Improve [atomics.order] p10 to have a consistent way with [intro.races]","2026-06 (Brno)","","","",""
+"`LWG4531 <https://wg21.link/LWG4531>`__","Should there be a feature-test macro update for ``constexpr`` ``std::to_(w)string``?","2026-06 (Brno)","","","",""
+"`LWG4567 <https://wg21.link/LWG4567>`__","Feature test macro value for ``apply_result``, ``is_applicable``","2026-06 (Brno)","","","",""
+"`LWG4568 <https://wg21.link/LWG4568>`__","``std::execution::spawn_future`` is mishandling dependent senders","2026-06 (Brno)","","","",""
+"`LWG4579 <https://wg21.link/LWG4579>`__","``make-state<Rcvr>::state-type::complete`` uses ``Env`` which is not in scope","2026-06 (Brno)","","","",""
diff --git a/libcxx/docs/Status/Cxx29Papers.csv b/libcxx/docs/Status/Cxx29Papers.csv
new file mode 100644
index 0000000000000..d2ba41ffe65a8
--- /dev/null
+++ b/libcxx/docs/Status/Cxx29Papers.csv
@@ -0,0 +1,22 @@
+"Paper #","Paper Name","Meeting","Status","First released version","GitHub issue","Notes"
+"`P2434R5 <https://wg21.link/P2434R5>`__","Nondeterministic pointer provenance","2026-06 (Brno)","","","","Voted as a Defect Report."
+"`P4101R1 <https://wg21.link/P4101R1>`__","Consteval-only Values for C++26","2026-06 (Brno)","","","","Voted as a Defect Report."
+"`P2414R12 <https://wg21.link/P2414R12>`__","Pointer lifetime-end zap proposed solutions","2026-06 (Brno)","","","","Voted as a Defect Report."
+"`P3319R6 <https://wg21.link/P3319R6>`__","Add an ``iota`` object for ``simd`` (and more)","2026-06 (Brno)","","","",""
+"`P3798R1 <https://wg21.link/P3798R1>`__","The unexpected in ``std::expected``","2026-06 (Brno)","","","",""
+"`P3052R2 <https://wg21.link/P3052R2>`__","``view_interface::at()``","2026-06 (Brno)","","","",""
+"`P4206R0 <https://wg21.link/P4206R0>`__","Revert string support in ``std::constant_wrapper``","2026-06 (Brno)","","","","To be applied as a Defect Report."
+"`P3395R6 <https://wg21.link/P3395R6>`__","Fix encoding issues and add a formatter for ``std::error_code``","2026-06 (Brno)","","","",""
+"`P3505R4 <https://wg21.link/P3505R4>`__","Fix the default floating-point representation in ``std::format``","2026-06 (Brno)","","","","To be applied as a Defect Report."
+"`P3154R3 <https://wg21.link/P3154R3>`__","Deprecating signed character types in iostreams","2026-06 (Brno)","","","",""
+"`P3428R4 <https://wg21.link/P3428R4>`__","Hazard Pointer Batches","2026-06 (Brno)","","","",""
+"`P3248R5 <https://wg21.link/P3248R5>`__","Require ``[u]intptr_t``","2026-06 (Brno)","","","",""
+"`P3793R2 <https://wg21.link/P3793R2>`__","Better shifting","2026-06 (Brno)","","","",""
+"`P3242R4 <https://wg21.link/P3242R4>`__","Copy and fill for ``mdspan``","2026-06 (Brno)","","","",""
+"`P3692R4 <https://wg21.link/P3692R4>`__","How to Avoid OOTA Without Really Trying","2026-06 (Brno)","","","",""
+"`P3104R6 <https://wg21.link/P3104R6>`__","Bit permutations","2026-06 (Brno)","","","",""
+"`P3772R2 <https://wg21.link/P3772R2>`__","``std::simd`` overloads for bit permutations","2026-06 (Brno)","","","",""
+"`P3091R6 <https://wg21.link/P3091R6>`__","Better Lookups for ``map``, ``unordered_map``, and ``flat_map``","2026-06 (Brno)","","","",""
+"`P3125R6 <https://wg21.link/P3125R6>`__","constexpr pointer tagging","2026-06 (Brno)","","","",""
+"`P2019R9 <https://wg21.link/P2019R9>`__","Thread attributes","2026-06 (Brno)","","","",""
+"`P3785R1 <https://wg21.link/P3785R1>`__","Library Wording Changes for Defaulted Postfix Increment and Decrement Operations","2026-06 (Brno)","","","",""
diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst
index 38f77580d4530..f47310d20f525 100644
--- a/libcxx/docs/index.rst
+++ b/libcxx/docs/index.rst
@@ -48,7 +48,8 @@ Getting Started with libc++
Status/Cxx17
Status/Cxx20
Status/Cxx23
- Status/Cxx2c
+ Status/Cxx26
+ Status/Cxx29
Status/Format
Status/Parallelism
@@ -69,7 +70,7 @@ user base of over 1 billion daily active users.
Since its inception, libc++ has focused on delivering high performance, standards-conformance, and portability. It has
been extensively tested and optimized, making it robust and production ready. libc++ fully implements C++11 and C++14,
-with C++17, C++20, C++23, and C++26 features being actively developed and making steady progress.
+with C++17, C++20, C++23, C++26, and C++29 features being actively developed and making steady progress.
libc++ is continuously integrated and tested on a wide range of platforms and configurations, ensuring its reliability
and compatibility across various systems. The library's extensive test suite and rigorous quality assurance process have
@@ -183,7 +184,8 @@ this release is described in the pages below:
* :ref:`C++17 - In Progress <cxx17-status>`
* :ref:`C++20 - In Progress <cxx20-status>`
* :ref:`C++23 - In Progress <cxx23-status>`
-* :ref:`C++2c - In Progress <cxx2c-status>`
+* :ref:`C++26 - In Progress <cxx26-status>`
+* :ref:`C++29 - In Progress <cxx29-status>`
* :ref:`C++ Feature Test Macro Status <feature-status>`
diff --git a/libcxx/utils/conformance b/libcxx/utils/conformance
index cc9461aee210a..d24b99347ae91 100755
--- a/libcxx/utils/conformance
+++ b/libcxx/utils/conformance
@@ -537,9 +537,13 @@ def github_create(csvfiles, load_github_from, labels):
continue
# Create the actual Github issue
+ body = f'**Link:** https://wg21.link/{paper.paper_number}'
+ if paper.notes:
+ body += f'\n\n```\nBEGIN-RST-NOTES\n{paper.notes}\nEND-RST-NOTES\n```'
+
cli = ['gh', 'issue', 'create', '--repo', 'llvm/llvm-project',
'--title', f'{paper.paper_number}: {rst_to_markdown(paper.paper_name)}',
- '--body', f'**Link:** https://wg21.link/{paper.paper_number}',
+ '--body', body,
'--project', 'libc++ Standards Conformance',
'--label', 'libc++']
More information about the libcxx-commits
mailing list