After the CM pin advance to 2f13265 (CM#705 merge; polyengine#173), a bounded set of new conformance rows cannot pass on wasmtime-environ 47.0.3 and are xfailed under pin-drift classes. This issue is the register; the wasmtime bump (49.x, cf. the parked findings entries from #246/#247 and the case-folding gap #238) retires every class below. Failure direction is benign throughout: 47-era tooling over-rejects now-valid programs or under-rejects now-invalid ones at validation time — no soundness exposure at runtime.
Class: fact-reentrance-47 — FACT compiles now-valid reentrance to static traps
wasmtime-environ 47's FACT emits an unconditional CannotEnterComponent trap at translation time for same-instance/ancestor lower→lift pairs (upstream trampoline.rs; documented at runtime/src/intrinsics/fact_calls.ts header). CM#705 makes these calls valid. Affected: 10 of 13 directives in test/async/reentrance.wast (all route at least one executed adapter edge through an ancestor lift — including the sibling-reentrance cases 4/10/11, whose wiring passes through a root-level lift). The three passable directives (parent-to-child control, the never-executes-adapter branch, and the dtor-reentrance case) are NOT in this class — the dtor case is gated on polyengine's own gate removal (#173) instead.
Class: name-rules-47 — hyphen-insensitive strongly-unique names (CM#703/#704)
wasmparser at the 47 pin predates hyphen-insensitivity and transitive strongly-unique rules: 5 new assert_invalid directives in test/validation/kebab.wast are accepted (missing rejection). Extends the case-folding gap already tracked in #238 and the findings entries (#246).
Class: max-value-size-47 — CM#688 static size bound
test/validation/max-value-size.wast (new): 7 assert_invalid directives pinning elem_size(t) < 2^28, including product-overflow and u32-wrap cases. The 47-era validator accepts all 7. Note: this file is in upstream's own test/nyi.txt at the pin — even current wasmtime does not implement it; verify at bump time whether the bumped wasmparser enforces it or the class needs to survive the bump with a narrower name.
Exit criteria
After the CM pin advance to
2f13265(CM#705 merge; polyengine#173), a bounded set of new conformance rows cannot pass on wasmtime-environ 47.0.3 and are xfailed under pin-drift classes. This issue is the register; the wasmtime bump (49.x, cf. the parked findings entries from #246/#247 and the case-folding gap #238) retires every class below. Failure direction is benign throughout: 47-era tooling over-rejects now-valid programs or under-rejects now-invalid ones at validation time — no soundness exposure at runtime.Class:
fact-reentrance-47— FACT compiles now-valid reentrance to static trapswasmtime-environ 47's FACT emits an unconditional
CannotEnterComponenttrap at translation time for same-instance/ancestor lower→lift pairs (upstreamtrampoline.rs; documented at runtime/src/intrinsics/fact_calls.ts header). CM#705 makes these calls valid. Affected: 10 of 13 directives intest/async/reentrance.wast(all route at least one executed adapter edge through an ancestor lift — including the sibling-reentrance cases 4/10/11, whose wiring passes through a root-level lift). The three passable directives (parent-to-child control, the never-executes-adapter branch, and the dtor-reentrance case) are NOT in this class — the dtor case is gated on polyengine's own gate removal (#173) instead.Class:
name-rules-47— hyphen-insensitive strongly-unique names (CM#703/#704)wasmparser at the 47 pin predates hyphen-insensitivity and transitive strongly-unique rules: 5 new
assert_invaliddirectives intest/validation/kebab.wastare accepted (missing rejection). Extends the case-folding gap already tracked in #238 and the findings entries (#246).Class:
max-value-size-47— CM#688 static size boundtest/validation/max-value-size.wast(new): 7assert_invaliddirectives pinningelem_size(t) < 2^28, including product-overflow and u32-wrap cases. The 47-era validator accepts all 7. Note: this file is in upstream's owntest/nyi.txtat the pin — even current wasmtime does not implement it; verify at bump time whether the bumped wasmparser enforces it or the class needs to survive the bump with a narrower name.Exit criteria
just test-rust+ full regen/triage).