127 wires and counting

$ follow Go

Keep up with Go in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.

Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.

$ status

wire 2026-09-24
stories 27

© 2026 RepoJournal Home Showcase Explore How it works Privacy

$ the-wire · showcase

Nil-safety in go/types, faster flate, AES decrypt on loong64

By RepoJournal · Filed · About Go · Composed from the cited sources · methodology

A quiet toolchain day: the compiler's type API is being hardened against nil types that crashed gopls and linters, while compress/flate and loong64 AES pick up targeted speedups and golang/sys fills in Linux and BSD platform gaps.

types2, go/types: prevent nil types in published packages golang/go

by Peter Weinberger

Syntax errors, broken import cycles, and unresolved types could leave Object.Type(), Alias.fromRHS, Named.fromRHS, or TypeParam.bound returning nil, and tools traversing the published package graph (gopls, objectpath, linters) would panic dereferencing it. Accessor methods now enforce defined behavior for incomplete types instead of handing out nil.

compress/flate: speed up writeTokens golang/go

by Alex Gaynor

The token writing loop now flushes whole bytes from the bit accumulator unconditionally each iteration rather than testing after every code whether 48 bits had built up. That old test was a data-dependent branch the predictor handled poorly; the replacement store, shift, and add are branch free, and at most seven bits are pending at the top of an iteration.

runtime: use the static type of cleanup arguments golang/go

by qmuntal

AddCleanup resolved its argument layout via abi.TypeOf(arg), which returns the dynamic type for an interface and nil for a nil interface, so the following Kind call panicked. On 32-bit platforms an interface also fits under maxTinySize, so a pointer-free dynamic type could box a data-carrying interface as noscan storage.

crypto/internal/fips140/aes: avoid per-round byte-swap in AES decrypt on loong64 golang/go

by XiaolinZhao

decryptBlockAsm byte-swapped every round key with VSHUFB on each round before use; because dec[] is a loong64-internal format, expandKeyAsm now stores all dec[] round key groups pre-swapped in state byte order, including the boundary groups that skip InvMixColumns. enc[] stays as is, since the generic GCM implementation consumes it via EncryptionKeySchedule.

unix: pass xattr data as unsafe.Pointer in BSD xattr syscalls golang/sys

by Tobias Klauser

The xattr functions on FreeBSD and NetBSD converted their data buffer pointer to uintptr before the call, which is only safe inside the call expression itself; GC could otherwise free or move the buffer while the syscall was still reading it. Unexported extattr* funcs now take the data argument as unsafe.Pointer, and the remaining golang/sys changes are quieter: Mmsghdr plus SizeofMmsghdr expos...

Quick answers

What shipped in Go on September 24, 2026?
A quiet toolchain day: the compiler's type API is being hardened against nil types that crashed gopls and linters, while compress/flate and loong64 AES pick up targeted speedups and golang/sys fills in Linux and BSD platform gaps. In total, 27 commits landed.
Who contributed to Go on September 24, 2026?
12 developers shipped this update, including XiaolinZhao, Alex Gaynor, Robert Griesemer, Peter Weinberger, qmuntal, Tobias Klauser, Mauri de Souza Meneguzzo, and David Zbarsky, and 4 more.
What were the notable Go updates?
types2, go/types: prevent nil types in published packages, compress/flate: speed up writeTokens, and runtime: use the static type of cleanup arguments.