Skip to content

Commit e0c9fd4

Browse files
toothrotpearring
andcommitted
blog: add go1.17.article
For golang/go#47719 Updates golang/go#27155 Change-Id: Ied7ea9213bd318eae7bb327a5fc29c3bc9cc812a Co-authored-by: Matt Pearring <[email protected]> Reviewed-on: https://go-review.googlesource.com/c/website/+/342589 Trust: Alexander Rakoczy <[email protected]> Run-TryBot: Alexander Rakoczy <[email protected]> Reviewed-by: Michael Knyszek <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> Website-Publish: DO NOT USE <[email protected]>
1 parent 43e3401 commit e0c9fd4

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

blog/_content/go1.17.article

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Go 1.17 is released
2+
16 Aug 2021
3+
Summary: Go 1.17 adds performance improvements, module optimizations, arm64 on Windows, and more.
4+
5+
Matt Pearring
6+
7+
Alex Rakoczy
8+
9+
##
10+
11+
Today the Go team is thrilled to release Go 1.17, which you can get by visiting the
12+
[download page](https://golang.org/dl/).
13+
14+
This release brings additional improvements to the compiler, namely a
15+
[new way of passing function arguments and results](https://golang.org/doc/go1.17#compiler).
16+
This change has shown about a 5% performance improvement in Go programs and reduction in binary
17+
sizes of around 2% for amd64 platforms. Support for more platforms will come in future releases.
18+
19+
Go 1.17 also adds support for the
20+
[64-bit ARM architecture on Windows](https://golang.org/doc/go1.17#ports), letting gophers run
21+
Go natively on more devices.
22+
23+
We’ve also introduced [pruned module graphs](https://golang.org/doc/go1.17#go-command) in this
24+
release. Modules that specify `go 1.17` or higher in their `go.mod` file will have their module graphs
25+
include only the immediate dependencies of other Go 1.17 modules, not their full transitive
26+
dependencies. This should help avoid the need to download or read `go.mod` files for otherwise
27+
irrelevant dependencies&#8212;saving time in everyday development.
28+
29+
Go 1.17 comes with three small [changes to the language](https://golang.org/doc/go1.17#language).
30+
The first two are new functions in the `unsafe` package to make it simpler for programs to conform
31+
to the `unsafe.Pointer` rules: `unsafe.Add` allows for
32+
[safer pointer arithmetic](https://golang.org/pkg/unsafe#Add), while `unsafe.Slice` allows for
33+
[safer conversions of pointers to slices](https://golang.org/pkg/unsafe#Slice). The third change is
34+
an extension to the language type conversion rules to allow conversions from
35+
[slices to array pointers](https://golang.org/ref/spec#Conversions_from_slice_to_array_pointer),
36+
provided the slice is at least as large as the array at runtime.
37+
38+
Finally there are quite a few other improvements and bug fixes, including verification improvements
39+
to [crypto/x509](https://golang.org/doc/go1.17#crypto/x509), and alterations to
40+
[URL query parsing](https://golang.org/doc/go1.17#semicolons). For a complete list of changes and
41+
more information about the improvements above, see the
42+
[full release notes](https://golang.org/doc/go1.17).
43+
44+
Thanks to everyone who contributed to this release by writing code, filing bugs, sharing feedback,
45+
and testing the beta and release candidates. Your efforts helped to ensure that Go 1.17 is as stable
46+
as possible. As always, if you notice any problems, please
47+
[file an issue](https://golang.org/issue/new).
48+
49+
We hope you enjoy the new release!

0 commit comments

Comments
 (0)