Next Release Notes Draft
DRAFT RELEASE NOTES — Introduction to Go 1.27
Go 1.27 is not yet released. These are work-in-progress release notes. Go 1.27 is expected to be released in August 2026.
Tools
Response file (@file) parsing is now supported for the compile, link, asm, cgo, cover, and pack tools.
The response file contains whitespace-separated arguments with support for single-quoted and double-quoted strings, escape sequences, and backslash-newline line continuation.
The format is compatible with GCC’s response file implementation to ensure interoperability with existing build systems.
Go command
go test now invokes the stdversion vet check by default.
This reports the use of standard library symbols that are too new
for the Go version in force in the referring file,
as determined by go directive in go.mod and build tags on the file.
Runtime
Tracebacks for modules with go directives configuring Go 1.27 or later will now
include runtime/pprof goroutine labels in
the header line. This behavior can be disabled with GODEBUG=tracebacklabels=0
(added in Go 1.26). This opt-out is expected to be
kept indefinitely in case goroutine labels acquire sensitive information that
shouldn’t be made available in tracebacks.
Standard library
Minor changes to the library
go/scanner
The scanner now allows retrieving the end position of a token via the new Scanner.End method.
go/token
File now has a String method.
net/http
HTTP/2 server now accepts client priority signals, as defined in RFC 9218,
allowing it to prioritize serving HTTP/2 streams with higher priority. If the
old behavior is preferred, where streams are served in a round-robin manner
regardless of priority, Server.DisableClientPriority can be set to true.
HTTP/1 Response.Body now automatically drains any unread content upon being
closed, up to a conservative limit, to allow better connection reuse. For most
programs, this change should be a no-op, or result in a performance improvement.
In rare cases, programs that do not benefit from connection reuse might
experience performance degradation if they had been improperly allowing an
excessive amount of idle connections to linger; usually by setting
Transport.MaxIdleConns to 0 or using different [Client]s for different
requests, thereby bypassing Transport.MaxIdleConns limit. In these cases,
setting Transport.DisableKeepAlives to true will disable connection reuse.
However, such performance degradation usually indicates improper configuration
or usage of Transport or Client in the first place, and a deeper look would
likely be beneficial.
net/url
The new URL.Clone method creates a deep copy of a URL.
The new Values.Clone method creates a deep copy of Values.
testing/synctest
The new Sleep helper function combines time.Sleep and testing/synctest.Wait.
unicode
The unicode package and associated support throughout the system has been upgraded from Unicode 15 to Unicode 17. See the Unicode 16.0.0 and Unicode 17.0.0 release notes for information about the changes.
Ports
Darwin
As announced in the Go 1.26 release notes, Go 1.27 requires macOS 13 Ventura or later; support for previous versions has been discontinued.
net: UnixConn read methods now return io.EOF directly instead of wrapping it in net.OpError when the underlying read returns EOF.