August 19, 2026
Go 1.27 adds generic methods and other small language refinements, ships new encoding/json/v2, post-quantum crypto/mldsa, and experimental SIMD packages, speeds up small allocations, and makes goroutine leak profiling generally available—an incremental, compatibility-preserving upgrade.
Language: methods can now declare their own type parameters (generic methods), e.g. math/rand/v2's (*Rand) N[Int intType](Int) Int.
Language: struct literal keys can now be any valid field selector, not just a top-level field name.
Language: function type inference now applies whenever a generic function is assigned to or converted to a matching function type.
New encoding/json/v2 and encoding/json/jsontext packages; stdlib encoding/json is now backed by v2 (stricter UTF-8/duplicate-name defaults), opt out via GOEXPERIMENT=nojsonv2.
New crypto/mldsa package implementing post-quantum ML-DSA signatures (FIPS 204); crypto/x509 and crypto/tls (TLS 1.3) gain ML-DSA support.
New experimental simd package (portable, vector-size-agnostic) and updated simd/archsimd (now adds arm64 Neon and WebAssembly SIMD), both under GOEXPERIMENT=simd.
Faster small (<80 byte) memory allocations via size-specialized allocation routines, up to 30% faster for those allocations (~1% overall), at a ~60KB binary size cost.
Goroutine leak profiling (goroutineleak) is now generally available in runtime/pprof and net/http/pprof, promoted from Go 1.26 experiment.
asynctimerchan GODEBUG setting removed permanently; time-created channels are now always unbuffered.
go mod tidy now auto-merges duplicate require blocks into a clean two-block layout for modules on go 1.27+.
unicode package and related support upgraded from Unicode 15 to Unicode 17.
go command drops bzr VCS support; ppc64 Linux now supports ELFv2 ABI with cgo, PIE, and external linking; macOS 13 Ventura is now the minimum supported version.