Go 1.5 is released
19 Aug 2015

Andrew Gerrand
adg@golang.org

* Introduction

Today the Go project is proud to release Go 1.5,
the sixth major stable release of Go.

This release includes significant changes to the implementation.
The compiler tool chain was [[https://golang.org/doc/go1.5#c][translated from C to Go]],
removing the last vestiges of C code from the Go code base.
The garbage collector was [[https://golang.org/doc/go1.5#gc][completely redesigned]],
yielding a [[https://talks.golang.org/2015/go-gc.pdf][dramatic reduction]]
in garbage collection pause times.
Related improvements to the scheduler allowed us to change the default
[[https://golang.org/pkg/runtime/#GOMAXPROCS][GOMAXPROCS]] value
(the number of concurrently executing goroutines)
from 1 to the number of logical CPUs.
Changes to the linker enable distributing Go packages as shared libraries to
link into Go programs, and building Go packages into archives or shared
libraries that may be linked into or loaded by C programs
([[https://golang.org/s/execmodes][design doc]]).

The release also includes [[https://golang.org/doc/go1.5#go_command][improvements to the developer tools]].
Support for [[https://golang.org/s/go14internal]["internal" packages]]
permits sharing implementation details between packages.
[[https://golang.org/s/go15vendor][Experimental support]] for "vendoring"
external dependencies is a step toward a standard mechanism for managing
dependencies in Go programs.
The new "[[https://golang.org/cmd/trace/][go tool trace]]" command enables the
visualisation of  program traces generated by new tracing infrastructure in the
runtime.
The new "[[https://golang.org/cmd/go/#hdr-Show_documentation_for_package_or_symbol][go doc]]"
command provides an improved command-line interface for viewing Go package documentation.

There are also several [[https://golang.org/doc/go1.5#ports][new operating system and architecture ports]].
The more mature new ports are darwin/arm,
darwin/arm64 (Apple's iPhone and iPad devices),
and linux/arm64.
There is also experimental support for ppc64 and ppc64le
(IBM 64-bit PowerPC, big and little endian).

The new darwin/arm64 port and external linking features fuel the
[[https://godoc.org/golang.org/x/mobile][Go mobile project]], an experiment to
see how Go might be used for building apps on Android and iOS devices.
(The Go mobile work itself is not part of this release.)

The only language change is very minor,
[[https://golang.org/doc/go1.5#language][the lifting of a restriction in the map literal syntax]]
to make them more succinct and consistent with slice literals.

The standard library saw many additions and improvements, too.
The flag package now shows [[https://golang.org/doc/go1.5#flag][cleaner usage messages]].
The math/big package now provides a [[https://golang.org/pkg/math/big/#Float][Float]]
type for computing with arbitrary-precision floating point numbers.
An [[https://golang.org/doc/go1.5#net][improvement]] to the DNS resolver on
Linux and BSD systems has removed the cgo requirement for programs that do name
lookups.
The [[https://golang.org/pkg/go/types/][go/types]] package has been
[[https://golang.org/doc/go1.5#go_types][moved]] to the standard library from
the [[https://godoc.org/golang.org/x/tools][golang.org/x/tools]] repository.
(The new [[https://golang.org/pkg/go/constant/][go/constant]] and
[[https://golang.org/pkg/go/importer/][go/importer]] packages are also a result
of this move.)
The reflect package has added the
[[https://golang.org/pkg/reflect/#ArrayOf][ArrayOf]] and
[[https://golang.org/pkg/reflect/#FuncOf][FuncOf]] functions, analogous to the
existing [[https://golang.org/pkg/reflect/#SliceOf][SliceOf]] function.
And, of course, there is the usual
[[https://golang.org/doc/go1.5#minor_library_changes][list of smaller fixes and improvements]].

For the full story, see the [[https://golang.org/doc/go1.5][detailed release notes]].
Or if you just can't wait to get started,
head over to the [[https://golang.org/dl/][downloads page]] to get Go 1.5 now.
