[libcxx-commits] [libcxx] 29a66ab - [libc++][doc] Updates the release notes.
Mark de Wever via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Jul 20 09:20:23 PDT 2022
Author: Mark de Wever
Date: 2022-07-20T18:20:18+02:00
New Revision: 29a66ab7667786e2005637368de44f3751da1e23
URL: https://github.com/llvm/llvm-project/commit/29a66ab7667786e2005637368de44f3751da1e23
DIFF: https://github.com/llvm/llvm-project/commit/29a66ab7667786e2005637368de44f3751da1e23.diff
LOG: [libc++][doc] Updates the release notes.
This is a preparation for the upcoming LLVM 16 release.
Reviewed By: ldionne, #libc
Differential Revision: https://reviews.llvm.org/D130031
Added:
Modified:
libcxx/docs/ReleaseNotes.rst
Removed:
################################################################################
diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst
index 138759ac9a944..fa0defbee4386 100644
--- a/libcxx/docs/ReleaseNotes.rst
+++ b/libcxx/docs/ReleaseNotes.rst
@@ -35,34 +35,46 @@ see the `releases page <https://llvm.org/releases/>`_.
What's New in Libc++ 15.0.0?
============================
+The main focus of the libc++ team has been to implement new C++20 and C++23
+features.
+
+The C++20 ``format`` library is feature complete, but not all Standard LWG
+issues have been addressed. Since it is expected that at least one of these
+issues will cause an ABI break the ``format`` library is considered
+experimental.
+
+The C++20 ``ranges`` library has progressed a lot since the last release and is
+almost complete. The ``ranges`` library is considered experimental.
+
+
Implemented Papers
------------------
-- P0627R6 (Function to mark unreachable code)
-- P1165R1 (Make stateful allocator propagation more consistent for ``operator+(basic_string)``)
-- P0674R1 (Support arrays in ``make_shared`` and ``allocate_shared``)
-- P0980R1 (Making ``std::string`` constexpr)
-- P2216R3 (std::format improvements)
-- P0174R2 (Deprecating Vestigial Library Parts in C++17)
-- N4190 (Removing auto_ptr, random_shuffle(), And Old <functional> Stuff)
-- P0154R1 (Hardware inference size)
-- P0618R0 (Deprecating <codecvt>)
-- P2418R2 (Add support for ``std::generator``-like types to ``std::format``)
-- LWG3659 (Consider ``ATOMIC_FLAG_INIT`` undeprecation)
-- P1423R3 (char8_t backward compatibility remediation)
+- P0627R6 – Function to mark unreachable code
+- P1165R1 – Make stateful allocator propagation more consistent for ``operator+(basic_string)``
+- P0674R1 – Support arrays in ``make_shared`` and ``allocate_shared``
+- P0980R1 – Making ``std::string`` constexpr
+- P2216R3 – ``std::format`` improvements
+- P0174R2 – Deprecating Vestigial Library Parts in C++17
+- N4190 – Removing ``auto_ptr``, ``random_shuffle()``, And Old ``<functional>`` Stuff
+- P0154R1 – Hardware inference size
+- P0618R0 – Deprecating ``<codecvt>``
+- P2418R2 – Add support for ``std::generator``-like types to ``std::format``
+- LWG3659 – Consider ``ATOMIC_FLAG_INIT`` undeprecation
+- P1423R3 – ``char8_t`` backward compatibility remediation
- Marked the following papers as "Complete" (note that some of those might have
been implemented in a previous release but not marked as such):
- - P1207R4 (Movability of Single-pass Iterators);
- - P1474R1 (Helpful pointers for ``ContiguousIterator``);
- - P1522R1 (Iterator Difference Type and Integer Overflow);
- - P1523R1 (Views and Size Types);
- - P1456R1 (Move-only views);
- - P1870R1 (``forwarding-range`` is too subtle);
- - P1878R1 (Constraining Readable Types);
- - P1970R2 (Consistency for ``size()`` functions: Add ``ranges::ssize``);
- - P1983R0 (Wording for GB301, US296, US292, US291, and US283).
+ - P1207R4 – Movability of Single-pass Iterators
+ - P1474R1 – Helpful pointers for ``ContiguousIterator``
+ - P1522R1 – Iterator Difference Type and Integer Overflow
+ - P1523R1 – Views and Size Types
+ - P1456R1 – Move-only views
+ - P1870R1 – ``forwarding-range`` is too subtle
+ - P1878R1 – Constraining Readable Types
+ - P1970R2 – Consistency for ``size()`` functions: Add ``ranges::ssize``
+ - P1983R0 – Wording for GB301, US296, US292, US291, and US283
New Features
------------
@@ -77,9 +89,15 @@ New Features
should include assertions or not by default. For details, see
:ref:`the documentation <assertions-mode>` about this new feature.
-- The implementation of the function ``std::to_chars`` for integral types has
- moved from the dylib to the header. This means the function no longer has a
- minimum deployment target.
+- The implementation of the function ``std::to_chars`` for integral types using
+ base 10 has moved from the dylib to the header. This means the function no
+ longer has a minimum deployment target.
+
+- The performance for ``std::to_chars``, for integral types using base 2, 8,
+ 10, or 16 has been improved.
+
+- The functions ``std::from_chars`` and ``std::to_chars`` now have 128-bit integral
+ support.
- The format functions (``std::format``, ``std::format_to``, ``std::format_to_n``, and
``std::formatted_size``) now validate the format string at compile time.
@@ -102,18 +120,13 @@ API Changes
- The header ``<experimental/filesystem>`` has been removed. Instead, use
``<filesystem>`` header. The associated macro
- ``_LIBCPP_DEPRECATED_EXPERIMENTAL_FILESYSTEM`` has also been removed.
+ ``_LIBCPP_DEPRECATED_EXPERIMENTAL_FILESYSTEM`` has been removed too.
- Libc++ is getting ready to remove unnecessary transitive inclusions. This may
break your code in the future. To future-proof your code to these removals,
please compile your code with ``_LIBCPP_REMOVE_TRANSITIVE_INCLUDES`` defined
and fix any compilation error resulting from missing includes.
-- The ``<algorithm>``, ``<array>``, ``<optional>``, ``<unordered_map>`` and ``<vector>``
- headers no longer transitively include the ``<functional>`` header. If you see compiler
- errors related to missing declarations in namespace ``std``, make sure you have the
- necessary includes.
-
- The integer distributions ``binomial_distribution``, ``discrete_distribution``,
``geometric_distribution``, ``negative_binomial_distribution``, ``poisson_distribution``,
and ``uniform_int_distribution`` now conform to the Standard by rejecting
@@ -144,7 +157,7 @@ API Changes
taken against the shared library.
- The ``_LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_VOID_SPECIALIZATION`` macro has been added to allow
- re-enabling the ``allocator<void>`` specialization. When used in conjuction with
+ re-enabling the ``allocator<void>`` specialization. When used in conjunction with
``_LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_MEMBERS``, this ensures that the members of
``allocator<void>`` removed in C++20 can be accessed.
@@ -166,6 +179,8 @@ API Changes
To disable deprecation warnings you have to define ``_LIBCPP_DISABLE_DEPRECATION_WARNINGS``. Note that this
disables all deprecation warnings.
+- ``boyer_moore_searcher`` and ``boyer_moore_horspool_searcher`` have been implemented.
+
ABI Changes
-----------
@@ -220,11 +235,11 @@ Build System Changes
libc++ against alternate ABI libraries should make sure that their ABI library installs
its own headers.
-- The legacy testing configuration is now deprecated and will be removed in the next release. For
- most users, this should not have any impact. However, if you are testing libc++, libc++abi or
+- The legacy testing configuration is now deprecated and will be removed in LLVM 16. For
+ most users, this should not have any impact. However, if you are testing libc++, libc++abi, or
libunwind in a configuration or on a platform that used to be supported by the legacy testing
configuration and isn't supported by one of the configurations in ``libcxx/test/configs``,
- ``libcxxabi/test/configs`` or ``libunwind/test/configs``, please move to one of those
+ ``libcxxabi/test/configs``, or ``libunwind/test/configs``, please move to one of those
configurations or define your own.
- MinGW DLL builds of libc++ no longer use dllimport in their headers, which
More information about the libcxx-commits
mailing list