From: Austin Clements Date: Tue, 17 Dec 2019 22:39:50 +0000 (-0500) Subject: doc/go1.14: release notes for runtime and compiler X-Git-Tag: go1.14rc1~227 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=87a546776b7f5a0a19abc1d439c73b19a974fc28;p=gostls13.git doc/go1.14: release notes for runtime and compiler Change-Id: I9519659983de23f43ff0e05cffd336d8bc351400 Reviewed-on: https://go-review.googlesource.com/c/go/+/211758 Reviewed-by: Matthew Dempsky Reviewed-by: Alexander Rakoczy --- diff --git a/doc/go1.14.html b/doc/go1.14.html index e7cd533908..c255e81ff8 100644 --- a/doc/go1.14.html +++ b/doc/go1.14.html @@ -66,6 +66,33 @@ TODO 64-bit darwin/arm64 port.

+

Windows

+ +

+ Go binaries on Windows now + have DEP + (Data Execution Prevention) enabled. +

+ +

WebAssembly

+ +

+ JavaScript values referenced from Go via js.Value + objects can now be garbage collected. +

+ +

+ js.Value values can no longer be compared using + the == operator, and instead must be compared using + their Equal method. +

+ +

+ js.Value now + has IsUndefined, IsNull, + and IsNaN methods. +

+

FreeBSD

@@ -207,6 +234,30 @@ TODO TODO

+

+ This release improves the performance of most uses + of defer to incur almost zero overhead compared to + calling the deferred function directly. + As a result, defer can now be used in + performance-critical code without overhead concerns. +

+ +

+ Goroutines are now asynchronously preemptible. + As a result, loops without function calls no longer potentially + deadlock the scheduler or significantly delay garbage collection. + This is supported on all platforms except windows/arm, + darwin/arm, js/wasm, and + plan9/*. +

+ +

+ The page allocator is more efficient and incurs significantly less + lock contention at high values of GOMAXPROCS. + This is most noticeable as lower latency and higher throughput for + large allocations being done in parallel and at a high rate. +

+

Internal timers, used by time.After, @@ -218,6 +269,42 @@ TODO visible changes.

+

Compiler

+ +

+ This release adds -d=checkptr as a compile-time option + for adding instrumentation to check that Go code is following + unsafe.Pointer safety rules dynamically. + This option is enabled by default with the -race + or -msan flags, and can be disabled + with -gcflags=-all=-d=checkptr=0. + Specifically, -d=checkptr checks the following: +

+ +
    +
  1. + When converting unsafe.Pointer to *T, + the resulting pointer must be aligned appropriately + for T. +
  2. +
  3. + If the result of pointer arithmetic points into a Go heap object, + one of the unsafe.Pointer-typed operands must point + into the same object. +
  4. +

    + +

    + Detailed escape analysis diagnostics (-m=2) now work again. + This had been dropped from the new escape analysis implementation in + the previous release. +

    + +

    + All Go symbols in macOS binaries now begin with an underscore, + following platform conventions. +

    +

    Core library

    @@ -303,6 +390,11 @@ TODO

    runtime
    +

    + runtime.Goexit can no longer be aborted by a + recursive panic/recover. +

    +

    TODO: https://golang.org/cl/187739: treat CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, CTRL_SHUTDOWN_EVENT as SIGTERM on Windows