summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorPetr Viktorin <encukou@gmail.com>2024-12-03 12:30:27 (GMT)
committerGitHub <noreply@github.com>2024-12-03 12:30:27 (GMT)
commit35d37d6592d1be71ea76042165f6cbfa6c4c3a17 (patch)
tree658062f8e606050ba9594f8587ca3a219111931f /Doc
parent8c3fd1f245fbdc747966daedfd22ed48491309dc (diff)
downloadcpython-35d37d6592d1be71ea76042165f6cbfa6c4c3a17.zip
cpython-35d37d6592d1be71ea76042165f6cbfa6c4c3a17.tar.gz
cpython-35d37d6592d1be71ea76042165f6cbfa6c4c3a17.tar.bz2
gh-127253: Note that Stable ABI is about ABI stability (GH-127254)
Diffstat (limited to 'Doc')
-rw-r--r--Doc/c-api/stable.rst14
1 files changed, 11 insertions, 3 deletions
diff --git a/Doc/c-api/stable.rst b/Doc/c-api/stable.rst
index 5b9e438..124e58c 100644
--- a/Doc/c-api/stable.rst
+++ b/Doc/c-api/stable.rst
@@ -66,7 +66,7 @@ Limited C API
Python 3.2 introduced the *Limited API*, a subset of Python's C API.
Extensions that only use the Limited API can be
-compiled once and work with multiple versions of Python.
+compiled once and be loaded on multiple versions of Python.
Contents of the Limited API are :ref:`listed below <limited-api-list>`.
.. c:macro:: Py_LIMITED_API
@@ -76,7 +76,7 @@ Contents of the Limited API are :ref:`listed below <limited-api-list>`.
Define ``Py_LIMITED_API`` to the value of :c:macro:`PY_VERSION_HEX`
corresponding to the lowest Python version your extension supports.
- The extension will work without recompilation with all Python 3 releases
+ The extension will be ABI-compatible with all Python 3 releases
from the specified one onward, and can use Limited API introduced up to that
version.
@@ -94,7 +94,15 @@ Stable ABI
----------
To enable this, Python provides a *Stable ABI*: a set of symbols that will
-remain compatible across Python 3.x versions.
+remain ABI-compatible across Python 3.x versions.
+
+.. note::
+
+ The Stable ABI prevents ABI issues, like linker errors due to missing
+ symbols or data corruption due to changes in structure layouts or function
+ signatures.
+ However, other changes in Python can change the *behavior* of extensions.
+ See Python's Backwards Compatibility Policy (:pep:`387`) for details.
The Stable ABI contains symbols exposed in the :ref:`Limited API
<limited-c-api>`, but also other ones – for example, functions necessary to