Go language 1.21 is out! Let’s see what’s new in the release of the popular Google’s programming language.
First, Go changed the version number system starting in this release. Now, it has minor version number, so it will be Go 1.21.0, 1.21.1, 1.21.2 …
Go 1.21 introduced a few new built-in functions. They include
max to compute the smallest and max value of a fixed number of given arguments. And, new function
clear to delete/zero all elements from a map or a slice.
The Profile Guided Optimization (PGO) feature introduced in 1.20 is now generally available, results performance improvements from 2% to 7%. As well, Go compiler itself has been rebuilt with PGO enabled.
The release also tunes the garbage collector to reduce tail latency, and collects traces with runtime/trace now results smaller CPU usage on amd64/arm64.
Other changes in Go 1.21 include:
- Experimental port for WebAssembly System Interface (WASI).
-buildmode=piein Linux/loong64 port.
- On Linux ppc64/ppc64le,
GOPPC64=power10now generates PC-relative instructions, prefixed instructions, and other new Power10 instructions.
- Improve backwards compatibility and forwards compatibility in the Go toolchain.
- New standard library additions:
log/slogpackage for structured logging
slicespackage for common operations on slices of any element type
mapspackage for common operations on maps of any key or element type
cmppackage with new utilities for comparing ordered values.
Get Go 1.21
For source code, as well as binary packages for Windows, macOS, and Linux, go to Go website via link below:
For Debian, Ubuntu and Linux Mint users, I have a step by step guide shows how to install Go language and add it to your PATH.