diff options
-rw-r--r-- | content/go12.article | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/content/go12.article b/content/go12.article new file mode 100644 index 0000000..ca3a777 --- /dev/null +++ b/content/go12.article @@ -0,0 +1,76 @@ +Go 1.2 is released +1 Dec 2013 + +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 +[[http://golang.org/doc/install][usual place]] or if you prefer to +[[http://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. + +[[http://golang.org/doc/go1.2#encoding][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 [[http://golang.org/doc/go1.2#encoding][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 [[http://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 +[[http://golang.org/doc/go1.2#cover][test coverage results]]. +See the [[http://golang.org/cmd/go/#hdr-Description_of_testing_flags][`go`test`]] +and [[http://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 [[http://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 +[[http://golang.org/doc/go1.2#stack_size][stack sizes]] and +[[http://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 +[[http://golang.org/pkg/runtime/][`runtime` package]].) + +Finally, among the [[http://golang.org/doc/go1.2#library][many changes to the standard library]], +significant changes include +the new [[http://golang.org/doc/go1.2#encoding][`encoding` package]], +[[http://golang.org/doc/go1.2#fmt_indexed_arguments][indexed arguments]] in `Printf` format strings, and +some [[http://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/go-advent-2013][Go Advent Calendar]], +_a_series_of_daily_articles_presented_by_the_ +[[http://gopheracademy.com/][Gopher Academy]] _from_December_1_to_25._ |