Go 1.2 is released
1 Dec 2013
Tags: release

Andrew Gerrand

* Introduction

We are pleased to announce the release of Go 1.2, the latest stable version of
the Go Programming Language.

Binary distributions may be downloaded from the
[[https://golang.org/doc/install][usual place]] or if you prefer to
[[https://golang.org/doc/install/source][compile from source]] you should use
the `release` or `go1.2` tags.

This new release comes nearly seven months after the release of Go 1.1 in May,
a much shorter period than the 14 months between 1.1 and 1.0.
We anticipate a comparable interval between future major releases.

[[https://golang.org/doc/go1.2][Go 1.2]] includes a couple of minor
language changes, several improvements to the language implementation and
tools, some performance improvements, and many additions and
(backward-compatible) changes to the standard library.

Please read the [[https://golang.org/doc/go1.2][release notes]] for all
the details, as some changes may affect the behavior of existing (buggy) programs.
What follows is the highlights of the release.

A new [[https://golang.org/doc/go1.2#three_index][three-index slice syntax]]
adds the ability to specify capacity as well as length. This allows the
programmer to pass a slice value that can only access a limited portion of the
underlying array, a technique that previously required the use of the unsafe
package.

A major new feature of the tool chain is the facility to compute and display
[[https://golang.org/doc/go1.2#cover][test coverage results]].
See the [[https://golang.org/cmd/go/#hdr-Description_of_testing_flags][`go`test`]]
and [[https://godoc.org/code.google.com/p/go.tools/cmd/cover/][cover tool]]
documentation for details. Later this week we will publish an article that
discusses this new feature in detail.

Goroutines are now [[https://golang.org/doc/go1.2#preemption][pre-emptively scheduled]],
in that the scheduler is invoked occasionally upon entry to a function.
This can prevent busy goroutines from starving other goroutines on the same
thread.

An increase to the default goroutine stack size should improve the
performance of some programs. (The old size had a tendency to introduce
expensive stack-segment switching in performance-critical sections.)
On the other end, new restrictions on
[[https://golang.org/doc/go1.2#stack_size][stack sizes]] and
[[https://golang.org/doc/go1.2#thread_limit][the number of operating system threads]]
should prevent misbehaving programs from consuming all the resources of a
machine. (These limits may be adjusted using new functions in the
[[https://golang.org/pkg/runtime/debug][`runtime/debug` package]].)

Finally, among the [[https://golang.org/doc/go1.2#library][many changes to the standard library]],
significant changes include
the new [[https://golang.org/doc/go1.2#encoding][`encoding` package]],
[[https://golang.org/doc/go1.2#fmt_indexed_arguments][indexed arguments]] in `Printf` format strings, and
some [[https://golang.org/doc/go1.2#text_template][convenient additions]] to the template packages.

As part of the release, the [[http://play.golang.org/][Go Playground]] has been
updated to Go 1.2. This also affects services that use the Playground, such as
[[http://tour.golang.org/][the Go Tour]] and this blog.
The update also adds the ability to use threads and the `os`, `net`, and
`unsafe` packages inside the sandbox, making it more like a real Go environment.

To everyone who helped make this release possible, from the many users who
submitted bug reports to the 116 (!) contributors who committed more than 1600
changes to the core: Your help is invaluable to the project. Thank you!

_This_blog_post_is_the_first_of_the_
[[http://blog.gopheracademy.com/day-01-go-1.2][Go Advent Calendar]],
_a_series_of_daily_articles_presented_by_the_
[[http://gopheracademy.com/][Gopher Academy]] _from_December_1_to_25._
