mirror of https://github.com/golang/go.git
doc/go1.20: complete, add more library TODOs
Finish all standard library TODOs, including additions flagged by another run of relnote. Change-Id: Ib9d22672b13b9775a98262d645aaf1d54e7494df Reviewed-on: https://go-review.googlesource.com/c/go/+/453295 Reviewed-by: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
cc7530daa1
commit
76ec47eeec
267
doc/go1.20.html
267
doc/go1.20.html
|
|
@ -68,7 +68,7 @@ Do not send CLs removing the interior tags from such phrases.
|
|||
|
||||
<h3 id="go-command">Go command</h3>
|
||||
|
||||
<p><!-- CL 432535: cmd/go: don't install most GOROOT .a files in pkg -->
|
||||
<p><!-- CL 432535, https://go.dev/issue/47257 -->
|
||||
The directory <code>$GOROOT/pkg</code> no longer stores
|
||||
pre-compiled package archives for the standard library:
|
||||
<code>go</code> <code>install</code> no longer writes them,
|
||||
|
|
@ -101,7 +101,7 @@ Do not send CLs removing the interior tags from such phrases.
|
|||
the packages named on the command line.
|
||||
</p>
|
||||
|
||||
<p><!-- https://go.dev/issue/45454 --><!-- CL 421434 -->
|
||||
<p><!-- https://go.dev/issue/45454, CL 421434 -->
|
||||
The <code>go</code> command now defines
|
||||
architecture feature build tags, such as <code>amd64.v2</code>,
|
||||
to allow selecting a package implementation file based on the presence
|
||||
|
|
@ -156,7 +156,7 @@ Do not send CLs removing the interior tags from such phrases.
|
|||
|
||||
<h3 id="cgo">Cgo</h3>
|
||||
|
||||
<p>
|
||||
<p><!-- CL 450739 -->
|
||||
The <code>go</code> command now disables <code>cgo</code> by default
|
||||
on systems without a C toolchain.
|
||||
More specifically, when the <code>CGO_ENABLED</code> environment variable is unset,
|
||||
|
|
@ -205,7 +205,7 @@ Do not send CLs removing the interior tags from such phrases.
|
|||
|
||||
<h4 id="vet-loopclosure">Improved detection of loop variable capture by nested functions</h4>
|
||||
|
||||
<p><!-- CL 447256 --><!-- https://go.dev/issue/55972: extend the loopclosure analysis to parallel subtests -->
|
||||
<p><!-- CL 447256, https://go.dev/issue/55972: extend the loopclosure analysis to parallel subtests -->
|
||||
The <code>vet</code> tool now reports references to loop variables following
|
||||
a call to <a href="/pkg/testing/#T.Parallel"><code>T.Parallel()</code></a>
|
||||
within subtest function bodies. Such references may observe the value of the
|
||||
|
|
@ -221,7 +221,7 @@ Do not send CLs removing the interior tags from such phrases.
|
|||
|
||||
<h4 id="vet-timeformat">New diagnostic for incorrect time formats</h4>
|
||||
|
||||
<p><!-- CL 354010 --><!-- https://go.dev/issue/48801: check for time formats with 2006-02-01 -->
|
||||
<p><!-- CL 354010, https://go.dev/issue/48801: check for time formats with 2006-02-01 -->
|
||||
The vet tool now reports use of the time format 2006-02-01 (yyyy-dd-mm)
|
||||
with <a href="/pkg/time/#Time.Format"><code>Time.Format</code></a> and
|
||||
<a href="/pkg/time/#Parse"><code>time.Parse</code></a>.
|
||||
|
|
@ -238,8 +238,8 @@ Do not send CLs removing the interior tags from such phrases.
|
|||
|
||||
<h2 id="compiler">Compiler</h2>
|
||||
|
||||
<p><!-- https://go.dev/issue/49390 -->
|
||||
TODO: <a href="https://go.dev/issue/49390">https://go.dev/issue/49390</a>: clarify whether "-l" and "-N" compiler flags are actually supported
|
||||
<p>
|
||||
TODO: complete this section, or delete if not needed
|
||||
</p>
|
||||
|
||||
<h2 id="linker">Linker</h2>
|
||||
|
|
@ -266,10 +266,17 @@ Do not send CLs removing the interior tags from such phrases.
|
|||
|
||||
<h2 id="library">Core library</h2>
|
||||
|
||||
<h3 id="crypto/ecdh">New <code>crypto/ecdh</code> package</h3>
|
||||
<h3 id="crypto/ecdh">New crypto/ecdh package</h3>
|
||||
|
||||
<p><!-- https://go.dev/issue/52221, CL 398914 -->
|
||||
TODO: complete this section
|
||||
<p><!-- https://go.dev/issue/52221, CL 398914, CL 450335 -->
|
||||
Go 1.20 adds a new <a href="/pkg/crypto/ecdh/"><code>crypto/ecdh</code></a> package
|
||||
to provide direct support for Elliptic Curve Diffie-Hellman key exchange
|
||||
over NIST curves and Curve25519.
|
||||
</p>
|
||||
<p>
|
||||
Programs should prefer to use <code>crypto/ecdh</code>
|
||||
or <a href="/pkg/crypto/ecdsa/"><code>crypto/ecdsa</code></a>
|
||||
instead of the lower-level functionality in <a href="/pkg/crypto/elliptic/"><code>crypto/elliptic</code></a>.
|
||||
</p>
|
||||
|
||||
<h3 id="errors">Wrapping multiple errors</h3>
|
||||
|
|
@ -299,7 +306,7 @@ Do not send CLs removing the interior tags from such phrases.
|
|||
|
||||
<h3 id="http_responsecontroller">HTTP ResponseController</h3>
|
||||
|
||||
<p>
|
||||
<p><!-- CL 436890, https://go.dev/issue/54136 -->
|
||||
The new
|
||||
<a href="/pkg/net/http/#ResponseController"><code>"net/http".ResponseController</code></a>
|
||||
type provides access to extended per-request functionality not handled by the
|
||||
|
|
@ -330,9 +337,11 @@ func RequestHandler(w ResponseWriter, r *Request) {
|
|||
|
||||
<h3 id="reverseproxy_rewrite">New ReverseProxy Rewrite hook</h3>
|
||||
|
||||
<p><!-- https://go.dev/issue/53002 -->
|
||||
<p><!-- https://go.dev/issue/53002, CL 407214 -->
|
||||
The <a href="/pkg/net/http/httputil/#ReverseProxy"><code>httputil.ReverseProxy</code></a>
|
||||
forwarding proxy includes a new <code>Rewrite</code> hook function, superseding the
|
||||
forwarding proxy includes a new
|
||||
<a href="/pkg/net/http/httputil/#ReverseProxy.Rewrite"><code>Rewrite</code></a>
|
||||
hook function, superseding the
|
||||
previous <code>Director</code> hook.
|
||||
</p>
|
||||
|
||||
|
|
@ -356,7 +365,7 @@ func RequestHandler(w ResponseWriter, r *Request) {
|
|||
also sets the <code>Host</code> header of the outbound request.
|
||||
</p>
|
||||
|
||||
<p><!-- https://go.dev/issue/50465 -->
|
||||
<p><!-- https://go.dev/issue/50465, CL 407414 -->
|
||||
The
|
||||
<a href="/pkg/net/http/httputil/#ProxyRequest.SetXForwarded"><code>ProxyRequest.SetXForwarded</code></a>
|
||||
method sets the <code>X-Forwarded-For</code>, <code>X-Forwarded-Host</code>,
|
||||
|
|
@ -398,7 +407,7 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
|
||||
<dl id="archive/tar"><dt><a href="/pkg/archive/tar/">archive/tar</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/55356 -->
|
||||
<p><!-- https://go.dev/issue/55356, CL 449937 -->
|
||||
When the <code>GODEBUG=tarinsecurepath=0</code> environment variable is set,
|
||||
<a href="/pkg/archive/tar/#Reader.Next"><code>Reader.Next</code></a> method
|
||||
will now return the error <a href="/pkg/archive/tar/#ErrInsecurePath"><code>ErrInsecurePath</code></a>
|
||||
|
|
@ -440,7 +449,7 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
but also report whether the string was trimmed.
|
||||
</p>
|
||||
|
||||
<p><!-- CL 359675 -->
|
||||
<p><!-- CL 359675, https://go.dev/issue/45038 -->
|
||||
The new <a href="/pkg/bytes/#Clone"><code>Clone</code></a> function
|
||||
allocates a copy of a byte slice.
|
||||
</p>
|
||||
|
|
@ -449,16 +458,38 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
|
||||
<dl id="context"><dt><a href="/pkg/context/">context</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/51365 --><!-- CL 375977 -->
|
||||
TODO: <a href="https://go.dev/cl/375977">https://go.dev/cl/375977</a>: context: add APIs for writing and reading cancelation cause; modified api/next/51365.txt
|
||||
<p><!-- https://go.dev/issue/51365, CL 375977 -->
|
||||
The new <a href="/pkg/context/#WithCancelCause"><code>WithCancelCause</code></a> function
|
||||
provides a way to cancel a context with a given error.
|
||||
That error can be retrieved by calling the new <a href="/pkg/context/#Cause"><code>Cause</code></a> function.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- context -->
|
||||
|
||||
<dl id="crypto/ecdsa"><dt><a href="/pkg/crypto/ecdsa/">crypto/ecdsa</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/56088, CL 450816 -->
|
||||
The new <a href="/pkg/crypto/ecdsa/#PrivateKey.ECDH"><code>PrivateKey.ECDH</code></a> method
|
||||
converts an <code>ecdsa.PrivateKey</code> to an <code>ecdh.PrivateKey</code>.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- crypto/ecdsa -->
|
||||
|
||||
<dl id="crypto/ed25519"><dt><a href="/pkg/crypto/ed25519/">crypto/ed25519</a></dt>
|
||||
<dd>
|
||||
<p><!-- CL 373076 -->
|
||||
TODO: <a href="https://go.dev/cl/373076">https://go.dev/cl/373076</a>: crypto/ed25519: implement Ed25519ph in Sign and VerifyWithOptions; modified api/next/31804.txt
|
||||
<p><!-- CL 373076, CL 404274, https://go.dev/issue/31804 -->
|
||||
The <a href="/pkg/crypto/ed25519/#PrivateKey.Sign"><code>PrivateKey.Sign</code></a> method
|
||||
and the
|
||||
<a href="/pkg/crypto/ed25519/#VerifyWithOptions"><code>VerifyWithOptions</code></a> function
|
||||
now support signing pre-hashed messages with Ed25519ph,
|
||||
indicated by an
|
||||
<a href="/pkg/crypto/ed25519/#Options.HashFunc"><code>Options.HashFunc</code></a>
|
||||
that returns
|
||||
<a href="/pkg/crypto/#SHA512"><code>crypto.SHA512</code></a>.
|
||||
They also now support Ed25519ctx and Ed25519ph with context,
|
||||
indicated by setting the new
|
||||
<a href="/pkg/crypto/ed25519/#Options.Context"><code>Options.Context</code></a>
|
||||
field.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- crypto/ed25519 -->
|
||||
|
|
@ -466,27 +497,31 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
<dl id="crypto/elliptic"><dt><a href="/pkg/crypto/elliptic/">crypto/elliptic</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/34648 -->
|
||||
TODO: <a href="https://go.dev/issue/34648">https://go.dev/issue/34648</a>: automatically upgrade CurveParams for known curves and deprecate custom ones
|
||||
Use of custom <a href="/pkg/crypto/elliptic/#Curve"><code>Curve</code></a> implementations
|
||||
not provided by this package (that is, curves other than
|
||||
<a href="/pkg/crypto/elliptic/#P224"><code>P224</code></a>,
|
||||
<a href="/pkg/crypto/elliptic/#P256"><code>P256</code></a>,
|
||||
<a href="/pkg/crypto/elliptic/#P384"><code>P384</code></a>, and
|
||||
<a href="/pkg/crypto/elliptic/#P521"><code>P521</code></a>)
|
||||
is deprecated.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- crypto/elliptic -->
|
||||
|
||||
<dl id="crypto/rsa"><dt><a href="/pkg/crypto/rsa/">crypto/rsa</a></dt>
|
||||
<dd>
|
||||
<p><!-- CL 418874 --><!-- https://go.dev/issue/19974 -->
|
||||
TODO: <a href="https://go.dev/issue/19974">https://go.dev/issue/19974</a>: allow hash.Hash for OAEP and MGF1 to be specified independently
|
||||
<p><!-- CL 418874, https://go.dev/issue/19974 -->
|
||||
The new field <a href="/pkg/crypto/rsa/#OAEPOptions.MGFHash">OAEPOptions.MGFHash</a>
|
||||
allows configuring the MGF1 hash separately for OAEP encryption.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- crypto/rsa -->
|
||||
|
||||
<dl id="crypto/subtle"><dt><a href="/pkg/crypto/subtle/">crypto/subtle</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/53021 -->
|
||||
TODO: <a href="https://go.dev/issue/53021">https://go.dev/issue/53021</a>: add XORBytes
|
||||
</p>
|
||||
|
||||
<p><!-- CL 421435 -->
|
||||
TODO: <a href="https://go.dev/cl/421435">https://go.dev/cl/421435</a>: crypto/subtle: add XORBytes; modified api/next/53021.txt
|
||||
<p><!-- https://go.dev/issue/53021, CL 421435 -->
|
||||
The new function <a href="/pkg/crypto/subtle/#XORBytes">XORBytes</a>
|
||||
XORs two byte slices together.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- crypto/subtle -->
|
||||
|
|
@ -494,30 +529,60 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
<dl id="crypto/tls"><dt><a href="/pkg/crypto/tls/">crypto/tls</a></dt>
|
||||
<dd>
|
||||
<p><!-- CL 426455 -->
|
||||
TODO: <a href="https://go.dev/cl/426455">https://go.dev/cl/426455</a>: crypto/tls: use certificate cache in client
|
||||
The TLS client now shares parsed certificates across all clients actively using that certificate.
|
||||
The savings can be significant in programs that make many concurrent connections to a
|
||||
server or collection of servers sharing any part of their certificate chains.
|
||||
</p>
|
||||
|
||||
<p><!-- https://go.dev/issue/48152, CL 449336 -->
|
||||
For a handshake failure due to a certificate verification failure,
|
||||
the TLS client and server now return an error of the new type
|
||||
<a href="/pkg/crypto/tls/#CertificateVerificationError"><code>CertificateVerificationError</code></a>,
|
||||
which includes the presented certificates.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- crypto/tls -->
|
||||
|
||||
<dl id="crypto/x509"><dt><a href="/pkg/crypto/x509/">crypto/x509</a></dt>
|
||||
<dd>
|
||||
<p><!-- CL 450816 -->
|
||||
<a href="/pkg/crypto/x509/#CreateCertificateRequest"><code>CreateCertificateRequest</code></a>
|
||||
and
|
||||
<a href="/pkg/crypto/x509/#MarshalPKCS8PrivateKey"><code>MarshalPKCS8PrivateKey</code></a>
|
||||
now support keys of type <a href="/pkg/crypto/ecdh.PrivateKey"><code>*crypto/ecdh.PrivateKey</code></a>.
|
||||
<a href="/pkg/crypto/x509/#CreateCertificate"><code>CreateCertificate</code></a>
|
||||
and
|
||||
<a href="/pkg/crypto/x509/#MarshalPKIXPublicKey"><code>MarshalPKIXPublicKey</code></a>
|
||||
now support keys of type <a href="/pkg/crypto/ecdh.PublicKey"><code>*crypto/ecdh.PublicKey</code></a>.
|
||||
X.509 unmarshaling continues to unmarshal elliptic curve keys into
|
||||
<code>*ecdsa.PublicKey</code> and <code>*ecdsa.PrivateKey</code>.
|
||||
Use their new <code>ECDH</code> methods to convert to the <code>crypto/ecdh</code> form.
|
||||
</p>
|
||||
<p><!-- CL 449235 -->
|
||||
The new <a href="/pkg/crypto/x509/#SetFallbackRoots"><code>SetFallbackRoots</code></a>
|
||||
function allows a program to define a set of fallback root certificates in case the
|
||||
operating system verifier or standard platform root bundle is unavailable at runtime.
|
||||
It will most commonly be used with the new TODO LINK TO x/crypto PACKAGE ONCE IT EXISTS.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- crypto/x509 -->
|
||||
|
||||
<dl id="debug/elf"><dt><a href="/pkg/debug/elf/">debug/elf</a></dt>
|
||||
<dd>
|
||||
<p><!-- CL 429601 -->
|
||||
Attempts to read from a <code>SHT_NOBITS</code> section using
|
||||
<a href="/pkg/debug/elf/#Section.Data"><code>Section.Data</code></a>
|
||||
or the reader returned by <a href="/pkg/debug/elf/#Section.Open"><code>Section.Open</code></a>
|
||||
now return an error.
|
||||
</p>
|
||||
<p><!-- CL 420982 -->
|
||||
TODO: <a href="https://go.dev/cl/420982">https://go.dev/cl/420982</a>: debug/elf: add new-style LoongArch reloc types; modified api/next/54222.txt
|
||||
Additional <a href="/pkg/debug/elf/#R_LARCH"><code>R_LARCH_*</code></a> constants are defined for use with LoongArch systems.
|
||||
</p>
|
||||
<p><!-- CL 420982, CL 435415, CL 425555 -->
|
||||
Additional <a href="/pkg/debug/elf/#R_PPC64"><code>R_PPC64_*</code></a> constants are defined for use with PPC64 ELFv2 relocations.
|
||||
</p>
|
||||
<p><!-- CL 411915 -->
|
||||
TODO: <a href="https://go.dev/cl/411915">https://go.dev/cl/411915</a>: debug/elf: fix reloc number of R_PPC64_SECTOFF_LO_DS; modified api/except.txt, api/next/53356.txt
|
||||
</p>
|
||||
|
||||
<p><!-- CL 425555 -->
|
||||
TODO: <a href="https://go.dev/cl/425555">https://go.dev/cl/425555</a>: debug/elf: define additional PPC64 ELFv2 relocations; modified api/next/54345.txt
|
||||
</p>
|
||||
|
||||
<p><!-- CL 429601 -->
|
||||
TODO: <a href="https://go.dev/cl/429601">https://go.dev/cl/429601</a>: debug/elf: return error on reading from SHT_NOBITS sections
|
||||
</p>
|
||||
|
||||
<p><!-- CL 435415 -->
|
||||
TODO: <a href="https://go.dev/cl/435415">https://go.dev/cl/435415</a>: debug/elf: fix typo in R_PPC64_TPREL34 and R_PPC64_DTPREL34; modified api/next/54345.txt
|
||||
The constant value for <a href="/pkg/debug/elf/#R_PPC64_SECTOFF_LO_DS"><code>R_PPC64_SECTOFF_LO_DS</code></a> is corrected, from 61 to 62.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- debug/elf -->
|
||||
|
|
@ -525,7 +590,7 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
<dl id="debug/pe"><dt><a href="/pkg/debug/pe/">debug/pe</a></dt>
|
||||
<dd>
|
||||
<p><!-- CL 421357 -->
|
||||
TODO: <a href="https://go.dev/cl/421357">https://go.dev/cl/421357</a>: debug/pe: add IMAGE_FILE_MACHINE_RISCV{32,64,128}; modified api/next/54251.txt
|
||||
Additional <a href="/pkg/debug/pe/#IMAGE_FILE_MACHINE_RISCV128"><code>IMAGE_FILE_MACHINE_RISCV*</code></a> constants are defined for use with RISC-V systems.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- debug/pe -->
|
||||
|
|
@ -543,12 +608,12 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
|
||||
<dl id="encoding/xml"><dt><a href="/pkg/encoding/xml/">encoding/xml</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/53346 --><!-- CL 424777 -->
|
||||
<p><!-- https://go.dev/issue/53346, CL 424777 -->
|
||||
The new <a href="/pkg/encoding/xml/#Encoder.Close"><code>Encoder.Close</code></a> method
|
||||
can be used to check for unclosed elements when finished encoding.
|
||||
</p>
|
||||
|
||||
<p><!-- CL 103875 --><!-- CL 105636 -->
|
||||
<p><!-- CL 103875, CL 105636 -->
|
||||
The decoder now rejects element and attribute names with more than one colon,
|
||||
such as <code><a:b:c></code>,
|
||||
as well as namespaces that resolve to an empty string, such as <code>xmlns:a=""</code>.
|
||||
|
|
@ -575,7 +640,7 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
The <a href="/pkg/fmt/#Errorf"><code>Errorf</code></a> function supports multiple occurrences of
|
||||
the <code>%w</code> format verb, returning an error that unwraps to the list of all arguments to <code>%w</code>.
|
||||
</p>
|
||||
<p><!-- https://go.dev/issue/51668 --><!-- CL 400875 -->
|
||||
<p><!-- https://go.dev/issue/51668, CL 400875 -->
|
||||
The new <a href="/pkg/fmt/#FormatString"><code>FormatString</code></a> function recovers the
|
||||
formatting directive corresponding to a <a href="/pkg/fmt/#State"><code>State</code></a>,
|
||||
which can be useful in <a href="/pkg/fmt/#Formatter"><code>Formatter</code></a>.
|
||||
|
|
@ -586,27 +651,32 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
|
||||
<dl id="go/ast"><dt><a href="/pkg/go/ast/">go/ast</a></dt>
|
||||
<dd>
|
||||
<p><!-- CL 426091 -->
|
||||
TODO: <a href="https://go.dev/cl/426091">https://go.dev/cl/426091</a>: go/ast: add Range token.Pos to RangeStmt
|
||||
<p><!-- CL 426091, https://go.dev/issue/50429 -->
|
||||
The new <a href="/pkg/go/ast/#RangeStmt.Range"><code>RangeStmt.Range</code></a> field
|
||||
records the position of the <code>range</code> keyword in a range statement.
|
||||
</p>
|
||||
|
||||
<p><!-- CL 427955 -->
|
||||
TODO: <a href="https://go.dev/cl/427955">https://go.dev/cl/427955</a>: go/ast: record start and end of file in File.File{Start,End}; modified api/next/53202.txt
|
||||
<p><!-- CL 427955, https://go.dev/issue/53202 -->
|
||||
The new <a href="/pkg/go/ast/#File.FileStart"><code>File.FileStart</code></a>
|
||||
and <a href="/pkg/go/ast/#File.FileEnd"><code>File.FileEnd</code></a> fields
|
||||
record the position of the start and end of the entire source file.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- go/ast -->
|
||||
|
||||
<dl id="go/token"><dt><a href="/pkg/go/token/">go/token</a></dt>
|
||||
<dd>
|
||||
<p><!-- CL 410114 -->
|
||||
TODO: <a href="https://go.dev/cl/410114">https://go.dev/cl/410114</a>: go/token: add (*FileSet).RemoveFile(*File) method
|
||||
<p><!-- CL 410114, https://go.dev/issue/53200 -->
|
||||
The new <a href="/pkg/go/token/#FileSet.RemoveFile"><code>FileSet.RemoveFile</code></a> method
|
||||
removes a file from a <code>FileSet</code>.
|
||||
Long-running programs can use this to release memory associated
|
||||
with files they no longer need.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- go/token -->
|
||||
|
||||
<dl id="io"><dt><a href="/pkg/io/">io</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/45899 --><!-- CL 406776 -->
|
||||
<p><!-- https://go.dev/issue/45899, CL 406776 -->
|
||||
The new <a href="/pkg/io/#OffsetWriter"><code>OffsetWriter</code></a> wraps an underlying
|
||||
<a href="/pkg/io/#WriterAt"><code>WriterAt</code></a>
|
||||
and provides <code>Seek</code>, <code>Write</code>, and <code>WriteAt</code> methods
|
||||
|
|
@ -617,7 +687,7 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
|
||||
<dl id="io/fs"><dt><a href="/pkg/io/fs/">io/fs</a></dt>
|
||||
<dd>
|
||||
<p><!-- CL 363814 --><!-- https://go.dev/issue/47209 -->
|
||||
<p><!-- CL 363814, https://go.dev/issue/47209 -->
|
||||
The new error <a href="/pkg/io/fs/#SkipAll"><code>SkipAll</code></a>
|
||||
terminates a <a href="/pkg/io/fs/#WalkDir"><code>WalkDir</code></a>
|
||||
immediately but successfully.
|
||||
|
|
@ -627,7 +697,7 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
|
||||
<dl id="math/rand"><dt><a href="/pkg/math/rand/">math/rand</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/54880 --><!-- CL 436955 -->
|
||||
<p><!-- https://go.dev/issue/54880, CL 436955, https://go.dev/issue/56319 -->
|
||||
The <a href="/pkg/math/rand/">math/rand</a> package now automatically seeds
|
||||
the global random number generator
|
||||
(used by top-level functions like <code>Float64</code> and <code>Int</code>) with a random value,
|
||||
|
|
@ -639,6 +709,10 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
Programs that need the earlier consistent global seeding behavior can set
|
||||
<code>GODEBUG=randautoseed=0</code> in their environment.
|
||||
</p>
|
||||
<p><!-- https://go.dev/issue/20661 -->
|
||||
The top-level <a href="/pkg/math/rand/#Read"><code>Read</code></a> function has been deprecated.
|
||||
In almost all cases, <a href="/pkg/crypto/rand/#Read"><code>crypto/rand.Read</code></a> is more appropriate.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- math/rand -->
|
||||
|
||||
|
|
@ -662,7 +736,7 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
|
||||
<dl id="net"><dt><a href="/pkg/net/">net</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/50101 -->
|
||||
<p><!-- https://go.dev/issue/50101, CL 446179 -->
|
||||
The <a href="/pkg/net/#LookupCNAME"><code>LookupCNAME</code></a>
|
||||
function now consistently returns the contents
|
||||
of a <code>CNAME</code> record when one exists. Previously on Unix systems and
|
||||
|
|
@ -674,14 +748,14 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
<code>CNAME</code> exists.
|
||||
</p>
|
||||
|
||||
<p><!-- https://go.dev/issue/53482 -->
|
||||
<p><!-- https://go.dev/issue/53482, CL 413454 -->
|
||||
<a href="/pkg/net/#Interface.Flags"><code>Interface.Flags</code></a> now includes the new flag <code>FlagRunning</code>,
|
||||
indicating an operationally active interface. An interface which is administratively
|
||||
configured but not active (for example, because the network cable is not connected)
|
||||
will have <code>FlagUp</code> set but not <code>FlagRunning</code>.
|
||||
</p>
|
||||
|
||||
<p><!-- https://go.dev/issue/55301 -->
|
||||
<p><!-- https://go.dev/issue/55301, CL 444955 -->
|
||||
The new <a href="/pkg/net/#Dialer.ControlContext"><code>Dialer.ControlContext</code></a> field contains a callback function
|
||||
similar to the existing <a href="/pkg/net/#Dialer.Control"><code>Dialer.Control</code></a> hook, that additionally
|
||||
accepts the dial context as a parameter.
|
||||
|
|
@ -706,34 +780,23 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
|
||||
<dl id="net/http"><dt><a href="/pkg/net/http/">net/http</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/541360 -->
|
||||
The new <a href="/pkg/net/http/#ResponseController"><code>ResponseController</code></a> type provides access to extended per-request
|
||||
functionality not handled by the <a href="/pkg/net/http/#ResponseWriter"><code>ResponseWriter<code></a> interface.
|
||||
<p>
|
||||
|
||||
<p>
|
||||
The new <a href="/pkg/net/http/#ResponseController.SetReadDeadline"><code>ResponseController.SetReadDeadline</code></a> and
|
||||
<a href="/pkg/net/http/#ResponseController.SetWriteDeadline"><code>ResponseController.SetWriteDeadline</code></a> methods permit setting
|
||||
per-request read and write deadlines.
|
||||
</p>
|
||||
|
||||
<p><!-- https://go.dev/issue/51914 -->
|
||||
The <a href="/pkg/net/http/#ResponseWriter.WriteHeader"><code>ResponseWriter.WriteHeader</code></a> function now supports sending
|
||||
<code>1xx</code> status codes.
|
||||
</p>
|
||||
|
||||
<p><!-- https://go.dev/issue/41773 -->
|
||||
<p><!-- https://go.dev/issue/41773, CL 356410 -->
|
||||
The new <a href="/pkg/net/http/#Server.DisableGeneralOptionsHandler"><code>Server.DisableGeneralOptionsHandler</code></a> configuration setting
|
||||
allows disabling the default <code>OPTIONS *</code> handler.
|
||||
</p>
|
||||
|
||||
<p><!-- https://go.dev/issue/54299 -->
|
||||
<p><!-- https://go.dev/issue/54299, CL 447216 -->
|
||||
The new <a href="/pkg/net/http/#Transport.OnProxyConnectResponse"><code>Transport.OnProxyConnectResponse</code></a> hook is called
|
||||
when a <code>Transport</code> receives an HTTP response from a proxy
|
||||
for a <code>CONNECT</code> request.
|
||||
</p>
|
||||
|
||||
<p><!-- https://go.dev/issue/53960 -->
|
||||
<p><!-- https://go.dev/issue/53960, CL 418614 -->
|
||||
The HTTP server now accepts HEAD requests containing a body,
|
||||
rather than rejecting them as invalid.
|
||||
</p>
|
||||
|
|
@ -755,7 +818,7 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
|
||||
<dl id="net/netip"><dt><a href="/pkg/net/netip/">net/netip</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/51766 --><!-- https://go.dev/issue/51777 --><!-- CL 412475 -->
|
||||
<p><!-- https://go.dev/issue/51766, https://go.dev/issue/51777, CL 412475 -->
|
||||
The new <a href="/pkg/net/netip/#IPv6LinkLocalAllRouters">IPv6LinkLocalAllRouters</a>
|
||||
and <a href="/pkg/net/netip/#IPv6Loopback">IPv6Loopback</a> functions
|
||||
are the <code>net/netip</code> equivalents of
|
||||
|
|
@ -768,7 +831,9 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
<dl id="os"><dt><a href="/pkg/os/">os</a></dt>
|
||||
<dd>
|
||||
<p><!-- CL 448897 -->
|
||||
TODO: <a href="https://go.dev/cl/448897">https://go.dev/cl/448897</a>: os: remove special casing of NUL in Windows file operations
|
||||
On Windows, the name <code>NUL</code> is no longer treated as a special case in
|
||||
<a href="/pkg/os/#Mkdir"><code>Mkdir</code></a> and
|
||||
<a href="/pkg/os/#Stat"><code>Stat</code></a>.
|
||||
</p>
|
||||
<p><!-- https://go.dev/issue/52747, CL 405275 -->
|
||||
On Windows, <a href="/pkg/os/#File.Stat"><code>File.Stat</code></a>
|
||||
|
|
@ -801,12 +866,12 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
|
||||
<dl id="path/filepath"><dt><a href="/pkg/path/filepath/">path/filepath</a></dt>
|
||||
<dd>
|
||||
<p><!-- CL 363814 --><!-- https://go.dev/issue/47209 -->
|
||||
<p><!-- CL 363814, https://go.dev/issue/47209 -->
|
||||
The new error <a href="/pkg/path/filepath/#SkipAll"><code>SkipAll</code></a>
|
||||
terminates a <a href="/pkg/path/filepath/#Walk"><code>Walk</code></a>
|
||||
immediately but successfully.
|
||||
</p>
|
||||
<p><!-- https://go.dev/issue/56219 -->
|
||||
<p><!-- https://go.dev/issue/56219, CL 449239 -->
|
||||
The new <a href="/pkg/path/filepath/#IsLocal"><code>IsLocal</code></a> function reports whether a path is
|
||||
lexically local to a directory.
|
||||
For example, if <code>IsLocal(p)</code> is <code>true</code>,
|
||||
|
|
@ -818,19 +883,19 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
|
||||
<dl id="reflect"><dt><a href="/pkg/reflect/">reflect</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/46746 --><!-- CL 423794 -->
|
||||
<p><!-- https://go.dev/issue/46746, CL 423794 -->
|
||||
The new <a href="/pkg/reflect/#Value.Comparable"><code>Value.Comparable</code></a> and
|
||||
<a href="/pkg/reflect/#Value.Equal"><code>Value.Equal</code></a> methods
|
||||
can be used to compare two <code>Value</code>s for equality.
|
||||
<code>Comparable</code> reports whether <code>Equal</code> is a valid operation for a given <code>Value</code> receiver.
|
||||
</p>
|
||||
|
||||
<p><!-- https://go.dev/issue/48000 --><!-- CL 389635 -->
|
||||
<p><!-- https://go.dev/issue/48000, CL 389635 -->
|
||||
The new <a href="/pkg/reflect/#Value.Grow"><code>Value.Grow</code></a> method
|
||||
extends a slice to guarantee space for another <code>n</code> elements.
|
||||
</p>
|
||||
|
||||
<p><!-- https://go.dev/issue/52376 --><!-- CL 411476 -->
|
||||
<p><!-- https://go.dev/issue/52376, CL 411476 -->
|
||||
The new <a href="/pkg/reflect/#Value.SetZero"><code>Value.SetZero</code></a> method
|
||||
sets a value to be the zero value for its type.
|
||||
</p>
|
||||
|
|
@ -861,14 +926,17 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
<dl id="runtime/metrics"><dt><a href="/pkg/runtime/metrics/">runtime/metrics</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/47216 -->
|
||||
TODO: <a href="https://go.dev/issue/47216">https://go.dev/issue/47216</a>: add GOMAXPROCS, NumCgoCall, GC CPU time
|
||||
Go 1.20 adds new <a href="/pkg/runtime/metrics/#hdr-Supported_metrics">supported metrics</a>,
|
||||
including the current <code>GOMAXPROCS</code> setting (<code>/sched/gomaxprocs:threads</code>),
|
||||
the number of cgo calls executed (<code>/cgo/go-to-c-calls:calls</code>),
|
||||
and various measures of time spent in garbage collection.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- runtime/metrics -->
|
||||
|
||||
<dl id="strings"><dt><a href="/pkg/strings/">strings</a></dt>
|
||||
<dd>
|
||||
<p><!-- CL 407176 -->
|
||||
<p><!-- CL 407176, https://go.dev/issue/42537 -->
|
||||
The new
|
||||
<a href="/pkg/bytes/#CutPrefix"><code>CutPrefix</code></a> and
|
||||
<a href="/pkg/bytes/#CutSuffix"><code>CutSuffix</code></a> functions
|
||||
|
|
@ -877,7 +945,7 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
but also report whether the string was trimmed.
|
||||
</p>
|
||||
|
||||
<p><!-- CL 359675 -->
|
||||
<p><!-- CL 359675, https://go.dev/issue/45038 -->
|
||||
The new <a href="/pkg/strings/#Clone"><code>Clone</code></a> function
|
||||
allocates a copy of a string.
|
||||
</p>
|
||||
|
|
@ -897,16 +965,17 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
|
||||
<dl id="syscall"><dt><a href="/pkg/syscall/">syscall</a></dt>
|
||||
<dd>
|
||||
<p><!-- CL 407574 -->
|
||||
TODO: <a href="https://go.dev/cl/407574">https://go.dev/cl/407574</a>: syscall: add new CLONE_ flags for Linux
|
||||
</p>
|
||||
|
||||
<p><!-- CL 411596 -->
|
||||
TODO: <a href="https://go.dev/cl/411596">https://go.dev/cl/411596</a>: syscall: remove FreeBSD 11 and below 64bit inode compatibility shims
|
||||
On FreeBSD, compatibility shims needed for FreeBSD 11 and earlier have been removed.
|
||||
</p>
|
||||
<p><!-- CL 407574 -->
|
||||
On Linux, additional <a href="/pkg/syscall/#CLONE_CLEAR_SIGHAND"><code>CLONE_*</code></a> constants
|
||||
are defined for use with the <a href="/pkg/syscall/#SysProcAttr.Cloneflags"><code>SysProcAttr.Cloneflags</code></a> field.
|
||||
</p>
|
||||
|
||||
<p><!-- CL 417695 -->
|
||||
TODO: <a href="https://go.dev/cl/417695">https://go.dev/cl/417695</a>: syscall: add CgroupFD support for ForkExec on Linux
|
||||
On Linux, the new <a href="/pkg/syscall/#SysProcAttr.CgroupFD"><code>SysProcAttr.CgroupFD</code></a>
|
||||
and <a href="/pkg/syscall/#SysProcAttr.UseCgroupFD"><code>SysProcAttr.UseCgroupFD</code></a> fields
|
||||
provide a way to place a child process into a specific cgroup.
|
||||
</p>
|
||||
</dd>
|
||||
</dl><!-- syscall -->
|
||||
|
|
@ -923,14 +992,14 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
|
||||
<dl id="time"><dt><a href="/pkg/time/">time</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/52746 --><!-- CL 412495 -->
|
||||
<p><!-- https://go.dev/issue/52746, CL 412495 -->
|
||||
The new time layout constants <a href="/pkg/time/#DateTime"><code>DateTime</code></a>,
|
||||
<a href="/pkg/time/#DateOnly"><code>DateOnly</code></a>, and
|
||||
<a href="/pkg/time/#TimeOnly"><code>TimeOnly</code></a>
|
||||
provide names for three of the most common layout strings used in a survey of public Go source code.
|
||||
</p>
|
||||
|
||||
<p><!-- CL 382734 --><!-- https://go.dev/issue/50770 -->
|
||||
<p><!-- CL 382734, https://go.dev/issue/50770 -->
|
||||
The new <a href="/pkg/time/#Time.Compare"><code>Time.Compare</code></a> method
|
||||
compares two times.
|
||||
</p>
|
||||
|
|
@ -951,7 +1020,7 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
|
||||
<dl id="unicode/utf16"><dt><a href="/pkg/unicode/utf16/">unicode/utf16</a></dt>
|
||||
<dd>
|
||||
<p><!-- https://go.dev/issue/51896 --><!-- CL 409054 -->
|
||||
<p><!-- https://go.dev/issue/51896, CL 409054 -->
|
||||
The new <a href="/pkg/unicode/utf16/#AppendRune"><code>AppendRune</code></a>
|
||||
function appends the UTF-16 encoding of a given rune to a uint16 slice,
|
||||
analogous to <a href="/pkg/unicode/utf8/#AppendRune"><code>utf8.AppendRune</code></a>.
|
||||
|
|
@ -962,7 +1031,7 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
<!-- Silence false positives from x/build/cmd/relnote: -->
|
||||
<!-- https://go.dev/issue/45964 was documented in Go 1.18 release notes but closed recently -->
|
||||
<!-- https://go.dev/issue/52114 is an accepted proposal to add golang.org/x/net/http2.Transport.DialTLSContext; it's not a part of the Go release -->
|
||||
<!-- CL 431335: cmd/api: make check pickier about api/*.txt; modified api/next/42537.txt, api/next/43620.txt, api/next/45899.txt, api/next/46746.txt, api/next/50429.txt, api/next/51896.txt, api/next/53482.txt -->
|
||||
<!-- CL 431335: cmd/api: make check pickier about api/*.txt -->
|
||||
<!-- CL 447896 api: add newline to 55301.txt; modified api/next/55301.txt -->
|
||||
<!-- CL 449215 api/next/54299: add missing newline; modified api/next/54299.txt -->
|
||||
<!-- CL 433057 cmd: update vendored golang.org/x/tools for multiple error wrapping -->
|
||||
|
|
@ -976,3 +1045,9 @@ proxyHandler := &httputil.ReverseProxy{
|
|||
<!-- https://go.dev/issue/46731: replace `//go:notinheap` with runtime/internal/sys.NotInHeap -->
|
||||
<!-- CL 345488 strconv optimization -->
|
||||
<!-- CL 428757 reflect deprecation, rolled back -->
|
||||
<!-- https://go.dev/issue/49390 compile -l -N is fully supported -->
|
||||
<!-- https://go.dev/issue/54619 x/tools -->
|
||||
<!-- CL 448898 reverted -->
|
||||
<!-- https://go.dev/issue/54850 x/net/http2 Transport.MaxReadFrameSize -->
|
||||
<!-- https://go.dev/issue/56054 x/net/http2 SETTINGS_HEADER_TABLE_SIZE -->
|
||||
<!-- CL 450375 reverted -->
|
||||
|
|
|
|||
Loading…
Reference in New Issue