]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-42171: Add PEP573-related items to the limited API (GH-23009)
authorPetr Viktorin <encukou@gmail.com>
Tue, 10 Nov 2020 13:47:31 +0000 (14:47 +0100)
committerGitHub <noreply@github.com>
Tue, 10 Nov 2020 13:47:31 +0000 (05:47 -0800)
Doc/c-api/structures.rst
Include/methodobject.h
Misc/NEWS.d/next/C API/2020-10-27-21-10-14.bpo-42171.S3FWTP.rst [new file with mode: 0644]
PC/python3dll.c

index 03fe479165ffa962e9f7f146c4fcd357f10ad3c9..37602ed5b4dc789c6aadaeccccd302c82c8a6fb7 100644 (file)
@@ -263,10 +263,12 @@ There are these calling conventions:
    of :c:type:`PyObject*` values indicating the arguments and the third
    parameter is the number of arguments (the length of the array).
 
-   This is not part of the :ref:`limited API <stable>`.
-
    .. versionadded:: 3.7
 
+   .. versionchanged:: 3.10
+
+      ``METH_FASTCALL`` is now part of the stable ABI.
+
 
 .. data:: METH_FASTCALL | METH_KEYWORDS
 
index 12e049b4043ba59fe15ea709f261cdce10a29a79..5d06d7691ba324a2f6474fa7e848bba91567bd43 100644 (file)
@@ -73,7 +73,7 @@ PyAPI_FUNC(PyObject *) PyCMethod_New(PyMethodDef *, PyObject *,
 
 #define METH_COEXIST   0x0040
 
-#ifndef Py_LIMITED_API
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03100000
 #define METH_FASTCALL  0x0080
 #endif
 
diff --git a/Misc/NEWS.d/next/C API/2020-10-27-21-10-14.bpo-42171.S3FWTP.rst b/Misc/NEWS.d/next/C API/2020-10-27-21-10-14.bpo-42171.S3FWTP.rst
new file mode 100644 (file)
index 0000000..5dfbb23
--- /dev/null
@@ -0,0 +1,4 @@
+The :c:data:`METH_FASTCALL` calling convention is added to the limited API.
+The functions  :c:func:`PyModule_AddType`, :c:func:`PyType_FromModuleAndSpec`,
+:c:func:`PyType_GetModule` and :c:func:`PyType_GetModuleState` are added to
+the limited API on Windows.
index d1fdd0ac54ca8d84c14cac68560ee78f3147938e..27cc315de2dd1996caf0943c04690ba1b8aa0f9a 100644 (file)
@@ -344,6 +344,7 @@ EXPORT_FUNC(PyModule_AddFunctions)
 EXPORT_FUNC(PyModule_AddIntConstant)
 EXPORT_FUNC(PyModule_AddObject)
 EXPORT_FUNC(PyModule_AddStringConstant)
+EXPORT_FUNC(PyModule_AddType)
 EXPORT_FUNC(PyModule_Create2)
 EXPORT_FUNC(PyModule_ExecDef)
 EXPORT_FUNC(PyModule_FromDefAndSpec2)
@@ -547,9 +548,12 @@ EXPORT_FUNC(PyTuple_Size)
 EXPORT_FUNC(PyType_ClearCache)
 EXPORT_FUNC(PyType_FromSpec)
 EXPORT_FUNC(PyType_FromSpecWithBases)
+EXPORT_FUNC(PyType_FromModuleAndSpec)
 EXPORT_FUNC(PyType_GenericAlloc)
 EXPORT_FUNC(PyType_GenericNew)
 EXPORT_FUNC(PyType_GetFlags)
+EXPORT_FUNC(PyType_GetModule)
+EXPORT_FUNC(PyType_GetModuleState)
 EXPORT_FUNC(PyType_GetSlot)
 EXPORT_FUNC(PyType_IsSubtype)
 EXPORT_FUNC(PyType_Modified)