[Python-checkins] gh-106320: Remove _PyFunction_Vectorcall() API (#107071)

vstinner webhook-mailer at python.org
Sat Jul 22 17:44:37 EDT 2023


https://github.com/python/cpython/commit/889851ecc355cad3d79f5692a6dbd3ae3127647b
commit: 889851ecc355cad3d79f5692a6dbd3ae3127647b
branch: main
author: Victor Stinner <vstinner at python.org>
committer: vstinner <vstinner at python.org>
date: 2023-07-22T21:44:33Z
summary:

gh-106320: Remove _PyFunction_Vectorcall() API (#107071)

Move _PyFunction_Vectorcall() API to the internal C API.
No longer export the function.

files:
M Include/cpython/funcobject.h
M Include/internal/pycore_function.h
M Objects/call.c

diff --git a/Include/cpython/funcobject.h b/Include/cpython/funcobject.h
index 6f78f5868d016..de2013323d2c7 100644
--- a/Include/cpython/funcobject.h
+++ b/Include/cpython/funcobject.h
@@ -79,12 +79,6 @@ PyAPI_FUNC(int) PyFunction_SetClosure(PyObject *, PyObject *);
 PyAPI_FUNC(PyObject *) PyFunction_GetAnnotations(PyObject *);
 PyAPI_FUNC(int) PyFunction_SetAnnotations(PyObject *, PyObject *);
 
-PyAPI_FUNC(PyObject *) _PyFunction_Vectorcall(
-    PyObject *func,
-    PyObject *const *stack,
-    size_t nargsf,
-    PyObject *kwnames);
-
 #define _PyFunction_CAST(func) \
     (assert(PyFunction_Check(func)), _Py_CAST(PyFunctionObject*, func))
 
diff --git a/Include/internal/pycore_function.h b/Include/internal/pycore_function.h
index ecbb7001e7d84..e844d323ec792 100644
--- a/Include/internal/pycore_function.h
+++ b/Include/internal/pycore_function.h
@@ -8,6 +8,12 @@ extern "C" {
 #  error "this header requires Py_BUILD_CORE define"
 #endif
 
+extern PyObject* _PyFunction_Vectorcall(
+    PyObject *func,
+    PyObject *const *stack,
+    size_t nargsf,
+    PyObject *kwnames);
+
 #define FUNC_MAX_WATCHERS 8
 
 struct _py_func_state {
diff --git a/Objects/call.c b/Objects/call.c
index 396552d85cfca..b1610dababd46 100644
--- a/Objects/call.c
+++ b/Objects/call.c
@@ -2,6 +2,7 @@
 #include "pycore_call.h"          // _PyObject_CallNoArgsTstate()
 #include "pycore_ceval.h"         // _Py_EnterRecursiveCallTstate()
 #include "pycore_dict.h"          // _PyDict_FromItems()
+#include "pycore_function.h"      // _PyFunction_Vectorcall() definition
 #include "pycore_modsupport.h"    // _Py_VaBuildStack()
 #include "pycore_object.h"        // _PyCFunctionWithKeywords_TrampolineCall()
 #include "pycore_pyerrors.h"      // _PyErr_Occurred()



More information about the Python-checkins mailing list