[libcxx-commits] [libcxx] 58ac764 - [libc++] Post-LLVM19-release docs cleanup (#99667)
via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Aug 22 07:56:45 PDT 2024
Author: Hristo Hristov
Date: 2024-08-22T10:56:42-04:00
New Revision: 58ac764b013606a67043cde6a287db3648d87582
URL: https://github.com/llvm/llvm-project/commit/58ac764b013606a67043cde6a287db3648d87582
DIFF: https://github.com/llvm/llvm-project/commit/58ac764b013606a67043cde6a287db3648d87582.diff
LOG: [libc++] Post-LLVM19-release docs cleanup (#99667)
This patch removes obsolete status pages for projects that were
completed: LLVM 18 release, C++20 Ranges and Spaceship support.
Co-authored-by: Hristo Hristov <zingam at outlook.com>
Added:
Modified:
libcxx/docs/ReleaseNotes.rst
libcxx/docs/ReleaseNotes/19.rst
libcxx/docs/index.rst
Removed:
libcxx/docs/ReleaseNotes/18.rst
libcxx/docs/Status/Ranges.rst
libcxx/docs/Status/RangesAlgorithms.csv
libcxx/docs/Status/RangesMajorFeatures.csv
libcxx/docs/Status/RangesViews.csv
libcxx/docs/Status/Spaceship.rst
libcxx/docs/Status/SpaceshipPapers.csv
libcxx/docs/Status/SpaceshipProjects.csv
################################################################################
diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst
index 9a77a5c23f30bb..47042c4af1649d 100644
--- a/libcxx/docs/ReleaseNotes.rst
+++ b/libcxx/docs/ReleaseNotes.rst
@@ -4,7 +4,6 @@
.. toctree::
:hidden:
- ReleaseNotes/18
ReleaseNotes/19
.. The release notes are in versioned files, but we make sure to keep publishing
diff --git a/libcxx/docs/ReleaseNotes/18.rst b/libcxx/docs/ReleaseNotes/18.rst
deleted file mode 100644
index 4f7b9b362e5e66..00000000000000
--- a/libcxx/docs/ReleaseNotes/18.rst
+++ /dev/null
@@ -1,345 +0,0 @@
-===========================================
-Libc++ 18.0.0 (In-Progress) Release Notes
-===========================================
-
-.. contents::
- :local:
- :depth: 2
-
-Written by the `Libc++ Team <https://libcxx.llvm.org>`_
-
-.. warning::
-
- These are in-progress notes for the upcoming libc++ 18.0.0 release.
- Release notes for previous releases can be found on
- `the Download Page <https://releases.llvm.org/download.html>`_.
-
-Introduction
-============
-
-This document contains the release notes for the libc++ C++ Standard Library,
-part of the LLVM Compiler Infrastructure, release 18.0.0. Here we describe the
-status of libc++ in some detail, including major improvements from the previous
-release and new feature work. For the general LLVM release notes, see `the LLVM
-documentation <https://llvm.org/docs/ReleaseNotes.html>`_. All LLVM releases may
-be downloaded from the `LLVM releases web site <https://llvm.org/releases/>`_.
-
-For more information about libc++, please see the `Libc++ Web Site
-<https://libcxx.llvm.org>`_ or the `LLVM Web Site <https://llvm.org>`_.
-
-Note that if you are reading this file from a Git checkout or the
-main Libc++ web page, this document applies to the *next* release, not
-the current one. To see the release notes for a specific release, please
-see the `releases page <https://llvm.org/releases/>`_.
-
-What's New in Libc++ 18.0.0?
-==============================
-
-The main focus of the libc++ team has been to implement new C++20, C++23,
-and C++26 features.
-
-New hardened modes for the library have been added, replacing the legacy debug mode that was
-removed in the LLVM 17 release. Unlike the legacy debug mode, some of these hardening modes are
-also intended to be used in production. See :ref:`hardening` for more details.
-
-Work on the ranges support has progressed. See
-:ref:`ranges-status` for the current status.
-
-Work on the experimental C++23 module support has progressed. The ``std.compat``
-module is available and the feature is retroactively available in C++20. See
-:ref:`ModulesInLibcxx` for more information.
-
-Work on the experimental C++17 Parallel STL has progressed. See
-:ref:`pstl-status` for the current status.
-
-Work on the experimental C++17 SIMD support has progressed. See
-:ref:`parallelism-status` for the current status.
-
-
-Implemented Papers
-------------------
-- P2093R14 - Formatted output
-- P2539R4 - Should the output of ``std::print`` to a terminal be synchronized with the underlying stream?
-- P2497R0 - Testing for success or failure of ``<charconv>`` functions
-- P2697R1 - Interfacing ``bitset`` with ``string_view``
-- P2443R1 - ``views::chunk_by``
-- P2538R1 - ADL-proof ``std::projected``
-- P2614R2 - Deprecate ``numeric_limits::has_denorm``
-- P0053R7 - C++ Synchronized Buffered Ostream (in the experimental library)
-- P2467R1 - Support exclusive mode for fstreams
-- P0020R6 - Floating Point Atomic
-- P2905R2 - Runtime format strings
-- P2918R2 - Runtime format strings II
-- P2871R3 - Remove Deprecated Unicode Conversion Facets from C++26
-- P2870R3 - Remove ``basic_string::reserve()``
-- P2909R4 - Fix formatting of code units as integers (Dude, where’s my ``char``?)
-- P2821R5 - ``span.at()``
-- P0521R0 - Proposed Resolution for CA 14 (``shared_ptr`` ``use_count/unique``)
-- P0543R3 - Saturation arithmetic
-- P1759R6 - Native handles and file streams
-- P2868R3 - Remove Deprecated ``std::allocator`` Typedef From C++26
-- P2517R1 - Add a conditional ``noexcept`` specification to ``std::apply``
-- P2447R6 - ``span`` over initializer list
-
-
-Improvements and New Features
------------------------------
-
-- ``std::ranges::count`` and ``std::ranges::find`` are now optimized for
- ``std::vector<bool>::iterator``, which can lead up to 350x performance
- improvements.
-
-- ``std::for_each`` has been optimized for segmented iterators like ``std::deque::iterator`` in C++23 and
- later, which can lead up to 40x performance improvements.
-
-- The library now provides several hardening modes under which common cases of library undefined behavior will be turned
- into a reliable program termination. The ``fast`` hardening mode enables a set of security-critical checks with
- minimal runtime overhead; the ``extensive`` hardening mode additionally enables relatively cheap checks that catch
- common logic errors but aren't necessarily security-critical; and the ``debug`` hardening mode enables all available
- checks, some of which might be very expensive. Vendors can configure which hardening mode is enabled by default with
- the ``LIBCXX_HARDENING_MODE`` variable at CMake configuration time. Users can control which hardening mode is enabled
- on a per translation unit basis using the ``_LIBCPP_HARDENING_MODE`` macro. See :ref:`the hardening documentation
- <using-hardening-modes>` for more details.
-
-- The ``_LIBCPP_ENABLE_CXX26_REMOVED_CODECVT`` macro has been added to make
- the declarations in ``<codecvt>`` available.
-
-- The ``_LIBCPP_ENABLE_CXX26_REMOVED_STRING_RESERVE`` macro has been added to make
- the function ``std::basic_string<...>::reserve()`` available.
-
-- The ``_LIBCPP_ENABLE_CXX26_REMOVED_ALLOCATOR_MEMBERS`` macro has been added to make
- the function ``allocator<T>::is_always_equal`` available.
-
-- The ``_LIBCPP_ENABLE_CXX20_REMOVED_SHARED_PTR_UNIQUE`` macro has been added to make
- the function ``std::shared_ptr<...>::unique()`` available.
-
-- The cmake option ``LIBCXX_ENABLE_STD_MODULES`` has been removed. The test
- infrastructure no longer depends on a modern CMake, it works with the minimal
- required LLVM version (3.20.0).
-
-- The ``.cppm`` files of experimental standard library modules can now be
- installed. By default, they are not installed. This can be enabled by
- configuring CMake with ``-DLIBCXX_INSTALL_MODULES=ON``. The installation
- directory can be configured with the CMake option
- ``-DLIBCXX_INSTALL_MODULE_DIR=<path>``. The default location is
- ``${PREFIX}/share/libc++/v1``.
-
-- AddressSanitizer annotations have been added to ``std::basic_string``.
- These annotations are enabled for all allocators by default.
- It's only enabled for long strings, strings using the small buffer optimization are not annotated.
-
-- The libc++ source code has been formatted with ``clang-format``. This
- `discourse thread <https://discourse.llvm.org/t/rfc-clang-formatting-all-of-libc-once-and-for-all>`_
- contains information how to rebase downstream patches.
-
-Deprecations and Removals
--------------------------
-
-- Availability macros which will never trigger an error have been removed. This includes anything that has been
- introduced before macOS 10.13, iOS 12, tvOS 12 and watchOS 4. This shouldn't affect anybody, since AppleClang 15
- doesn't support any older OSes. If you are a vendor and make use of these macros, please inform the libc++ team so we
- can re-introduce them and consider upstreaming support for your platform.
-
-- The non-conforming constructor ``std::future_error(std::error_code)`` has been removed. Please use the
- ``std::future_error(std::future_errc)`` constructor provided in C++17 instead.
-
-- `P1957 <https://wg21.link/P1957>`_ has been implemented in Clang and libc++ removed a code path that led to
- narrowing conversions in ``std::variant`` behaving in a non-standard way. This may change how some uses of
- ``std::variant``'s constructor behave in user code. The ``_LIBCPP_ENABLE_NARROWING_CONVERSIONS_IN_VARIANT``
- macro is provided to restore the previous behavior, and it will be supported in the LLVM 18 release only.
- In LLVM 19 and beyond, ``_LIBCPP_ENABLE_NARROWING_CONVERSIONS_IN_VARIANT`` will not be honored anymore.
-
-- Overriding ``__libcpp_verbose_abort`` no longer has any effect on library assertions. The only supported way
- to customize the assertion handler that gets invoked when a hardening assertion fails is now by setting the
- ``LIBCXX_ASSERTION_HANDLER_FILE`` CMake variable and providing a custom header. See the documentation on
- overriding the default assertion handler for details. The ability to override ``__libcpp_verbose_abort``
- will be removed in an upcoming release in favor of the new overriding mechanism.
-
-- In safe mode (which is now equivalent to the ``extensive`` hardening mode), a failed assertion will now
- generate a trap rather than a call to verbose abort.
-
-- The ``_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED`` macro is not honored anymore in LLVM 18.
- Please see the updated documentation about the hardening modes in libc++ and in particular on
- overriding the default assertion handler.
-
-- The headers ``<experimental/deque>``, ``<experimental/forward_list>``, ``<experimental/list>``,
- ``<experimental/map>``, ``<experimental/memory_resource>``, ``<experimental/regex>``, ``<experimental/set>``,
- ``<experimental/string>``, ``<experimental/unordered_map>``, ``<experimental/unordered_set>``,
- and ``<experimental/vector>`` have been removed in LLVM 18, as all their contents will have been
- implemented in namespace ``std`` for at least two releases.
-
-- The macro ``_LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_MEMBERS`` has been deprecated and will be removed
- in LLVM 19. This macro used to re-enable redundant members of ``std::allocator<T>`` like ``pointer``,
- ``reference``, ``rebind``, ``address``, ``max_size``, ``construct``, ``destroy``, and the two-argument
- overload of ``allocate``. However, this led to the library being non-conforming due to incorrect
- constexpr-ness.
-
-- The macros ``_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES`` and
- ``_LIBCPP_ENABLE_CXX20_REMOVED_FEATURES`` have been deprecated and
- will be removed in LLVM 19. These macros used to re-enable all features
- that were removed in the C++17 and C++20 standards. Instead of using these
- macros, please use the macros to re-enable individual features.
-
-- The macro ``_LIBCPP_INLINE_VISIBILITY`` has been deprecated in LLVM 18 and
- will be removed entirely in LLVM 19. The macro ``_LIBCPP_HIDE_FROM_ABI`` is
- the drop-in replacement.
-
-- The macro ``_VSTD`` has been deprecated in LLVM 18 and will be removed
- entirely in LLVM 19. The code ``std`` is the drop-in replacement.
-
-
-Upcoming Deprecations and Removals
-----------------------------------
-
-- The ability to override ``__libcpp_verbose_abort`` will be removed in an upcoming release.
-
-LLVM 19
-~~~~~~~
-
-- The ``LIBCXX_EXECUTOR`` CMake variable has been deprecated. LLVM 19 will
- completely remove support for the ``*_EXECUTOR`` variables.
-
-- The ``LIBCXX_ENABLE_ASSERTIONS`` CMake variable that was used to enable the safe mode will be deprecated and setting
- it will trigger an error; use the ``LIBCXX_HARDENING_MODE`` variable with the value ``extensive`` instead. Similarly,
- the ``_LIBCPP_ENABLE_ASSERTIONS`` macro will be deprecated (setting it to ``1`` still enables the extensive mode in
- the LLVM 19 release while also issuing a deprecation warning). See :ref:`the hardening documentation
- <using-hardening-modes>` for more details.
-
-- The base template for ``std::char_traits`` has been marked as deprecated and will be removed in LLVM 19. If you
- are using ``std::char_traits`` with types other than ``char``, ``wchar_t``, ``char8_t``, ``char16_t``, ``char32_t``
- or a custom character type for which you specialized ``std::char_traits``, your code will stop working when we
- remove the base template. The Standard does not mandate that a base template is provided, and such a base template
- is bound to be incorrect for some types, which could currently cause unexpected behavior while going undetected.
- Note that the ``_LIBCPP_CHAR_TRAITS_REMOVE_BASE_SPECIALIZATION`` macro can be defined in LLVM 18 to eagerly remove
- the specialization and prepare code bases for the unconditional removal in LLVM 19.
-
-- The ``_LIBCPP_ENABLE_NARROWING_CONVERSIONS_IN_VARIANT`` macro that changed the behavior for narrowing conversions
- in ``std::variant`` will be removed in LLVM 19.
-
-- The ``_LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_MEMBERS`` macro has been deprecated in LLVM 18 and will be removed
- entirely in LLVM 19.
-
-- The ``_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES`` and
- ``_LIBCPP_ENABLE_CXX20_REMOVED_FEATURES`` macros have been deprecated
- in LLVM 18 and will be removed entirely in LLVM 19.
-
-- The macro ``_LIBCPP_INLINE_VISIBILITY`` has been deprecated in LLVM 18 and
- will be removed entirely in LLVM 19.
-
-- The macro ``_VSTD`` has been deprecated in LLVM 18 and will be removed
- entirely in LLVM 19.
-
-LLVM 20
-~~~~~~~
-
-- The ``LIBCXX_ENABLE_ASSERTIONS`` CMake variable and the ``_LIBCPP_ENABLE_ASSERTIONS`` macro that were used to enable
- the safe mode will be removed.
-
-
-ABI Affecting Changes
----------------------
-
-- When the shared/static library is built with ``-fno-exceptions``, the behavior of ``operator new`` was changed
- to make it standards-conforming. In LLVM 17 and before, the throwing versions of ``operator new`` would return
- ``nullptr`` upon failure to allocate, when the shared/static library was built with exceptions disabled. This
- was non-conforming, since the throwing versions of ``operator new`` are never expected to return ``nullptr``, and
- this non-conformance could actually lead to miscompiles in subtle cases.
-
- Starting in LLVM 18, the throwing versions of ``operator new`` will abort the program when they fail to allocate
- if the shared/static library has been built with ``-fno-exceptions``. This is consistent with the behavior of all
- other potentially-throwing functions in the library, which abort the program instead of throwing when ``-fno-exceptions``
- is used.
-
- Furthermore, when the shared/static library is built with ``-fno-exceptions``, users who override the throwing
- version of ``operator new`` will now need to also override the ``std::nothrow_t`` version of ``operator new`` if
- they want to use it. Indeed, this is because there is no way to implement a conforming ``operator new(nothrow)``
- from a conforming potentially-throwing ``operator new`` when compiled with ``-fno-exceptions``. In that case, using
- ``operator new(nothrow)`` without overriding it explicitly but after overriding the throwing ``operator new`` will
- result in an error.
-
- Note that this change only impacts vendors/users that build the shared/static library themselves and pass
- ``-DLIBCXX_ENABLE_EXCEPTIONS=OFF``, which is not the default configuration. If you are using the default
- configuration of the library, the libc++ shared/static library will be built with exceptions enabled, and
- there is no change between LLVM 17 and LLVM 18, even for users who build their own code using ``-fno-exceptions``.
-
-- The symbol of a non-visible function part of ``std::system_error`` was removed.
- This is not a breaking change as the private function ``__init`` was never referenced internally outside of the dylib.
-
-- This release of libc++ added missing visibility annotations on some types in the library. Users compiling with
- ``-fvisbility=hidden`` may notice that additional type infos from libc++ are being exported from their ABI. This is
- the correct behavior in almost all cases since exporting the RTTI is required for these types to work properly with
- ``dynamic_cast``, exceptions and other mechanisms across binaries. However, if you intend to use libc++ purely as an
- internal implementation detail (i.e. you use libc++ as a static archive and never export libc++ symbols from your ABI)
- and you notice changes to your exported symbols list, then this means that you were not properly preventing libc++
- symbols from being part of your ABI.
-
-- The name mangling for instantiations of ``std::projected`` has changed in order to implement P2538R1. This technically
- results in an ABI break, however in practice we expect uses of ``std::projected`` in ABI-sensitive places to be
- extremely rare. Any error resulting from this change should result in a link-time error.
-
-- The internal alignment requirements for heap allocations inside ``std::string`` has decreased from 16 to 8. This
- saves memory since string requests fewer additional bytes than it did previously. However, this also changes the
- return value of ``std::string::max_size`` and can cause code compiled against older libc++ versions but linked at
- runtime to a new version to throw a
diff erent exception when attempting allocations that are too large
- (``std::bad_alloc`` vs ``std::length_error``).
-
-- The layout of some range adaptors that use the ``movable-box`` exposition-only type as an implementation
- detail has changed in order to fix a `bug <https://github.com/llvm/llvm-project/issues/70506>`_ which could result in
- overwriting user data following the ``movable-box``.
- This bug was caused by incorrect usage of the ``[[no_unique_address]]`` attribute inside the implementation of ``movable-box``.
- This fix affects the layout of the following views: ``take_while_view``, ``filter_view``, ``single_view``, ``drop_while_view``,
- ``repeat_view``, ``transform_view``, ``chunk_by_view``. In order to avoid silent breakage as a result of this fix, an ABI tag has been added to
- these views such that their mangled name will be
diff erent starting in this version of libc++.
- As a result, attempting to call a function that expects one of these views will fail to link until the code has been rebuilt
- against a matching version of libc++. In practice, we believe it is unusual for these views to appear at ABI boundaries so this
- should not be a major problem for most users. However it is probably worth auditing ranges-heavy code for ABI boundaries that
- would contain these views, or for types that contain these views as members and which are passed across ABI boundaries.
-
-- Some properties of libc++ may cause ODR-violations when mixing multiple libc++
- instances. To avoid these, often benign, ODR-violations the ODR-affecting
- properties are now part of the ABI tag. The ODR-affecting properties are:
-
- - library version (This was part of the ABI tag prior to LLVM 18.)
- - exceptions vs no-exceptions
- - hardening mode
-
- This should not be ABI-affecting except that libc++ will be more robust
- against
diff erent configurations of it being used in
diff erent translation
- units.
-
-- The amount of padding bytes available for use at the end of certain ``std::expected`` instantiations has changed in this
- release. This is an ABI break for any code that held a ``std::expected`` member with ``[[no_unique_address]]`` in an
- ABI-facing type. In those cases, the layout of the enclosing type will change, breaking the ABI. However, the
- ``std::expected<T, E>`` member requires a few characteristics in order to be affected by this change:
-
- - A type equivalent to ``union {T ; E}`` needs to have more than one byte of padding available.
- - The ``std::expected<T, E>`` member must have been in a situation where its padding bytes were previously reused by
- another object, which can happen in a few cases (this is probably not exhaustive):
-
- - It is a member with ``[[no_unique_address]]`` applied to it, and it is followed by another data member, or
- - It is a member with ``[[no_unique_address]]`` applied to it, and it is the last member of the user-defined type,
- and that user-defined type is used in ways that its padding bytes can be reused, or
- - It is inherited from
-
- We expect that this will not be a very frequent occurrence. However, there is unfortunately no technique we can use
- in the library to catch such misuse. Indeed, even applying an ABI tag to ``std::expected`` would not help since ABI
- tags are not propagated to containing types. As a result, if you notice very
diff icult to explain bugs around the
- usage of a ``std::expected``, you should consider checking whether you are hitting this ABI break. This change was
- done to fix `#70494 <https://github.com/llvm/llvm-project/issues/70494>`_ and the vendor communication is handled
- in `#70820 <https://github.com/llvm/llvm-project/issues/70820>`_.
-
-
-Build System Changes
---------------------
-
-- The ``LIBCXX_EXECUTOR`` CMake variable has been deprecated. If you are relying on this, the new replacement is
- passing ``-Dexecutor=...`` to ``llvm-lit``. Alternatively, this flag can be made persistent in the generated test
- configuration file by passing ``-DLIBCXX_TEST_PARAMS=executor=...``. This also applies to the ``LIBUWIND_EXECTOR``
- and ``LIBCXXABI_EXECUTOR`` CMake variables. LLVM 19 will completely remove support for the ``*_EXECUTOR`` variables.
-
-- ``LIBCXXABI_USE_LLVM_UNWINDER`` and ``COMPILER_RT_USE_LLVM_UNWINDER`` switched defaults from ``OFF`` to ``ON``.
- This means that by default, libc++abi and compiler-rt will link against the LLVM provided ``libunwind`` library
- instead of the system-provided unwinding library. If you are building the LLVM runtimes with the goal of shipping
- them so that they can interoperate with other system-provided libraries that might be using a
diff erent unwinding
- library (such as ``libgcc_s``), you should pass ``LIBCXXABI_USE_LLVM_UNWINDER=OFF`` and ``COMPILER_RT_USE_LLVM_UNWINDER=OFF``
- to make sure the system-provided unwinding library is used by the LLVM runtimes.
diff --git a/libcxx/docs/ReleaseNotes/19.rst b/libcxx/docs/ReleaseNotes/19.rst
index 3d79def336a874..e167d21e39f93c 100644
--- a/libcxx/docs/ReleaseNotes/19.rst
+++ b/libcxx/docs/ReleaseNotes/19.rst
@@ -40,8 +40,7 @@ and C++26 features.
Experimental support for the time zone database has progressed.
-Work on the ranges support has progressed. See
-:ref:`ranges-status` for the current status.
+Work on the ranges support has progressed.
Work on the experimental C++17 Parallel STL has progressed. See
:ref:`pstl-status` for the current status.
diff --git a/libcxx/docs/Status/Ranges.rst b/libcxx/docs/Status/Ranges.rst
deleted file mode 100644
index cdbf68393b739d..00000000000000
--- a/libcxx/docs/Status/Ranges.rst
+++ /dev/null
@@ -1,48 +0,0 @@
-.. _ranges-status:
-
-================================
-libc++ Ranges Status
-================================
-
-.. include:: ../Helpers/Styles.rst
-
-.. contents::
- :local:
-
-
-Overview
-================================
-
-This document contains the status of the Ranges library in libc++. It is used to track
-both the status of the sub-projects of the ranges library and who is assigned to these
-sub-projects. This is imperative to effective implementation so that work is not
-duplicated and implementors are not blocked by each other.
-
-If you are interested in contributing to the libc++ Ranges library, please send a message
-to the #libcxx channel in the LLVM discord. Please *do not* start working on any of the
-*assigned* items below.
-
-
-Major features
-=======================================
-
-.. csv-table::
- :file: RangesMajorFeatures.csv
- :header-rows: 1
- :widths: auto
-
-Views
-=======================================
-
-.. csv-table::
- :file: RangesViews.csv
- :header-rows: 1
- :widths: auto
-
-Algorithms
-=======================================
-
-.. csv-table::
- :file: RangesAlgorithms.csv
- :header-rows: 1
- :widths: auto
diff --git a/libcxx/docs/Status/RangesAlgorithms.csv b/libcxx/docs/Status/RangesAlgorithms.csv
deleted file mode 100644
index 469ea21a76aab9..00000000000000
--- a/libcxx/docs/Status/RangesAlgorithms.csv
+++ /dev/null
@@ -1,18 +0,0 @@
-Standard,Algorithm,Assignee,CL,Status
-C++20,all C++20 algorithms,N/A,N/A,✅
-C++23,`find_last <https://wg21.link/P1223R5>`_,Nicole Mazzuca,`#99312 <https://github.com/llvm/llvm-project/pull/99312>`_,Complete
-C++23,`find_last_if <https://wg21.link/P1223R5>`_,Nicole Mazzuca,`#99312 <https://github.com/llvm/llvm-project/pull/99312>`_,Complete
-C++23,`find_last_if_not <https://wg21.link/P1223R5>`_,Nicole Mazzuca,`#99312 <https://github.com/llvm/llvm-project/pull/99312>`_,Complete
-C++23,`starts_with <https://wg21.link/P1659R3>`_,Zijun Zhao,`D150735 <https://llvm.org/D150735>`_,Complete
-C++23,`ends_with <https://wg21.link/P1659R3>`_,Zijun Zhao, `D150831 <https://llvm.org/D150831>`_,Complete
-C++23,`shift_left <https://wg21.link/p2440r1>`_,Unassigned,No patch yet,Not started
-C++23,`shift_right <https://wg21.link/p2440r1>`_,Unassigned,No patch yet,Not started
-C++23,`iota (algorithm) <https://wg21.link/p2440r1>`_,Unassigned,No patch yet,Not started
-C++23,`fold <https://wg21.link/p2322r5>`_,Unassigned,No patch yet,Not started
-C++23,`contains <https://wg21.link/p2302r2>`_,Zijun Zhao, `#65148 <https://github.com/llvm/llvm-project/pull/65148>`_,Complete
-C++23,`fold_left_with_iter <https://wg21.link/p2322r6>`_,Christopher Di Bella,N/A,Complete
-C++23,`fold_left <https://wg21.link/p2322r6>`_,Christopher Di Bella,N/A,Complete
-C++23,`fold_left_first_with_iter <https://wg21.link/p2322r6>`_,Christopher Di Bella,N/A,In progress
-C++23,`fold_left_first <https://wg21.link/p2322r6>`_,Christopher Di Bella,N/A,In progress
-C++23,`fold_right <https://wg21.link/p2322r6>`_,Christopher Di Bella,N/A,In progress
-C++23,`fold_right_last <https://wg21.link/p2322r6>`_,Christopher Di Bella,N/A,In progress
diff --git a/libcxx/docs/Status/RangesMajorFeatures.csv b/libcxx/docs/Status/RangesMajorFeatures.csv
deleted file mode 100644
index d00fbce9edf489..00000000000000
--- a/libcxx/docs/Status/RangesMajorFeatures.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-Standard,Name,Assignee,CL,Status
-C++23,`ranges::to <https://wg21.link/P1206R7>`_,Konstantin Varlamov,`D142335 <https://reviews.llvm.org/D142335>`_,Complete
-C++23,`Pipe support for user-defined range adaptors <https://wg21.link/P2387R3>`_,"Louis Dionne, Jakub Mazurkiewicz, and Xiaoyang Liu",Various,Complete
-C++23,`Formatting Ranges <https://wg21.link/P2286R8>`_,Mark de Wever,Various,Complete
-C++20,`Stashing stashing iterators for proper flattening <https://wg21.link/P2770R0>`_,Jakub Mazurkiewicz,Various,In progress
diff --git a/libcxx/docs/Status/RangesViews.csv b/libcxx/docs/Status/RangesViews.csv
deleted file mode 100644
index f141656eb131a2..00000000000000
--- a/libcxx/docs/Status/RangesViews.csv
+++ /dev/null
@@ -1,38 +0,0 @@
-Standard,View,Assignee,CL,Status
-C++20,`empty <https://wg21.link/P0896R4>`_,Zoe Carver,`D103208 <https://llvm.org/D103208>`_,✅
-C++20,`single <https://wg21.link/P0896R4>`_,Zoe Carver,`D106840 <https://llvm.org/D106840>`_,✅
-C++20,`iota (view) <https://wg21.link/P0896R4>`_,Zoe Carver,`D107396 <https://llvm.org/D107396>`_,✅
-C++20,`all <https://wg21.link/P0896R4>`_,Zoe Carver,`D102028 <https://llvm.org/D102028>`_,✅
-C++20,`ref_view <https://wg21.link/P0896R4>`_,Zoe Carver,`D102020 <https://llvm.org/D102020>`_,✅
-C++20,`owning_view <https://wg21.link/P0896R4>`_,Arthur O'Dwyer,`D116894 <https://llvm.org/D116894>`_,✅
-C++20,`filter <https://wg21.link/P0896R4>`_,Louis Dionne,`D109086 <https://llvm.org/D109086>`_,✅
-C++20,`transform <https://wg21.link/P0896R4>`_,Zoe Carver,`D103056 <https://llvm.org/D103056>`_,✅
-C++20,`take <https://wg21.link/P0896R4>`_,Zoe Carver,`D106507 <https://llvm.org/D106507>`_,✅
-C++20,`take_while <https://wg21.link/P1035R7>`_,Hui Xie,`D134952 <https://llvm.org/D134952>`_,✅
-C++20,`drop <https://wg21.link/P1035R7>`_,Zoe Carver,`D102037 <https://llvm.org/D102037>`_,✅
-C++20,`drop_while <https://wg21.link/P1035R7>`_,Hui Xie,`D135460 <https://llvm.org/D135460>`_,✅
-C++20,`join <https://wg21.link/P0896R4>`_,Zoe Carver,`D107671 <https://llvm.org/D107671>`_,✅
-C++20,`split <https://wg21.link/P2210R2>`_,Hui Xie,`D142063 <https://llvm.org/D142063>`_,✅
-C++20,`lazy_split <https://wg21.link/P0896R4>`_,Zoe Carver and Konstantin Varlamov,`D107500 <https://llvm.org/D107500>`_,✅
-C++20,`counted <https://wg21.link/P0896R4>`_,Zoe Carver,`D106923 <https://llvm.org/D106923>`_,✅
-C++20,`common <https://wg21.link/P0896R4>`_,Zoe Carver,`D105753 <https://llvm.org/D105753>`_,✅
-C++20,`reverse <https://wg21.link/P0896R4>`_,Zoe Carver,`D107096 <https://llvm.org/D107096>`_,✅
-C++20,`elements / keys / values <https://wg21.link/P1035R7>`_,Hui Xie,`D136268 <https://llvm.org/D136268>`_,✅
-C++20,`istream <https://wg21.link/P1035R7>`_,Hui Xie,`D133317 <https://llvm.org/D133317>`_,✅
-,,,,
-,,,,
-,,,,
-C++23,`repeat <https://wg21.link/P2474R2>`_,Yrong,`D141699 <https://llvm.org/D141699>`_,✅
-C++23,`cartesian_product <https://wg21.link/P2374R4>`_,Unassigned,No patch yet,Not started
-C++23,`zip <https://wg21.link/P2321R2>`_,Hui Xie,`D122806 <https://llvm.org/D122806>`_,✅
-C++23,`zip_transform <https://wg21.link/P2321R2>`_,Hui Xie,No patch yet,Not started
-C++23,`adjacent <https://wg21.link/P2321R2>`_,Hui Xie,No patch yet,Not started
-C++23,`adjacent_transform <https://wg21.link/P2321R2>`_,Hui Xie,No patch yet,Not started
-C++23,`join_with <https://wg21.link/P2441R2>`_,Jakub Mazurkiewicz,`65536 <https://github.com/llvm/llvm-project/pull/65536>`_,In progress
-C++23,`slide <https://wg21.link/P2442R1>`_,Will Hawkins,`67146 <https://github.com/llvm/llvm-project/pull/67146>`_,In Progress
-C++23,`chunk <https://wg21.link/P2442R1>`_,Unassigned,No patch yet,Not started
-C++23,`chunk_by <https://wg21.link/P2443R1>`_,Jakub Mazurkiewicz,`D144767 <https://llvm.org/D144767>`_,✅
-C++23,`as_const <https://wg21.link/P2278R4>`_,Unassigned,No patch yet,Not started
-C++23,`as_rvalue <https://wg21.link/P2446R2>`_,Nikolas Klauser,`D137637 <https://llvm.org/D137637>`_,✅
-C++23,`stride <https://wg21.link/P1899R3>`_,Hristo Hristov and Will Hawkins,`D156924 <https://llvm.org/D156924>`_,In Progress
-C++23,`enumerate <https://wg21.link/P2164R9>`_,Hristo Hristov,`D157193 <https://reviews.llvm.org/D157193>`_,In Progress
diff --git a/libcxx/docs/Status/Spaceship.rst b/libcxx/docs/Status/Spaceship.rst
deleted file mode 100644
index d596c1128dbf63..00000000000000
--- a/libcxx/docs/Status/Spaceship.rst
+++ /dev/null
@@ -1,53 +0,0 @@
-.. spaceship-status:
-
-==============================================
-libc++ Spaceship Operator Status (operator<=>)
-==============================================
-
-.. include:: ../Helpers/Styles.rst
-
-.. contents::
- :local:
-
-
-Overview
-================================
-
-This document contains the status of the C++20 spaceship operator support
-in libc++. It is used to track both the status of the sub-projects of the effort
-and who is assigned to these sub-projects. This is imperative to effective
-implementation so that work is not duplicated and implementors are not blocked
-by each other.
-
-If you are interested in contributing to this effort, please send a message
-to the #libcxx channel in the LLVM discord. Please *do not* start working on any
-of the assigned items below.
-
-
-Sub-Projects in the Implementation Effort
-=========================================
-
-.. csv-table::
- :file: SpaceshipProjects.csv
- :header-rows: 1
- :widths: auto
-
-.. note::
-
- .. [#note-strongorder] ``std::strong_order(long double, long double)`` is not yet implemented.
-
-
-Misc. Items and TODOs
-====================================
-
-(Note: files with required updates will contain the TODO at the beginning of the
-list item so they can be easily found via global search.)
-
-
-Paper and Issue Status
-====================================
-
-.. csv-table::
- :file: SpaceshipPapers.csv
- :header-rows: 1
- :widths: auto
diff --git a/libcxx/docs/Status/SpaceshipPapers.csv b/libcxx/docs/Status/SpaceshipPapers.csv
deleted file mode 100644
index 1ab64a9caf86a3..00000000000000
--- a/libcxx/docs/Status/SpaceshipPapers.csv
+++ /dev/null
@@ -1,12 +0,0 @@
-"Number","Name","Status","First released version"
-`P1614R2 <https://wg21.link/P1614R2>`_,The Mothership has Landed,|Complete|,19.0
-`P2404R3 <https://wg21.link/P2404R3>`_,"Relaxing ``equality_comparable_with``'s, ``totally_ordered_with``'s, and ``three_way_comparable_with``'s common reference requirements to support move-only types",,
-`LWG3330 <https://wg21.link/LWG3330>`_,Include ``<compare>`` from most library headers,"|Complete|","13.0"
-`LWG3347 <https://wg21.link/LWG3347>`_,"``std::pair<T, U>`` now requires ``T`` and ``U`` to be *less-than-comparable*",|Nothing To Do|,
-`LWG3350 <https://wg21.link/LWG3350>`_,Simplify return type of ``lexicographical_compare_three_way``,|Nothing To Do|,
-`LWG3360 <https://wg21.link/LWG3360>`_,``three_way_comparable_with`` is inconsistent with similar concepts,|Nothing To Do|,
-`LWG3380 <https://wg21.link/LWG3380>`_,``common_type`` and comparison categories,|Nothing To Do|,
-`LWG3395 <https://wg21.link/LWG3395>`_,Definition for *three-way* comparison needs to be updated,|Nothing To Do|,
-`P0905R1 <https://wg21.link/P0905R1>`_,Symmetry for spaceship,|Complete|,7.0
-`P1120R0 <https://wg21.link/P1120R0>`_,Consistency improvements for ``<=>`` and other comparison operators,,
-`LWG3431 <https://wg21.link/LWG3431>`_,``<=>`` for containers should require ``three_way_comparable<T>`` instead of ``<=>``,,
diff --git a/libcxx/docs/Status/SpaceshipProjects.csv b/libcxx/docs/Status/SpaceshipProjects.csv
deleted file mode 100644
index 4dc43cdbbd08fd..00000000000000
--- a/libcxx/docs/Status/SpaceshipProjects.csv
+++ /dev/null
@@ -1,202 +0,0 @@
-Section,Description,Dependencies,Assignee,Complete
-- `5.1 Clause 16: Library Introduction <https://wg21.link/p1614r2#clause-16-library-introduction>`_,,,,
-| `[expos.only.func] <https://wg21.link/expos.only.func>`_,"| `synth-three-way <https://reviews.llvm.org/D107721>`_
-| `synth-three-way-result <https://reviews.llvm.org/D107721>`_",[cmp.concept],Kent Ross,|Complete|
-- `5.2 Clause 17: Language support library <https://wg21.link/p1614r2#clause-17-language-support-library>`_,,,,
-| `[support.limits.general] <https://wg21.link/support.limits.general>`_,|,None,Unassigned,|Nothing To Do|
-| `[type.info] <https://wg21.link/type.info>`_,| remove ops `typeinfo <https://reviews.llvm.org/D130853>`_,None,Adrian Vogelsgesang,|Complete|
-| `[compare.syn] <https://wg21.link/compare.syn>`_,,"| [cmp.concept]
-| [cmp.result]
-| [cmp.object]
-| [cmp.alg]",Unassigned,|Complete|
-"| `[cmp.weakeq] <https://wg21.link/cmp.weakeq>`_
-| `[cmp.strongeq] <https://wg21.link/cmp.strongeq>`_",| removed by `P1959R0 <https://wg21.link/P1959R0>`_,None,Unassigned,|Nothing To Do|
-"| `[cmp.partialord] <https://wg21.link/cmp.partialord>`_
-| `[cmp.weakord] <https://wg21.link/cmp.weakord>`_
-| `[cmp.strongord] <https://wg21.link/cmp.strongord>`_",| remove ops `*_ordering <https://reviews.llvm.org/D100342>`_,None,Christopher Di Bella,|Complete|
-| `[cmp.concept] <https://wg21.link/cmp.concept>`_,"| `three_way_comparable <https://reviews.llvm.org/D103478>`_
-| `three_way_comparable_with <https://reviews.llvm.org/D103478>`_",None,Ruslan Arutyunyan,|Complete|
-| `[cmp.result] <https://wg21.link/cmp.result>`_,| `compare_three_way_result <https://reviews.llvm.org/D103581>`_,None,Arthur O'Dwyer,|Complete|
-| `[comparisons.three.way] <https://wg21.link/comparisons.three.way>`_,| `compare_three_way <https://reviews.llvm.org/D80899>`_,[cmp.concept],Arthur O'Dwyer,|Complete|
-| `[cmp.alg] <https://wg21.link/cmp.alg>`_,"| `strong_order <https://reviews.llvm.org/D110738>`_
-| `weak_order <https://reviews.llvm.org/D110738>`_
-| `partial_order <https://reviews.llvm.org/D110738>`_
-| `strong_order_fallback <https://reviews.llvm.org/D111514>`_
-| `weak_order_fallback <https://reviews.llvm.org/D111514>`_
-| `partial_order_fallback <https://reviews.llvm.org/D111514>`_",None,Arthur O'Dwyer,|Complete| [#note-strongorder]_
-"| `[coroutine.syn] <https://wg21.link/coroutine.syn>`_
-| `[coroutine.handle.compare] <https://wg21.link/coroutine.handle.compare>`_",| `coroutine_handle <https://reviews.llvm.org/D109433>`_,[comparisons.three.way],Chuanqi Xu,|Complete|
-- `5.3 Clause 18: Concepts Library <https://wg21.link/p1614r2#clause-18-concepts-library>`_,,,,
-- `5.4 Clause 19: Diagnostics Library <https://wg21.link/p1614r2#clause-19-diagnostics-library>`_,,,,
-| `[system.error.syn] <https://wg21.link/system.error.syn>`_,|,"| [syserr.errcat.nonvirtuals]
-| [syserr.compare]",Unassigned,|Complete|
-"| `[syserr.errcat.overview] <https://wg21.link/syserr.errcat.overview>`_
-| `[syserr.errcat.nonvirtuals] <https://wg21.link/syserr.errcat.nonvirtuals>`_",| `error_category <https://reviews.llvm.org/D131363>`_,[comparisons.three.way],Adrian Vogelsgesang,|Complete|
-| `[syserr.compare] <https://wg21.link/syserr.compare>`_,"| `error_code <https://reviews.llvm.org/D131371>`_
-| `error_condition <https://reviews.llvm.org/D131371>`_",None,Adrian Vogelsgesang,|Complete|
-- `5.5 Clause 20: General utilities library <https://wg21.link/p1614r2#clause-20-general-utilities-library>`_,,,,
-"| `[utility.syn] <https://wg21.link/pairs.syn>`_
-| `[pairs.pair] <https://wg21.link/pairs.pair>`_
-| `[pairs.spec] <https://wg21.link/pairs.spec>`_",| `pair <https://reviews.llvm.org/D107721>`_,[expos.only.func],Kent Ross,|Complete|
-"| `[tuple.syn] <https://wg21.link/tuple.syn>`_
-| `[tuple.rel] <https://wg21.link/tuple.rel>`_",| `tuple <https://reviews.llvm.org/D108250>`_,[expos.only.func],Kent Ross,|Complete|
-"| `[optional.syn] <https://wg21.link/optional.syn>`_
-| `[optional.relops] <https://wg21.link/optional.relops>`_
-| `[optional.nullops] <https://wg21.link/optional.nullops>`_
-| `[optional.comp.with.t] <https://wg21.link/optional.comp.with.t>`_","| `optional <https://reviews.llvm.org/D146392>`_
-| `nullopt <https://reviews.llvm.org/D146392>`_",None,Hristo Hristov,|Complete|
-"| `[variant.syn] <https://wg21.link/variant.syn>`_
-| `[variant.relops] <https://wg21.link/variant.relops>`_
-| `[variant.monostate.relops] <https://wg21.link/variant.monostate.relops>`_","| `monostate <https://reviews.llvm.org/D131372>`_
-| `variant <https://reviews.llvm.org/D131372>`_",None,Kent Ross,|Complete|
-"| `[template.bitset] <https://wg21.link/template.bitset>`_
-| `[bitset.members] <https://wg21.link/bitset.members>`_","| remove ops `bitset <https://reviews.llvm.org/D152611>`_",None,Hristo Hristov,|Complete|
-| `[memory.syn] <https://wg21.link/memory.syn>`_,|,None,Unassigned,|Complete|
-| `[allocator.globals] <https://wg21.link/allocator.globals>`_,| remove ops `allocator <https://reviews.llvm.org/D152612>`_,None,Hristo Hristov,|Complete|
-| `[unique.ptr.special] <https://wg21.link/unique.ptr.special>`_,| `unique_ptr <https://reviews.llvm.org/D130838>`_,[comparisons.three.way],Adrian Vogelsgesang,|Complete|
-| `[util.smartptr.shared.cmp] <https://wg21.link/util.smartptr.shared.cmp>`_,| `shared_ptr <https://reviews.llvm.org/D130852>`_,[comparisons.three.way],Adrian Vogelsgesang,|Complete|
-"| `[mem.res.syn] <https://wg21.link/mem.res.syn>`_
-| `[mem.res.eq] <https://wg21.link/mem.res.eq>`_
-| `[mem.poly.allocator.eq] <https://wg21.link/mem.poly.allocator.eq>`_","|
-| remove ops `memory_resource <https://reviews.llvm.org/D152629>`_
-| remove ops `polymorphic_allocator <https://reviews.llvm.org/D152629>`_",None,Hristo Hristov,|Complete|
-"| `[allocator.adaptor.syn] <https://wg21.link/allocator.adaptor.syn>`_
-| `[scoped.adaptor.operators] <https://wg21.link/scoped.adaptor.operators>`_",| remove ops `scoped_allocator_adaptor <https://reviews.llvm.org/D152678>`_,None,Hristo Hristov,|Complete|
-"| `[functional.syn] <https://wg21.link/functional.syn>`_
-| `[range.cmp] <https://wg21.link/range.cmp>`_
-| `[func.wrap.func] <https://wg21.link/func.wrap.func>`_
-| `[func.wrap.func.nullptr] <https://wg21.link/func.wrap.func.nullptr>`_",| remove ops `function <https://reviews.llvm.org/D152704>`_,None,Hristo Hristov,|Complete|
-| `[meta.unary.prop] <https://wg21.link/meta.unary.prop>`_,| replaced by `issue LWG3354 <https://wg21.link/LWG3354>`_,None,Unassigned,|Nothing To Do|
-| `[meta.trans.other] <https://wg21.link/meta.trans.other>`_,| removed by `issue LWG3380 <https://wg21.link/LWG3380>`_,None,Unassigned,|Nothing To Do|
-"| `[type.index.overview] <https://wg21.link/type.index.overview>`_
-| `[type.index.members] <https://wg21.link/type.index.members>`_",| `type_index <https://reviews.llvm.org/D131357>`_,None,Adrian Vogelsgesang,|Complete|
-| `[charconv.syn] <https://wg21.link/charconv.syn>`_,| `to_chars_result <https://reviews.llvm.org/D112366>`_,None,Mark de Wever,|Complete|
-| `[charconv.syn] <https://wg21.link/charconv.syn>`_,| `from_chars_result <https://reviews.llvm.org/D112366>`_,None,Mark de Wever,|Complete|
-- `5.6 Clause 21: Strings library <https://wg21.link/p1614r2#clause-21-strings-library>`_,,,,
-"| `[char.traits.specializations.char] <https://wg21.link/char.traits.specializations.char>`_
-| `[char.traits.specializations.char8.t] <https://wg21.link/char.traits.specializations.char8.t>`_
-| `[char.traits.specializations.char16.t] <https://wg21.link/char.traits.specializations.char16.t>`_
-| `[char.traits.specializations.char32.t] <https://wg21.link/char.traits.specializations.char32.t>`_
-| `[char.traits.specializations.wchar.t] <https://wg21.link/char.traits.specializations.wchar.t>`_
-| `[string.syn] <https://wg21.link/string.syn>`_
-| `[string.cmp] <https://wg21.link/string.cmp>`_",| `basic_string <https://reviews.llvm.org/D131421>`_,None,Mark de Wever,|Complete|
-"| `[string.view.synop] <https://wg21.link/string.view.synop>`_
-| `[string.view.comparison] <https://wg21.link/string.view.comparison>`_",| `basic_string_view <https://reviews.llvm.org/D130295>`_,None,Mark de Wever,|Complete|
-- `5.7 Clause 22: Containers library <https://wg21.link/p1614r2#clause-22-containers-library>`_,,,,
-| `[container.requirements.general] <https://wg21.link/container.requirements.general>`_,|,None,Mark de Wever,|Complete|
-| `[array.syn] <https://wg21.link/array.syn>`_ (`general <https://wg21.link/container.opt.reqmts>`_),| `array <https://reviews.llvm.org/D132265>`_,[expos.only.func],"| Adrian Vogelsgesang
-| Hristo Hristov",|Complete|
-| `[deque.syn] <https://wg21.link/deque.syn>`_ (`general <https://wg21.link/container.opt.reqmts>`_),| `deque <https://reviews.llvm.org/D144821>`_,[expos.only.func],Hristo Hristov,|Complete|
-| `[forward.list.syn] <https://wg21.link/forward.list.syn>`_ (`general <https://wg21.link/container.opt.reqmts>`_),| `forward_list <https://reviews.llvm.org/D145172>`_,[expos.only.func],Hristo Hristov,|Complete|
-| `[list.syn] <https://wg21.link/list.syn>`_ (`general <https://wg21.link/container.opt.reqmts>`_),| `list <https://reviews.llvm.org/D132312>`_,[expos.only.func],Adrian Vogelsgesang,|Complete|
-| `[vector.syn] <https://wg21.link/vector.syn>`_ (`general <https://wg21.link/container.opt.reqmts>`_),| `vector <https://reviews.llvm.org/D132268>`_,[expos.only.func],"| Adrian Vogelsgesang
-| Hristo Hristov",|Complete|
-| `[array.overview] <https://wg21.link/array.overview>`_ (`general <https://wg21.link/container.opt.reqmts>`_),| removed by `issue LWG3347 <https://cplusplus.github.io/LWG/issue3347>`_,None,"| Adrian Vogelsgesang
-| Hristo Hristov",|Complete|
-| `[associative.map.syn] <https://wg21.link/associative.map.syn>`_ (`general <https://wg21.link/container.opt.reqmts>`_),"| `map <https://reviews.llvm.org/D145976>`_
-| `multimap <https://reviews.llvm.org/D145976>`_",[expos.only.func],Hristo Hristov,|Complete|
-| `[associative.set.syn] <https://wg21.link/associative.set.syn>`_ (`general <https://wg21.link/container.opt.reqmts>`_),"| `multiset <https://reviews.llvm.org/D148416>`_
-| `set <https://reviews.llvm.org/D148416>`_",[expos.only.func],Hristo Hristov,|Complete|
-| `[unord.map.syn] <https://wg21.link/unord.map.syn>`_,"| remove ops `unordered_map <https://reviews.llvm.org/D152642>`_
-| remove ops `unordered_multimap <https://reviews.llvm.org/D152642>`_",None,Hristo Hristov,|Complete|
-| `[unordered.set.syn] <https://wg21.link/unordered.set.syn>`_,"| remove ops `unordered_set <https://reviews.llvm.org/D152643>`_
-| remove ops `unordered_multiset <https://reviews.llvm.org/D152643>`_",None,Hristo Hristov,|Complete|
-| `[queue.syn] <https://wg21.link/queue.syn>`_,| `queue <https://reviews.llvm.org/D146066>`_,None,Hristo Hristov,|Complete|
-| `[stack.syn] <https://wg21.link/stack.syn>`_,| `stack <https://reviews.llvm.org/D146094>`_,None,Hristo Hristov,|Complete|
-| `[queue.ops] <https://wg21.link/queue.ops>`_,| `queue <https://reviews.llvm.org/D146066>`_,None,Hristo Hristov,|Complete|
-| `[stack.ops] <https://wg21.link/stack.ops>`_,| `stack <https://reviews.llvm.org/D146094>`_,None,Hristo Hristov,|Complete|
-- `5.8 Clause 23: Iterators library <https://wg21.link/p1614r2#clause-23-iterators-library>`_,,,,
-| `[iterator.synopsis] <https://wg21.link/iterator.synopsis>`_,|,None,Unassigned,|Complete|
-| `[reverse.iter.cmp] <https://wg21.link/reverse.iter.cmp>`_,| `reverse_iterator <https://reviews.llvm.org/D113695>`_,None,Mikhail Maltsev,|Complete|
-"| `[move.iterator] <https://wg21.link/move.iterator>`_
-| `[move.iter.op.comp] <https://wg21.link/move.iter.op.comp>`_",| `move_iterator <https://reviews.llvm.org/D117656>`_,None,Arthur O'Dwyer,|Complete|
-"| `[common.iterator] <https://wg21.link/common.iterator>`_
-| `[common.iter.cmp] <https://wg21.link/common.iter.cmp>`_",| `common_iterator <https://reviews.llvm.org/D103335>`_,None,Zoe Carver,|Complete|
-"| `[counted.iterator] <https://wg21.link/counted.iterator>`_
-| `[counted.iter.cmp] <https://wg21.link/counted.iter.cmp>`_",| `counted_iterator <https://reviews.llvm.org/D106205>`_,None,Zoe Carver,|Complete|
-| `[unreachable.sentinel] <https://wg21.link/unreachable.sentinel>`_,| `unreachable_sentinel_t <https://reviews.llvm.org/D107920>`_,None,Zoe Carver,|Complete|
-"| `[istream.iterator] <https://wg21.link/istream.iterator>`_
-| `[istream.iterator.ops] <https://wg21.link/istream.iterator.ops>`_",| remove ops `istream_iterator <https://reviews.llvm.org/D119620>`_,None,Konstantin Varlamov,|Complete|
-"| `[istreambuf.iterator] <https://wg21.link/istreambuf.iterator>`_
-| `[istreambuf.iterator.ops] <https://wg21.link/istreambuf.iterator.ops>`_",| remove ops `istreambuf_iterator <https://reviews.llvm.org/D119620>`_,None,Konstantin Varlamov,|Complete|
-- `5.9 Clause 24: Ranges library <https://wg21.link/p1614r2#clause-24-ranges-library>`_,,,,
-| `[range.iota.iterator] <https://wg21.link/range.iota.iterator>`_,| `ranges::iota_view::iterator <https://reviews.llvm.org/D110774>`_,[concepts.cmp],Arthur O'Dwyer,|Complete|
-| `[range.iota.sentinel] <https://wg21.link/range.iota.sentinel>`_,| remove ops `iota_view::sentinel <https://reviews.llvm.org/D107396>`_,None,Zoe Carver,|Complete|
-| `[range.filter.iterator] <https://wg21.link/range.filter.iterator>`_,| remove ops `filter_view::iterator <https://reviews.llvm.org/D109086>`_,None,Louis Dionne,|Complete|
-| `[range.filter.sentinel] <https://wg21.link/range.filter.sentinel>`_,| remove ops `filter_view::sentinel <https://reviews.llvm.org/D109086>`_,None,Louis Dionne,|Complete|
-| `[range.transform.iterator] <https://wg21.link/range.transform.iterator>`_,| `ranges::transform_view::iterator <https://reviews.llvm.org/D110774>`_,[concepts.cmp],Arthur O'Dwyer,|Complete|
-| `[range.transform.sentinel] <https://wg21.link/range.transform.sentinel>`_,| remove ops `transform_view::sentinel <https://reviews.llvm.org/D103056>`_,None,Zoe Carver,|Complete|
-| `[range.take.sentinel] <https://wg21.link/range.take.sentinel>`_,| remove ops `take_view::sentinel <https://reviews.llvm.org/D123600>`_,None,Konstantin Varlamov,|Complete|
-| `[range.join.iterator] <https://wg21.link/range.join.iterator>`_,| remove ops `join_view::iterator <https://reviews.llvm.org/D107671>`_,None,Zoe Carver,|Complete|
-| `[range.join.sentinel] <https://wg21.link/range.join.sentinel>`_,| remove ops `join_view::sentinel <https://reviews.llvm.org/D107671>`_,None,Zoe Carver,|Complete|
-| `[range.split.outer] <https://wg21.link/range.split.outer>`_,| remove ops `split_view::outer_iterator <https://reviews.llvm.org/D142063>`_,None,Hui Xie,|Complete|
-| `[range.split.inner] <https://wg21.link/range.split.inner>`_,| remove ops `split_view::inner_iterator <https://reviews.llvm.org/D142063>`_,None,Hui Xie,|Complete|
-- `5.10 Clause 25: Algorithms library <https://wg21.link/p1614r2#clause-25-algorithms-library>`_,,,,
-"| `[algorithm.syn] <https://wg21.link/algorithm.syn>`_
-| `[alg.three.way] <https://wg21.link/alg.three.way>`_",| `lexicographical_compare_three_way <https://reviews.llvm.org/D131395>`_,[comparisons.three.way],Adrian Vogelsgesang,|Complete|
-- `5.11 Clause 26: Numerics library <https://wg21.link/p1614r2#clause-26-numerics-library>`_,,,,
-"| `[complex.syn] <https://wg21.link/complex.syn>`_
-| `[complex.ops] <https://wg21.link/complex.ops>`_",| remove ops `complex <https://reviews.llvm.org/D152615>`_,None,Hristo Hristov,|Complete|
-"| `[class.slice.overview] <https://wg21.link/class.slice.overview>`_
-| `[slice.ops] <https://wg21.link/slice.ops>`_",| `slice <https://reviews.llvm.org/D152617>`_,None,Hristo Hristov,|Complete|
-- `5.12 Clause 27: Time library <https://wg21.link/p1614r2#clause-27-time-library>`_,,,,
-| `[time.syn] <https://wg21.link/time.syn>`_,|,None,Mark de Wever,|Complete|
-| `[time.duration.comparisons] <https://wg21.link/time.duration.comparisons>`_, `chrono::duration <https://reviews.llvm.org/D145881>`_, None, Hristo Hristov, |Complete|
-| `[time.point.comparisons] <https://wg21.link/time.point.comparisons>`_, `chrono::time_point <https://reviews.llvm.org/D146250>`_, None, Hristo Hristov, |Complete|
-"| `[time.cal.day.nonmembers] <https://wg21.link/time.cal.day.nonmembers>`_
-| `[time.cal.month.nonmembers] <https://wg21.link/time.cal.month.nonmembers>`_
-| `[time.cal.year.nonmembers] <https://wg21.link/time.cal.year.nonmembers>`_
-| `[time.cal.md.nonmembers] <https://wg21.link/time.cal.md.nonmembers>`_
-| `[time.cal.mdlast] <https://wg21.link/time.cal.mdlast>`_
-| `[time.cal.ym.nonmembers] <https://wg21.link/time.cal.ym.nonmembers>`_
-| `[time.cal.ymd.nonmembers] <https://wg21.link/time.cal.ymd.nonmembers>`_
-| `[time.cal.ymdlast.nonmembers] <https://wg21.link/time.cal.ymdlast.nonmembers>`_","| `chrono::day <https://reviews.llvm.org/D129887>`_
-| `chrono::month <https://reviews.llvm.org/D129887>`_
-| `chrono::year <https://reviews.llvm.org/D129887>`_
-| `chrono::month_day <https://reviews.llvm.org/D129887>`_
-| `chrono::month_day_last <https://reviews.llvm.org/D129887>`_
-| `chrono::year_month <https://reviews.llvm.org/D129887>`_
-| `chrono::year_month_day <https://reviews.llvm.org/D129887>`_
-| `chrono::year_month_day_last <https://reviews.llvm.org/D129887>`_",None,Mark de Wever,|Complete|
-"| `[time.cal.wd] <https://wg21.link/time.cal.wd>`_
-| `[time.cal.wdidx] <https://wg21.link/time.cal.wdidx>`_
-| `[time.cal.wdlast] <https://wg21.link/time.cal.wdlast>`_
-| `[time.cal.mwd] <https://wg21.link/time.cal.mwd>`_
-| `[time.cal.mwdlast] <https://wg21.link/time.cal.mwdlast>`_
-| `[time.cal.ymwd] <https://wg21.link/time.cal.ymwd>`_
-| `[time.cal.ymwdlast] <https://wg21.link/time.cal.ymwdlast>`_","| `weekday <https://reviews.llvm.org/D152699>`_
-| `weekday_indexed <https://reviews.llvm.org/D152699>`_
-| `weekday_last <https://reviews.llvm.org/D152699>`_
-| `month_weekday <https://reviews.llvm.org/D152699>`_
-| `month_weekday_last <https://reviews.llvm.org/D152699>`_
-| `year_month_weekday <https://reviews.llvm.org/D152699>`_
-| `year_month_weekday_last <https://reviews.llvm.org/D152699>`_",None,Hristo Hristov,|Complete|
-`[time.zone.nonmembers] <https://wg21.link/time.zone.nonmembers>`_,"`chrono::time_zone`",,Mark de Wever,|Complete|
-`[time.zone.zonedtime.nonmembers] <https://wg21.link/time.zone.zonedtime.nonmembers>`_,"`chrono::zoned_time`",,Mark de Wever,|Complete|
-`[time.zone.leap.nonmembers] <https://wg21.link/time.zone.leap.nonmembers>`_,"`chrono::time_leap_seconds`",,Mark de Wever,|Complete|
-`[time.zone.link.nonmembers] <https://wg21.link/time.zone.link.nonmembers>`_,"`chrono::time_zone_link`",,Mark de Wever,|Complete|
-- `5.13 Clause 28: Localization library <https://wg21.link/p1614r2#clause-28-localization-library>`_,,,,
-"| `[locale] <https://wg21.link/locale>`_
-| `[locale.operators] <https://wg21.link/locale.operators>`_",| remove ops `locale <https://reviews.llvm.org/D152654>`_,None,Hristo Hristov,|Complete|
-- `5.14 Clause 29: Input/output library <https://wg21.link/p1614r2#clause-29-inputoutput-library>`_,,,,
-| `[fs.filesystem.syn] <https://wg21.link/fs.filesystem.syn>`_,| `filesystem::space_info <https://reviews.llvm.org/D130861>`_,None,Adrian Vogelsgesang,|Complete|
-"| `[fs.class.path] <https://wg21.link/fs.class.path>`_
-| `[fs.path.nonmember] <https://wg21.link/fs.path.nonmember>`_",| `filesystem::path <https://reviews.llvm.org/D130859>`_,None,Adrian Vogelsgesang,|Complete|
-| `[fs.class.file.status] <https://wg21.link/fs.class.file.status>`_,| `file_status <https://reviews.llvm.org/D152647>`_,None,Hristo Hristov,|Complete|
-"| `[fs.class.directory.entry] <https://wg21.link/fs.class.directory.entry>`_
-| `[fs.dir.entry.obs] <https://wg21.link/fs.dir.entry.obs>`_",| `filesystem::directory_entry <https://reviews.llvm.org/D130860>`_,None,Adrian Vogelsgesang,|Complete|
-- `5.15 Clause 30: Regular expressions library <https://wg21.link/p1614r2#clause-30-regular-expressions-library>`_,,,,
-| `[re.syn] <https://wg21.link/re.syn>`_,|,None,Mark de Wever,|Complete|
-| `[re.submatch.op] <https://wg21.link/re.submatch.op>`_,| `sub_match <https://reviews.llvm.org/D132310>`_,None,Mark de Wever,|Complete|
-| `[re.results.nonmember] <https://wg21.link/re.results.nonmember>`_,| remove ops `match_results`,None,Mark de Wever,|Complete|
-"| `[re.regiter] <https://wg21.link/re.regiter>`_,
-| `[re.regiter.comp] <https://wg21.link/re.regiter.comp>`_",| remove ops `regex_iterator`,None,Mark de Wever,|Complete|
-"| `[re.tokiter] <https://wg21.link/re.tokiter>`_
-| `[re.tokiter.comp] <https://wg21.link/re.tokiter.comp>`_",| remove ops `regex_token_iterator`,None,Mark de Wever,|Complete|
-- `5.16 Clause 31: Atomic operations library <https://wg21.link/p1614r2#clause-31-atomic-operations-library>`_,,,,
-- `5.17 Clause 32: Thread support library <https://wg21.link/p1614r2#clause-32-thread-support-library>`_,,,,
-| `[thread.thread.id] <https://wg21.link/thread.thread.id>`_,| `thread::id <https://reviews.llvm.org/D131362>`_,None,Adrian Vogelsgesang,|Complete|
-Misc (Not part of R1614),,,,
-| `[range.elements.iterator] <https://wg21.link/range.elements.iterator>`_,| `ranges::elements_view::iterator <https://reviews.llvm.org/D136268>`_,[concepts.cmp],Hui Xie,|Complete|
-| `[stacktrace.entry.cmp] <https://wg21.link/stacktrace.entry.cmp>`_,| `stacktrace_entry <https://reviews.llvm.org/D123228>`_,None,Nikolas Klauser,|In Progress|
-| `[stacktrace.basic.cmp] <https://wg21.link/stacktrace.basic.cmp>`_,| `basic_stacktrace <https://reviews.llvm.org/D123228>`_,[alg.three.way],Nikolas Klauser,|In Progress|
diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst
index 18af347a1217ff..a77405eb138124 100644
--- a/libcxx/docs/index.rst
+++ b/libcxx/docs/index.rst
@@ -50,8 +50,6 @@ Getting Started with libc++
Status/Format
Status/Parallelism
Status/PSTL
- Status/Ranges
- Status/Spaceship
Status/SpecialMath
Status/Zip
More information about the libcxx-commits
mailing list