Skip to content

[WASM R3] ci: execute initial standard-library acceptance set - #231

Closed
cpunion wants to merge 4 commits into
codex/wasm-r3-ci-reporting-20260905from
codex/wasm-r3-stdlib-ci-20260905
Closed

cpunion wants to merge 4 commits into
codex/wasm-r3-ci-reporting-20260905from
codex/wasm-r3-stdlib-ci-20260905

Conversation

@cpunion

@cpunion cpunion commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Scope and dependencies

Initial standard-library acceptance for R3 host runners, based on #229. This is not a claim that the entire standard library or the raw official Go wasm profiles are complete.

The branch also contains the two prerequisite commits from standalone main fix #230. They are kept separate from the CI change: real JSON tests exposed that main's reflectlite Kind ABI traps in errors.As on Memory64. Land #230 independently, then remove its duplicated prerequisite commits when rebasing this stack onto the updated baseline.

Acceptance

  • Run the complete repository bytes, strings, and encoding/json test packages through public llgo test on EC32/Emscripten, EC64/Emscripten Memory64, and WC32/WASI.
  • Disable the build cache in CI, run version-selected tests without a test-name filter, and give each test binary a 60-second timeout.
  • Require three terminal PASS records and a package-specific test witness for each profile; reject failed/skipped tests and leaked implicit .mjs/.wasm artifacts.
  • Publish actual accepted package-run counts via ci/wasm: report executed profile coverage #229's reporting helper, including a failure summary on early exit. Passing all three profiles records nine package runs.
  • Wire the acceptance script and its self-tests into the existing wasm-runtime CI job. The new step allows 20 minutes for compilation plus execution; the job allows 45 minutes including the pre-existing runtime and scheduler gates.

The script's eight deterministic self-test scenarios cover a complete run, compiler failure, empty/partial execution, a missing package witness, failed/skipped tests, and leaked artifacts. These test the acceptance harness and are not counted as real stdlib execution.

Validation

  • Shell syntax, ShellCheck, actionlint, and git diff --check: passed.
  • Eight acceptance-harness self-test scenarios: passed.
  • Existing raw wasm runtime build checks with Go 1.24.13 and Go 1.27.0: passed (build checks, not proof of official-Go host compatibility).
  • Cache-disabled real acceptance, rerun from the fixed commit: passed with exit status 0; all nine package runs completed, with zero failed/skipped tests and no leaked implicit artifacts.

Broader package classification, goroot runner adaptation, and real-browser/official-Go profile coverage remain separate follow-up work under proposal xgo-dev#2152. Development CI stays in this fork.

@cpunion

cpunion commented Sep 5, 2026

Copy link
Copy Markdown
Owner Author

Pushed follow-up 80a481863 to fix the multi-package test command's aggregate deadline. The previous CI log shows the first WASI package passing after 258 seconds; the inherited 300-second outer budget then killed compilation of the second package. The aggregate budget is now 600 seconds; each test binary retains its 30-second test deadline and bounded runner behavior.

Reran the complete single-worker toolchain gate locally from the fixed source: 30 checks, 30 executed package tests, 7 expected-failure checks and 1 expected-timeout check, with zero unexpected failures, skips, or inapplicable results. The new fork CI run is still in progress; this is not yet a CI-green claim.

The earlier Windows TestAfterFuncReset failure remains tracked separately in xgo-dev#2500, and the main sysroot infrastructure issue is separate from this wasm timeout fix.

@cpunion

cpunion commented Sep 5, 2026

Copy link
Copy Markdown
Owner Author

The updated wasm-runtime CI job has now passed at 80a481863:

https://github.com/cpunion/llgo/actions/runs/33965685410/job/101305287989

Target-profile checks, standard-runtime builds, the complete single-worker toolchain gate and all nine standard-library package runs completed successfully. This confirms the aggregate-deadline fix on CI, not just locally. Unrelated native/main infrastructure checks are not included in this wasm-green statement.

@cpunion
cpunion force-pushed the codex/wasm-r3-stdlib-ci-20260905 branch from 80a4818 to e0aef00 Compare September 5, 2026 14:47
@cpunion
cpunion force-pushed the codex/wasm-r3-ci-reporting-20260905 branch from c3e4e90 to ae84c77 Compare September 5, 2026 14:47
@cpunion
cpunion force-pushed the codex/wasm-r3-ci-reporting-20260905 branch from ae84c77 to 2e9289b Compare September 5, 2026 15:22
@cpunion
cpunion force-pushed the codex/wasm-r3-stdlib-ci-20260905 branch from e0aef00 to c8c31fb Compare September 5, 2026 15:22
@cpunion

cpunion commented Sep 5, 2026

Copy link
Copy Markdown
Owner Author

Rebased in dependency order onto LLVM 22 main bf3071fdd.

  • This PR's new head: c8c31fb54; current dependency: codex/wasm-r3-ci-reporting-20260905.
  • R2's 28 patches and R2.1's six lifecycle patches remain equivalent. R3/R4 inherit the independent fork-runner repair ci: keep hosted runners available to forks #236; upstream continues using Qiniu, forks use hosted runners. R4's separate stdlib workflow now also installs LLVM 22.
  • LLVM 22 integration validation passed: 30 single-worker checks (7 expected failure paths, 1 timeout, no unexpected failures/skips); nine R3 stdlib package runs; five R4 lanes with six packages / 74 top-level tests per lane. Go-reference lanes remain Go output, not LLGo official-Go-ABI evidence.

To keep CI load bounded, this intermediate PR retains Format/Targets. Repeated functional matrices are canceled here and kept on the updated stack tip #235. Per-layer benchmark reruns are deferred, not replaced by the top PR's performance comparison. Canceled checks are not passing checks, and the integration result is not independent complete validation of every intermediate revision.

@cpunion

cpunion commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

Retiring this old R3 stack while its still-useful changes are extracted into a new PR based on the current Wasm direction. The branch remains available for reference.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant