The Wire · Showcase
GO CLEANUP: SPLITPHASE GONE, RISCV64 FASTER
By RepoJournal · Filed · About Go
Austin Clements tore out the last splitPhase scaffolding in Go's SIMD generators, and Joel Sing shaved 300 instructions off riscv64 binaries, all in a morning's work.
The Go compiler toolchain is getting leaner. Austin Clements removed the splitPhase vestiges from three SIMD generators [1][2][3], a cleanup that marks the end of the incremental SSA package split and simplifies the code generation pipeline. Meanwhile, Joel Sing's riscv64 optimization [4] avoids zero extension after a sufficient logical right shift, removing around 300 instructions from the Go binary. Over in vulndb, GO-2026-5026 gained attribution [5] after Damien Neil acknowledged the initial fix was insufficient. The mobile team forced a go directive bump to at least 1.26.0 [6] since Go 1.25 is now unsupported, and gobind added an -overlay flag [7] to keep generated bindings consistent with overlaid source. Telemetry now tracks the 'implement at cursor' command [8], while vscode-go users will need to adjust to new LSP log handling [9] after the language client library update. The docs also dropped the 'anonymous' term for embedded fields in encoding/json [10], a long-overdue modernization.
One email a day. Unsubscribe in one click.
Keep up with Go in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Update go.mod to go 1.26.0 or later in any golang/mobile projects golang/mobile [immediate]
- → Review GO-2026-5026 attribution and verify your fix covers the full scope golang/vulndb [plan]
- → Rebuild riscv64 binaries to pick up the zero-extension optimization golang/go [monitor]
References
- [1] simd/archsimd/_gen/wasmgen: drop splitPhase vestiges golang/go
- [2] simd/archsimd/_gen/simdgen: drop splitPhase vestiges golang/go
- [3] simd/archsimd/_gen/tmplgen: drop splitPhase vestiges golang/go
- [4] cmd/compile: avoid zero extension when sufficiently shifted on riscv64 golang/go
- [5] data/reports/GO-2026-5026: add additional attribution golang/vulndb
- [6] all: upgrade go directive to at least 1.26.0 [generated] golang/mobile
- [7] cmd/gobind: support source overlays golang/mobile
- [8] internal/chartconfig: add telemetry for implement at cursor command golang/telemetry
- [9] CHANGELOG.md: document the step to enable lsp logs from vscode golang/vscode-go
- [10] encoding/json: use embedded terminology golang/go