[libcxx-commits] [libcxx] [libc++] Update status after the Kona meeting. (PR #72421)

via libcxx-commits libcxx-commits at lists.llvm.org
Wed Nov 15 10:12:18 PST 2023


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libcxx

Author: Mark de Wever (mordante)

<details>
<summary>Changes</summary>

This updates:
- The status tables
- Feature test macros (including previously missing ones)
- New headers for modules

---

Patch is 115.76 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/72421.diff


25 Files Affected:

- (modified) libcxx/docs/FeatureTestMacroTable.rst (+34) 
- (modified) libcxx/docs/Helpers/Styles.rst (+3) 
- (modified) libcxx/docs/Status/Cxx2cIssues.csv (+23-1) 
- (modified) libcxx/docs/Status/Cxx2cPapers.csv (+19) 
- (modified) libcxx/include/version (+38-1) 
- (modified) libcxx/modules/std.cppm.in (+6) 
- (added) libcxx/test/std/language.support/support.limits/support.limits.general/.version.compile.pass.cpp (+123) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp (+34) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/array.version.compile.pass.cpp (+34) 
- (added) libcxx/test/std/language.support/support.limits/support.limits.general/cstring.version.compile.pass.cpp (+71) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp (+36-2) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp (+44) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/mdspan.version.compile.pass.cpp (+37-3) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp (+3-2) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp (+37-3) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp (+43) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/span.version.compile.pass.cpp (+36-2) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp (+41-7) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp (+44) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp (+44) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp (+44) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp (+36-2) 
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp (+550-2) 
- (modified) libcxx/utils/generate_feature_test_macro_components.py (+105-2) 
- (modified) libcxx/utils/libcxx/header_information.py (+2) 


``````````diff
diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst
index 42bf6eb46212d07..9b4e46404d658ea 100644
--- a/libcxx/docs/FeatureTestMacroTable.rst
+++ b/libcxx/docs/FeatureTestMacroTable.rst
@@ -236,6 +236,8 @@ Status
     --------------------------------------------------- -----------------
     ``__cpp_lib_format``                                *unimplemented*
     --------------------------------------------------- -----------------
+    ``__cpp_lib_format_uchar``                          *unimplemented*
+    --------------------------------------------------- -----------------
     ``__cpp_lib_generic_unordered_lookup``              ``201811L``
     --------------------------------------------------- -----------------
     ``__cpp_lib_int_pow2``                              ``202002L``
@@ -342,6 +344,8 @@ Status
     --------------------------------------------------- -----------------
     ``__cpp_lib_print``                                 *unimplemented*
     --------------------------------------------------- -----------------
+    ``__cpp_lib_ranges_as_const``                       *unimplemented*
+    --------------------------------------------------- -----------------
     ``__cpp_lib_ranges_as_rvalue``                      ``202207L``
     --------------------------------------------------- -----------------
     ``__cpp_lib_ranges_chunk``                          *unimplemented*
@@ -378,6 +382,8 @@ Status
     --------------------------------------------------- -----------------
     ``__cpp_lib_to_underlying``                         ``202102L``
     --------------------------------------------------- -----------------
+    ``__cpp_lib_tuple_like``                            *unimplemented*
+    --------------------------------------------------- -----------------
     ``__cpp_lib_unreachable``                           ``202202L``
     --------------------------------------------------- -----------------
     **C++ 26**
@@ -392,18 +398,44 @@ Status
     --------------------------------------------------- -----------------
     ``__cpp_lib_copyable_function``                     *unimplemented*
     --------------------------------------------------- -----------------
+    ``__cpp_lib_debugging``                             *unimplemented*
+    --------------------------------------------------- -----------------
+    ``__cpp_lib_freestanding_algorithm``                *unimplemented*
+    --------------------------------------------------- -----------------
+    ``__cpp_lib_freestanding_array``                    *unimplemented*
+    --------------------------------------------------- -----------------
+    ``__cpp_lib_freestanding_cstring``                  *unimplemented*
+    --------------------------------------------------- -----------------
+    ``__cpp_lib_freestanding_expected``                 *unimplemented*
+    --------------------------------------------------- -----------------
+    ``__cpp_lib_freestanding_mdspan``                   *unimplemented*
+    --------------------------------------------------- -----------------
+    ``__cpp_lib_freestanding_optional``                 *unimplemented*
+    --------------------------------------------------- -----------------
+    ``__cpp_lib_freestanding_string_view``              *unimplemented*
+    --------------------------------------------------- -----------------
+    ``__cpp_lib_freestanding_variant``                  *unimplemented*
+    --------------------------------------------------- -----------------
     ``__cpp_lib_fstream_native_handle``                 *unimplemented*
     --------------------------------------------------- -----------------
     ``__cpp_lib_function_ref``                          *unimplemented*
     --------------------------------------------------- -----------------
     ``__cpp_lib_hazard_pointer``                        *unimplemented*
     --------------------------------------------------- -----------------
+    ``__cpp_lib_linalg``                                *unimplemented*
+    --------------------------------------------------- -----------------
+    ``__cpp_lib_out_ptr``                               *unimplemented*
+    --------------------------------------------------- -----------------
     ``__cpp_lib_ratio``                                 ``202306L``
     --------------------------------------------------- -----------------
     ``__cpp_lib_rcu``                                   *unimplemented*
     --------------------------------------------------- -----------------
+    ``__cpp_lib_saturation_arithmetic``                 *unimplemented*
+    --------------------------------------------------- -----------------
     ``__cpp_lib_smart_ptr_owner_equality``              *unimplemented*
     --------------------------------------------------- -----------------
+    ``__cpp_lib_span_initializer_list``                 *unimplemented*
+    --------------------------------------------------- -----------------
     ``__cpp_lib_sstream_from_string_view``              *unimplemented*
     --------------------------------------------------- -----------------
     ``__cpp_lib_submdspan``                             *unimplemented*
@@ -412,6 +444,8 @@ Status
     --------------------------------------------------- -----------------
     ``__cpp_lib_to_chars``                              *unimplemented*
     --------------------------------------------------- -----------------
+    ``__cpp_lib_tuple_like``                            *unimplemented*
+    --------------------------------------------------- -----------------
     ``__cpp_lib_within_lifetime``                       *unimplemented*
     =================================================== =================
 
diff --git a/libcxx/docs/Helpers/Styles.rst b/libcxx/docs/Helpers/Styles.rst
index 31352efde608fcf..67560351d734397 100644
--- a/libcxx/docs/Helpers/Styles.rst
+++ b/libcxx/docs/Helpers/Styles.rst
@@ -23,6 +23,7 @@
         .spaceship { background-color: #B0E0E6; }
         .fc { background-color: #8EAF63; white-space:nowrap; }
         .concurrency { background-color: #909090; white-space:nowrap; }
+        .dr { background-color: #FFFF99; }
       </style>
 
 .. role:: notstarted
@@ -45,6 +46,7 @@
 .. role:: spaceship
 .. role:: fc
 .. role:: concurrency
+.. role:: dr
 
 .. |chrono| replace:: :chrono:`chrono`
 .. |format| replace:: :format:`format`
@@ -52,6 +54,7 @@
 .. |spaceship| replace:: :spaceship:`spaceship`
 .. |flat_containers| replace:: :fc:`flat containers`
 .. |concurrency TS| replace:: :concurrency:`concurrency TS`
+.. |DR| replace:: :dr:`Defect Report`
 
 .. |sect| unicode:: U+00A7
 .. |hellip| unicode:: U+2026
diff --git a/libcxx/docs/Status/Cxx2cIssues.csv b/libcxx/docs/Status/Cxx2cIssues.csv
index a928b69ea10c489..fe0f13f6e8cb2c2 100644
--- a/libcxx/docs/Status/Cxx2cIssues.csv
+++ b/libcxx/docs/Status/Cxx2cIssues.csv
@@ -17,6 +17,28 @@
 "`3938 <https://wg21.link/LWG3938>`__","Cannot use ``std::expected`` monadic ops with move-only ``error_type``","Varna June 2023","|Complete|","18.0",""
 "`3940 <https://wg21.link/LWG3940>`__","``std::expected<void, E>::value()`` also needs ``E`` to be copy constructible","Varna June 2023","","",""
 "","","","","",""
+"`2392 <https://wg21.link/LWG2392>`__","""character type"" is used but not defined","Kona November 2023","","",""
+"`3203 <https://wg21.link/LWG3203>`__","``span`` element access invalidation","Kona November 2023","","",""
+"`3305 <https://wg21.link/LWG3305>`__","``any_cast<void>``","Kona November 2023","","",""
+"`3431 <https://wg21.link/LWG3431>`__","``<=>`` for containers should require ``three_way_comparable<T>`` instead of ``<=>``","Kona November 2023","","",""
+"`3749 <https://wg21.link/LWG3749>`__","``common_iterator`` should handle integer-class difference types","Kona November 2023","","",""
+"`3809 <https://wg21.link/LWG3809>`__","Is ``std::subtract_with_carry_engine<uint16_t>`` supposed to work","Kona November 2023","","",""
+"`3892 <https://wg21.link/LWG3892>`__","Incorrect formatting of nested ranges and tuples","Kona November 2023","|Complete|","17.0","|format|"
+"`3897 <https://wg21.link/LWG3897>`__","``inout_ptr`` will not update raw pointer to 0","Kona November 2023","","",""
+"`3946 <https://wg21.link/LWG3946>`__","The definition of ``const_iterator_t`` should be reworked","Kona November 2023","","",""
+"`3947 <https://wg21.link/LWG3947>`__","Unexpected constraints on ``adjacent_transform_view::base()``","Kona November 2023","","","|ranges|"
+"`3948 <https://wg21.link/LWG3948>`__","``possibly-const-range and as-const-pointer`` should be ``noexcept``","Kona November 2023","","","|ranges|"
+"`3949 <https://wg21.link/LWG3949>`__","``std::atomic<bool>``'s trivial destructor dropped in C++17 spec wording","Kona November 2023","","",""
+"`3951 <https://wg21.link/LWG3951>`__","[expected.object.swap]: Using ``value()`` instead of ``has_value()``","Kona November 2023","","",""
+"`3953 <https://wg21.link/LWG3953>`__","``iter_move`` for ``common_iterator`` and ``counted_iterator`` should return ``decltype(auto)``","Kona November 2023","","","|ranges|"
+"`3957 <https://wg21.link/LWG3957>`__","[container.alloc.reqmts] The value category of v should be claimed","Kona November 2023","","",""
+"`3965 <https://wg21.link/LWG3965>`__","Incorrect example in [format.string.escaped] p3 for formatting of combining characters","Kona November 2023","","","|format|"
+"`3970 <https://wg21.link/LWG3970>`__","[mdspan.syn] Missing definition of ``full_extent_t`` and ``full_extent``","Kona November 2023","","",""
+"`3973 <https://wg21.link/LWG3973>`__","Monadic operations should be ADL-proof","Kona November 2023","","",""
+"`3974 <https://wg21.link/LWG3974>`__","``mdspan::operator[]`` should not copy ``OtherIndexTypes``","Kona November 2023","","",""
+"`3987 <https://wg21.link/LWG3987>`__","Including ``<flat_foo>`` doesn't provide ``std::begin``/``end``","Kona November 2023","","","|flat_containers|"
+"`3990 <https://wg21.link/LWG3990>`__","Program-defined specializations of ``std::tuple`` and ``std::variant`` can't be properly supported","Kona November 2023","","",""
+"`4001 <https://wg21.link/LWG4001>`__","``iota_view`` should provide ``empty``","Kona November 2023","","","|ranges|"
+"","","","","",""
 "`3343 <https://wg21.link/LWG3343>`__","Ordering of calls to ``unlock()`` and ``notify_all()`` in Effects element of ``notify_all_at_thread_exit()`` should be reversed","Not Yet Adopted","|Complete|","16.0",""
-"`3892 <https://wg21.link/LWG3892>`__","Incorrect formatting of nested ranges and tuples","Not Yet Adopted","|Complete|","17.0","|format|"
 "","","","","",""
diff --git a/libcxx/docs/Status/Cxx2cPapers.csv b/libcxx/docs/Status/Cxx2cPapers.csv
index 0590e2d487c27bd..eb5398f66d0e0c1 100644
--- a/libcxx/docs/Status/Cxx2cPapers.csv
+++ b/libcxx/docs/Status/Cxx2cPapers.csv
@@ -27,3 +27,22 @@
 "`P2714R1 <https://wg21.link/P2714R1>`__","LWG","Bind front and back to NTTP callables","Varna June 2023","","",""
 "`P2630R4 <https://wg21.link/P2630R4>`__","LWG","``submdspan``","Varna June 2023","","",""
 "","","","","","",""
+"`P0543R3 <https://wg21.link/P0543R3>`__","LWG","Saturation arithmetic","Kona November 2023","","",""
+"`P2407R5 <https://wg21.link/P2407R5>`__","LWG","Freestanding Library: Partial Classes","Kona November 2023","","",""
+"`P2546R5 <https://wg21.link/P2546R5>`__","LWG","Debugging Support","Kona November 2023","","",""
+"`P2905R2 <https://wg21.link/P2905R2>`__","LWG","Runtime format strings","Kona November 2023","","","|format| |DR|"
+"`P2918R2 <https://wg21.link/P2918R2>`__","LWG","Runtime format strings II","Kona November 2023","","","|format|"
+"`P2909R4 <https://wg21.link/P2909R4>`__","LWG","Fix formatting of code units as integers (Dude, where’s my ``char``?)","Kona November 2023","","","|format| |DR|"
+"`P0952R2 <https://wg21.link/P0952R2>`__","LWG","A new specification for ``std::generate_canonical``","Kona November 2023","","",""
+"`P2447R6 <https://wg21.link/P2447R6>`__","LWG","``std::span`` over an initializer list","Kona November 2023","","",""
+"`P2821R5 <https://wg21.link/P2821R5>`__","LWG","``span.at()``","Kona November 2023","","",""
+"`P2868R3 <https://wg21.link/P2868R3>`__","LWG","Remove Deprecated ``std::allocator`` Typedef From C++26","Kona November 2023","","",""
+"`P2870R3 <https://wg21.link/P2870R3>`__","LWG","Remove ``basic_string::reserve()`` From C++26","Kona November 2023","","",""
+"`P2871R3 <https://wg21.link/P2871R3>`__","LWG","Remove Deprecated Unicode Conversion Facets from C++26","Kona November 2023","","",""
+"`P2819R2 <https://wg21.link/P2819R2>`__","LWG","Add tuple protocol to complex","Kona November 2023","","",""
+"`P2937R0 <https://wg21.link/P2937R0>`__","LWG","Freestanding: Remove ``strtok``","Kona November 2023","","",""
+"`P2833R2 <https://wg21.link/P2833R2>`__","LWG","Freestanding Library: inout expected span","Kona November 2023","","",""
+"`P2836R1 <https://wg21.link/P2836R1>`__","LWG","``std::basic_const_iterator`` should follow its underlying type's convertibility","Kona November 2023","","","|DR|"
+"`P2264R7 <https://wg21.link/P2264R7>`__","LWG","Make ``assert()`` macro user friendly for C and C++","Kona November 2023","","",""
+"`P1673R13 <https://wg21.link/P1673R13>`__","LWG","A free function linear algebra interface based on the BLAS","Kona November 2023","","",""
+"","","","","","",""
diff --git a/libcxx/include/version b/libcxx/include/version
index ec0cb0813492383..0db366af9e42e63 100644
--- a/libcxx/include/version
+++ b/libcxx/include/version
@@ -79,6 +79,7 @@ __cpp_lib_constexpr_utility                             201811L <utility>
 __cpp_lib_constexpr_vector                              201907L <vector>
 __cpp_lib_copyable_function                             202306L <functional>
 __cpp_lib_coroutine                                     201902L <coroutine>
+__cpp_lib_debugging                                     202311L <debugging>
 __cpp_lib_destroying_delete                             201806L <new>
 __cpp_lib_enable_shared_from_this                       201603L <memory>
 __cpp_lib_endian                                        201907L <bit>
@@ -92,8 +93,17 @@ __cpp_lib_expected                                      202211L <expected>
 __cpp_lib_filesystem                                    201703L <filesystem>
 __cpp_lib_format                                        202106L <format>
 __cpp_lib_format_ranges                                 202207L <format>
+__cpp_lib_format_uchar                                  202311L <>
 __cpp_lib_formatters                                    202302L <stacktrace> <thread>
 __cpp_lib_forward_like                                  202207L <utility>
+__cpp_lib_freestanding_algorithm                        202311L <algorithm>
+__cpp_lib_freestanding_array                            202311L <array>
+__cpp_lib_freestanding_cstring                          202306L <cstring>
+__cpp_lib_freestanding_expected                         202311L <expected>
+__cpp_lib_freestanding_mdspan                           202311L <mdspan>
+__cpp_lib_freestanding_optional                         202311L <optional>
+__cpp_lib_freestanding_string_view                      202311L <string_view>
+__cpp_lib_freestanding_variant                          202311L <variant>
 __cpp_lib_fstream_native_handle                         202306L <fstream>
 __cpp_lib_function_ref                                  202306L <functional>
 __cpp_lib_gcd_lcm                                       201606L <numeric>
@@ -124,6 +134,7 @@ __cpp_lib_is_swappable                                  201603L <type_traits>
 __cpp_lib_jthread                                       201911L <stop_token> <thread>
 __cpp_lib_latch                                         201907L <latch>
 __cpp_lib_launder                                       201606L <new>
+__cpp_lib_linalg                                        202311L <linalg>
 __cpp_lib_list_remove_return_type                       201806L <forward_list> <list>
 __cpp_lib_logical_traits                                201510L <type_traits>
 __cpp_lib_make_from_tuple                               201606L <tuple>
@@ -146,13 +157,15 @@ __cpp_lib_not_fn                                        201603L <functional>
 __cpp_lib_null_iterators                                201304L <iterator>
 __cpp_lib_optional                                      202110L <optional>
                                                         201606L // C++17
-__cpp_lib_out_ptr                                       202106L <memory>
+__cpp_lib_out_ptr                                       202311L <memory>
+                                                        202106L // C++23
 __cpp_lib_parallel_algorithm                            201603L <algorithm> <numeric>
 __cpp_lib_polymorphic_allocator                         201902L <memory_resource>
 __cpp_lib_print                                         202207L <ostream> <print>
 __cpp_lib_quoted_string_io                              201304L <iomanip>
 __cpp_lib_ranges                                        202207L <algorithm> <functional> <iterator>
                                                                 <memory> <ranges>
+__cpp_lib_ranges_as_const                               202207L <ranges>
 __cpp_lib_ranges_as_rvalue                              202207L <ranges>
 __cpp_lib_ranges_chunk                                  202202L <ranges>
 __cpp_lib_ranges_chunk_by                               202202L <ranges>
@@ -174,6 +187,7 @@ __cpp_lib_remove_cvref                                  201711L <type_traits>
 __cpp_lib_result_of_sfinae                              201210L <functional> <type_traits>
 __cpp_lib_robust_nonmodifying_seq_ops                   201304L <algorithm>
 __cpp_lib_sample                                        201603L <algorithm>
+__cpp_lib_saturation_arithmetic                         202311L <>
 __cpp_lib_scoped_lock                                   201703L <mutex>
 __cpp_lib_semaphore                                     201907L <semaphore>
 __cpp_lib_shared_mutex                                  201505L <shared_mutex>
@@ -186,6 +200,7 @@ __cpp_lib_smart_ptr_for_overwrite                       202002L <memory>
 __cpp_lib_smart_ptr_owner_equality                      202306L <memory>
 __cpp_lib_source_location                               201907L <source_location>
 __cpp_lib_span                                          202002L <span>
+__cpp_lib_span_initializer_list                         202311L <span>
 __cpp_lib_spanstream                                    202106L <spanstream>
 __cpp_lib_ssize                                         201902L <iterator>
 __cpp_lib_sstream_from_string_view                      202306L <sstream>
@@ -211,6 +226,9 @@ __cpp_lib_transformation_trait_aliases                  201304L <type_traits>
 __cpp_lib_transparent_operators                         201510L <functional> <memory>
                                                         201210L // C++14
 __cpp_lib_tuple_element_t                               201402L <tuple>
+__cpp_lib_tuple_like                                    202311L <map> <tuple> <unordered_map>
+                                                                <utility>
+                                                        202207L // C++23
 __cpp_lib_tuples_by_type                                201304L <tuple> <utility>
 __cpp_lib_type_identity                                 201806L <type_traits>
 __cpp_lib_type_trait_variable_templates                 201510L <type_traits>
@@ -364,6 +382,7 @@ __cpp_lib_within_lifetime                               202306L <type_traits>
 # undef  __cpp_lib_execution
 // # define __cpp_lib_execution                            201902L
 // # define __cpp_lib_format                               202106L
+// # define __cpp_lib_format_uchar                         202311L
 # define __cpp_lib_generic_unordered_lookup             201811L
 # define __cpp_lib_int_pow2                             202002L
 # define __cpp_lib_integer_comparison_functions         202002L
@@ -435,6 +454,7 @@ __cpp_lib_within_lifetime                               202306L <type_traits>
 # define __cpp_lib_optional                             202110L
 // # define __cpp_lib_out_ptr                              202106L
 ...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/72421


More information about the libcxx-commits mailing list