Context
#373 (unported opcode in a hot loop body declines the whole loop via abort_permanent) was closed after landing the demonstrable ports (CALL_INTRINSIC_1 UnaryPositive, POP_JUMP_IF_NONE/NOT_NONE, LOAD_COMMON_CONSTANT, LOAD_FAST_AND_CLEAR) and documenting the genuine Group-A boundaries. Its final comment recorded a remaining portable tail that otherwise has no tracking home now that #373 is closed. This issue is that home (filed from the 2026-07-06 open-issue audit).
Remaining portable opcodes
Demonstrable now (appear in while-loops that reach a JIT token; porting flips loops_aborted → loops_compiled):
CALL_KW — kwargs residual ABI, non-trivial.
Latent — correct-but-masked until the no-token cliff (#389) is fixed (these appear in FOR_ITER/comprehension loops that never receive a token, so a port cannot demonstrate a win yet):
SET_ADD, MAP_ADD, SET_UPDATE, DICT_UPDATE, DICT_MERGE (need void residuals)
- empty-
{} BUILD_MAP edge
Larger / rarely-hot:
Non-goals
Group A stays abort_permanent — flowspace unsupported_rpython boundaries (async, generators, match, f-strings, closure-cell/LOAD_LOCALS/LOAD_BUILD_CLASS, EXIT_INIT_CHECK, del-family) are parity-correct declines, already justified with per-arm comments.
Dependencies
— filed by Claude (from the #373 close-out comment, so the tail is not lost)
Context
#373 (unported opcode in a hot loop body declines the whole loop via
abort_permanent) was closed after landing the demonstrable ports (CALL_INTRINSIC_1 UnaryPositive,POP_JUMP_IF_NONE/NOT_NONE,LOAD_COMMON_CONSTANT,LOAD_FAST_AND_CLEAR) and documenting the genuine Group-A boundaries. Its final comment recorded a remaining portable tail that otherwise has no tracking home now that #373 is closed. This issue is that home (filed from the 2026-07-06 open-issue audit).Remaining portable opcodes
Demonstrable now (appear in
while-loops that reach a JIT token; porting flipsloops_aborted→loops_compiled):CALL_KW— kwargs residual ABI, non-trivial.Latent — correct-but-masked until the no-token cliff (#389) is fixed (these appear in
FOR_ITER/comprehension loops that never receive a token, so a port cannot demonstrate a win yet):SET_ADD,MAP_ADD,SET_UPDATE,DICT_UPDATE,DICT_MERGE(need void residuals){}BUILD_MAPedgeLarger / rarely-hot:
CALL_FUNCTION_EXMAKE_FUNCTION,SET_FUNCTION_ATTRIBUTE(Defaults arm only)WITH_EXCEPT_START(also masked by JIT: hot loops inside a with-block / comprehension never receive a JIT token (no-token cliff behind #373) #389'swith-block cliff)LOAD_FROM_DICT_OR_GLOBALS(find_global residual, GC-sensitive)CALL_INTRINSIC_1 ListToTuple(majit-synthetic op, needs new infra)Non-goals
Group A stays
abort_permanent— flowspaceunsupported_rpythonboundaries (async, generators, match, f-strings, closure-cell/LOAD_LOCALS/LOAD_BUILD_CLASS,EXIT_INIT_CHECK, del-family) are parity-correct declines, already justified with per-arm comments.Dependencies
with/comprehension loops). The ports themselves are landable earlier but ship dormant.flowcontext.rsrecords as a real op is portable;unsupported_rpythonmeans the decline is correct).— filed by Claude (from the #373 close-out comment, so the tail is not lost)