@@ -75,12 +75,37 @@ the module and a copyright notice if you like).
7575 See :ref: `arg-parsing-string-and-buffers ` for a description of this macro.
7676
7777All user-visible symbols defined by :file: `Python.h ` have a prefix of ``Py `` or
78- ``PY ``, except those defined in standard header files. For convenience, and
79- since they are used extensively by the Python interpreter, ``"Python.h" ``
80- includes a few standard header files: ``<stdio.h> ``, ``<string.h> ``,
81- ``<errno.h> ``, and ``<stdlib.h> ``. If the latter header file does not exist on
82- your system, it declares the functions :c:func: `malloc `, :c:func: `free ` and
83- :c:func: `realloc ` directly.
78+ ``PY ``, except those defined in standard header files.
79+
80+ .. tip ::
81+
82+ For backward compatibility, :file: `Python.h ` includes several standard header files.
83+ C extensions should include the standard headers that they use,
84+ and should not rely on these implicit includes.
85+ If using the limited C API version 3.13 or newer, the implicit includes are:
86+
87+ * ``<assert.h> ``
88+ * ``<intrin.h> `` (on Windows)
89+ * ``<inttypes.h> ``
90+ * ``<limits.h> ``
91+ * ``<math.h> ``
92+ * ``<stdarg.h> ``
93+ * ``<wchar.h> ``
94+ * ``<sys/types.h> `` (if present)
95+
96+ If :c:macro: `Py_LIMITED_API ` is not defined, or is set to version 3.12 or older,
97+ the headers below are also included:
98+
99+ * ``<ctype.h> ``
100+ * ``<unistd.h> `` (on POSIX)
101+
102+ If :c:macro: `Py_LIMITED_API ` is not defined, or is set to version 3.10 or older,
103+ the headers below are also included:
104+
105+ * ``<errno.h> ``
106+ * ``<stdio.h> ``
107+ * ``<stdlib.h> ``
108+ * ``<string.h> ``
84109
85110The next thing we add to our module file is the C function that will be called
86111when the Python expression ``spam.system(string) `` is evaluated (we'll see
0 commit comments