[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