1
0
mirror of https://github.com/golang/go synced 2024-11-18 01:34:44 -07:00
go/doc/go1.20.html
Russ Cox 07c57aff5d all: use Go 1.17.13 for bootstrap
Previously we used Go 1.17, but we realized thanks to tickling
a pre-Go1.17.3 bug that if we are going to change the bootstrap
toolchain that we should default to the latest available point release
at the time we make the switch, not the initial major release, so as
to avoid bugs that were fixed in the point releases.

This CL updates the default search locations and the release notes.

Users who run make.bash and depend on finding $HOME/sdk/go1.17
may need to run

	go install golang.org/dl/go1.17.13@latest
	go1.17.13 download

to provide a Go 1.17.13 toolchain to their builds.

Change-Id: I3a2511f088cf852470a7216a5a41ae775fb561b6
Reviewed-on: https://go-review.googlesource.com/c/go/+/439419
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
2022-10-17 19:46:59 +00:00

307 lines
10 KiB
HTML

<!--{
"Title": "Go 1.20 Release Notes",
"Path": "/doc/go1.20"
}-->
<!--
NOTE: In this document and others in this directory, the convention is to
set fixed-width phrases with non-fixed-width spaces, as in
<code>hello</code> <code>world</code>.
Do not send CLs removing the interior tags from such phrases.
-->
<style>
main ul li { margin: 0.5em 0; }
</style>
<h2 id="introduction">DRAFT RELEASE NOTES — Introduction to Go 1.20</h2>
<p>
<strong>
Go 1.20 is not yet released. These are work-in-progress
release notes. Go 1.20 is expected to be released in February 2023.
</strong>
</p>
<h2 id="language">Changes to the language</h2>
<p>
TODO: complete this section
</p>
<h2 id="ports">Ports</h2>
<p>
TODO: complete this section, or delete if not needed
</p>
<h2 id="tools">Tools</h2>
<h3 id="go-command">Go command</h3>
<p><!-- https://go.dev/issue/38687, CL 421440 -->
TODO: <a href="https://go.dev/cl/421440">https://go.dev/cl/421440</a>: cmd/go: add go generate -skip flag
</p>
<p><!-- https://go.dev/issue/45454 -->
TODO: <a href="https://go.dev/issue/45454">https://go.dev/issue/45454</a>: provide build tags for architecture environment variables
</p>
<p><!-- https://go.dev/issue/37015 -->
When the main module is located within <code>GOPATH/src</code>,
<code>go</code> <code>install</code> no longer installs libraries for
non-<code>main</code> packages to <code>GOPATH/pkg</code>,
and <code>go</code> <code>list</code> no longer reports a <code>Target</code>
field for such packages. (In module mode, compiled packages are stored in the
<a href="https://pkg.go.dev/cmd/go#hdr-Build_and_test_caching">build cache</a>
only, but <a href="https://go.dev/issue/37015">a bug</a> had caused
the <code>GOPATH</code> install targets to unexpectedly remain in effect.)
</p>
<h3 id="vet">Vet</h3>
<p><!-- https://go.dev/issue/48801, CL 354010 -->
TODO: <a href="https://go.dev/issue/48801">https://go.dev/issue/48801</a>: check for time formats with 2006-02-01
</p>
<h2 id="runtime">Runtime</h2>
<p>
TODO: complete this section, or delete if not needed
</p>
<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>
<h2 id="linker">Linker</h2>
<p>
TODO: complete this section, or delete if not needed
</p>
<h2 id="bootstrap">Bootstrap</h2>
<p><!-- https://go.dev/issue/44505 -->
TODO: <a href="https://go.dev/issue/44505">https://go.dev/issue/44505</a>: adopt Go 1.17.13 as bootstrap toolchain for Go 1.20
</p>
<h2 id="library">Core library</h2>
<h3 id="crypto/ecdh">New <code>crypto/ecdh</code> package</h3>
<p><!-- https://go.dev/issue/52221, CL 398914 -->
TODO: complete this section
</p>
<h3 id="minor_library_changes">Minor changes to the library</h3>
<p>
As always, there are various minor changes and updates to the library,
made with the Go 1 <a href="/doc/go1compat">promise of compatibility</a>
in mind.
There are also various performance improvements, not enumerated here.
</p>
<p>
TODO: complete this section
</p>
<dl id="bytes"><dt><a href="/pkg/bytes/">bytes</a></dt>
<dd>
<p><!-- CL 407176 -->
TODO: <a href="https://go.dev/cl/407176">https://go.dev/cl/407176</a>: strings, bytes: add CutPrefix and CutSuffix
</p>
<p><!-- CL 359675 -->
TODO: <a href="https://go.dev/cl/359675">https://go.dev/cl/359675</a>: bytes: add Clone function
</p>
</dd>
</dl><!-- bytes -->
<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
</p>
</dd>
</dl><!-- crypto/elliptic -->
<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>
</dd>
</dl><!-- crypto/subtle -->
<dl id="debug/elf"><dt><a href="/pkg/debug/elf/">debug/elf</a></dt>
<dd>
<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
</p>
</dd>
</dl><!-- debug/elf -->
<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
</p>
</dd>
</dl><!-- debug/pe -->
<dl id="encoding/binary"><dt><a href="/pkg/encoding/binary/">encoding/binary</a></dt>
<dd>
<p><!-- CL 420274 -->
TODO: <a href="https://go.dev/cl/420274">https://go.dev/cl/420274</a>: encoding/binary: ReadUvarint return io.ErrUnexpectedEOF when read at least 1 byte
</p>
</dd>
</dl><!-- encoding/binary -->
<dl id="encoding/xml"><dt><a href="/pkg/encoding/xml/">encoding/xml</a></dt>
<dd>
<p><!-- https://go.dev/issue/53346 -->
TODO: <a href="https://go.dev/issue/53346">https://go.dev/issue/53346</a>: Add (*Encoder).Close() to check for unclosed elements
</p>
<p><!-- CL 424777 -->
TODO: <a href="https://go.dev/cl/424777">https://go.dev/cl/424777</a>: encoding/xml: add (*Encoder).Close
</p>
</dd>
</dl><!-- encoding/xml -->
<dl id="fmt"><dt><a href="/pkg/fmt/">fmt</a></dt>
<dd>
<p><!-- https://go.dev/issue/51668 -->
TODO: <a href="https://go.dev/issue/51668">https://go.dev/issue/51668</a>: add FormatString(State) string
</p>
<p><!-- CL 400875 -->
TODO: <a href="https://go.dev/cl/400875">https://go.dev/cl/400875</a>: fmt: add a function to recover the original format string given a State; modified api/next/51668.txt
</p>
</dd>
</dl><!-- fmt -->
<dl id="go/build"><dt><a href="/pkg/go/build/">go/build</a></dt>
<dd>
<p><!-- CL 421434 -->
TODO: <a href="https://go.dev/cl/421434">https://go.dev/cl/421434</a>: go/build: add GO$GOARCH-based ToolTags
</p>
</dd>
</dl><!-- go/build -->
<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>
</dd>
</dl><!-- go/token -->
<dl id="io"><dt><a href="/pkg/io/">io</a></dt>
<dd>
<p><!-- https://go.dev/issue/45899 -->
TODO: <a href="https://go.dev/issue/45899">https://go.dev/issue/45899</a>: add OffsetWriter, NewOffsetWriter
</p>
<p><!-- CL 406776 -->
TODO: <a href="https://go.dev/cl/406776">https://go.dev/cl/406776</a>: io: add OffsetWriter, NewOffsetWriter; modified api/next/45899.txt
</p>
</dd>
</dl><!-- io -->
<dl id="net/http"><dt><a href="/pkg/net/http/">net/http</a></dt>
<dd>
<p><!-- https://go.dev/issue/41773 -->
TODO: <a href="https://go.dev/issue/41773">https://go.dev/issue/41773</a>: add Server.OptionsHandler to allow custom handling of OPTIONS *
</p>
<p><!-- CL 356410 -->
TODO: <a href="https://go.dev/cl/356410">https://go.dev/cl/356410</a>: net/http: add Server.DisableOptionsHandler for custom handling of OPTIONS *; modified api/next/41773.txt
</p>
</dd>
</dl><!-- net/http -->
<dl id="net/http/httputil"><dt><a href="/pkg/net/http/httputil/">net/http/httputil</a></dt>
<dd>
<p><!-- https://go.dev/issue/50465 -->
TODO: <a href="https://go.dev/issue/50465">https://go.dev/issue/50465</a>: add X-Forwarded-Proto and X-Forwarded-Host by default
</p>
<p><!-- https://go.dev/issue/53002 -->
TODO: <a href="https://go.dev/issue/53002">https://go.dev/issue/53002</a>: replace Director with Rewrite
</p>
<p><!-- CL 407214 -->
TODO: <a href="https://go.dev/cl/407214">https://go.dev/cl/407214</a>: net/http/httputil: add ReverseProxy.Rewrite; modified api/next/53002.txt
</p>
<p><!-- CL 407414 -->
TODO: <a href="https://go.dev/cl/407414">https://go.dev/cl/407414</a>: net/http/httputil: add X-Forwarded-{Host,Proto} headers in ReverseProxy
</p>
</dd>
</dl><!-- net/http/httputil -->
<dl id="strconv"><dt><a href="/pkg/strconv/">strconv</a></dt>
<dd>
<p><!-- CL 345488 -->
TODO: <a href="https://go.dev/cl/345488">https://go.dev/cl/345488</a>: strconv: optimize Parse for []byte arguments
</p>
</dd>
</dl><!-- strconv -->
<dl id="strings"><dt><a href="/pkg/strings/">strings</a></dt>
<dd>
<p><!-- https://go.dev/issue/42537 -->
TODO: <a href="https://go.dev/issue/42537">https://go.dev/issue/42537</a>: add CutPrefix and CutSuffix
</p>
<p><!-- https://go.dev/issue/45038 -->
TODO: <a href="https://go.dev/issue/45038">https://go.dev/issue/45038</a>: bytes, strings: add Clone
</p>
</dd>
</dl><!-- strings -->
<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>
</dd>
</dl><!-- syscall -->
<dl id="time"><dt><a href="/pkg/time/">time</a></dt>
<dd>
<p><!-- https://go.dev/issue/52746 -->
TODO: <a href="https://go.dev/issue/52746">https://go.dev/issue/52746</a>: add DateTime, DateOnly, TimeOnly format constants
</p>
<p><!-- CL 412495 -->
TODO: <a href="https://go.dev/cl/412495">https://go.dev/cl/412495</a>: time: add DateTime, DateOnly, and TimeOnly
</p>
</dd>
</dl><!-- time -->
<dl id="unicode/utf16"><dt><a href="/pkg/unicode/utf16/">unicode/utf16</a></dt>
<dd>
<p><!-- https://go.dev/issue/51896 -->
TODO: <a href="https://go.dev/issue/51896">https://go.dev/issue/51896</a>: add AppendRune
</p>
<p><!-- CL 409054 -->
TODO: <a href="https://go.dev/cl/409054">https://go.dev/cl/409054</a>: unicode/utf16: add AppendRune; modified api/next/51896.txt
</p>
</dd>
</dl><!-- unicode/utf16 -->
<!-- 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 -->