The latest Go 1.15 release has been announced for general availability. This release comes with lots of changes mainly in the implementation of the toolchain, runtime, and libraries. It also maintains backward compatibility with previous versions.
Go, also known as Golang is a popular, modern programming language that is syntactically similar to C. It comes with memory safety, garbage collection, structural typing, and CSP-style concurrency. The language comes with two major implementations namely Google‘s self-hosting compiler toolchain targeting multiple operating systems, mobile devices, and WebAssembly. The other is gccgo, a GCC frontend.
Some of the main highlights with this release include substantial improvements to the linker, improves allocation for small objects at high A chip in a computer is electronic circuits or an integrated circuit (also referred to as an IC or a microchip) embedded on a flat piece of semiconductor material that is normally silicon. Integrated circuits can be analog, digital, or mixed-signal. The minute size of computer chips brings the advantage of allowing high speed, low power dissipation, and reduced manufacturing... More counts, and deprecates X.509 CommonName. GOPROXY now supports skipping proxies that return errors and a new embedded tzdata package has been added.
There is now added support for OpenBSD 6.7 on GOARCH=arm and GOARCH=arm64. Typical compiled binary sizes are now reduced by around 5% compared to Go 1.14.
The toolchain now mitigates Intel CPU erratum SKX102 on GOARCH=amd64 by aligning functions to 32-byte boundaries and padding jump instructions. While this padding increases binary sizes, this is more than made up for by the binary size improvements mentioned above. A –spectre flag to both the compiler and the assembler, to allow enabling Spectre mitigations.
For more details about the Go 1.15 release and all the major and minor changes please visit the official release notes found here.