new(go.dev/dev-simd): Go toolchain from the dev.simd branch (SIMD intrinsics)#13169
Open
tannevaled wants to merge 1 commit into
Open
new(go.dev/dev-simd): Go toolchain from the dev.simd branch (SIMD intrinsics)#13169tannevaled wants to merge 1 commit into
tannevaled wants to merge 1 commit into
Conversation
…rinsics) Builds Go from upstream's experimental `dev.simd` branch (targeting Go 1.27), which adds the `simd/archsimd` package — portable SIMD intrinsics written in plain Go (no cgo, no hand-written assembly) that lower to AVX2/AVX-512 on amd64 and NEON on arm64. Why: `simd/archsimd` isn't in a released Go yet — amd64 shipped in 1.26 behind GOEXPERIMENT=simd, but arm64 (NEON) only exists on `dev.simd` (slated for 1.27). This lets you build/benchmark SIMD Go today on both amd64 and arm64, from a pinned commit. Details: - Sub-package of go.dev (alongside go.dev/govulncheck, go.dev/testscript). - Pinned-commit snapshots of a tagless branch, versioned by the commit's committer date as CalVer (YYYY.M.D.HH.MM.SS); `distributable: ~` + a version->SHA case in build.script fetches the exact commit. First version 2026.6.1.17.4.35 = commit 0e5948dc. - No `provides:`/`interprets:` on purpose: it ships bin/go like go.dev, so it must not claim the bare `go`/`gofmt` commands or the `.go` interpreter. pkgx has no conflicts field; the mutual exclusion is to use it explicitly via `pkgx +go.dev/dev-simd`. - README renders on pkgx.dev (rationale, usage, versioning, caveats). Verified: `bk build` + `bk audit` pass; the built toolchain reports go1.27 and `GOEXPERIMENT=simd go run` of a `simd/archsimd` program works, incl. NEON Uint32x4 on darwin/arm64. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
What
Adds
go.dev/dev-simd: the Go toolchain built from upstream Go's experimentaldev.simdbranch (targeting Go 1.27), which provides thesimd/archsimdpackage — portable SIMD intrinsics written in plain Go (no cgo, no hand-written assembly) that the compiler lowers to AVX2/AVX-512 on amd64 and NEON on arm64.Why
simd/archsimdisn't in a released Go yet: amd64 shipped in Go 1.26 behindGOEXPERIMENT=simd, but arm64 (NEON) only exists ondev.simd(slated for 1.27). This package lets people build/benchmark SIMD Go today on both amd64 and Apple-Silicon/arm64, reproducibly from a pinned commit, before 1.27 lands.How it's structured
go.dev(alongsidego.dev/govulncheck,go.dev/testscript).YYYY.M.D.HH.MM.SS).distributable: ~+ aversion → SHAcase inbuild.scriptfetches the exact commit. First version2026.6.1.17.4.35= commit0e5948dc. (The archive has no.git/VERSION, so aVERSIONis synthesized forcmd/dist.)provides:/interprets:on purpose: it shipsbin/golikego.dev, so it must not claim the barego/gofmtcommands or the.gointerpreter. Used explicitly:pkgx +go.dev/dev-simd -- go ….Verified
bk buildandbk auditpass. The built toolchain reportsgo1.27, andGOEXPERIMENT=simd go runof asimd/archsimdprogram works — including NEONUint32x4ondarwin/arm64.Note for maintainers
This packages a snapshot of a moving pre-release dev branch, not a tagged Go release — flagging that explicitly so you can decide whether it fits the pantry's scope. It is experimental (the
simdpackage is outside the Go 1 compatibility promise) and opt-in (no command shadowing). Happy to adjust naming/structure, restrict platforms, or close if it's out of scope.🤖 Generated with Claude Code