
On 01. 04. 22 11:01, Victor Stinner wrote:
Hi,
Update on this issue: I merged my 2 PRs. https://bugs.python.org/issue46850
The following APIs have been moved to the internal C API:
- _PyFrameEvalFunction type - _PyInterpreterState_GetEvalFrameFunc() - _PyInterpreterState_SetEvalFrameFunc() - _PyEval_EvalFrameDefault()
Really? I haven't seen any support for that in this thread or on the issue, except from you. Now, the people who'd like a non-breaking solution will now need rush to develop and merge one until the next release, or the API breaks for users and it'll be too late to do anything about it. Meanwhile, you're off to make more changes. That is, frankly, very frustrating. Could you please stop unilaterally breaking documented API?
If you use any of these API in your debugger/profiler project, you have do add something like the code below to your project: --- #ifndef Py_BUILD_CORE_MODULE # define Py_BUILD_CORE_MODULE #endif #include <Python.h> #if PY_VERSION_HEX >= 0x030B00A7 # include <internal/pycore_interp.h> // _PyInterpreterState_SetEvalFrameFunc() # include <internal/pycore_ceval.h> // _PyEval_EvalFrameDefault() #endif ---
IMO, this is a terrible suggestion that undermines the whole point of having a private API.
Contact me if you need help to update your affected projects.
IMO PEP 523 doesn't have to be updated since it already says that the APIs are private.
Since these APIs were added by PEP 523, I documented these changes in What's New in Python 3.11 > C API > Porting to Python 3.11,even if these APIs are private.
Victor