167 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-05-21
stories 63

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

RUNTIME MUTEX PROFILING LANDS, ARCHIVE/ZIP GETS CRITICAL FIX

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

Go's runtime now splits mutex lock tracking from preemption disable, unblocking safe contention profiling while a major Zip64 writer bug gets patched.

The core runtime change [1] separates gp.m.locks into two distinct mechanisms: one for tracking actual mutex holds and another for preemption disabling. This architectural split enables the mutex contention profiler to safely acquire mutexes during sampling without false positives. It's a careful fix that impacts how every Go program running on multiple goroutines manages synchronization visibility. Separately, archive/zip [2] shipped a critical writer-side Zip64 edge case fix that was causing mysterious failures when uploading files to external services. The bug manifested only in files larger than 4GiB but smaller than 6.5GiB, making it nearly impossible to debug. On the profile front, internal/profile [3] now correctly returns errors from gzip.Writer.Close in Profile.Write, preventing silent data corruption when pprof serialization fails due to disk full or broken pipes. The tooling desk is busy too: gopls [4] fixed generic method hover support and [5] corrected long-broken inlay hint logic in var specs, while the modernize analyzer [6] now handles negated error type assertions properly.

Action items

References

  1. [1] runtime: split gp.m.locks bits for lock vs acquirem golang/go ↗
  2. [2] archive/zip: fix writer-side Zip64 edge cases golang/go ↗
  3. [3] internal/profile: return error from gzip.Writer.Close in Profile.Write golang/go ↗
  4. [4] gopls/internal/golang: Hover: add test of generic methods ↗ golang/tools
  5. [5] gopls/internal/golang: InlayHint: fix bug in 'var' specs ↗ golang/tools
  6. [6] go/analysis/passes/modernize: errorsastype: support negated case ↗ golang/tools
  7. [7] x86/x86asm: support AVX instructions ↗ golang/arch

Quick answers

What shipped in Go on May 21, 2026?
Go's runtime now splits mutex lock tracking from preemption disable, unblocking safe contention profiling while a major Zip64 writer bug gets patched. In total, 63 commits landed.
What were the notable Go updates?
runtime: split gp.m.locks bits for lock vs acquirem, archive/zip: fix writer-side Zip64 edge cases, and internal/profile: return error from gzip.Writer.Close in Profile.Write.