Go: A Documentary

Go 1.23

Part II · master 1653833811..c622f5c341 · 667 in-scope commits

Timer rewrite with GC-able synchronous timer channels. Range-over-func ships. unique and internal weak pointers. Linkname lockdown. v1 tracer deleted. Profile stack depth 128. First spinbit attempt (reverted). Stack-slot merging. GOARM64/GORISCV64.

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)

Other changes

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)

Other changes

Diagnostics and knobs

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

Other changes

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

Linker and object files

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

Other changes