Go 1.3 is released
18 Jun 2014

Andrew Gerrand

* Go 1.3 is released

Today we are happy to announce the release of [[https://golang.org/doc/go1.3][Go 1.3]].
This release comes six months after our last major release and provides better
performance, improved tools, support for running Go in new environments, and more.
All Go users should upgrade to Go 1.3.
You can grab the release from our [[https://golang.org/dl/][downloads page]] and
find the full list of improvements and fixes in the
[[https://golang.org/doc/go1.3][release notes]].
What follows are some highlights.

[[http://godoc.org/code.google.com/p/go.tools/cmd/godoc][Godoc]],
the Go documentation server, now performs static analysis.
When enabled with the -analysis flag, analysis results are presented
in both the source and package documentation views, making it easier
than ever to navigate and understand Go programs.
See [[https://golang.org/lib/godoc/analysis/help.html][the documentation]] for the details.

The gc toolchain now supports the Native Client (NaCl) execution sandbox on the
32- and 64-bit Intel architectures.
This permits the safe execution of untrusted code, useful in environments such as the
[[http://blog.golang.org/playground][Playground]].
To set up NaCl on your system see the [[https://golang.org/wiki/NativeClient][NativeClient wiki page]].

Also included in this release is experimental support for the DragonFly BSD,
Plan 9, and Solaris operating systems. To use Go on these systems you must
[[https://golang.org/doc/install/source][install from source]].

Changes to the runtime have improved the
[[https://golang.org/doc/go1.3#performance][performance]] of Go binaries,
with an improved garbage collector, a new
[[https://golang.org/s/contigstacks]["contiguous" goroutine stack management strategy]],
a faster race detector, and improvements to the regular expression engine.

As part of the general [[https://golang.org/s/go13linker][overhaul]] of the Go
linker, the compilers and linkers have been refactored. The instruction
selection phase that was part of the linker has been moved to the compiler.
This can speed up incremental builds for large projects.

The [[https://golang.org/doc/go1.3#garbage_collector][garbage collector]] is now
precise when examining stacks (collection of the heap has been precise since Go
1.1), meaning that a non-pointer value such as an integer will never be
mistaken for a pointer and prevent unused memory from being reclaimed. This
change affects code that uses package unsafe; if you have unsafe code you
should read the [[https://golang.org/doc/go1.3#garbage_collector][release notes]]
carefully to see if your code needs updating.

We would like to thank the many people who contributed to this release;
it would not have been possible without your help.

So, what are you waiting for?
Head on over to the [[https://golang.org/dl/][downloads page]] and start hacking.
