Google has released Go version 1.5, which includes several significant architectural changes to the implementation. While this version of Google’s Go open source programming language does include major developments, the release notes state that almost all Go programs should compile and run as usual. This is the sixth major stable release of Go and can be downloaded on the Go website.
One of the most significant changes to Go is the translation of the compiler tool chain from C to Go. This change means that the last remnants of C code have been removed from the Go code base. Another major change is the complete redesign of the Garbage Collector, which has led to greatly reduced garbage collection pause times. The Garbage Collector is now concurrent, which allows for reduced pause times by running in parallel with other goroutines whenever possible. The Garbage Collector also uses advanced algorithms and better scheduling of the collector to help lower latencies.
This latest version of Go includes support for internal packages for all repositories and experimental support for "vendoring external dependencies" using the go command. There is a new "go tool trace" command and a new "go doc" command included in this release. The "go tool trace" command is used for the "dynamic execution tracing of Go programs." The "go doc" command is an improved command-line interface that allows Go package documentation to be viewed.
The only actual language change in this release involves map literals. Map literals have been corrected so that the rule regarding "the element type to be elided from slice literals" is now applied to map keys.
For more information about Go version 1.5, visit the website.