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