From 4481ad6eb6c2b4ee52d949289da82cc00cc829fa Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Wed, 25 Nov 2020 14:07:30 -0500 Subject: [PATCH] doc/go1.16: consolidate stdlib changes in "Minor changes" section Many of the standard library changes that were added before CL 272871 ended up in the "Core library" section. That section is meant for major changes like new packages, and most of these aren't. Consolidate all changes in the "Minor changes to the library" section for now, so that it's easier to get a complete picture of changes for each package, along with the remaining TODOs. Add a TODO to read them over at the end and factor out items that are worth highlighting. Apply minor other fixups to improve consistency. For #40700. Change-Id: I7dc2e7ebf2ea3385fce0c207bae4ce467998a717 Reviewed-on: https://go-review.googlesource.com/c/go/+/273267 Trust: Dmitri Shuralyov Run-TryBot: Dmitri Shuralyov Reviewed-by: Katie Hockman TryBot-Result: Go Bot --- doc/go1.16.html | 303 ++++++++++++++++++++++++------------------------ 1 file changed, 153 insertions(+), 150 deletions(-) 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 -

- -

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. + TODO: mention significant additions like new packages (io/fs), + new proposal-scoped features (//go:embed), and so on

-

- 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. +

+
+
-- 2.50.0