diff --git a/doc/go1.9.html b/doc/go1.9.html new file mode 100644 index 0000000000..e2ad65491a --- /dev/null +++ b/doc/go1.9.html @@ -0,0 +1,571 @@ + + + + + + +
+ Go 1.9 is not yet released. These are work-in-progress + release notes. Go 1.9 is expected to be released in August 2017. +
+ ++ The latest Go release, version 1.9, arrives six months after Go 1.8 + and is the tenth release in the Go 1.x series. + Most of its changes are in the implementation of the toolchain, runtime, and libraries. + There are no changes to the language specification. + 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. +
+ ++ The release + adds transparent monotonic time support, + parallelizes compilation of functions within a package, + better supports test helper functions, + and includes a new bit manipulation package. +
+ ++ There are no new supported operating systems or processor + architectures in this release. +
+ +
+ Both GOARCH=ppc64 and GOARCH=ppc64le now
+ require at least Power8 support. In previous releases,
+ only GOARCH=ppc64le required Power8 and the big
+ endian ppc64 architecture supported older
+ hardware.
+
+ +
+ There are some instabilities on FreeBSD that are known but not understood. + These can lead to program crashes in rare cases. + See issue 15658. + Any help in solving this FreeBSD-specific issue would be appreciated. +
+ +
+ The Go compiler now supports compiling a package's functions in parallel, taking
+ advantage of multiple cores. This is in addition to the go command's
+ existing support for parallel compilation of separate packages.
+ Parallel compilation is on by default, but can be disabled by setting the
+ environment variable GO19CONCURRENTCOMPILATION to 0.
+
+ As always, the changes are so general and varied that precise + statements about performance are difficult to make. Most programs + should run a bit faster, due to speedups in the garbage collector, + better generated code, and optimizations in the core library. +
+ +
+ TODO: There have been significant optimizations bringing more than 10% improvements
+ to implementations in the
+ foo,
+ bar,
+ and
+ quux
+ packages.
+
+ TODO(austin): give update. +
+ +
+ The time package now transparently
+ tracks monotonic time in each Time
+ value, making computing durations between two Time values
+ a safe operation in the presence of wall clock adjustments.
+ See the package docs and
+ design document
+ for details.
+
+ Go 1.9 includes a new package,
+ math/bits, with optimized
+ implementations for manipulating bits. On most architectures
+ functions in this package are additionally recognized by the
+ compiler and treated as intrinsics for additional performance.
+
+ The
+ new (*T).Helper
+ an (*B).Helper
+ methods marks the calling function as a test helper function. When
+ printing file and line information, that function will be skipped.
+ This permits writing test helper functions while still having useful
+ line numbers for users.
+
+ 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/39570: set utf-8 flag +
+ ++ TODO: https://golang.org/cl/36876: add BLAKE2b and BLAKE2s hash constants +
+ ++ TODO: https://golang.org/cl/38366: ARM assembly versions of encrypt, decrypt and expandKey +
+ ++ TODO: https://golang.org/cl/43852: use blocking getrandom call on Linux when supported +
+ ++ TODO: https://golang.org/cl/36093: load certs from env vars + extra locations +
+ ++ TODO: https://golang.org/cl/36900: support excluded domains in name constraints. +
+ ++ TODO: https://golang.org/cl/35476: proper prepared statement support in transactions +
+ ++ TODO: https://golang.org/cl/39031: support scanning into user defined string types +
+ ++ TODO: https://golang.org/cl/40694: allow using a single connection from the database +
+ ++ TODO: https://golang.org/cl/44017: heuristically handle both UNIX and Windows paths +
+ ++ TODO: https://golang.org/cl/38660: add NullBytes and NullRawValue for working with ASN.1 NULL +
+ ++ TODO: https://golang.org/cl/38634: add Encoding.WithPadding, StdPadding, NoPadding +
+ ++ TODO: https://golang.org/cl/39203: speedup decoding of maps by zeroing values +
+ ++ TODO: https://golang.org/cl/37051: support sharp flag for float and complex value printing +
+ ++ TODO: https://golang.org/cl/44291: make -I/-L options in cgo flags absolute +
+ ++ TODO: https://golang.org/cl/38356: add 128-bit FNV hash support +
+ ++ TODO: https://golang.org/cl/37880: panic if predefined escapers are found in pipelines during rewriting +
+ ++ TODO: https://golang.org/cl/40936: allow safe usage of predefined escapers in pipelines +
+ ++ TODO: https://golang.org/cl/36734: fix the overlap check in Rectangle.Intersect. +
+ ++ TODO: https://golang.org/cl/36732: tweak the YCbCr to RGBA conversion formula again. +
+ ++ TODO: https://golang.org/cl/34150: reduce memory allocs encoding images by reusing buffers +
+ ++ TODO: https://golang.org/cl/38271: decode Gray8 transparent images. +
+ ++ TODO: https://golang.org/cl/36487: add IsInt64/IsUint64 predicates +
+ ++ TODO: https://golang.org/cl/36315: added package for bit-level counting and manipulation +
+ ++ TODO: https://golang.org/cl/39223: add Size to FileHeader +
+ ++ TODO: https://golang.org/cl/32572: add Resolver.StrictErrors +
+ ++ TODO: https://golang.org/cl/37260: allow Resolver to use a custom dialer +
+ ++ TODO: https://golang.org/cl/37402: implement deadline functionality on Pipe +
+ ++ TODO: https://golang.org/cl/40510: don't enclose non-literal IPv6 addresses in square brackets +
+ ++ TODO: https://golang.org/cl/40512: validate network in Dial{,IP} and Listen{Packet,IP} for IP networks +
+ ++ TODO: https://golang.org/cl/35488: add support for socks5 proxy +
+ ++ TODO: https://golang.org/cl/38194: strip port from host in mux Handler +
+ ++ TODO: https://golang.org/cl/43231: for http2, use the priority write scheduler by default +
+ ++ TODO: https://golang.org/cl/40012: expose cgi env vars in request context +
+ ++ TODO: https://golang.org/cl/34639: add Client and Certificate to Server +
+ ++ TODO: https://golang.org/cl/38474: Create empty maps and slices as return type +
+ ++ TODO: https://golang.org/cl/37915: parse command line without shell32.dll +
+ ++ TODO: https://golang.org/cl/41830: do not report ModeDir for symlinks on windows +
+ ++ TODO: https://golang.org/cl/37586: remove duplicate environment variables in Cmd.Start +
+ ++ TODO: https://golang.org/cl/33713: add Go implementation of LookupGroup, LookupGroupId +
+ ++ TODO: https://golang.org/cl/37664: add non-cgo versions of Lookup, LookupId +
+ ++ TODO: https://golang.org/cl/38335: Add MakeMapWithSize for creating maps with size hint +
+ ++ TODO: https://golang.org/cl/29341: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD +
+ ++ TODO: https://golang.org/cl/34937: make ReadMemStats STW for < 25µs +
+ ++ TODO: https://golang.org/cl/35710: make time correctly update on Wine +
+ ++ TODO: https://golang.org/cl/37233: use inlining tables to generate accurate tracebacks +
+ ++ TODO: https://golang.org/cl/37441: make complex division c99 compatible +
+ ++ TODO: https://golang.org/cl/37520: make runtime.GC() trigger a concurrent GC +
+ ++ TODO: https://golang.org/cl/37726: strongly encourage CallersFrames with the result of Callers +
+ ++ TODO: https://golang.org/cl/38403: reduce Windows timer resolution when idle +
+ ++ TODO: https://golang.org/cl/40810: make sweep trace events encompass entire sweep loop +
+ ++ TODO: https://golang.org/cl/43641: use pselect6 for usleep on linux/amd64 and linux/arm +
+ ++ TODO: https://golang.org/cl/34013: don't run a GC when setting SetGCPercent negative +
+ ++ TODO: https://golang.org/cl/39835: don't trigger a GC on SetGCPercent +
+ ++ TODO: https://golang.org/cl/34198: add definitions of profile label types +
+ ++ TODO: https://golang.org/cl/34310: make Mutex more fair +
+ ++ TODO: https://golang.org/cl/36617: import Map from x/sync/syncmap +
+ ++ TODO: https://golang.org/cl/36697: only call setgroups if we need to +
+ ++ TODO: https://golang.org/cl/37439: use CLONE_VFORK and CLONE_VM +
+ ++ TODO: https://golang.org/cl/37913: add Conn and RawConn interfaces +
+ ++ TODO: https://golang.org/cl/41195: add argument to list tests, benchmarks, and examples +
+ ++ TODO: https://golang.org/cl/39152: generate all possible int64, uint64 values +
+ ++ TODO: https://golang.org/cl/38420: fix handling of empty blocks +
+ ++ TODO: https://golang.org/cl/36615: add Duration.Truncate and Duration.Round +
+ +