[libcxx-commits] [libcxx] a276f45 - [libc++][docs] Update documentation to reflect libc++'s compiler support policy
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Jul 8 09:01:33 PDT 2021
Author: Louis Dionne
Date: 2021-07-08T11:56:50-04:00
New Revision: a276f451804463fd663eaeac86aea1e24a356247
URL: https://github.com/llvm/llvm-project/commit/a276f451804463fd663eaeac86aea1e24a356247
DIFF: https://github.com/llvm/llvm-project/commit/a276f451804463fd663eaeac86aea1e24a356247.diff
LOG: [libc++][docs] Update documentation to reflect libc++'s compiler support policy
In https://lists.llvm.org/pipermail/llvm-dev/2021-March/148881.html, we
discussed updating the compiler support policy for libc++ to match more
closely what we do actually support.
This commit enshrines that policy decision in libc++'s documentation.
Differential Revision: https://reviews.llvm.org/D105563
Added:
Modified:
libcxx/docs/index.rst
Removed:
################################################################################
diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst
index 0b27361312b28..a6e9bc647ea1d 100644
--- a/libcxx/docs/index.rst
+++ b/libcxx/docs/index.rst
@@ -29,7 +29,7 @@ above.
Getting Started with libc++
----------------------------
+===========================
.. toctree::
:maxdepth: 1
@@ -55,7 +55,7 @@ Getting Started with libc++
Current Status
---------------
+==============
After its initial introduction, many people have asked "why start a new
library instead of contributing to an existing library?" (like Apache's
@@ -91,52 +91,47 @@ reasons, but some of the major ones are:
Further, both projects are apparently abandoned: STLport 5.2.1 was
released in Oct'08, and STDCXX 4.2.1 in May'08.
-Platform and Compiler Support
------------------------------
-
-For using the libc++ headers
-############################
-The libc++ headers are known to work on the following platforms, using GCC and
-Clang. Note that functionality provided by ``<atomic>`` is only functional with
-Clang and GCC.
-
-============ ==================== ============
-OS Arch Compilers
-============ ==================== ============
-macOS 10.9+ i386, x86_64 Clang, GCC
-FreeBSD 10+ i386, x86_64, ARM Clang, GCC
-Linux i386, x86_64 Clang, GCC
-============ ==================== ============
-
-The following minimum compiler versions are required:
-
-* Clang 4.0 and above
-* GCC 5.0 and above.
-
-The C++03 dialect is only supported with Clang.
-
-For building the libc++ library
-###############################
-Building the libc++ library (static or shared) requires some features from
-the operating system. As such, it has its own set of (slightly
diff erent)
-system requirements.
-
-============ ==================== ============ ========================
-OS Arch Compilers ABI Library
-============ ==================== ============ ========================
-macOS 10.12+ i386, x86_64 Clang, GCC libc++abi
-FreeBSD 10+ i386, x86_64, ARM Clang, GCC libcxxrt, libc++abi
-Linux i386, x86_64 Clang, GCC libc++abi
-============ ==================== ============ ========================
-The following minimum compiler versions are required:
+Platform and Compiler Support
+=============================
-* Clang 4.0 and above
-* GCC 5.0 and above.
+Libc++ aims to support common compilers that implement the C++11 Standard. In order to strike a
+good balance between stability for users and maintenance cost, testing coverage and development
+velocity, libc++ drops support for older compilers as newer ones are released.
+
+============ =============== ========================== =====================
+Compiler Versions Restrictions Support policy
+============ =============== ========================== =====================
+Clang 11, 12 latest two stable releases per `LLVM's release page <https://releases.llvm.org>`_
+AppleClang 12 latest stable release per `Xcode's release page <https://developer.apple.com/documentation/xcode-release-notes>`_
+GCC 11 In C++11 or later only latest stable release per `GCC's release page <https://gcc.gnu.org/releases.html>`_
+============ =============== ========================== =====================
+
+Libc++ also supports common platforms and architectures:
+
+=============== ========================= ============================
+Target platform Target architecture Notes
+=============== ========================= ============================
+macOS 10.9+ i386, x86_64, arm64 Building the shared library itself requires targetting macOS 10.11+
+FreeBSD 10+ i386, x86_64, arm
+Linux i386, x86_64, arm, arm64
+Windows x86_64
+=============== ========================= ============================
+
+Generally speaking, libc++ should work on any platform that provides a fairly complete
+C Standard Library. It is also possible to turn off parts of the library for use on
+systems that provide incomplete support.
+
+However, libc++ aims to provide a high-quality implementation of the C++ Standard
+Library, especially when it comes to correctness. As such, we aim to have test coverage
+for all the platforms and compilers that we claim to support. If a platform or compiler
+is not listed here, it is not officially supported. It may happen to work, but we don't
+make any guarantees. If you would like your compiler and/or platform to be listed here,
+please work with the libc++ team to set up testing for your configuration.
C++ Dialect Support
----------------------
+===================
* C++11 - Complete
* :ref:`C++14 - Complete <cxx14-status>`
@@ -145,8 +140,9 @@ C++ Dialect Support
* :ref:`C++2b - In Progress <cxx2b-status>`
* :ref:`C++ Feature Test Macro Status <feature-status>`
+
Notes and Known Issues
-----------------------
+======================
This list contains known issues with libc++
@@ -158,8 +154,9 @@ A full list of currently open libc++ bugs can be `found here`__.
.. __: https://bugs.llvm.org/buglist.cgi?component=All%20Bugs&product=libc%2B%2B&query_format=advanced&resolution=---&order=changeddate%20DESC%2Cassigned_to%20DESC%2Cbug_status%2Cpriority%2Cbug_id&list_id=74184
+
Design Documents
-----------------
+================
.. toctree::
:maxdepth: 1
@@ -177,13 +174,15 @@ Design Documents
DesignDocs/UniquePtrTrivialAbi
DesignDocs/VisibilityMacros
+
Build Bots and Test Coverage
-----------------------------
+============================
* `Buildkite CI pipeline <https://buildkite.com/llvm-project/libcxx-ci>`_
* `LLVM Buildbot Builders <http://lab.llvm.org:8011>`_
* :ref:`Adding New CI Jobs <AddingNewCIJobs>`
+
Getting Involved
================
@@ -208,7 +207,6 @@ Send discussions and questions to the
`libcxx-dev mailing list <http://lists.llvm.org/mailman/listinfo/libcxx-dev>`_.
-
Quick Links
===========
* `LLVM Homepage <https://llvm.org/>`_
More information about the libcxx-commits
mailing list