Go 1.12 is not yet released. These are work-in-progress release notes. Go 1.12 is expected to be released in February 2019.
The latest Go release, version 1.12, arrives six months after Go 1.11. Most of its changes are in TODO. As always, the release maintains the Go 1 promise of compatibility. We expect almost all Go programs to continue to compile and run as before.
There are no changes to the language specification.
Go 1.12 is the last release that is supported on FreeBSD 10.x, which has already reached end-of-life. Go 1.13 will require FreeBSD 11.2+ or FreeBSD 12.0+.
Go 1.12 is the last release that will run on macOS 10.10 Yosemite. Go 1.13 will require macOS 10.11 El Capitan or later.
The build cache is now required as a step toward eliminating
$GOPATH/pkg
. Setting the environment variable
GOCACHE=off
to disable the
build cache
has no effect in Go 1.12.
In Go 1.12, godoc
no longer has a command-line interface and
is only a web server. Users should use go
doc
for command-line help output instead.
All of the changes to the standard library are minor.
As always, there are various minor changes and updates to the library, made with the Go 1 promise of compatibility in mind.
TODO: https://golang.org/cl/61511: support frame-pointer for arm64
TODO: https://golang.org/cl/137855: add ReplaceAll
TODO: https://golang.org/cl/145098: fix Reader.UnreadRune returning without error on a zero Reader
TODO: https://golang.org/cl/143177: reject HTTP requests to HTTPS server
TODO: https://golang.org/cl/139537: add Map.Delete
TODO: https://golang.org/cl/142737: print maps in key-sorted order
TODO: https://golang.org/cl/146023: add "hurd" as a GOOS value
TODO: https://golang.org/cl/140958: add new mode bit PreserveAST to control clearing of data in AST
TODO: https://golang.org/cl/141397: remove CLI support
TODO: https://golang.org/cl/118755: make RegisterFormat safe for concurrent use
TODO: https://golang.org/cl/134235: pack image data for small bitdepth paletted images
TODO: https://golang.org/cl/130676: use F_FULLFSYNC fcntl for FD.Fsync on OS X
TODO: https://golang.org/cl/139457: export StringWriter
TODO: https://golang.org/cl/123157: add extended precision Add, Sub, Mul, Div
TODO: https://golang.org/cl/113997: use splice(2) on Linux when reading from UnixConn, rework splice tests
TODO: https://golang.org/cl/130115: add Client.CloseIdleConnections
TODO: https://golang.org/cl/145398: in Transport, don't error on non-chunked response with Trailer header
TODO: https://golang.org/cl/125443: add ExitCode method to ProcessState
TODO: https://golang.org/cl/135075: add ModeCharDevice to ModeType
TODO: https://golang.org/cl/139418: add UserHomeDir
TODO: https://golang.org/cl/33572: add Value.MapRange method and MapIter type
TODO: https://golang.org/cl/135395: use MADV_FREE on Linux if available
TODO: https://golang.org/cl/122835: add Builder.Cap
TODO: https://golang.org/cl/125456: implement Unix Socket for Windows
TODO: https://golang.org/cl/138595: FreeBSD 12 ino64 support
TODO: https://golang.org/cl/141644: add Wrapper interface to support external Value wrapper types
TODO: https://golang.org/cl/143137: make zero js.Value represent "undefined"
TODO: https://golang.org/cl/144384: add the Value.Truthy method
TODO: https://golang.org/cl/139258: implement -benchtime=100x