mirror of
https://github.com/python/cpython.git
synced 2025-10-21 14:12:27 +00:00
gh-117680: make _PyInstructionSequence a PyObject and use it in tests (#117629)
This commit is contained in:
parent
ae8dfd2761
commit
c179c0e6cb
17 changed files with 838 additions and 242 deletions
|
@ -22,6 +22,7 @@
|
|||
#include "pycore_gc.h" // PyGC_Head
|
||||
#include "pycore_hashtable.h" // _Py_hashtable_new()
|
||||
#include "pycore_initconfig.h" // _Py_GetConfigsAsDict()
|
||||
#include "pycore_instruction_sequence.h" // _PyInstructionSequence_New()
|
||||
#include "pycore_interp.h" // _PyInterpreterState_GetConfigCopy()
|
||||
#include "pycore_long.h" // _PyLong_Sign()
|
||||
#include "pycore_object.h" // _PyObject_IsFreed()
|
||||
|
@ -723,6 +724,19 @@ _testinternalcapi_compiler_cleandoc_impl(PyObject *module, PyObject *doc)
|
|||
return _PyCompile_CleanDoc(doc);
|
||||
}
|
||||
|
||||
/*[clinic input]
|
||||
|
||||
_testinternalcapi.new_instruction_sequence -> object
|
||||
|
||||
Return a new, empty InstructionSequence.
|
||||
[clinic start generated code]*/
|
||||
|
||||
static PyObject *
|
||||
_testinternalcapi_new_instruction_sequence_impl(PyObject *module)
|
||||
/*[clinic end generated code: output=ea4243fddb9057fd input=1dec2591b173be83]*/
|
||||
{
|
||||
return _PyInstructionSequence_New();
|
||||
}
|
||||
|
||||
/*[clinic input]
|
||||
|
||||
|
@ -1952,6 +1966,7 @@ static PyMethodDef module_functions[] = {
|
|||
{"set_eval_frame_default", set_eval_frame_default, METH_NOARGS, NULL},
|
||||
{"set_eval_frame_record", set_eval_frame_record, METH_O, NULL},
|
||||
_TESTINTERNALCAPI_COMPILER_CLEANDOC_METHODDEF
|
||||
_TESTINTERNALCAPI_NEW_INSTRUCTION_SEQUENCE_METHODDEF
|
||||
_TESTINTERNALCAPI_COMPILER_CODEGEN_METHODDEF
|
||||
_TESTINTERNALCAPI_OPTIMIZE_CFG_METHODDEF
|
||||
_TESTINTERNALCAPI_ASSEMBLE_CODE_OBJECT_METHODDEF
|
||||
|
|
20
Modules/clinic/_testinternalcapi.c.h
generated
20
Modules/clinic/_testinternalcapi.c.h
generated
|
@ -67,6 +67,24 @@ exit:
|
|||
return return_value;
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_testinternalcapi_new_instruction_sequence__doc__,
|
||||
"new_instruction_sequence($module, /)\n"
|
||||
"--\n"
|
||||
"\n"
|
||||
"Return a new, empty InstructionSequence.");
|
||||
|
||||
#define _TESTINTERNALCAPI_NEW_INSTRUCTION_SEQUENCE_METHODDEF \
|
||||
{"new_instruction_sequence", (PyCFunction)_testinternalcapi_new_instruction_sequence, METH_NOARGS, _testinternalcapi_new_instruction_sequence__doc__},
|
||||
|
||||
static PyObject *
|
||||
_testinternalcapi_new_instruction_sequence_impl(PyObject *module);
|
||||
|
||||
static PyObject *
|
||||
_testinternalcapi_new_instruction_sequence(PyObject *module, PyObject *Py_UNUSED(ignored))
|
||||
{
|
||||
return _testinternalcapi_new_instruction_sequence_impl(module);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(_testinternalcapi_compiler_codegen__doc__,
|
||||
"compiler_codegen($module, /, ast, filename, optimize, compile_mode=0)\n"
|
||||
"--\n"
|
||||
|
@ -282,4 +300,4 @@ _testinternalcapi_test_long_numbits(PyObject *module, PyObject *Py_UNUSED(ignore
|
|||
{
|
||||
return _testinternalcapi_test_long_numbits_impl(module);
|
||||
}
|
||||
/*[clinic end generated code: output=679bf53bbae20085 input=a9049054013a1b77]*/
|
||||
/*[clinic end generated code: output=9804015d77d36c77 input=a9049054013a1b77]*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue