diff --git a/libcxx/docs/ReleaseNotes/20.rst b/libcxx/docs/ReleaseNotes/20.rst index 2736061544c53..57ab0c167544b 100644 --- a/libcxx/docs/ReleaseNotes/20.rst +++ b/libcxx/docs/ReleaseNotes/20.rst @@ -35,6 +35,8 @@ see the `releases page `_. What's New in Libc++ 20.0.0? ============================== +The main focus of the libc++ team has been to implement new C++20, C++23, and C++26 features. + Implemented Papers ------------------ @@ -44,7 +46,7 @@ Implemented Papers - P2985R0: A type trait for detecting virtual base classes (`Github `__) - ``std::jthread`` and ```` are not guarded behind ``-fexperimental-library`` anymore - P2674R1: A trait for implicit lifetime types (`Github `__) -- P0429R9: A Standard ``flat_map`` is partially implemented and ``flat_map`` is provided (`Github `__) +- P0429R9: A Standard ``flat_map`` (`Github `__) Improvements and New Features ----------------------------- @@ -111,6 +113,13 @@ Improvements and New Features std::errc::not_a_directory``, or use ``err.default_error_condition()`` to map to an ``error_condition``, and then test its ``value()`` and ``category()``. +- ``std::stable_sort`` uses radix sort for integral types now, which can improve the performance up to 10 times, depending + on type of sorted elements and the initial state of the sorted array. + +- Reduced the amount of debug information generated for internal typedefs. This reduces the size of debug builds. + +- Added :ref:`hardening mode ` support for ``forward_list`` and ``bitset``. + Deprecations and Removals ------------------------- @@ -129,10 +138,10 @@ Deprecations and Removals supported as an extension anymore, please migrate any code that uses e.g. ``std::vector`` to be standards conforming. -- Non-conforming member typedefs ``base``, ``iterator``, ``const_iterator``, and ``const_reference`` of ``std::bitset``, - and member typedef ``base`` of ``std::forward_list`` and ``std::list`` are removed. Previously, these member typedefs - (except ``const_reference``) were private but could cause ambiguity in name lookup. Code that expects such ambiguity - will possibly not compile in LLVM 20. +- Non-conforming member typedefs ``base``, ``iterator``, ``const_iterator``, ``size_type``, ``difference_type``, and + ``const_reference`` of ``std::bitset``, and member typedef ``base`` of ``std::forward_list`` and ``std::list`` are + removed. Previously, these member typedefs (except ``const_reference``) were private but could cause ambiguity in name + lookup. Code that expects such ambiguity will possibly not compile in LLVM 20. - The function ``__libcpp_verbose_abort()`` is now ``noexcept``, to match ``std::terminate()``. (The combination of ``noexcept`` and ``[[noreturn]]`` has special significance for function effects analysis.) For backwards compatibility, @@ -196,8 +205,3 @@ ABI Affecting Changes - The localization support base API has been reimplemented, leading to different functions being exported from the libc++ built library on Windows and Windows-like platforms. - -Build System Changes --------------------- - -- TODO diff --git a/libcxx/docs/Status/Cxx23Papers.csv b/libcxx/docs/Status/Cxx23Papers.csv index bc9d4f8866a73..264c5417a5c28 100644 --- a/libcxx/docs/Status/Cxx23Papers.csv +++ b/libcxx/docs/Status/Cxx23Papers.csv @@ -52,7 +52,7 @@ "`P2443R1 `__","``views::chunk_by``","2022-02 (Virtual)","|Complete|","18","" "","","","","","" "`P0009R18 `__","mdspan: A Non-Owning Multidimensional Array Reference","2022-07 (Virtual)","|Complete|","18","" -"`P0429R9 `__","A Standard ``flat_map``","2022-07 (Virtual)","|Complete|","","" +"`P0429R9 `__","A Standard ``flat_map``","2022-07 (Virtual)","|Complete|","20","" "`P1169R4 `__","``static operator()``","2022-07 (Virtual)","|Complete|","16","" "`P1222R4 `__","A Standard ``flat_set``","2022-07 (Virtual)","","","" "`P1223R5 `__","``ranges::find_last()``, ``ranges::find_last_if()``, and ``ranges::find_last_if_not()``","2022-07 (Virtual)","|Complete|","19",""