Go 1.17 Released: Compiler Improvements, New Architecture Support, Pruned Module Graphs, and Unsafe Utilities
Go 1.17 has been officially released, bringing a new function argument and result passing mechanism that improves performance by about 5%, reduces amd64 binary size by 2%, adds Windows ARM64 support, introduces pruned module graphs, and adds language features such as slice‑to‑array pointer conversion and unsafe.Add/Slice utilities.
Go 1.17 has been officially released.
The release improves the compiler by introducing a new function argument and result passing mechanism, which the Go team claims boosts program performance by roughly 5% and shrinks amd64 binary packages by about 2%; further platform support is planned.
Go 1.17 also adds support for the 64‑bit ARM architecture on Windows, enabling Go developers to run Go natively on a broader range of devices.
A new "pruned module graphs" feature is introduced. When a module’s go.mod file specifies go 1.17 or higher, the module graph includes only the direct dependencies of other Go 1.17 modules rather than all transitive dependencies, helping avoid unnecessary downloads or file reads of unrelated go.mod files and saving time during development.
In terms of language features, Go 1.17 includes three notable improvements:
Support for converting a slice to an array pointer.
The new unsafe.Add function: unsafe.Add(ptr, len) adds len to ptr and returns the updated pointer unsafe.Pointer(uintptr(ptr) + uintptr(len)) .
The new unsafe.Slice function: for a *T expression ptr , unsafe.Slice(ptr, len) returns a []T slice whose underlying array starts at ptr with length and capacity equal to len .
Other updates include various feature improvements and bug fixes, such as enhancements to crypto/x509 verification and changes to URL query parsing. See the full release notes for details.
Download URL: https://golang.org/dl/
Laravel Tech Community
Specializing in Laravel development, we continuously publish fresh content and grow alongside the elegant, stable Laravel framework.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.