Skip to content

wasmtime 49 bump: pin-drift xfail register after the CM#705 pin advance (FACT reentrance, name rules, max-value-size) #248

Description

@lannbot

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    p2Minor bugs; desirable lower-priority featuresupstream-trackingBlocked on or watching an external project (spec, wasmtime, engines, toolchains)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions