
In addition to some subtle changes and additions to the Go programming language, some of the other platform and tooling work with Go 1.20 includes:
- Go 1.20 is the last release supporting Microsoft Windows 7 / 8 / Server 200 8 / Server 2012. With Go 1.21, Windows 10 or Windows Server 2016 is the new minimum baseline.
- Go 1.20 is also dropping support for macOS 10.13 and 10.14 series.
- Experimental support for FreeBSD on RISC-V is introduced.
- The $GOROOT/pkg directory no longer stores pre-compiled package archives for the standard archive in order to reduce the size of the Go distribution.
- The go command now defines architecture feature build flags, like amd64.V2, to allow selecting a package implementation file based on the presence or absence of particular CPU architecture features. This is great news for the x86_64 micro-architecture feature level work.
- The go build and go install and other build-related commands now supports a "-cover" flag for enabling a build with code coverage instrumentation.
- Memory overhead reduction and CPU performance improvements by up to 2% thanks to work on the garbage collector.
- Preview support for Profile Guided Optimizations (PGO).
- On Linux the linker now selects the dynamic interpreter for glibc or musl at link-time.
- A new crypto/ecdh package to provide explicit support for Elliptic Curve Diffie-Hellman key exchanges over NIST curves and Curve25519.
Downloads and more details on the Go 1.20 release via go.dev .