Allow the f_func field of the _PyInterpreterFrame struct to be any object (and rename it) #96237
Closed as not planned
f_func field of the _PyInterpreterFrame struct to be any object (and rename it) #96237
In order to better support shim frames, trampolines, Cython frames and other such bits and pieces, we need to relax the requirement that the
f_funcfield is a function.The only reason for it to be a function is that it needs to hold a strong reference to builtins and globals, as the frame only has a borrowed reference to those. Any object with those references will do.
In fact, for code that has no builtins or globals (many shims and trampolines) there is no need for those references and
f_funccould even beNone.