The new Phase-1 parity gate (branch backend-parity-gate, lands with the strict-mode audit) classifies the 16 test/gold-aot fixtures under *ir-compile-strict*. Result: 10 genuinely AOT-lower (Tier 1, all in cross-backend parity), 6 compile only via silent trampoline/bytecode fallback (Tier 2) — i.e. they run under -tags gogen_ir but their lowering never actually happens, the #660 failure mode made visible per-fixture:
| Fixture |
Failure class under strict |
Existing tracking |
binding.lg |
dynamic binding / push-binding conveyance does not lower |
— (this issue) |
ir_pipeline.lg |
@f deref / push-binding rot |
— (this issue) |
pipeline_dump_ir.lg |
same @f deref rot (nil deref under strict; runtime error under default gogen) |
— (this issue) |
closure_capture.lg |
closure capture shape does not lower strict |
— (this issue) |
math_float.lg |
float arithmetic lowering |
#551, #562 |
typed_cross_fn.lg |
cross-fn typed signature |
#554 |
Why it matters: these six sit on the highest-blast-radius semantics for AOT (dynamic binding conveyance, closure capture) — exactly where a silent miscompile would be catastrophic. Until they lower strict, they are excluded from parity coverage (honest Tier-2 frontier) rather than counted as green.
Ask: close the untracked classes (binding conveyance / @f deref rot / closure capture) so these fixtures graduate to Tier 1 and the parity gate's coverage ratchets up. Related: #660 (the silent-fallback disease generally), #262 (gogen gap-closing epic).
The new Phase-1 parity gate (branch
backend-parity-gate, lands with the strict-mode audit) classifies the 16test/gold-aotfixtures under*ir-compile-strict*. Result: 10 genuinely AOT-lower (Tier 1, all in cross-backend parity), 6 compile only via silent trampoline/bytecode fallback (Tier 2) — i.e. they run under-tags gogen_irbut their lowering never actually happens, the #660 failure mode made visible per-fixture:binding.lgir_pipeline.lg@fderef / push-binding rotpipeline_dump_ir.lg@fderef rot (nil deref under strict; runtime error under default gogen)closure_capture.lgmath_float.lgtyped_cross_fn.lgWhy it matters: these six sit on the highest-blast-radius semantics for AOT (dynamic binding conveyance, closure capture) — exactly where a silent miscompile would be catastrophic. Until they lower strict, they are excluded from parity coverage (honest Tier-2 frontier) rather than counted as green.
Ask: close the untracked classes (binding conveyance /
@fderef rot / closure capture) so these fixtures graduate to Tier 1 and the parity gate's coverage ratchets up. Related: #660 (the silent-fallback disease generally), #262 (gogen gap-closing epic).