Skip to content

ci: move the TinyGo gate to 0.42.0 - #909

Merged
nooga merged 2 commits into
mainfrom
ci/tinygo-042
Sep 19, 2026
Merged

nooga merged 2 commits into
mainfrom
ci/tinygo-042

Conversation

@mparrett

Copy link
Copy Markdown
Collaborator

tinygo-wasi-build installs TinyGo 0.41.1, released 2026-04-22. 0.42.0 has been out since 2026-09-01, so the gate has been validating against a toolchain one release behind for the better part of a month. A pinned version is the right call for a gate — this is a bump, not a switch to latest.

What changes for us

0.42.0 carries #5401, which implements file-level //go:linkname. That removes one of the three link failures on native darwin:

0.41.1                                      0.42.0
readline term_bsd.go  _syscall.Syscall6     readline term_bsd.go  _syscall.Syscall6
x/sys    zsyscall_*   syscall_syscall       (gone)
pkg/rt/term.go        _syscall.Syscall      pkg/rt/term.go        _syscall.Syscall

The remaining two are tinygo-org/tinygo#4794, still open, so native macOS still does not link and docs/guide/tinygo.md stays accurate. #547's planned Darwin work is the thing this affects: the x/sys half of that workaround is already unnecessary on 0.42.0.

Verification

On darwin/arm64 with 0.42.0, against the stdgo lg-runtime as oracle:

  • tinygo build -target=wasi ./cmd/lg-runtime succeeds, and the module boots under wasmtime past the reflect shim — the two steps this job runs.
  • A 69-case differential corpus (integer arithmetic and shifts, hashing, floats, ordering, records, protocols, multimethods, transients, macros, channels, exceptions) is identical to both the stdgo runtime and to 0.41.1. No semantic change from the LLVM 20.1.1 → 22.1.4 jump.

Two numbers worth having on record, both from a single local build rather than a controlled measurement:

  • the wasi module grows about 3%, 9,379,333 → 9,676,053 bytes
  • the build ran in roughly half the wall time, 113s → 47s

CI on linux/amd64 is the real check for both; I measured on darwin/arm64.

Not included

0.43 will carry tinygo-org/tinygo#5612, which fixes the //go:cgo_import_dynamic trampolines that made x/sys calls segfault at runtime on darwin even once they linked. That is the other half of the #547 story and worth a look when 0.43 ships, but it is not in any release yet.

🤖 Generated with Claude Code

@mparrett
mparrett requested review from nnunley and nooga September 19, 2026 21:30

@nooga nooga left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean, minimal TinyGo gate bump (0.41.1 -> 0.42.0) with verification data (differential corpus match, wasm size/build-time deltas). No concerns.

mparrett and others added 2 commits September 19, 2026 23:15
tinygo-wasi-build installed 0.41.1 (released 2026-04-22); 0.42.0 has been out
since 2026-09-01, so the gate validated against a toolchain one release behind.

0.42.0 carries tinygo-org/tinygo#5401 (file-level //go:linkname), which removes
the x/sys link failure on native darwin — one of the three #547 names. The other
two are tinygo-org/tinygo#4794, still open, so native macOS still does not link.

Verified on darwin/arm64: the wasi build and boot both succeed, and a 69-case
differential corpus is identical to the stdgo runtime and to 0.41.1 despite the
LLVM 20.1.1 -> 22.1.4 jump.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@nooga
nooga merged commit 4cfe83e into main Sep 19, 2026
15 checks passed
@nooga
nooga deleted the ci/tinygo-042 branch September 19, 2026 22:28
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.

2 participants