118 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-07-22
stories 25

© 2026 RepoJournal Home Showcase Explore How it works Privacy

$ the-wire · showcase

COMPILER SHRINKS CODE SIZE WHILE QUIC FIXES BUSY-LOOP HANGS

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

The Go compiler now frees unused registers at loop headers, cutting generated code size across all architectures, while the net package fixes a critical QUIC keep-alive deadlock that was burning CPU on blocked connections.

The cmd/compile team landed a register allocation optimization [1] that eliminates pointless reloads when loops make unavoidable calls. Since those calls will clobber the registers anyway, freeing them upfront shrinks total code size by 0.07% to 0.2% depending on architecture. Separately, golang/net shipped a fix [2] for QUIC keep-alive that was causing busy-loops when congestion control blocked PING frames, and a second fix [3] ensuring Accept returns an error instead of blocking forever when the PacketConn reader exits. On the standards front, pkg/image addressed a memory explosion vulnerability [4] in VP8L decoding where unused Huffman tree groups could trigger excessive allocations from small files. The pkgsite team removed unnecessary goexperiment.jsonv2 enabling [5] that was incorrectly activating for encoding/json across Go versions, and crypto/x509roots updated the NSS root bundle [6].

Action items

References

  1. [1] cmd/compile: free doomed registers at loop headers ↗ golang/go
  2. [2] quic: avoid busy-loop when keep-alive is blocked by congestion control ↗ golang/net
  3. [3] quic: return an error from Accept after PacketConn reader exits ↗ golang/net
  4. [4] vp8l: avoid allocating many unused Huffman tree groups ↗ golang/image
  5. [5] internal/fetch: remove explicit goexperiment.jsonv2 enabling for encoding/json ↗ golang/pkgsite
  6. [6] x509roots/fallback: update bundle ↗ golang/crypto

Quick answers

What shipped in Go on July 22, 2026?
The Go compiler now frees unused registers at loop headers, cutting generated code size across all architectures, while the net package fixes a critical QUIC keep-alive deadlock that was burning CPU on blocked connections. In total, 25 commits landed.
Who contributed to Go on July 22, 2026?
11 developers shipped this update, including Josh Bleecher Snyder, Ilya Torbin, Jake Bailey, Filippo Valsorda, Michael Matloob, Damien Neil, Hana Kim, and Jean Barkhuysen, and 3 more.
What were the notable Go updates?
cmd/compile: free doomed registers at loop headers, quic: avoid busy-loop when keep-alive is blocked by congestion control, and quic: return an error from Accept after PacketConn reader exits.