aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2017-06-08 13:35:58 -0400
committerAustin Clements <austin@google.com>2017-06-09 15:09:06 +0000
commit25a3dd3f459bc48dcdb87e6ca48a61fb0b775164 (patch)
treedb2ae30c9a24b9ebf8c814f000895d250a36990b
parent385ea724102f989e675ff210f360fbee085044e7 (diff)
downloadgo-25a3dd3f459bc48dcdb87e6ca48a61fb0b775164.tar.xz
doc/go1.9: runtime release notes
Several of the CLs that were against the runtime are noted in other places in the release notes, depending on where they are most user-visible. Change-Id: I167dc7ff17a4c5f9a5d22d5bd123aa0e99f5639e Reviewed-on: https://go-review.googlesource.com/45137 Reviewed-by: Alex Brainman <alex.brainman@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org>
-rw-r--r--doc/go1.9.html70
1 files changed, 47 insertions, 23 deletions
diff --git a/doc/go1.9.html b/doc/go1.9.html
index 85e0c3e1fa..60d5760314 100644
--- a/doc/go1.9.html
+++ b/doc/go1.9.html
@@ -106,6 +106,13 @@ type T1 = T2
environment variable <code>GO19CONCURRENTCOMPILATION</code> to <code>0</code>.
</p>
+<h3 id="compiler">Compiler Toolchain</h3>
+
+<p><!-- CL 37441 -->
+ Complex division is now C99-compatible. This has always been the
+ case in gccgo and is now fixed in the gc toolchain.
+</p>
+
<h3 id="go-test-list">Go test</h3>
<p> <!-- CL 41195 -->
@@ -128,7 +135,6 @@ type T1 = T2
<!-- CL 36983: https://golang.org/cl/36983: cmd/link: write dwarf sections -->
<!-- CL 40331: https://golang.org/cl/40331: cmd/link,runtime/cgo: enable PT_TLS generation on OpenBSD -->
<!-- CL 38343: https://golang.org/cl/38343: cmd/pprof: use proxy from environment -->
-<!-- CL 36015: https://golang.org/cl/36015: cmd/trace: Record mark assists in execution traces -->
<h2 id="performance">Performance</h2>
@@ -505,36 +511,30 @@ type T1 = T2
<dl id="runtime"><dt><a href="/pkg/runtime/">runtime</a></dt>
<dd>
- <p><!-- CL 29341 -->
- TODO: <a href="https://golang.org/cl/29341">https://golang.org/cl/29341</a>: use cpuset_getaffinity for runtime.NumCPU() on FreeBSD
- </p>
-
- <p><!-- CL 35710 -->
- TODO: <a href="https://golang.org/cl/35710">https://golang.org/cl/35710</a>: make time correctly update on Wine
- </p>
-
- <p><!-- CL 37233 -->
- TODO: <a href="https://golang.org/cl/37233">https://golang.org/cl/37233</a>: use inlining tables to generate accurate tracebacks
- </p>
-
- <p><!-- CL 37441 -->
- TODO: <a href="https://golang.org/cl/37441">https://golang.org/cl/37441</a>: make complex division c99 compatible
- </p>
-
- <p><!-- CL 37726 -->
- TODO: <a href="https://golang.org/cl/37726">https://golang.org/cl/37726</a>: strongly encourage CallersFrames with the result of Callers
+ <p><!-- CL 37233, CL 37726 -->
+ Tracebacks generated by the runtime and recorded in profiles are
+ now accurate in the presence of inlining.
+ To retrieve tracebacks programmatically, applications should use
+ <a href="/pkg/runtime/#CallersFrames"><code>runtime.CallersFrames</code></a>
+ rather than directly iterating over the results of
+ <a href="/pkg/runtime/#Callers"><code>runtime.Callers</code></a>.
</p>
<p><!-- CL 38403 -->
- TODO: <a href="https://golang.org/cl/38403">https://golang.org/cl/38403</a>: reduce Windows timer resolution when idle
+ On Windows, Go no longer forces the system timer to run at high
+ resolution when the program is idle.
+ This should reduce the impact of Go programs on battery life.
</p>
- <p><!-- CL 40810 -->
- TODO: <a href="https://golang.org/cl/40810">https://golang.org/cl/40810</a>: make sweep trace events encompass entire sweep loop
+ <p><!-- CL 29341 -->
+ On FreeBSD, <code>GOMAXPROCS</code> and
+ <a href="/pkg/runtime/#NumCPU"><code>runtime.NumCPU</code></a>
+ are now based on the process' CPU mask, rather than the total
+ number of CPUs.
</p>
<p><!-- CL 43641 -->
- TODO: <a href="https://golang.org/cl/43641">https://golang.org/cl/43641</a>: use pselect6 for usleep on linux/amd64 and linux/arm
+ The runtime has preliminary support for Android O.
</p>
</dl><!-- runtime -->
@@ -547,6 +547,26 @@ type T1 = T2
</dl><!-- runtime/pprof -->
+<dl id="runtime/trace"><dt><a href="/pkg/runtime/trace/">runtime/trace</a></dt>
+ <dd>
+ <p><!-- CL 36015 -->
+ The execution trace now displays mark assist events, which
+ indicate when an application goroutine is forced to assist
+ garbage collection because it is allocating too quickly.
+ </p>
+
+ <p><!-- CL 40810 -->
+ "Sweep" events now encompass the entire process of finding free
+ space for an allocation, rather than recording each individual
+ span that is swept.
+ This reduces allocation latency when tracing allocation-heavy
+ programs.
+ The sweep event shows how many bytes were swept and how many
+ were reclaimed.
+ </p>
+
+</dl><!-- runtime/trace -->
+
<dl id="sync"><dt><a href="/pkg/sync/">sync</a></dt>
<dd>
<p><!-- CL 34310 -->
@@ -601,5 +621,9 @@ type T1 = T2
TODO: <a href="https://golang.org/cl/36615">https://golang.org/cl/36615</a>: add Duration.Truncate and Duration.Round
</p>
+ <p><!-- CL 35710 -->
+ Retrieving the time and sleeping now work correctly under Wine.
+ </p>
+
</dl><!-- time -->