Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bd5798f

Browse files
authored
Document C API changes in What's New in Python 3.8 (GH-14092)
1 parent 5884043 commit bd5798f

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

Doc/whatsnew/3.8.rst

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -955,6 +955,33 @@ Optimizations
955955
Build and C API Changes
956956
=======================
957957

958+
* The header files have been reorganized to better separate the different kinds
959+
of APIs:
960+
961+
* ``Include/*.h`` should be the portable public stable C API.
962+
* ``Include/cpython/*.h`` should be the unstable C API specific to CPython;
963+
public API, with some private API prefixed by ``_Py`` or ``_PY``.
964+
* ``Include/internal/*.h`` is the private internal C API very specific to
965+
CPython. This API comes with no backward compatibility warranty and should
966+
not be used outside CPython. It is only exposed for very specific needs
967+
like debuggers and profiles which has to access to CPython internals
968+
without calling functions. This API is now installed by ``make install``.
969+
970+
(Contributed by Victor Stinner in :issue:`35134` and :issue:`35081`,
971+
work initiated by Eric Snow in Python 3.7)
972+
973+
* Some macros have been converted to static inline functions: parameter types
974+
and return type are well defined, they don't have issues specific to macros,
975+
variables have a local scopes. Examples:
976+
977+
* :c:func:`Py_INCREF`, :c:func:`Py_DECREF`
978+
* :c:func:`Py_XINCREF`, :c:func:`Py_XDECREF`
979+
* :c:func:`PyObject_INIT`, :c:func:`PyObject_INIT_VAR`
980+
* Private functions: :c:func:`_PyObject_GC_TRACK`,
981+
:c:func:`_PyObject_GC_UNTRACK`, :c:func:`_Py_Dealloc`
982+
983+
(Contributed by Victor Stinner in :issue:`35059`.)
984+
958985
* The :c:func:`PyByteArray_Init` and :c:func:`PyByteArray_Fini` functions have
959986
been removed. They did nothing since Python 2.7.4 and Python 3.2.0, were
960987
excluded from the limited API (stable ABI), and were not documented.

0 commit comments

Comments
 (0)