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-08-28
stories 44

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

unicode/norm composition bugs shake the foundation

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

Russ Cox landed a five-part fix for Unicode normalization that silently corrupted text, and gopls is hardening inlining, but the real headline is the type-checking cleanup rolling through go/types.

Russ Cox's unicode/norm fixes [1] are the story this morning: the reorderBuffer was silently dropping table-driven compositions whenever a segment started with a Hangul syllable [1], and a truncated recomposition map key caused supplementary-plane runes to alias BMP entries, breaking canonical equivalence [2]. Damien Neil cleaned up two more edge cases [3] [4] to round out the series. On the net desk, Russ also patched two HTTP/3 landmines: a nil TLSConfig in newQUICConfig that panicked on default transports [5], and a leak where RoundTrip could return before the request body was fully closed [6]. "The result is a composition that is not canonically equivalent to its input, reachable from plain" [2] — and yes, that's as bad as it sounds. Gopls now rejects inlining for variables that are reassigned or have their address taken [7], closing golang/go#77543, while go/types continues its steady march toward cleaner type inference with the target refactor [8] [9].

Action items

References

  1. [1] unicode/norm: compose non-Hangul runes after a Hangul syllable ↗ golang/text
  2. [2] unicode/norm: don't truncate runes in the recomposition map key ↗ golang/text
  3. [3] unicode/norm: simplify short source detection in Form.transform ↗ golang/text
  4. [4] unicode/norm: prevent decomposeSegment from moving backwards ↗ golang/text
  5. [5] internal/http3: handle a nil TLSConfig in newQUICConfig ↗ golang/net
  6. [6] internal/http3: close the request body before RoundTrip returns ↗ golang/net
  7. [7] gopls/internal/golang: reject inlining for modified variables ↗ golang/tools
  8. [8] go/types, types2: allow target to hold any type, not just signatures ↗ golang/go
  9. [9] go/types, types2: remove all vestiges of composite literal hint parameters ↗ golang/go

Quick answers

What shipped in Go on August 28, 2026?
Russ Cox landed a five-part fix for Unicode normalization that silently corrupted text, and gopls is hardening inlining, but the real headline is the type-checking cleanup rolling through go/types. In total, 44 commits landed.
Who contributed to Go on August 28, 2026?
12 developers shipped this update, including Robert Griesemer, Russ Cox, Timo Furrer, Alan Donovan, Alex Putman, Peter Weinberger, Ruslan Semagin, and Tianon Gravi, and 4 more.
What were the notable Go updates?
unicode/norm: compose non-Hangul runes after a Hangul syllable, unicode/norm: don't truncate runes in the recomposition map key, and unicode/norm: simplify short source detection in Form.transform.