mirror of
https://github.com/python/cpython.git
synced 2024-12-02 22:35:26 +08: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
@ -158,7 +158,7 @@ process a single source file, like this:
|
||||
The CLI supports the following options:
|
||||
|
||||
.. program:: ./Tools/clinic/clinic.py [-h] [-f] [-o OUTPUT] [-v] \
|
||||
[--converters] [--make] [--srcdir SRCDIR] [FILE ...]
|
||||
[--converters] [--make] [--srcdir SRCDIR] [--limited] [FILE ...]
|
||||
|
||||
.. option:: -h, --help
|
||||
|
||||
@ -193,6 +193,11 @@ The CLI supports the following options:
|
||||
A file to exclude in :option:`--make` mode.
|
||||
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 ...
|
||||
|
||||
The list of files to process.
|
||||
@ -1905,6 +1910,22 @@ blocks embedded in Python files look slightly different. They look like this:
|
||||
#/*[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:
|
||||
|
||||
How to override the generated signature
|
||||
|
@ -1,2 +1,3 @@
|
||||
: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…
Reference in New Issue
Block a user