RepoJournal

$ cat golang/month/2026-09-01.log

Go

Go

the month in review · September 2026

Go inliner learns to fold recover calls

By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology

♥

September also brought a no-op Transport.CancelRequest, a signed-integer comparison fix in pkgsite, and a newly documented LLM-report policy.

535 commits 30 briefings covered

all golang reviews →

cmd/compile: allow inlining of functions that call recover golang/go

by Ilya Torbin

Functions that call recover can now be inlined. The unwinder counts inline-expanded frames as separate logical frames, so gorecover previously misidentified valid recover calls; the compiler now accounts for that when deciding what to fold. Panic and recover handling in your hot paths can get ordinary inlining benefits without the old correctness hazard.

net/http: make Transport.CancelRequest into a no-op golang/go

by Damien Neil

Transport.CancelRequest is now a no-op and the per-Transport map of in-flight requests is gone. If you cancel request contexts by calling CancelRequest, switch to the request's context, which is the only mechanism the transport honors now.

_content/doc/security: decisions: add general principles golang/website

by Damien Neil

The security policy now states general principles covering how the team decides what counts as a security bug and how it is handled. Useful context the next time you weigh whether a report to golang.org/security is worth filing.

cmd/go/internal/modload: parallelize for speed golang/go

by Peter Weinberger

Local directory matching inside LoadPackages runs in parallel, so package loading with multiple local patterns no longer resolves matching directory trees one at a time. Large multi-module workspaces see the win directly.

net/http/httputil/reverseproxy: preserve original header on 1xx golang/go

by Damien Neil

A ReverseProxy that forwards a 1xx header from the backend now resets the ResponseWriter's headers to their original state instead of clearing them. Go's 1xx handling was new enough that this slipped; reverse proxies that emit informational responses get the fixed behavior.

quic: add Stream.StopSending, and rework stream/application errors golang/net

by Damien Neil

Stream.StopSending is new, and the error types are renamed: StreamErrorCode becomes StreamError and ApplicationError becomes ConnectionCloseError. Anyone writing against x/net/quic needs to update call sites and type assertions for the renamed error values.

gopls: support assembly References for labels and asm-only symbols golang/tools

by Groot Guo

textDocument/references in .s assembly files now covers control labels and asm-only symbols. Control labels scope to the enclosing TEXT function and <> symbols stay file-local, so renaming or tracing assembly-heavy code no longer requires guessing at symbol visibility by hand.

runtime: fix randomized heap base prefix mask misalignment golang/go

by Derek Parker

The randomized heap base prefix mask cleared the top byte at the wrong bit for its hint generator, which places the randomized prefix byte at the randHeapAddrBits position. The mask now lines up, so heap address randomization applies where it was intended on amd64, arm64, and the other affected platforms.

$ ls golang/month/ # the briefings behind this review

Tue Sep 1 Compiler inlines recover, http.Transport.CancelRequest becomes a no-op Wed Sep 2 Go compiler drops unnecessary riscv64 masking and hardens SIMD codegen Thu Sep 3 x/tools protocol shift, masked heap prefix fix Fri Sep 4 Plugin itabs double-inserted; symbol insertion skips large modules Sat Sep 5 crypto/tls frees pinned buffers, compiler tail call DCE fix lands Sun Sep 6 crypto/x509 tightens URI and email name constraint matching Mon Sep 7 Fast-path receive buffer cleared on stream reset Tue Sep 8 Go compiler moves SSA rewrite packages, net QUIC clears reset receive buffer Wed Sep 9 Go 1.27 unified V5 export data, then reverted Thu Sep 10 HTTP/1 body deadlock fix, gopls fillstruct stack overflow, and importer fork removal Fri Sep 11 Compiler #-names removed from b.Loop keepalives, bootstrap flags dropped Sat Sep 12 Go's build chain sheds its own-stdlib dependency, compiler walk state removed Sun Sep 13 Go's log/slog MultiHandler stops sharing attrs slices Mon Sep 14 Go turns off early export on plan9 to unbreak its builders Tue Sep 15 Windows NewFile stops blocking, riscv64 disassembly gets fixed Wed Sep 16 Unencrypted HTTP/2 stops canceling request contexts; localhost resolves to loopback Thu Sep 17 math/big zero-sign panic fixed, go mod why now exits non-zero Fri Sep 18 pkgsite drops ctxhttp, tour returns real 404s Sat Sep 19 Go's QUIC stack learns to tell on-path from off-path, and amd64 gets v2/v3/v4 CPU bits Sun Sep 20 LoongArch crypto gets SIMD, RISC-V bit tests slim down Mon Sep 21 Salsa20 gets a loong64 SIMD path Tue Sep 22 Go deletes malformed HTTP/2 headers to close response smuggling, and lifts HTTP/3 into std Wed Sep 23 Overflowing constants invalidated, cgo's `any` rewrite reverted Thu Sep 24 Nil-safety in go/types, faster flate, AES decrypt on loong64 Fri Sep 25 Playground locks down user input, Go SIMD loads stop reading past the slice Sat Sep 26 gopls fixes 2019-era import scan bug and a CVE lands in pkgsite's gRPC Sun Sep 27 Compiler gains mem2reg and stats passes Mon Sep 28 Loong64 MOVW/MOVV immediate fix, Windows ad-hoc package errors Tue Sep 29 HTTP/2 framing header fix lands in x/net, compiler and PGO changes across Go Wed Sep 30 Windows thread stack corruption fix, json v1 field restored in Go 1.27 shim

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.

all golang reviews →