diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index b583c2f31c4..13c1e723066 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -627,14 +627,17 @@ Removed ``Py_IS_INFINITY()`` macro. (Contributed by Victor Stinner in :issue:`45440`.) -* Remove two functions from the limited C API: +* The following items are no longer available when :c:macro:`Py_LIMITED_API` + is defined: * :c:func:`PyMarshal_WriteLongToFile` * :c:func:`PyMarshal_WriteObjectToFile` + * :c:func:`PyMarshal_ReadObjectFromString` + * :c:func:`PyMarshal_WriteObjectToString` + * the ``Py_MARSHAL_VERSION`` macro - The :pep:`384` excludes functions expecting ``FILE*`` from the stable ABI. + These are not part of the :ref:`limited API `. - Remove also the ``Py_MARSHAL_VERSION`` macro from the limited C API. (Contributed by Victor Stinner in :issue:`45474`.) * Exclude :c:func:`PyWeakref_GET_OBJECT` from the limited C API. It never diff --git a/Include/marshal.h b/Include/marshal.h index 36ef6a779ec..f8b0de80cfc 100644 --- a/Include/marshal.h +++ b/Include/marshal.h @@ -3,6 +3,8 @@ #ifndef Py_MARSHAL_H #define Py_MARSHAL_H +#ifndef Py_LIMITED_API + #ifdef __cplusplus extern "C" { #endif @@ -11,7 +13,6 @@ PyAPI_FUNC(PyObject *) PyMarshal_ReadObjectFromString(const char *, Py_ssize_t); PyAPI_FUNC(PyObject *) PyMarshal_WriteObjectToString(PyObject *, int); -#ifndef Py_LIMITED_API #define Py_MARSHAL_VERSION 4 PyAPI_FUNC(long) PyMarshal_ReadLongFromFile(FILE *); @@ -21,9 +22,10 @@ PyAPI_FUNC(PyObject *) PyMarshal_ReadLastObjectFromFile(FILE *); PyAPI_FUNC(void) PyMarshal_WriteLongToFile(long, FILE *, int); PyAPI_FUNC(void) PyMarshal_WriteObjectToFile(PyObject *, FILE *, int); -#endif #ifdef __cplusplus } #endif + +#endif /* Py_LIMITED_API */ #endif /* !Py_MARSHAL_H */ diff --git a/Misc/NEWS.d/next/C API/2021-10-14-22-16-56.bpo-45474.1OkJQh.rst b/Misc/NEWS.d/next/C API/2021-10-14-22-16-56.bpo-45474.1OkJQh.rst index 90bf498579c..d41f1b72b89 100644 --- a/Misc/NEWS.d/next/C API/2021-10-14-22-16-56.bpo-45474.1OkJQh.rst +++ b/Misc/NEWS.d/next/C API/2021-10-14-22-16-56.bpo-45474.1OkJQh.rst @@ -1,10 +1,11 @@ -Remove two functions from the limited C API: +The following items are no longer available when ``Py_LIMITED_API`` is defined: * :c:func:`PyMarshal_WriteLongToFile` * :c:func:`PyMarshal_WriteObjectToFile` +* :c:func:`PyMarshal_ReadObjectFromString` +* :c:func:`PyMarshal_WriteObjectToString` +* the ``Py_MARSHAL_VERSION`` macro -The :pep:`384` excludes functions expecting ``FILE*`` from the stable ABI. - -Remove also the ``Py_MARSHAL_VERSION`` macro from the limited C API. +These are not part of the :ref:`limited API `. Patch by Victor Stinner.