Repository navigation
Conversation
ubuntu-latest is now ubuntu-26.04, which has no qemu-user-static package, so every run fails at the install step and skips the arm64 tsvc run, the golden check, fmt and lint. qemu-user ships the static emulators there; link qemu-aarch64-static to it when the name is missing, as the Makefile runs that name.
Go tip writes export data in iexport version 4, which encodes float constants exactly. x/tools v0.51.0, and the v0.52.0 release, read only up to version 3, so on tip go/packages fails for every package: cannot import "math" (unstable iexport format version 4, just rebuild compiler and std library), export data is newer version - update tool and every script that runs loopvec fails in the tip job. x/tools master reads version 4 (golang/tools@966056e2637c). Update to it until a release includes it. The pinned toolchain is unaffected.
go1.27.3 is the latest 1.27 release. Its simd package is the same as go1.27.1's, so the capability table only changes in its header, and the -methods crash (golang/go#80657) is still there, as flag_methods_ice.txt checks. go.mod keeps go 1.27.1: that is the first release whose simd package loopvec's output compiles against (go1.27.0's ShiftAllRight takes a uint8).
This was referenced Nov 1, 2026
mauri870
added a commit
that referenced
this pull request
Nov 3, 2026
This bumps the pinned toolchain from go1.27.1 to go1.27.3, the latest 1.27 release. It supersedes the go1.27.3 commit in #1. That commit bumped only the Makefile. The script harness doesn't read the Makefile: `script_test.go` runs every script with the toolchain `go.mod` names (`goModToolchain`), and `actions/setup-go` reads the same file. With only the Makefile changed, the scripts would still have run on go1.27.1, including the `flag_methods_ice.txt` check behind the claim that the crash is still in 1.27.3. This PR: - **Pins the toolchain in two places.** The Makefile now pins `go1.27.3`, and `go.mod` gets a `toolchain go1.27.3` line. - **Keeps the minimum at 1.27.1.** The `go` line stays at `1.27.1`, the first release whose simd works with what loopvec generates: go1.27.0 compiles `ShiftAllRight` with a `uint8` count. - **Regenerates `caps_gen.go`.** go1.27.3's simd package has the same methods as 1.27.1's, so only the header comment changes. - **Updates the version in `BUGS.md` and `flag_methods_ice.txt`.** The `-methods` internal compiler error (golang/go#80657) still happens on go1.27.3, and the script checks that now. Tested locally: - `make ci` passes on this commit: `test-update` leaves the goldens unchanged, and the race suite, both arm64 qemu runs, bench fuzz seeds, tsvc, fix and lint all pass. - The script harness reports `GOTOOLCHAIN=go1.27.3`, and `flag_methods_ice.txt` still gets the internal compiler error.
Owner
mauri870
pushed a commit
that referenced
this pull request
Nov 4, 2026
The runners have moved to ubuntu-26.04, so this is the qemu part of #1 you said you'd take when that happened. `qemu-user-static` has no installation candidate there, so every PR now fails at that step and the arm64 runs, the golden check, fmt and lint get skipped. You can see it on #7, #9 and #19, where Build, Test and the amd64 tsvc run all pass first. master's last run predates the move, so the next push will hit it too. `qemu-user` has the static emulators on 26.04, just without the `-static` names, so this installs that and links `qemu-aarch64-static` when it's missing, since the Makefile runs that name. It's been passing on my fork's ubuntu-26.04 runners, and this PR's own CI runs it too.
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.
CI has been red since
ubuntu-latestmoved to 26.04, and on tip loopvec couldn't load any package. Three commits:ubuntu-26.04 no longer ships
qemu-user-static, so the install step fails and the arm64 tsvc run, the golden check, fmt and lint never run.qemu-userhas the static emulators there, just without the-staticnames, so install that and linkqemu-aarch64-staticwhen it's missing.Go tip writes export data in iexport v4 (exact float constants), which x/tools v0.51.0 and v0.52.0 can't read. Every script that runs loopvec on tip fails with
unstable iexport format version 4, just rebuild compiler and std library. x/tools master reads it (golang/tools@966056e2637c), so go.mod points at master until there's a release.Pin go1.27.3, the latest 1.27. Its simd package is the same as 1.27.1's (caps_gen.go only changes in its header comment) and the
-methodsICE is still there, soflag_methods_ice.txtstill holds. go.mod stays at 1.27.1, the first release whose simd works with what loopvec generates.One thing to know about the newer x/tools: for packages outside a module (std) it type-checks at the go command's version, and it reads that with
GO111MODULE=off, which ignoresGOTOOLCHAIN. SoGOTOOLCHAIN=go1.27.3 loopvec stdon a machine whosegois still 1.26 type-checks std at go1.26 and fails on generic methods (golang/go#68495). CI is fine because setup-go puts the rightgoon PATH.I ran into all of this while trying loopvec on goav1, a pure-Go AV1 codec. Until this is in, CI fails on master and on every PR, mine included.