Skip to content

strict-mode AOT: 6/16 gold-aot fixtures only run via silent fallback — binding conveyance, @f deref rot, closure capture untracked #678

Description

@nnunley

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions