summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2022-12-05 14:41:44 (GMT)
committerGitHub <noreply@github.com>2022-12-05 14:41:44 (GMT)
commit5ea052bb0c8fa76867751046c89f69db5661ed4f (patch)
treeb29f03a85bd7da154d5ed3e3ce31e0839d38f684
parent038b151963d9d4a5f4c852544fb5b0402ffcb218 (diff)
downloadcpython-5ea052bb0c8fa76867751046c89f69db5661ed4f.zip
cpython-5ea052bb0c8fa76867751046c89f69db5661ed4f.tar.gz
cpython-5ea052bb0c8fa76867751046c89f69db5661ed4f.tar.bz2
gh-100008: Document Python build requirements (#100009)
Document also configure --without-freelists option added to Python 3.11.
-rw-r--r--Doc/using/configure.rst46
-rw-r--r--Doc/whatsnew/3.11.rst2
2 files changed, 47 insertions, 1 deletions
diff --git a/Doc/using/configure.rst b/Doc/using/configure.rst
index 0922972..3df6ff4 100644
--- a/Doc/using/configure.rst
+++ b/Doc/using/configure.rst
@@ -2,6 +2,46 @@
Configure Python
****************
+Build Requirements
+==================
+
+Features required to build CPython:
+
+* A `C11 <https://en.cppreference.com/w/c/11>`_ compiler. `Optional C11
+ features
+ <https://en.wikipedia.org/wiki/C11_(C_standard_revision)#Optional_features>`_
+ are not required.
+
+* Support for `IEEE 754 <https://en.wikipedia.org/wiki/IEEE_754>`_ floating
+ point numbers and `floating point Not-a-Number (NaN)
+ <https://en.wikipedia.org/wiki/NaN#Floating_point>`_.
+
+* Support for threads.
+
+* OpenSSL 1.1.1 or newer for the :mod:`ssl` and :mod:`hashlib` modules.
+
+* On Windows, Microsoft Visual Studio 2017 or later is required.
+
+.. versionchanged:: 3.11
+ C11 compiler, IEEE 754 and NaN support are now required.
+
+.. versionchanged:: 3.10
+ OpenSSL 1.1.1 is now required.
+
+.. versionchanged:: 3.7
+ Thread support and OpenSSL 1.0.2 are now required.
+
+.. versionchanged:: 3.6
+ Selected C99 features are now required, like ``<stdint.h>`` and ``static
+ inline`` functions.
+
+.. versionchanged:: 3.5
+ On Windows, Visual Studio 2015 or later is required.
+
+See also :pep:`7` "Style Guide for C Code" and :pep:`11` "CPython platform
+support".
+
+
.. _configure-options:
Configure Options
@@ -93,6 +133,12 @@ General Options
See :envvar:`PYTHONCOERCECLOCALE` and the :pep:`538`.
+.. cmdoption:: --without-freelists
+
+ Disable all freelists except the empty tuple singleton.
+
+ .. versionadded:: 3.11
+
.. cmdoption:: --with-platlibdir=DIRNAME
Python library directory name (default is ``lib``).
diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst
index 6eb90df..7931988 100644
--- a/Doc/whatsnew/3.11.rst
+++ b/Doc/whatsnew/3.11.rst
@@ -2131,7 +2131,7 @@ Build Changes
(Contributed by Dong-hee Na and Brett Holman in :issue:`44340`.)
* Freelists for object structs can now be disabled. A new :program:`configure`
- option :option:`!--without-freelists` can be used to disable all freelists
+ option :option:`--without-freelists` can be used to disable all freelists
except empty tuple singleton.
(Contributed by Christian Heimes in :issue:`45522`.)