“Go 1.14” Released

February 25, the latest version of programming language Go 1.14 was released.  This release includes improvements for runtime and compiler performance.

Go 1.14 is the latest stable release following Go 1.13, released in September 2019.  Module support in go command is ready for production use.  All users are encouraged to migrate to this feature from other dependency management systems.

Before this change, Go didn’t allow declaring overlapping methods in an interface, but now this rule is relaxed in cases of embedding interface.

As to runtime, the performance of defer is improved.  Almost no overhead is necessary for calling, which allows defer to be used in performance-critical code.  Also, as a result of Goroutines being asynchronously preemptive, loops without function calls no longer cause deadlocks nor delays of garbage collection.  As the efficiency of the page allocator is improved, there are many other improvements added to the release.

To the compiler, new option “-d=checkptr” has been added.  It is the option to check whether Go code is following unsafe.Pointer safety rules dynamically.  This is enabled by default on all platforms with the exception of Windows.  To disable it, just configure the “-gcflags=all=-d=checkptr=0” option.

There are many more feature improvements.  On the hardware side, this release is added with experimental support for 64-bit RISC-V on Linux and support for 64-bit ARM architecture on FreeBSD.

Go
https://golang.org/