Skip to content

Commit

Permalink
python/cpython#108494: Argument Clinic: Document how to generate code…
Browse files Browse the repository at this point in the history
… that uses the limited C API (python/cpython#108584)

Co-authored-by: Alex Waygood <[email protected]>
Co-authored-by: Erlend E. Aasland <[email protected]>
  • Loading branch information
3 people committed Oct 1, 2023
1 parent 30dfd7c commit 0128018
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion development-tools/clinic.rst
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,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

Expand Down Expand Up @@ -187,6 +187,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.
Expand Down Expand Up @@ -1899,6 +1904,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
Expand Down

0 comments on commit 0128018

Please sign in to comment.