Google has released version 1.6 of the Go open source programming language, featuring improvements to HTTP/2 backing and garbage collection.
"Go 1.6 adds transparent support in net/http package for the new HTTP2/protocol," release notes state. "Go clients and servers will automatically use HTTP/2 as appropriate when using HTTPS."
In a blog post, Google's Andrew Gerrand called the HTTP/2 support "the most significant change" in the release, with the revision bringing the new protocol's benefits to projects like the Go-based Caddy Web server. He otherwise described the upgrade, the seventh major stable release of the language, as more incremental than Go 1.5, which was released last August.
The team has tinkered with garbage collection, featuring lower pauses than version 1.5, particularly for large programs, but programs may not necessarily run faster. "As always, the changes are so general and varied that precise statements about performance are difficult to make. Some programs may run faster, some slower," according to release notes.
Gerrand further noted that "performance of Go programs built with Go 1.6 remains similar to those built with Go 1.5." The runtime, meanwhile, has added lightweight detection of concurrent misuse of maps, to prevent multiple goroutines from writing to a map concurrently.
The cgo capability, promoting interoperability between C and Go code, also gets attention. "Users of cgo should be aware of major changes to the rules for sharing pointers between Go and C code," Gerrand said The rules are designed to ensure that such C code can coexist with Go's garbage collector and are checked during program execution, so code may require changes to avoid crashes."
Version 1.6 also features experimental ports to the Android platform on 32-bit x86 processors and Linux on the 64-bit Mips platform. Google has been experimenting with the use of Go for building Android and iOS applications via NDK (Native Development Kit). There are no changes to the language specification itself in Go 1.6, but Google maintains its promise of compatibility with prior releases.