Skip to content
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

[libc++][doc] Update the release notes for LLVM 19. #99061

Merged
merged 1 commit into from
Jul 23, 2024

Conversation

mordante
Copy link
Member

This is a preparation for the upcoming LLVM 19 release.

@mordante mordante requested a review from a team as a code owner July 16, 2024 16:52
@llvmbot llvmbot added the libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. label Jul 16, 2024
@llvmbot
Copy link
Collaborator

llvmbot commented Jul 16, 2024

@llvm/pr-subscribers-libcxx

Author: Mark de Wever (mordante)

Changes

This is a preparation for the upcoming LLVM 19 release.


Full diff: https://github.com/llvm/llvm-project/pull/99061.diff

2 Files Affected:

  • (modified) libcxx/docs/ReleaseNotes/19.rst (+29-11)
  • (modified) libcxx/docs/ReleaseNotes/20.rst (+10)
diff --git a/libcxx/docs/ReleaseNotes/19.rst b/libcxx/docs/ReleaseNotes/19.rst
index e6d8acb74aeb2..5aad49ff35c37 100644
--- a/libcxx/docs/ReleaseNotes/19.rst
+++ b/libcxx/docs/ReleaseNotes/19.rst
@@ -35,6 +35,18 @@ see the `releases page <https://llvm.org/releases/>`_.
 What's New in Libc++ 19.0.0?
 ==============================
 
+The main focus of the libc++ team has been to implement new C++20, C++23,
+and C++26 features.
+
+Experimental support for the time zone database has progressed.
+
+Work on the ranges support has progressed. See
+:ref:`ranges-status` for the current status.
+
+Work on the experimental C++17 Parallel STL has progressed. See
+:ref:`pstl-status` for the current status.
+
+
 Implemented Papers
 ------------------
 
@@ -55,14 +67,21 @@ Implemented Papers
 - P2231R1 - Missing ``constexpr`` in ``std::optional`` and ``std::variant``
 - P0019R8 - ``std::atomic_ref``
 - P2389R2 - Alias template ``dims`` for the ``extents`` of ``mdspan``
+- P2602R2 - Poison Pills are Too Toxic
+- P1981R0 - Rename ``leap`` to ``leap_second``
+- P1982R0 - Rename ``link`` to ``time_zone_link``
+
 
 Improvements and New Features
 -----------------------------
 
 - The performance of growing ``std::vector`` has been improved for trivially relocatable types.
-- A lot of types are considered trivially relocatable now, including ``vector`` and ``string``.
-- The performance of ``ranges::fill`` and ``ranges::fill_n`` has been improved for ``vector<bool>::iterator``\s,
+
+- A lot of types are considered trivially relocatable now, including ``std::vector`` and ``std::string``.
+
+- The performance of ``std::ranges::fill`` and ``std::ranges::fill_n`` has been improved for ``std::vector<bool>::iterator``\s,
   resulting in a performance increase of up to 1400x.
+
 - The ``std::mismatch`` algorithm has been optimized for integral types, which can lead up to 40x performance
   improvements.
 
@@ -79,15 +98,17 @@ Improvements and New Features
 - ``std::ignore``\s ``const __ignore_t& operator=(_Tp&&) const`` was changed to
   ``const __ignore_type& operator=(const _Tp&) const noexcept`` for all language versions.
 
+- In C++23 and C++26 the number of transitive includes in several headers have been removed, improving the compilation speed.
+
 Deprecations and Removals
 -------------------------
 
-- The C++20 synchronization library (``<barrier>``, ``<latch>``, ``atomic::wait``, etc.) has been deprecated
+- The C++20 synchronization library (``<barrier>``, ``<latch>``, ``std::atomic::wait``, etc.) has been deprecated
   in language modes prior to C++20. If you are using these features prior to C++20, please update to ``-std=c++20``.
   In LLVM 20, the C++20 synchronization library will be removed entirely in language modes prior to C++20.
 
 - ``_LIBCPP_DISABLE_NODISCARD_EXT`` has been removed. ``[[nodiscard]]`` applications are now unconditional.
-  This decision is based on LEWGs discussion on `P3122 <https://wg21.link/P3122>` and `P3162 <https://wg21.link/P3162>`
+  This decision is based on LEWGs discussion on `P3122 <https://wg21.link/P3122>`_ and `P3162 <https://wg21.link/P3162>`_
   to not use ``[[nodiscard]]`` in the standard.
 
 - The ``LIBCXX_ENABLE_ASSERTIONS`` CMake variable that was used to enable the safe mode has been deprecated and setting
@@ -130,9 +151,9 @@ Deprecations and Removals
   as ``std::vector<const T>`` and ``std::list<const T>``. This used to be supported as an undocumented extension.
   If you were using ``std::vector<const T>``, replace it with ``std::vector<T>`` instead. The
   ``_LIBCPP_ENABLE_REMOVED_ALLOCATOR_CONST`` macro can be defined to temporarily re-enable this extension as
