diff --git a/doc/go1.16.html b/doc/go1.16.html index 8e83930663..6e371b9617 100644 --- a/doc/go1.16.html +++ b/doc/go1.16.html @@ -216,7 +216,7 @@ Do not send CLs removing the interior tags from such phrases.

Cgo

-

+

The cgo tool will no longer try to translate C struct bitfields into Go struct fields, even if their size can be represented in Go. The order in which C bitfields appear in memory @@ -281,7 +281,7 @@ Do not send CLs removing the interior tags from such phrases. TODO: update with final numbers later in the release.

-

+

On Windows, go build -buildmode=c-shared now generates Windows ASLR DLLs by default. ASLR can be disabled with --ldflags=-aslr=false.

@@ -289,135 +289,13 @@ Do not send CLs removing the interior tags from such phrases.

Core library

- TODO + TODO: mention significant additions like new packages (io/fs), + new proposal-scoped features (//go:embed), and so on

-

crypto/hmac

- -

- New will now panic if separate calls to - the hash generation function fail to return new values. Previously, the - behavior was undefined and invalid outputs were sometimes generated. -

- -

crypto/tls

- -

- I/O operations on closing or closed TLS connections can now be detected using - the new ErrClosed error. A typical use - would be errors.Is(err, net.ErrClosed). In earlier releases - the only way to reliably detect this case was to match the string returned - by the Error method with "tls: use of closed connection". -

- -

- A default deadline is set in Close - before sending the close notify alert, in order to prevent blocking - indefinitely. -

- -

- (*Conn).HandshakeContext was added to - allow the user to control cancellation of an in-progress TLS Handshake. - The context provided is propagated into the - ClientHelloInfo - and CertificateRequestInfo - structs and accessible through the new - (*ClientHelloInfo).Context - and - - (*CertificateRequestInfo).Context - methods respectively. Canceling the context after the handshake has finished - has no effect. -

- -

- Clients now ensure that the server selects - - an ALPN protocol from - - the list advertised by the client. -

- -

- TLS servers will now prefer other AEAD cipher suites (such as ChaCha20Poly1305) - over AES-GCM cipher suites if either the client or server doesn't have AES hardware - support, unless the application set both - Config.PreferServerCipherSuites - and Config.CipherSuites - or there are no other AEAD cipher suites supported. - The client is assumed not to have AES hardware support if it does not signal a - preference for AES-GCM cipher suites. -

- -

crypto/x509

- -

- ParseCertificate and - CreateCertificate both - now enforce string encoding restrictions for the fields DNSNames, - EmailAddresses, and URIs. These fields can only - contain strings with characters within the ASCII range. -

- -

- CreateCertificate now - verifies the generated certificate's signature using the signer's - public key. If the signature is invalid, an error is returned, instead - of a malformed certificate. -

- -

- A number of additional fields have been added to the - CertificateRequest type. - These fields are now parsed in ParseCertificateRequest - and marshalled in CreateCertificateRequest. -

- -

encoding/json

- -

- The error message for - SyntaxError - now begins with "json: ", matching the other errors in the package. -

- -

net

- -

- The case of I/O on a closed network connection, or I/O on a network - connection that is closed before any of the I/O completes, can now - be detected using the new ErrClosed error. - A typical use would be errors.Is(err, net.ErrClosed). - In earlier releases the only way to reliably detect this case was to - match the string returned by the Error method - with "use of closed network connection". -

- -

- In previous Go releases the default TCP listener backlog size on Linux systems, - set by /proc/sys/net/core/somaxconn, was limited to a maximum of 65535. - On Linux kernel version 4.1 and above, the maximum is now 4294967295. -

- -

text/template/parse

- -

- A new CommentNode - was added to the parse tree. The Mode - field in the parse.Tree enables access to it. -

- - -

unicode

- -

- The unicode package and associated - support throughout the system has been upgraded from Unicode 12.0.0 to - Unicode 13.0.0, - which adds 5,930 new characters, including four new scripts, and 55 new emoji. - Unicode 13.0.0 also designates plane 3 (U+30000-U+3FFFF) as the tertiary - ideographic plane. +

+ TODO: when the "Minor changes to the library" section is close to completion, + decide if any changes are worth factoring out and highlighting in "Core library"

Minor changes to the library

@@ -429,7 +307,7 @@ Do not send CLs removing the interior tags from such phrases.

- TODO + TODO: complete this section, resolve TODOs below, add missing entries

crypto/dsa
@@ -441,8 +319,66 @@ Do not send CLs removing the interior tags from such phrases.
+
crypto/hmac
+
+

+ New will now panic if separate calls to + the hash generation function fail to return new values. Previously, the + behavior was undefined and invalid outputs were sometimes generated. +

+
+
+
crypto/tls
+

+ I/O operations on closing or closed TLS connections can now be detected using + the new ErrClosed error. A typical use + would be errors.Is(err, net.ErrClosed). In earlier releases + the only way to reliably detect this case was to match the string returned + by the Error method with "tls: use of closed connection". +

+ +

+ A default deadline is set in Close + before sending the close notify alert, in order to prevent blocking + indefinitely. +

+ +

+ (*Conn).HandshakeContext was added to + allow the user to control cancellation of an in-progress TLS Handshake. + The context provided is propagated into the + ClientHelloInfo + and CertificateRequestInfo + structs and accessible through the new + (*ClientHelloInfo).Context + and + + (*CertificateRequestInfo).Context + methods respectively. Canceling the context after the handshake has finished + has no effect. +

+ +

+ Clients now ensure that the server selects + + an ALPN protocol from + + the list advertised by the client. +

+ +

+ TLS servers will now prefer other AEAD cipher suites (such as ChaCha20Poly1305) + over AES-GCM cipher suites if either the client or server doesn't have AES hardware + support, unless the application set both + Config.PreferServerCipherSuites + and Config.CipherSuites + or there are no other AEAD cipher suites supported. + The client is assumed not to have AES hardware support if it does not signal a + preference for AES-GCM cipher suites. +

+

TODO: https://golang.org/cl/246637: make config.Clone return nil if the source is nil

@@ -451,6 +387,28 @@ Do not send CLs removing the interior tags from such phrases.
crypto/x509
+

+ ParseCertificate and + CreateCertificate both + now enforce string encoding restrictions for the fields DNSNames, + EmailAddresses, and URIs. These fields can only + contain strings with characters within the ASCII range. +

+ +

+ CreateCertificate now + verifies the generated certificate's signature using the signer's + public key. If the signature is invalid, an error is returned, instead + of a malformed certificate. +

+ +

+ A number of additional fields have been added to the + CertificateRequest type. + These fields are now parsed in ParseCertificateRequest + and marshalled in CreateCertificateRequest. +

+

DSA signature verification is no longer supported. Note that DSA signature generation was never supported. @@ -469,6 +427,12 @@ Do not send CLs removing the interior tags from such phrases.

encoding/json
+

+ The error message for + SyntaxError + now begins with "json: ", matching the other errors in the package. +

+

TODO: https://golang.org/cl/234818: allow semicolon in field key / struct tag

@@ -531,6 +495,22 @@ Do not send CLs removing the interior tags from such phrases.
net
+

+ The case of I/O on a closed network connection, or I/O on a network + connection that is closed before any of the I/O completes, can now + be detected using the new ErrClosed error. + A typical use would be errors.Is(err, net.ErrClosed). + In earlier releases the only way to reliably detect this case was to + match the string returned by the Error method + with "use of closed network connection". +

+ +

+ In previous Go releases the default TCP listener backlog size on Linux systems, + set by /proc/sys/net/core/somaxconn, was limited to a maximum of 65535. + On Linux kernel version 4.1 and above, the maximum is now 4294967295. +

+

TODO: https://golang.org/cl/238629: prefer /etc/hosts over DNS when no /etc/nsswitch.conf is present

@@ -554,14 +534,14 @@ Do not send CLs removing the interior tags from such phrases.

- The net/http package now rejects HTTP range requests - of the form "Range": "bytes=--N" where "-N" is a negative suffix length, for - example "Range": "bytes=--2". It now replies with a 416 "Range Not Satisfiable" response. + The net/http package now rejects HTTP range requests + of the form "Range": "bytes=--N" where "-N" is a negative suffix length, for + example "Range": "bytes=--2". It now replies with a 416 "Range Not Satisfiable" response.

- Cookies set with SameSiteDefaultMode now behave according to the current - spec (no attribute is set) instead of generating a SameSite key without a value. + Cookies set with SameSiteDefaultMode now behave according to the current + spec (no attribute is set) instead of generating a SameSite key without a value.

@@ -661,6 +641,19 @@ Do not send CLs removing the interior tags from such phrases.

+
strconv
+
+

+ ParseFloat now uses + the Eisel-Lemire + algorithm, improving performance by up to a factor of 2. This can + also speed up decoding textual formats like encoding/json. +

+
+
+
syscall

@@ -677,19 +670,6 @@ Do not send CLs removing the interior tags from such phrases.

-
strconv
-
-

- ParseFloat now uses - the Eisel-Lemire - algorithm, improving performance by up to a factor of 2. This can - also speed up decoding textual formats like encoding/json. -

-
-
-
text/template

@@ -698,12 +678,35 @@ Do not send CLs removing the interior tags from such phrases.

+
text/template/parse
+
+

+ A new CommentNode + was added to the parse tree. The Mode + field in the parse.Tree enables access to it. +

+
+
+
time/tzdata

- The slim timezone data format is now used for the time zone database in + The slim timezone data format is now used for the timezone database in $GOROOT/lib/time/zoneinfo.zip and the embedded copy in this - package. This reduces the size of the time zone database by about 350 KB. + package. This reduces the size of the timezone database by about 350 KB.

+ +
unicode
+
+

+ The unicode package and associated + support throughout the system has been upgraded from Unicode 12.0.0 to + Unicode 13.0.0, + which adds 5,930 new characters, including four new scripts, and 55 new emoji. + Unicode 13.0.0 also designates plane 3 (U+30000-U+3FFFF) as the tertiary + ideographic plane. +

+
+