Go 1.15 Released

Go 1.15 brings substantial improvements to the linker, improves allocation for small objects at high core counts, and deprecates X.509 CommonName.

The latest Go release, version 1.15 has arrived. Go 1.15 brings substantial improvements to the linker, improves allocation for small objects at high core counts, and deprecates X.509 CommonName.
 
Most of the changes in this latest version are in the implementation of the toolchain, runtime, and libraries.
 
Go 1.15 brings substantial improvements to the Go linker, which reduce linker resource usage (both time and memory) and improve code robustness/maintainability. Linking is now about 20% faster and requires 30% less memory on average, for ELF-based OSes running on amd64 architectures.
 
 
 
Better linker performance are because of a newly redesigned object file format, and a revamping of internal phases to increase concurrency (for instance, applying relocations to symbols in parallel). Object files in this release are slightly larger than their 1.14 equivalents.
 
The language now generates Windows ASLR executables when -buildmode=pie cmd/link flag is provided. Go command uses -buildmode=pie by default on Windows. The -race and -msan flags now always enable -d=checkptr. and, Go-built DLLs no longer cause the process to exit when it receives a signal.
 
When linking binaries for Android, the latest version explicitly selects the lld linker available in recent versions of the NDK.
 
The new version also adds support for OpenBSD 6.7 on GOARCH=arm and GOARCH=arm64. 1.15 also improves the stability and performance of the 64-bit RISC-V port on Linux (GOOS=linux, GOARCH=riscv64). Asynchronous preemption is now also supported.
 
To learn more you can visit the release notes here.