-  folks transition their code. This macro will be honored for one released and ignored starting in LLVM 20.
+  to transition to update user code. This macro will be honored for one released and ignored starting in LLVM 20.
   To assist with the clean-up process, consider running your code through Clang Tidy, with
-  `std-allocator-const <https://clang.llvm.org/extra/clang-tidy/checks/portability/std-allocator-const.html>`
+  `std-allocator-const <https://clang.llvm.org/extra/clang-tidy/checks/portability/std-allocator-const.html>`_
   enabled.
 
 - When configuring libc++ with localization or threads disabled, the library no longer emits an error when
@@ -153,10 +174,7 @@ LLVM 20
 
 - The C++20 synchronization library will be removed entirely in language modes prior to C++20 in LLVM 20.
 
-LLVM 21
-~~~~~~~
-TODO
-
+- The ``_LIBCPP_ENABLE_REMOVED_ALLOCATOR_CONST`` macro will no longer have an effect.
 
 ABI Affecting Changes
 ---------------------
@@ -172,7 +190,7 @@ Build System Changes
 - The ``LIBCXX_EXECUTOR`` and ``LIBCXXABI_EXECUTOR`` CMake variables have been removed. Please
   set ``LIBCXX_TEST_PARAMS`` to ``executor=<...>`` instead.
 
-- The Cmake variable ``LIBCXX_ENABLE_CLANG_TIDY`` has been removed. The build system has been changed
+- The CMake variable ``LIBCXX_ENABLE_CLANG_TIDY`` has been removed. The build system has been changed
   to automatically detect the presence of ``clang-tidy`` and the required ``Clang`` libraries.
 
 - The CMake options ``LIBCXX_INSTALL_MODULES`` now defaults to ``ON``.
diff --git a/libcxx/docs/ReleaseNotes/20.rst b/libcxx/docs/ReleaseNotes/20.rst
index 79b9788f92eda..4046055a77779 100644
--- a/libcxx/docs/ReleaseNotes/20.rst
+++ b/libcxx/docs/ReleaseNotes/20.rst
@@ -59,6 +59,16 @@ Deprecations and Removals
 Upcoming Deprecations and Removals
 ----------------------------------
 
+LLVM 20
+~~~~~~~
+
+- The ``LIBCXX_ENABLE_ASSERTIONS`` CMake variable and the ``_LIBCPP_ENABLE_ASSERTIONS`` macro that were used to enable
+  the safe mode will be removed in LLVM 20.
+
+- The C++20 synchronization library will be removed entirely in language modes prior to C++20 in LLVM 20.
+
+- The ``_LIBCPP_ENABLE_REMOVED_ALLOCATOR_CONST`` macro will no longer have an effect.
+
 LLVM 21
 ~~~~~~~
 

Copy link
Member

@ldionne ldionne left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! A few comments but this looks good.

libcxx/docs/ReleaseNotes/20.rst Outdated Show resolved Hide resolved
libcxx/docs/ReleaseNotes/19.rst Outdated Show resolved Hide resolved
@ldionne ldionne added this to the LLVM 19.X Release milestone Jul 18, 2024
Copy link
Member Author

@mordante mordante left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the reviews!

libcxx/docs/ReleaseNotes/19.rst Show resolved Hide resolved
libcxx/docs/ReleaseNotes/20.rst Outdated Show resolved Hide resolved
@ldionne
Copy link
Member

ldionne commented Jul 23, 2024

LGTM but this needs rebasing and to be cherry-picked to the release branch.

This is a preparation for the upcoming LLVM 19 release.
@mordante mordante merged commit e9bb4e3 into llvm:main Jul 23, 2024
10 of 12 checks passed
@mordante
Copy link
Member Author

/cherry-pick e9bb4e3

@mordante mordante deleted the review/release_notes branch July 23, 2024 17:00
@llvmbot
Copy link
Collaborator

llvmbot commented Jul 23, 2024

Failed to cherry-pick: e9bb4e3

https://github.com/llvm/llvm-project/actions/runs/10063126078

Please manually backport the fix and push it to your github fork. Once this is done, please create a pull request

mordante added a commit to mordante/llvm-project that referenced this pull request Jul 23, 2024
This is a preparation for the upcoming LLVM 19 release.
mordante added a commit to mordante/llvm-project that referenced this pull request Jul 24, 2024
This is a preparation for the upcoming LLVM 19 release.
yuxuanchen1997 pushed a commit that referenced this pull request Jul 25, 2024
This is a preparation for the upcoming LLVM 19 release.
tru pushed a commit to mordante/llvm-project that referenced this pull request Jul 26, 2024
This is a preparation for the upcoming LLVM 19 release.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. release:cherry-pick-failed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants