gh-141004: Document Py_LOCAL and Py_LOCAL_INLINE (GH-141725)

This commit is contained in:
Stan Ulbrych 2025-11-19 18:32:18 +00:00 committed by GitHub
parent 01713b4342
commit 3149d64c93
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 2 deletions

View file

@ -171,6 +171,17 @@ complete listing.
Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the
command line (see :c:member:`PyConfig.use_environment`).
.. c:macro:: Py_LOCAL(type)
Declare a function returning the specified *type* using a fast-calling
qualifier for functions that are local to the current file.
Semantically, this is equivalent to ``static type``.
.. c:macro:: Py_LOCAL_INLINE(type)
Equivalent to :c:macro:`Py_LOCAL` but additionally requests the function
be inlined.
.. c:macro:: Py_MAX(x, y)
Return the maximum value between ``x`` and ``y``.

View file

@ -2169,9 +2169,9 @@ Changes to Python's build process and to the C API include:
* Two new macros can be used to indicate C functions that are local to the
current file so that a faster calling convention can be used.
``Py_LOCAL(type)`` declares the function as returning a value of the
:c:macro:`Py_LOCAL` declares the function as returning a value of the
specified *type* and uses a fast-calling qualifier.
``Py_LOCAL_INLINE(type)`` does the same thing and also requests the
:c:macro:`Py_LOCAL_INLINE` does the same thing and also requests the
function be inlined. If macro :c:macro:`!PY_LOCAL_AGGRESSIVE` is defined before
:file:`python.h` is included, a set of more aggressive optimizations are enabled
for the module; you should benchmark the results to find out if these