mirror of https://github.com/python/cpython
Revert "bpo-46850: Move _PyEval_EvalFrameDefault() to internal C API (GH-32052)" (GH-32343)
* Revert "bpo-46850: Move _PyInterpreterState_SetEvalFrameFunc() to internal C API (GH-32054)" This reverts commitf877b40e3f
. * Revert "bpo-46850: Move _PyEval_EvalFrameDefault() to internal C API (GH-32052)" This reverts commitb9a5522dd9
.
This commit is contained in:
parent
1d3e743599
commit
2b4f2f5fa4
|
@ -1228,25 +1228,18 @@ All of the following functions must be called after :c:func:`Py_Initialize`.
|
|||
|
||||
.. versionadded:: 3.8
|
||||
|
||||
.. c:type:: PyObject* (*_PyFrameEvalFunction)(PyThreadState *tstate, _PyInterpreterFrame *frame, int throwflag)
|
||||
|
||||
Internal C API.
|
||||
.. c:type:: PyObject* (*_PyFrameEvalFunction)(PyThreadState *tstate, PyFrameObject *frame, int throwflag)
|
||||
|
||||
Type of a frame evaluation function.
|
||||
|
||||
The *throwflag* parameter is used by the ``throw()`` method of generators:
|
||||
if non-zero, handle the current exception.
|
||||
|
||||
.. versionchanged:: 3.11
|
||||
The second parameter type becomes ``_PyInterpreterFrame``.
|
||||
|
||||
.. versionchanged:: 3.9
|
||||
The function now takes a *tstate* parameter.
|
||||
|
||||
.. c:function:: _PyFrameEvalFunction _PyInterpreterState_GetEvalFrameFunc(PyInterpreterState *interp)
|
||||
|
||||
Internal C API.
|
||||
|
||||
Get the frame evaluation function.
|
||||
|
||||
See the :pep:`523` "Adding a frame evaluation API to CPython".
|
||||
|
@ -1255,8 +1248,6 @@ All of the following functions must be called after :c:func:`Py_Initialize`.
|
|||
|
||||
.. c:function:: void _PyInterpreterState_SetEvalFrameFunc(PyInterpreterState *interp, _PyFrameEvalFunction eval_frame)
|
||||
|
||||
Internal C API.
|
||||
|
||||
Set the frame evaluation function.
|
||||
|
||||
See the :pep:`523` "Adding a frame evaluation API to CPython".
|
||||
|
|
|
@ -1338,17 +1338,6 @@ Porting to Python 3.11
|
|||
* Distributors are encouraged to build Python with the optimized Blake2
|
||||
library `libb2`_.
|
||||
|
||||
* Move the private undocumented ``_PyEval_EvalFrameDefault()`` function to the
|
||||
internal C API. The function now uses the ``_PyInterpreterFrame`` type which
|
||||
is part of the internal C API.
|
||||
(Contributed by Victor Stinner in :issue:`46850`.)
|
||||
|
||||
* Move the private ``_PyFrameEvalFunction`` type, and private
|
||||
``_PyInterpreterState_GetEvalFrameFunc()`` and
|
||||
``_PyInterpreterState_SetEvalFrameFunc()`` functions to the internal C API.
|
||||
The ``_PyFrameEvalFunction`` callback function type now uses the
|
||||
``_PyInterpreterFrame`` type which is part of the internal C API.
|
||||
(Contributed by Victor Stinner in :issue:`46850`.)
|
||||
|
||||
Deprecated
|
||||
----------
|
||||
|
|
|
@ -15,6 +15,8 @@ PyAPI_FUNC(PyObject *) _PyEval_GetBuiltinId(_Py_Identifier *);
|
|||
flag was set, else return 0. */
|
||||
PyAPI_FUNC(int) PyEval_MergeCompilerFlags(PyCompilerFlags *cf);
|
||||
|
||||
PyAPI_FUNC(PyObject *) _PyEval_EvalFrameDefault(PyThreadState *tstate, struct _PyInterpreterFrame *f, int exc);
|
||||
|
||||
PyAPI_FUNC(void) _PyEval_SetSwitchInterval(unsigned long microseconds);
|
||||
PyAPI_FUNC(unsigned long) _PyEval_GetSwitchInterval(void);
|
||||
|
||||
|
|
|
@ -259,6 +259,16 @@ PyAPI_FUNC(PyThreadState *) PyInterpreterState_ThreadHead(PyInterpreterState *);
|
|||
PyAPI_FUNC(PyThreadState *) PyThreadState_Next(PyThreadState *);
|
||||
PyAPI_FUNC(void) PyThreadState_DeleteCurrent(void);
|
||||
|
||||
/* Frame evaluation API */
|
||||
|
||||
typedef PyObject* (*_PyFrameEvalFunction)(PyThreadState *tstate, struct _PyInterpreterFrame *, int);
|
||||
|
||||
PyAPI_FUNC(_PyFrameEvalFunction) _PyInterpreterState_GetEvalFrameFunc(
|
||||
PyInterpreterState *interp);
|
||||
PyAPI_FUNC(void) _PyInterpreterState_SetEvalFrameFunc(
|
||||
PyInterpreterState *interp,
|
||||
_PyFrameEvalFunction eval_frame);
|
||||
|
||||
PyAPI_FUNC(const PyConfig*) _PyInterpreterState_GetConfig(PyInterpreterState *interp);
|
||||
|
||||
/* Get a copy of the current interpreter configuration.
|
||||
|
|
|
@ -59,11 +59,6 @@ extern PyObject* _PyEval_BuiltinsFromGlobals(
|
|||
PyObject *globals);
|
||||
|
||||
|
||||
PyAPI_FUNC(PyObject *) _PyEval_EvalFrameDefault(
|
||||
PyThreadState *tstate,
|
||||
struct _PyInterpreterFrame *frame,
|
||||
int throwflag);
|
||||
|
||||
static inline PyObject*
|
||||
_PyEval_EvalFrame(PyThreadState *tstate, struct _PyInterpreterFrame *frame, int throwflag)
|
||||
{
|
||||
|
|
|
@ -17,9 +17,9 @@ extern "C" {
|
|||
#include "pycore_dict.h" // struct _Py_dict_state
|
||||
#include "pycore_exceptions.h" // struct _Py_exc_state
|
||||
#include "pycore_floatobject.h" // struct _Py_float_state
|
||||
#include "pycore_gc.h" // struct _gc_runtime_state
|
||||
#include "pycore_genobject.h" // struct _Py_async_gen_state
|
||||
#include "pycore_gil.h" // struct _gil_runtime_state
|
||||
#include "pycore_gc.h" // struct _gc_runtime_state
|
||||
#include "pycore_list.h" // struct _Py_list_state
|
||||
#include "pycore_tuple.h" // struct _Py_tuple_state
|
||||
#include "pycore_typeobject.h" // struct type_cache
|
||||
|
@ -71,20 +71,6 @@ struct atexit_state {
|
|||
};
|
||||
|
||||
|
||||
/* Frame evaluation API (PEP 523) */
|
||||
|
||||
typedef PyObject* (*_PyFrameEvalFunction) (
|
||||
PyThreadState *tstate,
|
||||
struct _PyInterpreterFrame *frame,
|
||||
int throwflag);
|
||||
|
||||
PyAPI_FUNC(_PyFrameEvalFunction) _PyInterpreterState_GetEvalFrameFunc(
|
||||
PyInterpreterState *interp);
|
||||
PyAPI_FUNC(void) _PyInterpreterState_SetEvalFrameFunc(
|
||||
PyInterpreterState *interp,
|
||||
_PyFrameEvalFunction eval_frame);
|
||||
|
||||
|
||||
/* interpreter state */
|
||||
|
||||
/* PyInterpreterState holds the global state for one of the runtime's
|
||||
|
|
|
@ -8,7 +8,7 @@ extern "C" {
|
|||
# error "this header requires Py_BUILD_CORE define"
|
||||
#endif
|
||||
|
||||
#include "pycore_runtime.h" // _PyRuntime
|
||||
#include "pycore_runtime.h" /* PyRuntimeState */
|
||||
|
||||
|
||||
/* Check if the current thread is the main thread.
|
||||
|
|
Loading…
Reference in New Issue