doc/go1.10: fix many TODOs
Change-Id: I97a28379b1a9ca3daa875edbcd5213673ca138d0
Reviewed-on: https://go-review.googlesource.com/82115
Reviewed-by: Russ Cox <rsc@golang.org>
diff --git a/doc/go1.10.html b/doc/go1.10.html
index dcf45cd..5c9e706 100644
--- a/doc/go1.10.html
+++ b/doc/go1.10.html
@@ -22,16 +22,6 @@
release notes. Go 1.10 is expected to be released in February 2018.
</strong></p>
-<!-- TODO: not sure about these relnotes
-
-cmd/compile
- https://golang.org/cl/60410: cmd/compile: fix and improve struct field reflect information
-encoding/json
- https://golang.org/cl/76851: encoding/json: always ignore embedded pointers to unexported struct types
-runtime
- https://golang.org/cl/59970: runtime: separate soft and hard heap limits
--->
-
<p>
The latest Go release, version 1.10, arrives six months after <a href="go1.9">go1.9</a>.
Most of its changes are in the implementation of the toolchain, runtime, and libraries.
@@ -127,7 +117,7 @@
For example: <code>go</code> <code>install</code> <code>-ldflags=cmd/gofmt=-X=main.version=1.2.3</code> <code>cmd/...</code>
installs all the commands matching <code>cmd/...</code> but only applies the <code>-X</code> option
to the linker flags for <code>cmd/gofmt</code>.
-For more details, see <a href="TODO"><code>go</code> <code>help</code> <code>build</code></a>.
+For more details, see <a href="/cmd/go/#hdr-Compile_packages_and_dependencies"><code>go</code> <code>help</code> <code>build</code></a>.
</p>
<p>
@@ -161,7 +151,7 @@
binary-only packages must now declare accurate import blocks in their
stub source code, so that those imports can be made available when
linking a program using the binary-only package.
-For more details, see <a href="TODO"><code>go</code> <code>help</code> <code>filetype</code></a>.
+For more details, see <a href="/cmd/go/#hdr-File_types"><code>go</code> <code>help</code> <code>filetype</code></a>.
</p>
<h3 id="test">Test</h3>
@@ -404,11 +394,6 @@
</p>
<p>
-TODO: What to say about FMA, if anything?
-The spec change was mentioned in Go 1.9 but I am not sure whether any new architectures turned it on in Go 1.10.
-</p>
-
-<p>
The various <a href="https://docs.google.com/document/d/1nr-TQHw_er6GOQRsF6T43GGhFDelrAP0NqSS_00RgZQ/edit">build modes</a>
has been ported to more systems.
Specifically, <code>c-shared</code> now works on <code>linux/ppc64le</code>, <code>windows/386</code>, and <code>windows/amd64</code>;
@@ -557,6 +542,10 @@
(In Go 1.9 the limit was 1024.)
</p>
+<p>
+TODO: Anything about CL 59970: "runtime: separate soft and hard heap limits"?
+</p>
+
<h2 id="performance">Performance</h2>
<p>
@@ -894,6 +883,16 @@
that causes it to report inputs with unknown JSON fields as a decoding error.
(The default behavior has always been to discard unknown fields.)
</p>
+
+<p>
+As a result of <a href="#reflect">fixing a reflect bug</a>,
+<a href="/pkg/encoding/json/#Unmarshal"><code>Unmarshal</code></a>
+can no longer decode into fields inside
+embedded pointers to unexported struct types,
+because it cannot initialize the unexported embedded pointer
+to point at fresh storage.
+<code>Unmarshal</code> now returns an error in this case.
+</p>
</dl>
<dl id="encoding/pem"><dt><a href="/pkg/encoding/pem/">encoding/pem</a></dt>
@@ -905,10 +904,6 @@
no longer generate partial output when presented with a
block that is impossible to encode as PEM data.
</p>
-
-<p>
-TODO: Reflect fallout.
-</p>
</dl>
<dl id="encoding/xml"><dt><a href="/pkg/encoding/xml/">encoding/xml</a></dt>
@@ -1268,7 +1263,23 @@
</p>
<p>
-TODO: New reflect CanSet change for pointers to unexported fields.
+In structs, embedded pointers to unexported struct types were
+previously incorrectly reported with an empty <code>PkgPath</code>
+in the corresponding <a href="/pkg/reflect/#StructField">StructField</a>,
+with the result that for those fields,
+and <a href="/pkg/reflect/#Value.CanSet"><code>Value.CanSet</code></a>
+incorrectly returned true and
+and <a href="/pkg/reflect/#Value.Set"><code>Value.Set</code></a>
+incorrectly succeeded.
+The underlying metadata has been corrected;
+for those fields,
+<code>CanSet</code> now correctly returns false
+and <code>Set</code> now correctly panics.
+This may affect reflection-based unmarshalers
+that could previously unmarshal into such fields
+but no longer can.
+For example, see the <a href="#encoding/json"><code>encoding/json</code> notes</a>.
+</p>
</p>
</dl>