[libcxx-commits] [libcxx] [libc++] Create libc++ 24 release notes (PR #208814)

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Tue Jul 14 08:48:02 PDT 2026


https://github.com/ldionne updated https://github.com/llvm/llvm-project/pull/208814

>From d944ff730edf9c681ae64dad1ec59d07d55812ab Mon Sep 17 00:00:00 2001
From: Louis Dionne <ldionne.2 at gmail.com>
Date: Fri, 10 Jul 2026 15:01:08 -0400
Subject: [PATCH 1/3] [libc++] Create libc++ 24 release notes

While the release branch has not been cut yet, having the release notes
for LLVM 24 simplifies the creation of PRs that target LLVM 24 immediately,
with the intent of merging them only after the LLVM 23 release branch is cut.

The release notes contain a few TODOs which will be easy to address once
the LLVM 23 release branch has been cut.
---
 libcxx/docs/ReleaseNotes.rst    |  2 +
 libcxx/docs/ReleaseNotes/24.rst | 74 +++++++++++++++++++++++++++++++++
 2 files changed, 76 insertions(+)
 create mode 100644 libcxx/docs/ReleaseNotes/24.rst

diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst
index ff35abef61203..14d5f2ccfb71d 100644
--- a/libcxx/docs/ReleaseNotes.rst
+++ b/libcxx/docs/ReleaseNotes.rst
@@ -7,6 +7,8 @@
     ReleaseNotes/20
     ReleaseNotes/21
     ReleaseNotes/22
+    ReleaseNotes/24
+    .. TODO: Switch to the LLVM 24 release notes once the LLVM 23 branch has been cut
 
 .. The release notes are in versioned files, but we make sure to keep publishing
 .. them in an unversioned ReleaseNotes.html page for external sites to reference.
diff --git a/libcxx/docs/ReleaseNotes/24.rst b/libcxx/docs/ReleaseNotes/24.rst
new file mode 100644
index 0000000000000..f6e7b7cb5f59a
--- /dev/null
+++ b/libcxx/docs/ReleaseNotes/24.rst
@@ -0,0 +1,74 @@
+===========================================
+Libc++ 24.0.0 (In-Progress) Release Notes
+===========================================
+
+.. contents::
+   :local:
+   :depth: 2
+
+Written by the `Libc++ Team <https://libcxx.llvm.org>`_
+
+.. warning::
+
+   These are in-progress notes for the upcoming libc++ 24.0.0 release.
+   Release notes for previous releases can be found on
+   `the Download Page <https://releases.llvm.org/download.html>`_.
+
+Introduction
+============
+
+This document contains the release notes for the libc++ C++ Standard Library,
+part of the LLVM Compiler Infrastructure, release 24.0.0. Here we describe the
+status of libc++ in some detail, including major improvements from the previous
+release and new feature work. For the general LLVM release notes, see `the LLVM
+documentation <https://llvm.org/docs/ReleaseNotes.html>`_. All LLVM releases may
+be downloaded from the `LLVM releases web site <https://llvm.org/releases/>`_.
+
+For more information about libc++, please see the `Libc++ Web Site
+<https://libcxx.llvm.org>`_ or the `LLVM Web Site <https://llvm.org>`_.
+
+Note that if you are reading this file from a Git checkout or the
+main Libc++ web page, this document applies to the *next* release, not
+the current one. To see the release notes for a specific release, please
+see the `releases page <https://llvm.org/releases/>`_.
+
+What's New in Libc++ 24.0.0?
+==============================
+
+Implemented Papers
+------------------
+
+
+Improvements and New Features
+-----------------------------
+
+
+Deprecations and Removals
+-------------------------
+
+- The ``std::launch::any`` enumerator that was accidentally provided as an extension is now deprecated.
+  It will be removed in LLVM 25.
+
+Potentially breaking changes
+----------------------------
+
+- TODO: In LLVM 23, libc++ dropped a lot of transitive includes in all language modes. This improves compile time significantly,
+  but causes programs which rely on these includes to not compile anymore. The ``_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23``
+  macro that was provided in LLVM 23 to ease the transition has been removed in this release.
+
+Announcements About Future Releases
+-----------------------------------
+
+
+ABI Affecting Changes
+---------------------
+
+- TODO: ``std::allocator`` is trivially default constructible since LLVM 22. In LLVM 23, the ``_LIBCPP_DEPRECATED_ABI_NON_TRIVIAL_ALLOCATOR``
+  macro was provided as an escape hatch, but it has been removed in LLVM 24 since there was no evidence of it being useful.
+
+- TODO: ``bitset::operator[]`` returns ``bool`` since LLVM 22, fixing a conformance bug. In LLVM 23, the ``_LIBCPP_DEPRECATED_ABI_BITSET_CONST_SUBSCRIPT_RETURN_REF``
+  macro was provided as an escape hatch, but it has been removed in LLVM 24 since there was no evidence of it being useful.
+
+Build System Changes
+--------------------
+

>From 7f3cd67b41c7e1c53fede5ba075fdb0b2e0c1c89 Mon Sep 17 00:00:00 2001
From: Louis Dionne <ldionne.2 at gmail.com>
Date: Mon, 13 Jul 2026 12:12:12 -0400
Subject: [PATCH 2/3] Remove unnecessary TODO comment

---
 libcxx/docs/ReleaseNotes.rst | 1 -
 1 file changed, 1 deletion(-)

diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst
index 14d5f2ccfb71d..3aa58c55a35da 100644
--- a/libcxx/docs/ReleaseNotes.rst
+++ b/libcxx/docs/ReleaseNotes.rst
@@ -8,7 +8,6 @@
     ReleaseNotes/21
     ReleaseNotes/22
     ReleaseNotes/24
-    .. TODO: Switch to the LLVM 24 release notes once the LLVM 23 branch has been cut
 
 .. The release notes are in versioned files, but we make sure to keep publishing
 .. them in an unversioned ReleaseNotes.html page for external sites to reference.

>From 88b4b344799a94a979aca9922927ae69ed293e5c Mon Sep 17 00:00:00 2001
From: Louis Dionne <ldionne.2 at gmail.com>
Date: Tue, 14 Jul 2026 11:47:48 -0400
Subject: [PATCH 3/3] Update

---
 libcxx/docs/ReleaseNotes.rst    | 4 ++--
 libcxx/docs/ReleaseNotes/24.rst | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst
index 3aa58c55a35da..37078d83139ab 100644
--- a/libcxx/docs/ReleaseNotes.rst
+++ b/libcxx/docs/ReleaseNotes.rst
@@ -1,4 +1,4 @@
-.. include:: ReleaseNotes/23.rst
+.. include:: ReleaseNotes/24.rst
 
 .. Make sure to reference the non-live release notes in a toctree to avoid Sphinx errors.
 .. toctree::
@@ -7,7 +7,7 @@
     ReleaseNotes/20
     ReleaseNotes/21
     ReleaseNotes/22
-    ReleaseNotes/24
+    ReleaseNotes/23
 
 .. The release notes are in versioned files, but we make sure to keep publishing
 .. them in an unversioned ReleaseNotes.html page for external sites to reference.
diff --git a/libcxx/docs/ReleaseNotes/24.rst b/libcxx/docs/ReleaseNotes/24.rst
index f6e7b7cb5f59a..bcac37b8a717f 100644
--- a/libcxx/docs/ReleaseNotes/24.rst
+++ b/libcxx/docs/ReleaseNotes/24.rst
@@ -1,6 +1,6 @@
-===========================================
-Libc++ 24.0.0 (In-Progress) Release Notes
-===========================================
+===========================
+Libc++ 24.0.0 Release Notes
+===========================
 
 .. contents::
    :local:



More information about the libcxx-commits mailing list