@@ -66,7 +66,7 @@ Limited C API
66
66
67
67
Python 3.2 introduced the *Limited API *, a subset of Python's C API.
68
68
Extensions that only use the Limited API can be
69
- compiled once and work with multiple versions of Python.
69
+ compiled once and be loaded on multiple versions of Python.
70
70
Contents of the Limited API are :ref: `listed below <limited-api-list >`.
71
71
72
72
.. c :macro :: Py_LIMITED_API
@@ -76,7 +76,7 @@ Contents of the Limited API are :ref:`listed below <limited-api-list>`.
76
76
77
77
Define ``Py_LIMITED_API `` to the value of :c:macro: `PY_VERSION_HEX `
78
78
corresponding to the lowest Python version your extension supports.
79
- The extension will work without recompilation with all Python 3 releases
79
+ The extension will be ABI-compatible with all Python 3 releases
80
80
from the specified one onward, and can use Limited API introduced up to that
81
81
version.
82
82
@@ -94,7 +94,15 @@ Stable ABI
94
94
----------
95
95
96
96
To enable this, Python provides a *Stable ABI *: a set of symbols that will
97
- remain compatible across Python 3.x versions.
97
+ remain ABI-compatible across Python 3.x versions.
98
+
99
+ .. note ::
100
+
101
+ The Stable ABI prevents ABI issues, like linker errors due to missing
102
+ symbols or data corruption due to changes in structure layouts or function
103
+ signatures.
104
+ However, other changes in Python can change the *behavior * of extensions.
105
+ See Python's Backwards Compatibility Policy (:pep: `387 `) for details.
98
106
99
107
The Stable ABI contains symbols exposed in the :ref: `Limited API
100
108
<limited-c-api>`, but also other ones – for example, functions necessary to
0 commit comments