golang.org/toolchain@v0.0.1-go1.9rc2.windows-amd64/blog/content/go1.8.article (about) 1 Go 1.8 is released 2 16 Feb 2017 3 4 Chris Broadfoot 5 cbro@golang.org 6 7 * Introduction 8 9 Today the Go team is happy to announce the release of Go 1.8. 10 You can get it from the [[https://golang.org/dl/][download page]]. 11 There are significant performance improvements and changes across the standard library. 12 13 The compiler back end introduced in [[https://blog.golang.org/go1.7][Go 1.7]] for 64-bit x86 is now used 14 on all architectures, and those architectures should see significant [[https://golang.org/doc/go1.8#compiler][performance improvements]]. 15 For instance, the CPU time required by our benchmark programs was reduced by 20-30% on 32-bit ARM systems. 16 There are also some modest performance improvements in this release for 64-bit x86 systems. 17 The compiler and linker have been made faster. 18 Compile times should be improved by about 15% over Go 1.7. 19 There is still more work to be done in this area: expect faster compilation speeds in future releases. 20 21 Garbage collection pauses should be [[https://golang.org/doc/go1.8#gc][significantly shorter]], 22 usually under 100 microseconds and often as low as 10 microseconds. 23 24 The HTTP server adds support for [[https://golang.org/doc/go1.8#h2push][HTTP/2 Push]], 25 allowing servers to preemptively send responses to a client. 26 This is useful for minimizing network latency by eliminating roundtrips. 27 The HTTP server also adds support for [[https://golang.org/doc/go1.8#http_shutdown][graceful shutdown]], 28 allowing servers to minimize downtime by shutting down only after serving all requests that are in flight. 29 30 [[https://golang.org/pkg/context/][Contexts]] (added to the standard library in Go 1.7) 31 provide a cancelation and timeout mechanism. 32 Go 1.8 [[https://golang.org/doc/go1.8#more_context][adds]] support for contexts in more parts of the standard library, 33 including the [[https://golang.org/pkg/database/sql][`database/sql`]] and [[https://golang.org/pkg/net][`net`]] packages 34 and [[http://beta.golang.org/pkg/net/http/#Server.Shutdown][`Server.Shutdown`]] in the `net/http` package. 35 36 It's now much simpler to sort slices using the newly added [[https://golang.org/pkg/sort/#Slice][`Slice`]] 37 function in the `sort` package. For example, to sort a slice of structs by their `Name` field: 38 39 sort.Slice(s, func(i, j int) bool { return s[i].Name < s[j].Name }) 40 41 Go 1.8 includes many more additions, improvements, and fixes. 42 Find the complete set of changes, and more information about the improvements listed above, in the 43 [[https://golang.org/doc/go1.8.html][Go 1.8 release notes]]. 44 45 To celebrate the release, Go User Groups around the world are holding [[https://github.com/golang/go/wiki/Go-1.8-release-party][release parties]] this week. 46 Release parties have become a tradition in the Go community, so if you missed out this time, keep an eye out when 1.9 nears. 47 48 Thank you to over 200 contributors who helped with this release.