mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
gh-108494: Argument Clinic: Document how to generate code that uses the limited C API (#108584)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
This commit is contained in:
parent
e012cf771b
commit
2928e5dc65
2 changed files with 24 additions and 2 deletions
|
@ -158,7 +158,7 @@ process a single source file, like this:
|
||||||
The CLI supports the following options:
|
The CLI supports the following options:
|
||||||
|
|
||||||
.. program:: ./Tools/clinic/clinic.py [-h] [-f] [-o OUTPUT] [-v] \
|
.. program:: ./Tools/clinic/clinic.py [-h] [-f] [-o OUTPUT] [-v] \
|
||||||
[--converters] [--make] [--srcdir SRCDIR] [FILE ...]
|
[--converters] [--make] [--srcdir SRCDIR] [--limited] [FILE ...]
|
||||||
|
|
||||||
.. option:: -h, --help
|
.. option:: -h, --help
|
||||||
|
|
||||||
|
@ -193,6 +193,11 @@ The CLI supports the following options:
|
||||||
A file to exclude in :option:`--make` mode.
|
A file to exclude in :option:`--make` mode.
|
||||||
This option can be given multiple times.
|
This option can be given multiple times.
|
||||||
|
|
||||||
|
.. option:: --limited
|
||||||
|
|
||||||
|
Use the :ref:`Limited API <limited-c-api>` to parse arguments in the generated C code.
|
||||||
|
See :ref:`clinic-howto-limited-capi`.
|
||||||
|
|
||||||
.. option:: FILE ...
|
.. option:: FILE ...
|
||||||
|
|
||||||
The list of files to process.
|
The list of files to process.
|
||||||
|
@ -1905,6 +1910,22 @@ blocks embedded in Python files look slightly different. They look like this:
|
||||||
#/*[python checksum:...]*/
|
#/*[python checksum:...]*/
|
||||||
|
|
||||||
|
|
||||||
|
.. _clinic-howto-limited-capi:
|
||||||
|
|
||||||
|
How to use the Limited C API
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
If Argument Clinic :term:`input` is located within a C source file
|
||||||
|
that contains ``#define Py_LIMITED_API``, Argument Clinic will generate C code
|
||||||
|
that uses the :ref:`Limited API <limited-c-api>` to parse arguments. The
|
||||||
|
advantage of this is that the generated code will not use private functions.
|
||||||
|
However, this *can* result in Argument Clinic generating less efficient code
|
||||||
|
in some cases. The extent of the performance penalty will depend
|
||||||
|
on the parameters (types, number, etc.).
|
||||||
|
|
||||||
|
.. versionadded:: 3.13
|
||||||
|
|
||||||
|
|
||||||
.. _clinic-howto-override-signature:
|
.. _clinic-howto-override-signature:
|
||||||
|
|
||||||
How to override the generated signature
|
How to override the generated signature
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
:ref:`Argument Clinic <howto-clinic>` now has a partial support of the
|
:ref:`Argument Clinic <howto-clinic>` now has a partial support of the
|
||||||
:ref:`Limited API <limited-c-api>`. Patch by Victor Stinner.
|
:ref:`Limited API <limited-c-api>`: see :ref:`clinic-howto-limited-capi`.
|
||||||
|
Patch by Victor Stinner.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue