blob: 20b2b09cdaf6044e201188849c0a0634b5f50658 [file] [log] [blame]
Hans Wennborg003a9982019-07-18 11:51:05 +00001=========================================
Tom Stellard5b1e2192023-01-24 22:55:53 -08002Libc++ 17.0.0 (In-Progress) Release Notes
Hans Wennborg003a9982019-07-18 11:51:05 +00003=========================================
Louis Dionne42222072018-09-06 14:46:22 +00004
5.. contents::
6 :local:
7 :depth: 2
8
Hans Wennborg3329a842018-09-10 08:57:12 +00009Written by the `Libc++ Team <https://libcxx.llvm.org>`_
Louis Dionne42222072018-09-06 14:46:22 +000010
11.. warning::
12
Tom Stellard5b1e2192023-01-24 22:55:53 -080013 These are in-progress notes for the upcoming libc++ 17 release.
Louis Dionne42222072018-09-06 14:46:22 +000014 Release notes for previous releases can be found on
Hans Wennborg3329a842018-09-10 08:57:12 +000015 `the Download Page <https://releases.llvm.org/download.html>`_.
Louis Dionne42222072018-09-06 14:46:22 +000016
17Introduction
18============
19
20This document contains the release notes for the libc++ C++ Standard Library,
Tom Stellard5b1e2192023-01-24 22:55:53 -080021part of the LLVM Compiler Infrastructure, release 17.0.0. Here we describe the
Louis Dionne42222072018-09-06 14:46:22 +000022status of libc++ in some detail, including major improvements from the previous
23release and new feature work. For the general LLVM release notes, see `the LLVM
Hans Wennborg3329a842018-09-10 08:57:12 +000024documentation <https://llvm.org/docs/ReleaseNotes.html>`_. All LLVM releases may
25be downloaded from the `LLVM releases web site <https://llvm.org/releases/>`_.
Louis Dionne42222072018-09-06 14:46:22 +000026
27For more information about libc++, please see the `Libc++ Web Site
Hans Wennborg3329a842018-09-10 08:57:12 +000028<https://libcxx.llvm.org>`_ or the `LLVM Web Site <https://llvm.org>`_.
Louis Dionne42222072018-09-06 14:46:22 +000029
Hans Wennborgfc14f4e2020-01-15 10:02:56 +010030Note that if you are reading this file from a Git checkout or the
Louis Dionne42222072018-09-06 14:46:22 +000031main Libc++ web page, this document applies to the *next* release, not
32the current one. To see the release notes for a specific release, please
Hans Wennborg3329a842018-09-10 08:57:12 +000033see the `releases page <https://llvm.org/releases/>`_.
Louis Dionne42222072018-09-06 14:46:22 +000034
Tom Stellard5b1e2192023-01-24 22:55:53 -080035What's New in Libc++ 17.0.0?
Hans Wennborg003a9982019-07-18 11:51:05 +000036============================
Louis Dionne42222072018-09-06 14:46:22 +000037
Nikolas Klauser4f4a9bd2022-06-17 20:20:48 +020038Implemented Papers
39------------------
Louis Dionne42222072018-09-06 14:46:22 +000040
Louis Dionne65697742023-02-06 17:08:19 -080041- P1328R1 - `constexpr type_info::operator==()`
42
Louis Dionne1ce86ad2022-07-21 12:48:14 -040043Improvements and New Features
44-----------------------------
Nikolas Klauser4f4a9bd2022-06-17 20:20:48 +020045
Louis Dionnee6ea8f52023-01-30 10:57:26 -050046- ``std::string_view`` now provides iterators that check for out-of-bounds accesses when the safe
47 libc++ mode is enabled.
48
Louis Dionne1ce86ad2022-07-21 12:48:14 -040049Deprecations and Removals
50-------------------------
Louis Dionne81925932022-11-14 09:56:35 -100051
Chuanqi Xu1d416a62021-09-23 10:33:45 -040052- The ``<experimental/coroutine>`` header has been removed in this release. The ``<coroutine>`` header
53 has been shipping since LLVM 14, so the Coroutines TS implementation is being removed per our policy
54 for removing TSes.
55
Louis Dionne1ce86ad2022-07-21 12:48:14 -040056Upcoming Deprecations and Removals
57----------------------------------
58
Louis Dionne5952a792023-01-09 16:59:59 -050059- The ``_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED`` macro will not be honored anymore in LLVM 18.
60 Please see the updated documentation about the safe libc++ mode and in particular the ``_LIBCPP_VERBOSE_ABORT``
61 macro for details.
62
Adrian Vogelsgesang55e0c492022-07-31 16:12:42 -070063API Changes
64-----------
Louis Dionnec23f69f2022-09-19 15:38:18 -040065
Louis Dionne1ce86ad2022-07-21 12:48:14 -040066ABI Affecting Changes
67---------------------
Alex Richardsonf7e00ca2022-06-20 15:44:57 +010068
Louis Dionne14918c82021-10-18 13:58:31 -040069Build System Changes
70--------------------