@@ -955,6 +955,33 @@ Optimizations
955955Build 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