pin advance: CM submodule → 2f13265 (CM#705) with corpus triage (#173) - #252
Merged
Conversation
…us triage (#173) Advances the spec pin across 15 upstream commits: CM#705 (may_enter removal + the new reentrance/scheduling test families), CM#707 (cancellation ASAP delivery), CM#708, CM#688 (max-value-size), CM#703/#704 (name rules), CM#698/#710 (test alignment). No runtime changes: rows the runtime cannot pass yet are xfailed under named classes with tracking issues, per the conformance discipline. New xfail classes (counts): - fact-reentrance-47 (#248, 11): wasmtime-environ 47's FACT statically compiles every VERTICAL fused adapter (same-instance or ancestor either direction, incl. plain parent->child) to a CannotEnterComponent stub (fact/trampoline.rs:116-127), masking all of reentrance.wast until the wasmtime bump; discriminator is the 'wasm trap:' prefix vs the runtime gate's '(reentrance forbidden)' message. Row 100 is a poison cascade of row 99. The cm705-gate-removal class has ZERO corpus rows: FACT-47 masks every would-be row, so #173's gate removal is pinned by runtime unit tests, not this corpus. - name-rules-47 (#248, 5) + max-value-size-47 (#248, 7): wasmparser-47 accepts components the new validation rules reject. - cm705-sync-sched (#249, 1): sync-streams STARTING/STARTED + COMPLETED/DROPPED code swap. - cm707-cancel (#250, 1): cancel-and-exclusive-lock pending-delivery. - The new during-sync-call-*/scheduling-candidates files ride the pre-existing wasmparser thread-builtin drift class (#152), not #249. Stale entries for upstream-deleted files removed (during-sync-call-no- exclusive-resume, trap-if-block-and-sync tail). e2e suite: known- acceptance-gaps allowlist for the kebab/max-value-size validator gaps (authoritative staleness lives in the harness xfails); the core-module- export artifact shifted binary.115 -> binary.116 (CM#698 renumbering). Lane expectations re-measured at exact Deno parity (1475/1428/1263/165) for sm/node/bun/sm-nightly shells + chromium/firefox; jsc lanes bumped unverified-on-aarch64 (measured by the x64 CI leg); webkit.ts deferred (#11 comment) - its per-row multi-memory deltas need a real lane run.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Step 3 of the revised #173 sequencing (after #251's poisoning re-key): advance the spec pin to the CM#705 merge commit exactly, regenerate the corpus, and triage — no runtime changes; everything the runtime cannot pass yet is xfailed under a named class with a tracking issue, so the follow-up adoption PRs are forced honest by the stale-xfail detector.
Pin
third_party/component-model4142913 → 2f13265 (15 commits: CM#705 may_enter removal + new WAST families; CM#707 cancellation delivery; CM#708; CM#688 max-value-size; CM#703/#704 name rules; CM#698/#710 test alignment). Corpus grows 1416 → 1475 commands.Triage findings worth reading
fact/trampoline.rs:116-127) — so all ofreentrance.wastis masked until the wasmtime bump (fact-reentrance-47, wasmtime 49 bump: pin-drift xfail register after the CM#705 pin advance (FACT reentrance, name rules, max-value-size) #248, 11 rows incl. one poison cascade). The discriminator is thewasm trap:prefix (generated adapter code) vs the runtime gate's(reentrance forbidden)message (JS). Under the old pin this was invisible: the only vertical-adapter rows were trap-expecting, and the static stub's message is byte-compatible with the dynamic check's. Consequence: thecm705-gate-removalclass has zero corpus rows — pin-advance migration map: CM#705 removes the may_enter flag/trap #173's gate removal will be proven by runtime unit pins, not this corpus. Details: wasmtime 49 bump: pin-drift xfail register after the CM#705 pin advance (FACT reentrance, name rules, max-value-size) #248 (comment)during-sync-call-*/during-sync-scheduling-candidatesfiles are translate-time casualties of the pre-existing wasmparser thread-builtin drift (Pin-blocked conformance residues (#13 exit): name-option + thread-encoding xfails need wasmparser >= 0.255 #152), not scheduling-semantics rows; adopt CM#705 sync-call scheduling: exclusive-thread resumability, candidate sets, backpressure STARTING #249's only live corpus row today is thesync-streamsSTARTING/STARTED + COMPLETED/DROPPED code swap.cm707-cancel(adopt CM#705/#707 cancellation delivery: subtask.cancel rewrite + pending-cancel ASAP bookkeeping #250, 1 row):cancel-and-exclusive-lockfails crisply on our deadlock trap (no hang).name-rules-47(5) +max-value-size-47(7) (wasmtime 49 bump: pin-drift xfail register after the CM#705 pin advance (FACT reentrance, name rules, max-value-size) #248): wasmparser-47 accepts what CM#703/#704/#688 now reject; the e2e blanket verdict check gets an exact-match allowlist whose staleness is owned by the harness xfails.binary.wastrenumbering shifted the core-module-export artifactbinary.115→binary.116.Lane expectations
Re-measured at exact Deno-lane parity (1475/1428/1263 passed/165 xfail): sm-pinned, node-pinned, bun-pinned, sm-nightly shells; chromium + firefox browser lanes. jsc-pinned/jsc-trunk bumped to the engine-independent baseline, unverified-on-aarch64 (x64 CI leg validates).
webkit.tsdeliberately deferred — its ~90 per-row multi-memory deltas need a real WPE run (system libs unavailable here; CI runs it tolerated) — noted on #11.Gates
Full local pass: version-guard-local, build, test-rust, test-runtime (676), test-protocol/wasi/sockets-node/ct-runner/bundle/version-guard, publish-check, test-npm, examples, test-translate, conformance (1475 cmds, 0 failed, 0 stale xfails), sched-seeds, shells (sm/node/bun; jsc self-skips on aarch64), browsers (chromium+firefox, all realms), smoke-tls, smoke-c0. Not breaking: no published-surface change; conventions goldens untouched.