]> Cypherpunks repositories - gostls13.git/commitdiff
doc/go1.9: runtime release notes
authorAustin Clements <austin@google.com>
Thu, 8 Jun 2017 17:35:58 +0000 (13:35 -0400)
committerAustin Clements <austin@google.com>
Fri, 9 Jun 2017 15:09:06 +0000 (15:09 +0000)
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>
doc/go1.9.html

index 85e0c3e1fab72478fc498052099cec671dee2297..60d57603147f13cf023ac6d253852faf67a8abc6 100644 (file)
@@ -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 -->