[Python-checkins] gh-104469 : Convert _testcapi/vectorcall_limited.c to use AC (gh-107857)

corona10 webhook-mailer at python.org
Fri Aug 11 20:57:38 EDT 2023


https://github.com/python/cpython/commit/2e27da18952c6561f48dab706b5911135cedd7cf
commit: 2e27da18952c6561f48dab706b5911135cedd7cf
branch: main
author: nahyeon <55136494+nahyeon-an at users.noreply.github.com>
committer: corona10 <donghee.na92 at gmail.com>
date: 2023-08-12T09:57:35+09:00
summary:

gh-104469 : Convert _testcapi/vectorcall_limited.c to use AC (gh-107857)

files:
A Modules/_testcapi/clinic/vectorcall_limited.c.h
M Modules/_testcapi/vectorcall_limited.c

diff --git a/Modules/_testcapi/clinic/vectorcall_limited.c.h b/Modules/_testcapi/clinic/vectorcall_limited.c.h
new file mode 100644
index 0000000000000..bc89f58b65739
--- /dev/null
+++ b/Modules/_testcapi/clinic/vectorcall_limited.c.h
@@ -0,0 +1,42 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
+#  include "pycore_gc.h"            // PyGC_Head
+#  include "pycore_runtime.h"       // _Py_ID()
+#endif
+
+
+#if defined(LIMITED_API_AVAILABLE)
+
+PyDoc_STRVAR(_testcapi_call_vectorcall__doc__,
+"call_vectorcall($module, callable, /)\n"
+"--\n"
+"\n");
+
+#define _TESTCAPI_CALL_VECTORCALL_METHODDEF    \
+    {"call_vectorcall", (PyCFunction)_testcapi_call_vectorcall, METH_O, _testcapi_call_vectorcall__doc__},
+
+#endif /* defined(LIMITED_API_AVAILABLE) */
+
+#if defined(LIMITED_API_AVAILABLE)
+
+PyDoc_STRVAR(_testcapi_call_vectorcall_method__doc__,
+"call_vectorcall_method($module, callable, /)\n"
+"--\n"
+"\n");
+
+#define _TESTCAPI_CALL_VECTORCALL_METHOD_METHODDEF    \
+    {"call_vectorcall_method", (PyCFunction)_testcapi_call_vectorcall_method, METH_O, _testcapi_call_vectorcall_method__doc__},
+
+#endif /* defined(LIMITED_API_AVAILABLE) */
+
+#ifndef _TESTCAPI_CALL_VECTORCALL_METHODDEF
+    #define _TESTCAPI_CALL_VECTORCALL_METHODDEF
+#endif /* !defined(_TESTCAPI_CALL_VECTORCALL_METHODDEF) */
+
+#ifndef _TESTCAPI_CALL_VECTORCALL_METHOD_METHODDEF
+    #define _TESTCAPI_CALL_VECTORCALL_METHOD_METHODDEF
+#endif /* !defined(_TESTCAPI_CALL_VECTORCALL_METHOD_METHODDEF) */
+/*[clinic end generated code: output=409028b637aba77b input=a9049054013a1b77]*/
diff --git a/Modules/_testcapi/vectorcall_limited.c b/Modules/_testcapi/vectorcall_limited.c
index a96925e840121..9f02c7afa7c97 100644
--- a/Modules/_testcapi/vectorcall_limited.c
+++ b/Modules/_testcapi/vectorcall_limited.c
@@ -1,5 +1,6 @@
 #define Py_LIMITED_API 0x030c0000 // 3.12
 #include "parts.h"
+#include "clinic/vectorcall_limited.c.h"
 
 #ifdef LIMITED_API_AVAILABLE
 
@@ -7,6 +8,11 @@
 
 /* Test Vectorcall in the limited API */
 
+/*[clinic input]
+module _testcapi
+[clinic start generated code]*/
+/*[clinic end generated code: output=da39a3ee5e6b4b0d input=6361033e795369fc]*/
+
 static PyObject *
 LimitedVectorCallClass_tpcall(PyObject *self, PyObject *args, PyObject *kwargs) {
     return PyUnicode_FromString("tp_call called");
@@ -32,8 +38,16 @@ LimitedVectorCallClass_new(PyTypeObject *tp, PyTypeObject *a, PyTypeObject *kw)
     return self;
 }
 
+/*[clinic input]
+_testcapi.call_vectorcall
+
+    callable: object
+    /
+[clinic start generated code]*/
+
 static PyObject *
-call_vectorcall(PyObject* self, PyObject *callable)
+_testcapi_call_vectorcall(PyObject *module, PyObject *callable)
+/*[clinic end generated code: output=bae81eec97fcaad7 input=55d88f92240957ee]*/
 {
     PyObject *args[3] = { NULL, NULL, NULL };
     PyObject *kwname = NULL, *kwnames = NULL, *result = NULL;
@@ -77,8 +91,16 @@ call_vectorcall(PyObject* self, PyObject *callable)
     return result;
 }
 
+/*[clinic input]
+_testcapi.call_vectorcall_method
+
+    callable: object
+    /
+[clinic start generated code]*/
+
 static PyObject *
-call_vectorcall_method(PyObject* self, PyObject *callable)
+_testcapi_call_vectorcall_method(PyObject *module, PyObject *callable)
+/*[clinic end generated code: output=e661f48dda08b6fb input=5ba81c27511395b6]*/
 {
     PyObject *args[3] = { NULL, NULL, NULL };
     PyObject *name = NULL, *kwname = NULL,
@@ -153,8 +175,8 @@ static PyType_Spec LimitedVectorCallClass_spec = {
 };
 
 static PyMethodDef TestMethods[] = {
-    {"call_vectorcall", call_vectorcall, METH_O},
-    {"call_vectorcall_method", call_vectorcall_method, METH_O},
+    _TESTCAPI_CALL_VECTORCALL_METHODDEF
+    _TESTCAPI_CALL_VECTORCALL_METHOD_METHODDEF
     {NULL},
 };
 



More information about the Python-checkins mailing list