Go: A Documentary

Go 1.28

Part II · master 6c87434d24..4494c64f5a · 766 in-scope commits · unreleased, in development

mapsplitgroup by default. SSA package split into ssacompile and others. ARM64 SVE. The size-specialized-malloc flag is removed. Wyhash for small keys. Inlinable recover callers. Composite-literal type elision in progress. string(int) restricted. Linux perf profiles accepted for PGO.

Each area lists the stage every thread reached in this release (with what was left open afterwards), then changes that are not part of a thread. Thread names link to the full thread on its topic page.

Memory management

From Runtime: memory allocator and garbage collector (Go 1.18–1.28)

Scheduler and concurrency

From Runtime: scheduler, timers, channels, locks and synchronization (Go 1.18–1.28)

Other changes

Data structures and type metadata

From Runtime: maps, built-in data structures, hashing, randomness and type metadata (Go 1.18–1.28)

Diagnostics and knobs

From Runtime: tracing, profiling, metrics and diagnostics (Go 1.18–1.28)

OS layer, stacks and panics

From Runtime: OS and platform layer, stacks, panics and tracebacks (Go 1.18–1.28)

Other changes

Compiler frontend · types2

From Compiler frontend: the types2 type checker (Go 1.18–1.28)

Other changes

Compiler frontend · syntax, IR, generics

From Compiler frontend: syntax, IR, unified IR and the generics implementation (Go 1.18–1.28)

Other changes

Middle end and SSA optimizer

From Compiler: middle end and SSA optimization (Go 1.18–1.28)

Other changes

Backends and assemblers · architectures, ABI

From Compiler backend: architectures, register allocation, ABI and assemblers (Go 1.18–1.28)

Other changes

Backends and assemblers · SIMD

From SIMD: the simd packages and their compiler support (Go 1.18–1.28)

Other changes

Linker and object files

From Linker, object files and debug info (Go 1.18–1.28)

Other changes