1
0
mirror of https://github.com/golang/go synced 2024-11-26 18:16:48 -07:00

doc/go1.10: fix many TODOs

Change-Id: I97a28379b1a9ca3daa875edbcd5213673ca138d0
Reviewed-on: https://go-review.googlesource.com/82115
Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
Russ Cox 2017-12-06 00:01:26 -05:00
parent 8114a855da
commit c56fda63a4

View File

@ -22,16 +22,6 @@ ul li { margin: 0.5em 0; }
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 @@ applies the <code>flags</code> only to the packages matching the pattern.
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 @@ One new requirement implied by these changes is that
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>
@ -403,11 +393,6 @@ line number information is more accurate, making source-level stepping through a
and each package is now presented as its own DWARF compilation unit.
</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.
@ -557,6 +542,10 @@ There is no longer a limit on the <a href="/pkg/runtime/#GOMAXPROCS"><code>GOMAX
(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 @@ adds a new method
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 @@ and
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 @@ from a string into a byte array or byte slice, to match the
</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>