summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/c-api/init.rst11
-rw-r--r--Doc/whatsnew/3.11.rst11
-rw-r--r--Include/cpython/ceval.h2
-rw-r--r--Include/cpython/pystate.h10
-rw-r--r--Include/internal/pycore_ceval.h5
-rw-r--r--Include/internal/pycore_interp.h16
-rw-r--r--Include/internal/pycore_pystate.h2
7 files changed, 15 insertions, 42 deletions
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst
index 82c4ace..3fda9c3 100644
--- a/Doc/c-api/init.rst
+++ b/Doc/c-api/init.rst
@@ -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".
diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst
index a572ff6..d580563 100644
--- a/Doc/whatsnew/3.11.rst
+++ b/Doc/whatsnew/3.11.rst
@@ -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
----------
diff --git a/Include/cpython/ceval.h b/Include/cpython/ceval.h
index 65aae2d..9d4eeaf 100644
--- a/Include/cpython/ceval.h
+++ b/Include/cpython/ceval.h
@@ -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);
diff --git a/Include/cpython/pystate.h b/Include/cpython/pystate.h
index e346d74..1af21a2 100644
--- a/Include/cpython/pystate.h
+++ b/Include/cpython/pystate.h
@@ -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.
diff --git a/Include/internal/pycore_ceval.h b/Include/internal/pycore_ceval.h
index b29b496..45d26a3 100644
--- a/Include/internal/pycore_ceval.h
+++ b/Include/internal/pycore_ceval.h
@@ -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)
{
diff --git a/Include/internal/pycore_interp.h b/Include/internal/pycore_interp.h
index 592d438..d556279 100644
--- a/Include/internal/pycore_interp.h
+++ b/Include/internal/pycore_interp.h
@@ -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
diff --git a/Include/internal/pycore_pystate.h b/Include/internal/pycore_pystate.h
index c463347..c4bc53c 100644
--- a/Include/internal/pycore_pystate.h
+++ b/Include/internal/pycore_pystate.h
@@ -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.