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 -->
<!-- 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>
<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 -->
</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 -->
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 -->