ReviewOS

zig-utils/zig-js

WebAssembly Core 3: add an exact wg-3.0 conformance profile

#366
Closed chris opened this 9 days ago ·
9 days ago

Parent: #142 Related: #268, #300, #147 Roadmap: #134

The checked-out wasm-spec-wg1 submodule intentionally pins stable wg-1.0 for the reproducible MVP corpus. The separate wasm-spec-wg3 submodule pins stable wg-3.0 (9d36019973201a19f9c9ebb0f10828b2fe2374aa). Upstream main remains a moving development target observed for drift, never an unreproducible published score.

Acceptance:

  • Keep the existing wg-1.0 submodule/corpus explicitly labeled as the frozen MVP fixture.
  • Add an exact wg-3.0 profile with a declared feature set and deterministic converter/tool pins.
  • Inventory every Core 3 test command as pass, fail, not applicable (with reason), or runner error; expose zero hidden filtering.
  • Reconcile overlap with the existing Core 2, SIMD, Threads, exceptions, tail-call, multi-memory, Memory64, and GC profiles without double-counting claims.
  • Add bounded exact-pin CI smoke/drift gates plus a deliberate complete-run command.
  • Publish the terminal profile in the machine-readable conformance and release matrices, WebAssembly docs, and the concise README aggregate.
  • Add a non-blocking upstream-main drift report that identifies changes since the stable Core 3 pin without changing the accepted score.

Completion evidence:

  • Exact source: WebAssembly/spec@wg-3.0 (9d36019973201a19f9c9ebb0f10828b2fe2374aa)
  • Exact converter: wasm-tools 1.253.0 (c799bb87b9cf9dc4fa7d11d63c5d52cbb3c4eb38)
  • Corpus: all 258 test/core/**/*.wast files
  • Result: 63,964/63,964 applicable, 1,235 explicitly classified text-format N/A, zero failures, zero runner errors
  • Terminal ten-profile aggregate: 151,802/151,802 applicable, 2,862 N/A, zero failures/runner errors
  • Child implementations: #384, #385, #386, #387, #388, #389
  • Terminal inventory/matrix: aa70d874; README/docs: bf4ed16f
9 days ago

Clarity slice landed on main in 97abdbc6 / 4277f04b: documentation now states that the fixture is intentionally MVP-only, and the gitlink/path is renamed from ambiguous wasm-spec to wasm-spec-wg1, so GitHub’s repository tree no longer presents the 1.0 pin as if it were current upstream. The evaluator default and initialization diagnostic follow the renamed path; all 16 harness unit tests and submodule pin/status checks pass. The separate exact wg-3.0 profile, matrix integration, and moving-main drift report remain open here.

9 days ago

CI follow-up 70d14de4 updates the MVP smoke job to initialize the renamed wasm-spec-wg1 path. Run 29720049686 failed before compilation because it still requested the removed wasm-spec path; the local exact submodule command now resolves 977f970 (wg-1.0), and no stale workflow path remains.

9 days ago

Replacement run 29720186705 confirms the CI path fix: wasm-mvp-smoke completed successfully.

9 days ago

Core 3 profile foundation landed on main in b51e7d2. The repository now has a separate shallow wasm-spec-wg3 gitlink at exact official tag wg-3.0 (9d36019973201a19f9c9ebb0f10828b2fe2374aa), pinned wasm-tools 1.253.0 metadata, recursive declaration of all 258 corpus files, per-feature provenance, and a deliberate zig build wasm-core-3 command. The frozen WG-1.0 baseline remains untouched. Bounded evidence: GC i31.wast 73/73, memory64 4/4, multi-memory 14/14, and fixed SIMD 194/194. Honest blockers are decomposed into #384 (typed function references; current call_ref.wast 4/35), #385 (explicit exception heap refs; current try_table.wast 54 pass / 2 text-only N/A / 6 fail), and #386 (seven relaxed-SIMD files). Core 3 is deliberately not added to the green README aggregate until these close.

9 days ago

Completed child #386 on main in b186277, 7229d3e, and e99f065. All 20 relaxed-SIMD opcodes are inventoried and feature-gated; all seven exact wg-3.0 files pass 77/77 with zero fail/N/A/runner. Together with closed #384 and #385, the implemented Core 3 slices now total 295/295 applicable commands. Continuing the remaining exact Core 3 inventory under this parent.

9 days ago

Full ReleaseFast audit plus corrected exact slices now yields 63,950/63,964 applicable Core 3 commands, 1,235 text-format N/A, and no harness runner errors. Closed #387 in e21930b/b4cd0f9; remaining 14 assertions are isolated to #388 and #389. Harness exactness landed in 7f71f1d, and non-blocking upstream-main drift reporting in d400ae7.

9 days ago

Closed #388 in bdbf86b/c5344a8. Exact Core 3 is now 63,958/63,964 applicable with 1,235 text-format N/A and zero harness runner errors. Only #389 remains: five elem.wast assertions and one linking.wast assertion.

9 days ago

Completed on main. The frozen WG-1.0 baseline remains separate; exact WG-3.0 is terminal green across all 258 files and is now part of the ten-profile conformance/release aggregate. Upstream-main drift remains non-blocking and cannot alter the accepted score.

9 days ago

Follow-up CI fix a5b8ef6a: the terminal-inventory verifier no longer assumes the 480 MiB WG-3 submodule exists in the metadata-only job. It still enforces 258 unique corpus-relative scored paths, exact pin/converter/totals, declared order, per-file counts, and zero fail/runner; source checkout/pin/count remain guarded in the dedicated Core 3 job.

9 days ago

Follow-up #395 tracks executable upstream-main shadow conformance. This does not invalidate or reopen the terminal exact wg-3.0 result: it turns the existing informational 21-file drift into a separately named, exact-SHA execution profile while preserving the released score.

Sign in to comment on this issue.