Skip to content

build/wasm: bound host runner execution - #227

Closed
cpunion wants to merge 2 commits into
codex/wasm-r3-artifact-lifecycle-20260905from
codex/wasm-r3-runner-timeouts-20260905
Closed

cpunion wants to merge 2 commits into
codex/wasm-r3-artifact-lifecycle-20260905from
codex/wasm-r3-runner-timeouts-20260905

Conversation

@cpunion

@cpunion cpunion commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Stacked on #226.

This R3 slice adds a host-process deadline for WebAssembly execution without conflating it with the Go test watchdog:

  • llgo run -timeout bounds the selected target runner; zero disables the deadline.
  • llgo test -timeout still forwards the requested duration to the test binary and gives the host runner a 30-second exit grace.
  • timed-out runners report phase, target/profile, artifact, runner, package, status=timeout, and the effective duration.
  • the real EC32 public command path executes a deliberately non-terminating wasm fixture, verifies timeout diagnostics, and proves implicit .mjs/.wasm outputs are reclaimed.

Validation:

  • go test ./internal/build ./cmd/internal/run ./cmd/internal/test -count=1
  • normal llgo run -timeout=30s -target emscripten -emulator
  • normal llgo test -timeout=5s -target emscripten -emulator
  • full dev/test_wasm_single_worker.sh with build cache disabled and Binaryen enabled (EC32, EC64, WC32, aliases, public run/test, timeout/failure paths, compile-only outputs)

@cpunion
cpunion force-pushed the codex/wasm-r3-artifact-lifecycle-20260905 branch from f06850e to 5435e47 Compare September 5, 2026 15:22
@cpunion
cpunion force-pushed the codex/wasm-r3-runner-timeouts-20260905 branch from 0d070ad to 0061e3a 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: 0061e3a43; current dependency: codex/wasm-r3-artifact-lifecycle-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