GO 1.17 brings language and compiler enhancements
Go 1.17 introduces a new method of delivering function arguments and results to the compiler that relies on registers rather than the stack

Go 1.17, the most recent iteration of Google’s open source programming language, is now available as a production release, including modifications aimed at making coding safer.
On August 16, Go 1.17 was released.
Three minor language improvements are listed in the release notes, two of which are designed to make writing code that adheres to unsafe.safety Pointer’s requirements easier.
The three improvements are as follows:
- An expression
s
of type[]T
may now be converted to array pointer type*[N]T
. Ifa
is the result of such a conversion, then corresponding indices that are in range refer to the same underlying elements:&a[i] == &s[i] for 0 <= i < N
. The conversion panicsif len(s)
is less thanN
. - unsafe.Add
: unsafe.Add(ptr, len)
addslen
toptr
and returns the updated pointerunsafe.Pointer(uintptr(ptr) + uintptr(len))
. - unsafe.Slice: For expression ptr of type
*T, unsafe.Slice(ptr, len)
returns a slice of type[]T
whose underlying array starts atptr
and whose length and capacity arelen
.
Go 1.17 introduces a new method of delivering function arguments and results to the compiler that relies on registers rather than the stack. On the 64-bit x86 architecture, this is supported by Linux, MacOS, and Windows. Benchmarking has revealed a performance boost of roughly 5% and a typical binary size reduction of about 2% as a result. The functionality of safe Go code is unaffected by this modification.
This release introduces pruned module graphs. Module graphs for modules that mention Go 1.17 or higher in their go.mod file will only show the modules’ immediate dependencies, not their entire transitive relationships.
Go 1.17 is available for download from golang.org. The previous version, Go 1.16, was released in February and included library and runtime improvements. . The current stable releases include Go 1.16.5 and Go 1.15.13. A fuzzing capability for Go developers is planned for a future release of the language. Go 1.17 went into a beta release stage on June 10.
Oops! You almost missed a step!!!, you’ve not given us your LIKES yet!
BAMYX Technologies says THANK YOU FOR YOUR LIKES!!!