From: Dmitri Shuralyov
+
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,
- TODO
-
- 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.
-
- I/O operations on closing or closed TLS connections can now be detected using
- the new ErrClosed error. A typical use
- would be
- 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
-
- ParseCertificate and
- CreateCertificate both
- now enforce string encoding restrictions for the fields
- 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.
-
- The error message for
- SyntaxError
- now begins with "json: ", matching the other errors in the package.
-
- 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
- In previous Go releases the default TCP listener backlog size on Linux systems,
- set by
- A new
- The
+ 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"
Cgo
-go build -buildmode=c-shared
now generates Windows
ASLR DLLs by default. ASLR can be disabled with --ldflags=-aslr=false
.
Core library
crypto/hmac
-
-crypto/tls
-
-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"
.
-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
-
-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
encoding/json
-
-net
-
-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"
.
-/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
-
-CommentNode
- was added to the parse tree. The Mode
- field in the parse.Tree
enables access to it.
-unicode
-
-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.
+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
+ 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. +
+
+ 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.
+ 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.
+ 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.
+ 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.
+ 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
.
+
@@ -677,19 +670,6 @@ Do not send CLs removing the interior tags from such phrases.
- 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
.
-
@@ -698,12 +678,35 @@ Do not send CLs removing the interior tags from such phrases.
+ A new CommentNode
+ was added to the parse tree. The Mode
+ field in the parse.Tree
enables access to it.
+
- 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.
+ 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.
+