The first beta of Go 1.16 has been released. The release notes can be found here. The most notable change is probably native support for Apple Silicon 🎉:
Go 1.16 adds support of 64-bit ARM architecture on macOS (also known as Apple Silicon) with
GOARCH=arm64. Like the
darwin/arm64port supports cgo, internal and external linking,
piebuild modes, and the race detector.
The iOS port, which was previously
darwin/arm64, has been renamed to
GOOS=ios implies the
darwinbuild tag, just as
linuxbuild tag. This change should be transparent to anyone using gomobile to build iOS apps.
Go 1.16 adds an
ios/amd64port, which targets the iOS simulator running on AMD64-based macOS. Previously this was unofficially supported through
darwin/amd64with the ios build tag set.
Go 1.16 is the last release that will run on macOS 10.12 Sierra. Go 1.17 will require macOS 10.13 High Sierra or later.
Other notable changes are that there is now native support for embedding static files and file trees:
The go command now supports including static files and file trees as part of the final executable, using the new
//go:embeddirective. See the documentation for the new
embedpackage for details.
Also, Go modules are now enabled by default:
Module-aware mode is enabled by default, regardless of whether a go.mod file is present in the current working directory or a parent directory. More precisely, the
GO111MODULEenvironment variable now defaults to on. To switch to the previous behavior, set
You can download the beta release here.