diff options
| author | Russ Cox <rsc@golang.org> | 2017-12-05 22:20:46 -0500 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2017-12-06 15:36:11 +0000 |
| commit | d62809096ae13bd6caf00f5b604188c528376ed5 (patch) | |
| tree | c78951bcdca657334a710f2de38d245eef0d0a35 | |
| parent | ba2db584c77feda13f0a6df3ebf5a225bf0a8225 (diff) | |
| download | go-d62809096ae13bd6caf00f5b604188c528376ed5.tar.xz | |
doc/go1.10: update release notes for recent commits
Change-Id: Id6ced9a6c76131263041cdaf5ed17479be075fa6
Reviewed-on: https://go-review.googlesource.com/82075
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
| -rw-r--r-- | doc/go1.10.html | 157 |
1 files changed, 124 insertions, 33 deletions
diff --git a/doc/go1.10.html b/doc/go1.10.html index cdc0feee37..a42c719c82 100644 --- a/doc/go1.10.html +++ b/doc/go1.10.html @@ -64,6 +64,19 @@ in particular <a href="#asm">new instructions in the assembler</a> and improvements to the code generated by the compilers. </p> +<p id="freebsd"> +As <a href="go1.9#freebsd">announced in the Go 1.9 release notes</a>, +Go 1.10 now requires FreeBSD 10.3 or later; +support for FreeBSD 9.3 has been removed. +</p> + +<p id="mips"> +On 32-bit MIPS systems, the new environment variable settings +<code>GOMIPS=hardfloat</code> (the default) and +<code>GOMIPS=softfloat</code> select whether to use +hardware instructions or software emulation for floating-point computations. +</p> + <h2 id="tools">Tools</h2> <h3 id="goroot">Default GOROOT & GOTMPDIR</h3> @@ -199,18 +212,24 @@ lines to make clearer when <a href="/pkg/testing/#T.Parallel">parallel tests</a> </p> <p> +The new <code>go</code> <code>test</code> <code>-failfast</code> flag +disables running additional tests after any test fails. +Note that tests running in parallel with the failing test are allowed to complete. +</p> + +<p> Finally, the new <code>go</code> <code>test</code> <code>-json</code> flag filters test output through the new command <code>go</code> <code>tool</code> <code>test2json</code> to produce a machine-readable JSON-formatted description of test execution. -This should allow the creation of rich presentations of test execution +This allows the creation of rich presentations of test execution in IDEs and other tools. </p> <p> For more details about all these changes, -see <a href="TODO"><code>go</code> <code>help</code> <code>test</code></a> +see <a href="/cmd/go/#hdr-Test_packages"><code>go</code> <code>help</code> <code>test</code></a> and the <a href="/cmd/test2json/">test2json documentation</a>. </p> @@ -225,6 +244,12 @@ Go structs and Go arrays are not supported in the type signatures of cgo-exporte </p> <p> +TODO: CL 70890 "permit passing string values directly between Go and C." +<br> +TODO: CL 66332 "special case C ptr types to use uintptr." +</p> + +<p> During toolchain bootstrap, the environment variables <code>CC</code> and <code>CC_FOR_TARGET</code> specify the default C compiler that the resulting toolchain will use for host and target builds, respectively. However, if the toolchain will be used with multiple targets, it may be necessary to specify a different C compiler for each @@ -235,6 +260,9 @@ Note that these variables only apply during toolchain bootstrap, to set the defaults used by the resulting toolchain. Later <code>go</code> <code>build</code> commands refer to the <code>CC</code> environment variable or else the built-in default. +</p> + +<p> For more details, see the <a href="/cmd/cgo/">cgo documentation</a>. </p> @@ -317,14 +345,13 @@ This release includes a new <a href="/doc/diagnostics.html">overview of availabl <h3 id="gofmt">Gofmt</h3> <p> -A few minor details of the default formatting of Go source code have changed. -First, some complex three-index slice expressions previously formatted like +Two minor details of the default formatting of Go source code have changed. +First, certain complex three-index slice expressions previously formatted like <code>x[i+1</code> <code>:</code> <code>j:k]</code> and now format with more consistent spacing: <code>x[i+1</code> <code>:</code> <code>j</code> <code>:</code> <code>k]</code>. Second, single-method interface literals written on a single line, which are sometimes used in type assertions, are no longer split onto multiple lines. -Third, blank lines following an opening brace are now always elided. </p> <p> @@ -540,11 +567,6 @@ Now it also records the user and group names corresponding to those IDs, as well as the major and minor device numbers for device files. </p> <p> -Errors created by the package now begin with a consistent “tar:” prefix. -(Previously they almost all began with a consistent “archive/tar:” prefix.) -TODO: Why are we changing these? (#22740) -</p> -<p> The new <a href="/pkg/archive/tar/#Header"><code>Header.Format</code></a> field of type <a href="/pkg/archive/tar/#Format"><code>Format</code></a> controls which tar header format the <a href="/pkg/archive/tar/#Writer"><code>Writer</code></a> uses. @@ -584,13 +606,12 @@ In Go 1.10, the <a href="/pkg/archive/zip/#Reader"><code>Reader</code></a> and < now support the widely-understood Info-Zip extension that encodes the time separately in the 32-bit Unix “seconds since epoch” form. The <a href="/pkg/archive/zip/#FileHeader"><code>FileHeader</code></a>'s new <code>Modified</code> field of type <a href="/pkg/time/#Time"><code>time.Time</code></a> obsoletes the <code>ModifiedTime</code> and <code>ModifiedDate</code> fields, which continue to hold the MS-DOS encoding. -The <a href="/pkg/archive/zip/#FileHeader.ModTime"><code>ModTime</code></a> and -<a href="/pkg/archive/zip/#FileHeader.SetModTime"><code>SetModTime</code></a> methods -now simply read and write the new <code>Modified</code> field. The <code>Reader</code> and <code>Writer</code> now adopt the common convention that ZIP archive storing the Unix time encoding store the local time in the MS-DOS field, so that the time zone offset can be inferred. -TODO: These last bits are not true but probably should be (#22738) +For compatibility, the <a href="/pkg/archive/zip/#FileHeader.ModTime"><code>ModTime</code></a> and +<a href="/pkg/archive/zip/#FileHeader.SetModTime"><code>SetModTime</code></a> methods +behave the same as in earlier releases; new code should use <code>Modified</code> directly. </p> <p> The header for each file in a ZIP archive has a flag bit indicating whether @@ -606,10 +627,8 @@ Setting a <code>FileHeader</code>'s new <code>NonUTF8</code> field to true disables the heuristic entirely for that file. </p> <p> -The <code>Writer</code> also now support setting the end-of-central-directory record's comment field, -by setting the <code>Writer</code>'s new <code>Comment</code> field -before calling the <a href="/pkg/archive/zip/#Writer.Close"><code>Close</code></a> method. -TODO: May change (#22737). +The <code>Writer</code> also now supports setting the end-of-central-directory record's comment field, +by calling the <code>Writer</code>'s new <a href="/pkg/archive/zip/#Writer.SetComment"><code>SetComment</code></a> method. </p> </dl> @@ -677,8 +696,16 @@ Parsed certificates also now report URI names and IP, email, and URI constraints </p> <p> +The new <a href="/pkg/crypto/x509/#MarshalPKCS1PublicKey"><code>MarshalPKCS1PublicKey</code></a> +and <a href="/pkg/crypto/x509/#ParsePKCS1PublicKey"><code>ParsePKCS1PublicKey</code></a> +functions convert an RSA public key to and from PKCS#1-encoded form. +</p> + +<p> The new <a href="/pkg/crypto/x509/#MarshalPKCS8PrivateKey"><code>MarshalPKCS8PrivateKey</code></a> -function converts a private key to PKCS#8 encoded form. +function converts a private key to PKCS#8-encoded form. +(<a href="/pkg/crypto/x509/#ParsePKCS8PrivateKey"><code>ParsePKCS8PrivateKey</code></a> +has existed since Go 1.) </p> </dl> @@ -701,6 +728,14 @@ instead of needing to encode all configuration into a string passed to <a href="/pkg/database/sql/#Open"><code>sql.Open</code></a>. </p> <p> +Drivers that want to parse the configuration string only once per <code>sql.DB</code> +instead of once per <a href="/pkg/database/sql/#Conn"><code>sql.Conn</code></a>, +or that want access to each <code>sql.Conn</code>'s underlying context, +can make their <a href="/pkg/database/sql/driver/#Driver"><code>Driver</code></a> +implementations also implement <a href="/pkg/database/sql/driver/#DriverContext"><code>DriverContext</code></a>'s +new <code>OpenConnector</code> method. +</p> +<p> Drivers that implement <a href="/pkg/database/sql/driver/#ExecerContext"><code>ExecerContext</code></a> no longer need to implement <a href="/pkg/database/sql/driver/#Execer"><code>Execer</code></a>; similarly, drivers that implement <a href="/pkg/database/sql/driver/#QueryerContext"><code>QueryerContext</code></a> @@ -762,10 +797,19 @@ unless the string is in a struct field with a tag forcing the use of PrintableSt <code>Marshal</code> also now respects struct tags containing <code>application</code> directives. </p> <p> +The new <a href="/pkg/encoding/asn1/#MarshalWithParams"><code>MarshalWithParams</code></a> +function marshals its argument as if the additional params were its associated +struct field tag. +</p> +<p> <a href="/pkg/encoding/asn1/#Unmarshal"><code>Unmarshal</code></a> now respects struct field tags using the <code>explicit</code> and <code>tag</code> directives. </p> +<p> +Both <code>Marshal</code> and <code>Unmarshal</code> now support a new struct field tag +<code>numeric</code>, indicating an ASN.1 NumericString. +</p> </dl> <dl id="encoding/csv"><dt><a href="/pkg/encoding/csv/">encoding/csv</a></dt> @@ -780,11 +824,6 @@ or setting <code>Comma</code> and <code>Comment</code> equal to each other. In the case of a syntax error in a CSV record that spans multiple input lines, <code>Reader</code> now reports the line on which the record started in the <a href="/pkg/encoding/csv/#ParseError"><code>ParseError</code></a>'s new <code>StartLine</code> field. </p> -<p> -<code>Reader</code> also no longer strips carriage return characters -appearing before newline characters in multiline quoted strings. -TODO: Maybe not (#22746). -</p> </dl> <dl id="encoding/hex"><dt><a href="/pkg/encoding/hex/">encoding/hex</a></dt> @@ -824,6 +863,17 @@ that causes it to report inputs with unknown JSON fields as a decoding error. </p> </dl> +<dl id="encoding/pem"><dt><a href="/pkg/encoding/pem/">encoding/pem</a></dt> +<dd> +<p> +<a href="/pkg/encoding/pem/#Encode"><code>Encode</code></a> +and +<a href="/pkg/encoding/pem/#EncodeToMemory"><code>EncodeToMemory</code></a> +no longer generate partial output when presented with a +block that is impossible to encode as PEM data. +</p> +</dl> + <dl id="encoding/xml"><dt><a href="/pkg/encoding/xml/">encoding/xml</a></dt> <dd> <p> @@ -939,6 +989,19 @@ compute square roots. </p> </dl> +<dl id="math/cmplx"><dt><a href="/pkg/math/cmplx/">math/cmplx</a></dt> +<dd> +<p> +Branch cuts and other boundary cases in +<a href="/pkg/math/cmplx/#Asin"><code>Asin<code></a>, +<a href="/pkg/math/cmplx/#Asinh"><code>Asinh<code></a>, +<a href="/pkg/math/cmplx/#Atan"><code>Atan<code></a>, +and +<a href="/pkg/math/cmplx/#Sqrt"><code>Sqrt<code></a> +have been corrected to match the definitions used in the C99 standard. +</p> +</dl> + <dl id="math/rand"><dt><a href="/pkg/math/rand/">math/rand</a></dt> <dd> <p> @@ -946,13 +1009,6 @@ The new <a href="/pkg/math/rand/#Shuffle"> function and corresponding <a href="/pkg/math/rand/#Rand.Shuffle"><code>Rand.Shuffle</code></a> method shuffle an input sequence. </p> -<p> -The existing <a href="/pkg/math/rand/#Perm"> function and corresponding -<a href="/pkg/math/rand/#Rand.Perm"><code>Rand.Perm</code></a> method -have been updated to use a more efficient algorithm, with the result -that the specific permutations they return have changed. -TODO: Remove? (#22744) -</p> </dl> <dl id="math"><dt><a href="/pkg/math/">math</a></dt> @@ -1042,6 +1098,32 @@ meaning that the client connects to the proxy over HTTPS before issuing a standa On the server side, <a href="/pkg/net/http/#FileServer"><code>FileServer</code></a> and its single-file equivalent <a href="/pkg/net/http/#ServeFile"><code>ServeFile</code></a> now apply <code>If-Range</code> checks to <code>HEAD</code> requests. <code>FileServer</code> also now reports directory read failures to the <a href="/pkg/net/http/#Server"><code>Server</code></a>'s <code>ErrorLog</code>. +The content-serving handlers also now omit the <code>Content-Type</code> header when serving zero-length content. +</p> +<p> +<a href="/pkg/net/http/#ResponseWriter"><code>ResponseWriter</code></a>'s <code>WriteHeader</code> method now panics +if passed an invalid (non-3-digit) status code. +</p> +<p> +<a href="/pkg/net/http/#Redirect"><code>Redirect</code></a> now sets the <code>Content-Type</code> header before writing its HTTP response. +</p> +</dl> + +<dl id="net/http/httputil"><dt><a href="/pkg/net/http/httputil/">net/http/httputil</a></dt> +<dd> +<p> +The <a href="/pkg/net/http/httputil/#ReverseProxy">ReverseProxy</a> now invokes +the <code> +On the client side, an HTTP proxy (most commonly configured by +<a href="/pkg/net/http/#ProxyFromEnvironment"><code>ProxyFromEnvironment</code></a>) +can now be specified as an <code>https://</code> URL, +meaning that the client connects to the proxy over HTTPS before issuing a standard, proxied HTTP request. +(Previously, HTTP proxy URLs were required to begin with <code>http://</code> or <code>socks5://</code>.) +</p> +<p> +On the server side, <a href="/pkg/net/http/#FileServer"><code>FileServer</code></a> and its single-file equivalent <a href="/pkg/net/http/#ServeFile"><code>ServeFile</code></a> +now apply <code>If-Range</code> checks to <code>HEAD</code> requests. +<code>FileServer</code> also now reports directory read failures to the <a href="/pkg/net/http/#Server"><code>Server</code></a>'s <code>ErrorLog</code>. </p> <p> <a href="/pkg/net/http/#Redirect"><code>Redirect</code></a> now sets the <code>Content-Type</code> header before writing its HTTP response. @@ -1073,7 +1155,9 @@ and <a href="/pkg/net/smtp/#Client.Verify"><code>Verify</code></a> methods. <dd> <p> <a href="/pkg/net/textproto/#ReadMIMEHeader"><code>ReadMIMEHeader</code></a> -now discards continuation (indented) header lines that appear before the first actual (unindented) header line. +now rejects any header that begins with a continuation (indented) header line. +Previously a header with an indented first line was treated as if the first line +were not indented. </p> </dl> @@ -1111,6 +1195,12 @@ For example, this can happen if code adds a host prefix like <code>http://host/</code> to a path like <code>/my/api</code>, resulting in a URL with a doubled slash: <code>http://host//my/api</code>. </p> + +<p> +<a href="/pkg/net/url/#UserInfo"><code>UserInfo</code></a>'s methods +now treat a nil receiver as equivalent to a pointer to a zero <code>UserInfo</code>. +Previously, they panicked. +</p> </dl> <dl id="os"><dt><a href="/pkg/os/">os</a></dt> @@ -1224,7 +1314,8 @@ environment variable before looking in the default system-specific list of known installation locations or in <code>$GOROOT/lib/time/zoneinfo.zip</code>. </p> <p> -TODO: Maybe CL 68890. +The new function <a href="/pkg/time/#LoadLocationFromTZData"><code>LoadLocationFromTZData</code></a> +allows conversion of IANA time zone file data to a <a href="/pkg/time/#Location"><code>Location</code></a>. </p> </dl> |
