From d39d24cec109e99e74a8cfd88d28eb32195a9f2e Mon Sep 17 00:00:00 2001 From: Mark de Wever Date: Sat, 12 Apr 2025 15:26:48 +0200 Subject: [PATCH] [libc++][doc] Updates the release notes. Copies the not-yet-implemented items planned for removal from the LLVM-20 to the LLVM-21 release notes. This allows to better keep track of the status of the next release. --- libcxx/docs/ReleaseNotes/21.rst | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/libcxx/docs/ReleaseNotes/21.rst b/libcxx/docs/ReleaseNotes/21.rst index 06e017850b88..a8f20ed0abaf 100644 --- a/libcxx/docs/ReleaseNotes/21.rst +++ b/libcxx/docs/ReleaseNotes/21.rst @@ -79,6 +79,23 @@ Potentially breaking changes Upcoming Deprecations and Removals ---------------------------------- +LLVM 21 +~~~~~~~ + +- The status of the C++03 implementation will be frozen after the LLVM 21 release. This means that starting in LLVM 22, + non-critical bug fixes may not be back-ported to C++03, including LWG issues. C++03 is a legacy platform, where most + projects are no longer actively maintained. To reduce the amount of fixes required to keep such legacy projects + compiling with up-to-date toolchains, libc++ will aim to freeze the status of the headers in C++03 mode to avoid + unintended breaking changes. See https://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc for more details. + + If you are using C++03 in your project, you should consider moving to a newer version of the Standard to get the most + out of libc++. + +- The ``_LIBCPP_VERBOSE_ABORT_NOT_NOEXCEPT`` macro will be removed in LLVM 21, making ``std::__libcpp_verbose_abort`` + unconditionally ``noexcept``. + +- Non-conforming extension ``packaged_task::result_type`` will be removed in LLVM 21. + LLVM 22 ~~~~~~~