skean is a project hack which (ab)uses PEP 523 to make certain python function calls reactive (see README for an example). I am struggling to upgrade to 3.11 because of “[C API] Move PyFrameObject to the internal C API” (gh-90992). I agree with Mark Shannon’s advice that I “probably want to operate on the _PyInterpreterFrame struct, rather than the PyFrameObject.” Unfortunately, skean.pyx squirrels precious info in the .f_trace member of PyFrameObject to track callers.
What is this group’s advice to migrate these intrusive mutations given _PyInterpreterFrame is opaque?
I have revisited this issue today, see my progress in jburgy/skean#2. As the PR explains, I am not at an impasse and looking for a way to access current locals. Suggestions?
Ok, I broke some (all?) rules and found that (<PyObject **>_frame) + 9 lets me access the current _PyInterpreterFrame’s localplus. No such thing as opacity in C!