Replies: 2 comments 1 reply
-
|
Beta Was this translation helpful? Give feedback.
-
Note that eval_breaker applies to more than just the GIL, at least in the main thread of the main interpreter. |
Beta Was this translation helpful? Give feedback.
-
There are a few interpreter-related features that it would be nice for a JIT to be able to replace: currently a JIT has to implement these features the exact way the interpreter does (or break them), but a JIT can have a more efficient implementation.
The ones I can think of are:
PyFrame_GetLineNumber()
: a JIT doesn't need to keepf_lasti
up to date except for this feature, since it can compute this on-demand using a mapping tablePyEval_SetProfile
/PyEval_SetTrace
-- the interpreter implements these by polling them, but it'd be nice to be able to speculate that they're not called and deoptimize if they are calledPyFrame_LocalsToFast
-- we want to be able to speculate that the fastlocals array didn't change in unexpected ways, so it'd be nice to hook this function and deoptimize if it's called. On a related note, Pyston doesn't currently need this but it seems to make sense to also makePyFrame_FastToLocals
hookable as well in order to support different ways of representing local variables.@carljm @itamaro @undingen
Beta Was this translation helpful? Give feedback.
All reactions