RepoJournal
Go

@golang

Go and the standard library — backend infrastructure at scale

What actually shipped in Go, written up every day — commits, pull requests, releases, and security advisories.

One email a day. Unsubscribe in one click.

Pick a date

Topics: Go Infrastructure Full archive →

The Wire · Showcase

COMPILER SHRINKS CODE SIZE WHILE QUIC FIXES BUSY-LOOP HANGS

By RepoJournal · Filed · About Go

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].

One email a day. Unsubscribe in one click.

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.

More from @golang

Daily updates, in your inbox

Follow Go

What actually shipped in Go, written up every day — commits, pull requests, releases, and security advisories.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?