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/149297: make Reader.Peek invalidate Unreads
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/138675: enable race detector on arm64
TODO: https://golang.org/cl/120055: use the new getrandom syscall on FreeBSD
TODO: https://golang.org/cl/139419: warn to stderr if blocked 60+ sec on first Reader.Read call
TODO: https://golang.org/cl/130397: remove assembler implementations
TODO: https://golang.org/cl/143177: reject HTTP requests to HTTPS server
TODO: https://golang.org/cl/145738: add support for returning cursors to client
TODO: https://golang.org/cl/139537: add Map.Delete
TODO: https://golang.org/cl/129777: print values for map keys with non-reflexive equality
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/134075: add (*File).LineStart, which returns Pos for a given line
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/149578: move GODEBUGCPU options into GODEBUG
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/151299: update tzdata to 2018g
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/146659: enable RFC 6555 Fast Fallback by default
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/146437: make ReverseProxy automatically proxy WebSocket requests
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/146020: add support for long path names on unix RemoveAll
TODO: https://golang.org/cl/145220: change IsAbs("NUL") to return true
TODO: https://golang.org/cl/33572: add Value.MapRange method and MapIter type
TODO: https://golang.org/cl/139783: add DeepEqual test
TODO: https://golang.org/cl/139784: add partial Deprecation comment to Copy
TODO: https://golang.org/cl/135395: use MADV_FREE on Linux if available
TODO: https://golang.org/cl/144220: add API to read module info in binary
TODO: https://golang.org/cl/122835: add Builder.Cap
TODO: https://golang.org/cl/131495: correctly handle invalid utf8 sequences in Map
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/141639: implement syscalls on Darwin using libSystem
TODO: https://golang.org/cl/147117: add Syscall18 on Windows
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/121936: exit with error if testing.Short is called before flag.Parse
TODO: https://golang.org/cl/139258: implement -benchtime=100x
TODO: https://golang.org/cl/142217: removed truncation of context in error message