xref: /aosp_15_r20/external/libcxx/docs/ReleaseNotes.rst (revision 58b9f456b02922dfdb1fad8a988d5fd8765ecb80)
1*58b9f456SAndroid Build Coastguard Worker========================================
2*58b9f456SAndroid Build Coastguard WorkerLibc++ 8.0.0 (In-Progress) Release Notes
3*58b9f456SAndroid Build Coastguard Worker========================================
4*58b9f456SAndroid Build Coastguard Worker
5*58b9f456SAndroid Build Coastguard Worker.. contents::
6*58b9f456SAndroid Build Coastguard Worker   :local:
7*58b9f456SAndroid Build Coastguard Worker   :depth: 2
8*58b9f456SAndroid Build Coastguard Worker
9*58b9f456SAndroid Build Coastguard WorkerWritten by the `Libc++ Team <https://libcxx.llvm.org>`_
10*58b9f456SAndroid Build Coastguard Worker
11*58b9f456SAndroid Build Coastguard Worker.. warning::
12*58b9f456SAndroid Build Coastguard Worker
13*58b9f456SAndroid Build Coastguard Worker   These are in-progress notes for the upcoming libc++ 8 release.
14*58b9f456SAndroid Build Coastguard Worker   Release notes for previous releases can be found on
15*58b9f456SAndroid Build Coastguard Worker   `the Download Page <https://releases.llvm.org/download.html>`_.
16*58b9f456SAndroid Build Coastguard Worker
17*58b9f456SAndroid Build Coastguard WorkerIntroduction
18*58b9f456SAndroid Build Coastguard Worker============
19*58b9f456SAndroid Build Coastguard Worker
20*58b9f456SAndroid Build Coastguard WorkerThis document contains the release notes for the libc++ C++ Standard Library,
21*58b9f456SAndroid Build Coastguard Workerpart of the LLVM Compiler Infrastructure, release 8.0.0. Here we describe the
22*58b9f456SAndroid Build Coastguard Workerstatus of libc++ in some detail, including major improvements from the previous
23*58b9f456SAndroid Build Coastguard Workerrelease and new feature work. For the general LLVM release notes, see `the LLVM
24*58b9f456SAndroid Build Coastguard Workerdocumentation <https://llvm.org/docs/ReleaseNotes.html>`_. All LLVM releases may
25*58b9f456SAndroid Build Coastguard Workerbe downloaded from the `LLVM releases web site <https://llvm.org/releases/>`_.
26*58b9f456SAndroid Build Coastguard Worker
27*58b9f456SAndroid Build Coastguard WorkerFor more information about libc++, please see the `Libc++ Web Site
28*58b9f456SAndroid Build Coastguard Worker<https://libcxx.llvm.org>`_ or the `LLVM Web Site <https://llvm.org>`_.
29*58b9f456SAndroid Build Coastguard Worker
30*58b9f456SAndroid Build Coastguard WorkerNote that if you are reading this file from a Subversion checkout or the
31*58b9f456SAndroid Build Coastguard Workermain Libc++ web page, this document applies to the *next* release, not
32*58b9f456SAndroid Build Coastguard Workerthe current one. To see the release notes for a specific release, please
33*58b9f456SAndroid Build Coastguard Workersee the `releases page <https://llvm.org/releases/>`_.
34*58b9f456SAndroid Build Coastguard Worker
35*58b9f456SAndroid Build Coastguard WorkerWhat's New in Libc++ 8.0.0?
36*58b9f456SAndroid Build Coastguard Worker===========================
37*58b9f456SAndroid Build Coastguard Worker
38*58b9f456SAndroid Build Coastguard WorkerNew Features
39*58b9f456SAndroid Build Coastguard Worker------------
40*58b9f456SAndroid Build Coastguard Worker
41*58b9f456SAndroid Build Coastguard WorkerAPI Changes
42*58b9f456SAndroid Build Coastguard Worker-----------
43*58b9f456SAndroid Build Coastguard Worker- Building libc++ for Mac OSX 10.6 is not supported anymore.
44*58b9f456SAndroid Build Coastguard Worker- Starting with LLVM 8.0.0, users that wish to link together translation units
45*58b9f456SAndroid Build Coastguard Worker  built with different versions of libc++'s headers into the same final linked
46*58b9f456SAndroid Build Coastguard Worker  image MUST define the _LIBCPP_HIDE_FROM_ABI_PER_TU macro to 1 when building
47*58b9f456SAndroid Build Coastguard Worker  those translation units. Not defining _LIBCPP_HIDE_FROM_ABI_PER_TU to 1 and
48*58b9f456SAndroid Build Coastguard Worker  linking translation units built with different versions of libc++'s headers
49*58b9f456SAndroid Build Coastguard Worker  together may lead to ODR violations and ABI issues. On the flipside, code
50*58b9f456SAndroid Build Coastguard Worker  size improvements should be expected for everyone not defining the macro.
51*58b9f456SAndroid Build Coastguard Worker- Starting with LLVM 8.0.0, std::dynarray has been removed from the library.
52*58b9f456SAndroid Build Coastguard Worker  std::dynarray was a feature proposed for C++14 that was pulled from the
53*58b9f456SAndroid Build Coastguard Worker  Standard at the last minute and was never standardized. Since there are no
54*58b9f456SAndroid Build Coastguard Worker  plans to standardize this facility it is being removed.
55*58b9f456SAndroid Build Coastguard Worker- Starting with LLVM 8.0.0, std::bad_array_length has been removed from the
56*58b9f456SAndroid Build Coastguard Worker  library. std::bad_array_length was a feature proposed for C++14 alongside
57*58b9f456SAndroid Build Coastguard Worker  std::dynarray, but it never actually made it into the C++ Standard. There
58*58b9f456SAndroid Build Coastguard Worker  are no plans to standardize this feature at this time. Formally speaking,
59*58b9f456SAndroid Build Coastguard Worker  this removal constitutes an ABI break because the symbols were shipped in
60*58b9f456SAndroid Build Coastguard Worker  the shared library. However, on macOS systems, the feature was not usable
61*58b9f456SAndroid Build Coastguard Worker  because it was hidden behind availability annotations. We do not expect
62*58b9f456SAndroid Build Coastguard Worker  any actual breakage to happen from this change.
63