summaryrefslogtreecommitdiffstats
path: root/Doc/whatsnew
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2019-06-14 17:43:43 (GMT)
committerGitHub <noreply@github.com>2019-06-14 17:43:43 (GMT)
commitbd5798f6d4f6960fd6b49976bdf4326be77f4277 (patch)
treed2643ffbf33796726d1cfe6dcdaddbdee20c8b61 /Doc/whatsnew
parent5884043252473ac733aba1d3251d4debe72511e5 (diff)
downloadcpython-bd5798f6d4f6960fd6b49976bdf4326be77f4277.zip
cpython-bd5798f6d4f6960fd6b49976bdf4326be77f4277.tar.gz
cpython-bd5798f6d4f6960fd6b49976bdf4326be77f4277.tar.bz2
Document C API changes in What's New in Python 3.8 (GH-14092)
Diffstat (limited to 'Doc/whatsnew')
-rw-r--r--Doc/whatsnew/3.8.rst27
1 files changed, 27 insertions, 0 deletions
diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst
index 3e60713..b63bcef 100644
--- a/Doc/whatsnew/3.8.rst
+++ b/Doc/whatsnew/3.8.rst
@@ -955,6 +955,33 @@ Optimizations
Build and C API Changes
=======================
+* The header files have been reorganized to better separate the different kinds
+ of APIs:
+
+ * ``Include/*.h`` should be the portable public stable C API.
+ * ``Include/cpython/*.h`` should be the unstable C API specific to CPython;
+ public API, with some private API prefixed by ``_Py`` or ``_PY``.
+ * ``Include/internal/*.h`` is the private internal C API very specific to
+ CPython. This API comes with no backward compatibility warranty and should
+ not be used outside CPython. It is only exposed for very specific needs
+ like debuggers and profiles which has to access to CPython internals
+ without calling functions. This API is now installed by ``make install``.
+
+ (Contributed by Victor Stinner in :issue:`35134` and :issue:`35081`,
+ work initiated by Eric Snow in Python 3.7)
+
+* Some macros have been converted to static inline functions: parameter types
+ and return type are well defined, they don't have issues specific to macros,
+ variables have a local scopes. Examples:
+
+ * :c:func:`Py_INCREF`, :c:func:`Py_DECREF`
+ * :c:func:`Py_XINCREF`, :c:func:`Py_XDECREF`
+ * :c:func:`PyObject_INIT`, :c:func:`PyObject_INIT_VAR`
+ * Private functions: :c:func:`_PyObject_GC_TRACK`,
+ :c:func:`_PyObject_GC_UNTRACK`, :c:func:`_Py_Dealloc`
+
+ (Contributed by Victor Stinner in :issue:`35059`.)
+
* The :c:func:`PyByteArray_Init` and :c:func:`PyByteArray_Fini` functions have
been removed. They did nothing since Python 2.7.4 and Python 3.2.0, were
excluded from the limited API (stable ABI), and were not documented.