Skip to content

Commit

Permalink
Reword paragraph on specific value for Py_LIMITED_API (GH-26101) (GH-…
Browse files Browse the repository at this point in the history
…26123)

(cherry picked from commit ddd30b2)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
  • Loading branch information
miss-islington and encukou committed May 14, 2021
1 parent f28bac4 commit 5abc681
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions Doc/c-api/stable.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,22 +41,22 @@ embedding Python.)

.. c:macro:: Py_LIMITED_API
Define this macro ``Py_LIMITED_API`` before including ``Python.h`` to
opt in to only use the Limited API.

Defining ``Py_LIMITED_API`` to ``3`` will limit the available API so that
the extension will work without recompilation with all Python 3.x releases
(x>=2) on the particular :ref:`platform <stable-abi-platform>`.

Defining ``Py_LIMITED_API`` to a value of :c:data:`PY_VERSION_HEX` will
limit the available API so that the extension will work without
recompilation with all Python 3 releases from the specified one.
This will allow using additional API introduced up to this version,
but the extension will lose compatibility with earlier Python versions.
Define this macro before including ``Python.h`` to opt in to only use
the Limited API, and to select the Limited API version.

Define ``Py_LIMITED_API`` to the value of :c:data:`PY_VERSION_HEX`
corresponding to the lowest Python version your extension supports.
The extension will work without recompilation with all Python 3 releases
from the specified one onward, and can use Limited API introduced up to that
version.

Rather than using the ``PY_VERSION_HEX`` macro directly, hardcode a minimum
minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when
compiling with future Python versions.

You can also define ``Py_LIMITED_API`` to ``3``. This works the same as
``0x03020000`` (Python 3.2, the version that introduced Limited API).

On Windows, extensions that use the Stable ABI should be linked against
``python3.dll`` rather than a version-specific library such as
``python39.dll``.
Expand Down

0 comments on commit 5abc681

Please sign in to comment.