[libc++][format] Finish P0645 Text Formatting.
This adjust the version macro and sets it as completed. All parts of the paper
have been implemented, except for the parts replaced by later papers and
LWG-issues.
Adjusted the synopsis to match the synopsis in the Standard. Not yet
implemented parts of P2216 and P2418 still use the P0645 wording.
Completes:
- P0645 Text Formatting
Depends on D115991
Reviewed By: ldionne, #libc
Differential Revision: https://reviews.llvm.org/D115999
NOKEYCHECK=True
GitOrigin-RevId: 4684857abfd7cadde9693eed8cfd21446047c579
diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst
index e1be3a6..b35c8a3 100644
--- a/docs/ReleaseNotes.rst
+++ b/docs/ReleaseNotes.rst
@@ -38,10 +38,13 @@
New Features
------------
-- There's initial support for the C++20 header ``<format>``. The implementation
- is incomplete. Some functions are known to be inefficient; both in memory
- usage and performance. The implementation is considered experimental and isn't
- considered ABI stable.
+- There's support for the C++20 header ``<format>``. Some parts are still
+ missing, most notably the compile-time format string validation. Some
+ functions are known to be inefficient, both in memory usage and performance.
+ The implementation isn't API- or ABI-stable and therefore considered
+ experimental. (Some not-yet-implemented papers require an API-break.)
+ Vendors can still disable this header by turning the CMake option
+ `LIBCXX_ENABLE_INCOMPLETE_FEATURES` off.
- There's a new CMake option ``LIBCXX_ENABLE_UNICODE`` to disable Unicode
support in the ``<format>`` header. This only affects the estimation of the
diff --git a/docs/Status/Cxx20.rst b/docs/Status/Cxx20.rst
index d59fd8a..4374407 100644
--- a/docs/Status/Cxx20.rst
+++ b/docs/Status/Cxx20.rst
@@ -41,6 +41,7 @@
.. note::
.. [#note-P0600] P0600: The missing bits in P0600 are in |sect|\ [mem.res.class] and |sect|\ [mem.poly.allocator.class].
+ .. [#note-P0645] P0645: The paper is implemented but still marked as an incomplete feature. Not yet implemented LWG-issues will cause API and ABI breakage.
.. [#note-P0966] P0966: It was previously erroneously marked as complete in version 8.0. See `bug 45368 <https://llvm.org/PR45368>`__.
.. [#note-P0619] P0619: Only sections D.8, D.9, D.10 and D.13 are implemented. Sections D.4, D.7, D.11, D.12, and D.14 remain undone.
.. [#note-P0883] P0883: shared_ptr and floating-point changes weren't applied as they themselves aren't implemented yet.
diff --git a/docs/Status/Cxx20Papers.csv b/docs/Status/Cxx20Papers.csv
index 5a974a7..9e4e728 100644
--- a/docs/Status/Cxx20Papers.csv
+++ b/docs/Status/Cxx20Papers.csv
@@ -103,7 +103,7 @@
"`P0466R5 <https://wg21.link/P0466R5>`__","LWG","Layout-compatibility and Pointer-interconvertibility Traits","Cologne","",""
"`P0553R4 <https://wg21.link/P0553R4>`__","LWG","Bit operations","Cologne","|Complete|","9.0"
"`P0631R8 <https://wg21.link/P0631R8>`__","LWG","Math Constants","Cologne","|Complete|","11.0"
-"`P0645R10 <https://wg21.link/P0645R10>`__","LWG","Text Formatting","Cologne","|In Progress|",""
+"`P0645R10 <https://wg21.link/P0645R10>`__","LWG","Text Formatting","Cologne","|Complete| [#note-P0645]_","14.0"
"`P0660R10 <https://wg21.link/P0660R10>`__","LWG","Stop Token and Joining Thread, Rev 10","Cologne","",""
"`P0784R7 <https://wg21.link/P0784R7>`__","CWG","More constexpr containers","Cologne","|Complete|","12.0"
"`P0980R1 <https://wg21.link/P0980R1>`__","LWG","Making std::string constexpr","Cologne","",""
diff --git a/docs/Status/FormatIssues.csv b/docs/Status/FormatIssues.csv
index 0984712..b979b0d 100644
--- a/docs/Status/FormatIssues.csv
+++ b/docs/Status/FormatIssues.csv
@@ -1,5 +1,5 @@
Number,Name,Assignee,Patch,Status,First released version
-`P0645 <https://wg21.link/P0645>`_,"Text Formatting",Mark de Wever,,|Partial|,
+`P0645 <https://wg21.link/P0645>`_,"Text Formatting",Mark de Wever,,|Complete|,Clang 14
`P1652 <https://wg21.link/P1652>`_,"Printf corner cases in std::format",Mark de Wever,"`D103433 <https://reviews.llvm.org/D103433>`__, `D114001 <https://reviews.llvm.org/D114001>`__",|Review|,
`P1892 <https://wg21.link/P1892>`_,"Extended locale-specific presentation specifiers for std::format",Mark de Wever,`D103368 <https://reviews.llvm.org/D103368>`__,|Complete|,Clang 14
`P1868 <https://wg21.link/P1868>`_,"width: clarifying units of width and precision in std::format (Implements the unicode support.)",Mark de Wever,"`D103413 <https://reviews.llvm.org/D103413>`__ `D103425 <https://reviews.llvm.org/D103425>`__ `D103670 <https://reviews.llvm.org/D103670>`__",|Complete|,Clang 14