Your opinion matters! Please fill in the InfoQ Survey!

Go Steadily Advances as Go 1.2 is Released

| by Jeff Martin Follow 6 Followers on Dec 04, 2013. Estimated reading time: 1 minute |

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

The Go open-source programming language has released version 1.2 which delivers a combination of language revisions, improved tools, and changes to the standard library. Go has its roots in a research project at Google but today is used in production environments in several different companies and projects. This new release marks the pace of the language's steady progress as it comes roughly 7 months after Go's 1.1 release in May.


As previously reported, for 1.2 the two major language changes affect nil and slices. For nil, a runtime panic is now guaranteed to occur in certain situations compared to Go's previous behavior that would allow unsafe memory access. A new addition to slices means that capacity of a slice can be specified as well as length. Changes to existing code will not be needed for this change, but the change in behavior nil means that Go 1.2 may uncover faulty code that will need to be manually corrected.


The scheduler for goroutines has received pre-emption capability, in an attempt to mitigate the situation where one goroutine is able to starve out other goroutines running on the same thread. Separately the minimum stack size for a goroutine has been increased to 8KB and the maximum stack size is now configurable. The default maximum on 64-bit systems is 1GB and 250MB on 32-bit systems.


Users of Go on Windows and BSD platforms will be happy to see the networking performance gains that Linux and Mac OS X users received in Go 1.1 are part of the 1.2 release. According to the development team, these changes bring about a 30% performance improvement. All users of 1.2 should see performance gains with Go's implementation of bzip2 decompression and the JSON encoding.


For the complete list of changes, consult the Go 1.2 Release Notes.

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread


Login to InfoQ to interact with what matters most to you.

Recover your password...


Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.


More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.


Stay up-to-date

Set up your notifications and don't miss out on content that matters to you