Closed Fidget-Spinner closed 8 months ago
or get rid of these outright
Meaning get rid of the secret super-instructions? That seems problematic though (they exist for a reason). @Fidget-Spinner
To add instruction pointer effects to the DSL, we should have a default which behaves as the status quo. Maybe we could add keyword args to the DSL to make this and other options easier to add independently.
The main problem is that the generator tries to verify that all instructions in a family have the same stack and cache effects, and the secret super-instructions effectively violate the cache effect rule (since that's really the instruction pointer effect).
Maybe the solution is to have a "skip next instruction" flag that isn't considered part of the family effect.
We've add the SKIP_OVER
macro so that these skips are explicit and the INLINE_CACHE_ENTRIES_...
entries are no longer used in bytecodes.c. So it should be easy to identify these "secret superiinstructions"
We have "secret" super instructions like
CALL_NO_KW_LIST_APPEND
, andBINARY_OP_INPLACE_ADD_UNICODE
, and some of theFOR_ITER
family.We should either add the instruction pointer effect to the DSL, or get rid of these outright, as they make alternative interpreters harder to implement.