2022-08-24 09:21:55 -06:00
<!-- {
"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 >
2022-11-14 11:11:54 -07:00
< p > <!-- https://go.dev/issue/8606 -->
TODO: < a href = "https://go.dev/issue/8606" > https://go.dev/issue/8606< / a > : define that structs are compared field-by-field as listed in source code
< / p >
< p > <!-- https://go.dev/issue/46505 -->
TODO: < a href = "https://go.dev/issue/46505" > https://go.dev/issue/46505< / a > : allow conversion from slice to array
< / p >
2022-08-24 09:21:55 -06:00
< h2 id = "ports" > Ports< / h2 >
< p >
TODO: complete this section, or delete if not needed
< / p >
2022-11-14 11:11:54 -07:00
< p > <!-- https://go.dev/issue/53466 -->
TODO: < a href = "https://go.dev/issue/53466" > https://go.dev/issue/53466< / a > : add freebsd/riscv64 port
< / p >
2022-08-24 09:21:55 -06:00
< h2 id = "tools" > Tools< / h2 >
< h3 id = "go-command" > Go command< / h3 >
2022-08-24 11:04:42 -06:00
< 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 >
2022-11-14 11:11:54 -07:00
< p > <!-- CL 448357: cmd/go: print test2json start events -->
TODO: CL 448357: cmd/go: print test2json start events
< / p >
< p > <!-- CL 432535: cmd/go: don't install most GOROOT .a files in pkg -->
2022-11-04 14:29:15 -06:00
The Go distribution no longer ships with pre-compiled < code > .a< / code >
files for most of the packages in < code > GOROOT< / code > , now only including
.a files for the five packages in < code > GOROOT< / code > that use < code > cgo< / code > .
Instead, those packages will be built as needed and cached in the build
cache, as is already done for non-< code > main< / code > packages outside
< code > GOROOT< / code > . Further, < code > go< / code > < code > install< / code > will
also not install < code > .a< / code > files for < code > GOROOT< / code > packages
except for those that use < code > cgo< / code > . These changes are intended to
reduce the size of the Go distribution, in some cases by up to two-thirds.
< / p >
2022-06-15 12:24:12 -06:00
< 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 >
2022-11-09 08:45:50 -07:00
< p > <!-- https://go.dev/issue/41696, CL 416094 -->
The < code > -i< / code > flag is no longer accepted by
< code > go< / code > < code > build< / code > and < code > go< / code > < code > test< / code > .
The flag has been < a href = "https://go.dev/issue/41696" > deprecated since Go 1.16< / a > .
< / p >
< p > <!-- https://go.dev/issue/50332 -->
The < code > go< / code > subcommands now accept
< code > -C< / code > < code > < dir> < / code > to change directory to < dir>
before performing the command, which may be useful for scripts that need to
execute commands in multiple different modules.
< / p >
< p > <!-- https://go.dev/issue/41583 -->
The < code > go< / code > < code > test< / code > command now accepts
< code > -skip< / code > < code > < pattern> < / code > to skip tests or subtests
matching < code > < pattern> < / code > .
< / p >
2022-10-11 00:24:39 -06:00
< h4 id = "go-version" > < code > go< / code > < code > version< / code > < / h4 >
< p > <!-- https://go.dev/issue/48187 -->
The < code > go< / code > < code > version< / code > < code > -m< / code > command
now supports reading more types of Go binaries, most notably, Windows DLLs
built with < code > go< / code > < code > build< / code > < code > -buildmode=c-shared< / code >
and Linux binaries without execute permission.
< / p >
2022-11-14 11:11:54 -07:00
< h3 id = "cover" > Cover< / h3 >
< p > <!-- CL 436236, CL 401236, CL 438503 -->
TODO coverage
< / p >
2022-08-24 11:04:42 -06:00
< 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
2022-08-24 09:21:55 -06:00
< / p >
2022-11-14 11:11:54 -07:00
< p > <!-- CL 447256 --> <!-- https://go.dev/issue/55972: extend the loopclosure analysis to parallel subtests -->
TODO: https://go.dev/issue/55972: extend the loopclosure analysis to parallel subtests
< / p >
2022-08-24 09:21:55 -06:00
< h2 id = "runtime" > Runtime< / h2 >
< p >
TODO: complete this section, or delete if not needed
< / p >
< h2 id = "compiler" > Compiler< / h2 >
2022-08-24 11:04:42 -06:00
< 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
2022-08-24 09:21:55 -06:00
< / p >
< h2 id = "linker" > Linker< / h2 >
< p >
TODO: complete this section, or delete if not needed
< / p >
2022-08-24 11:04:42 -06:00
< h2 id = "bootstrap" > Bootstrap< / h2 >
< p > <!-- https://go.dev/issue/44505 -->
2022-10-05 19:13:08 -06:00
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
2022-08-24 11:04:42 -06:00
< / p >
2022-08-24 09:21:55 -06:00
< h2 id = "library" > Core library< / h2 >
2022-08-24 11:04:42 -06:00
< h3 id = "crypto/ecdh" > New < code > crypto/ecdh< / code > package< / h3 >
< p > <!-- https://go.dev/issue/52221, CL 398914 -->
TODO: complete this section
< / p >
2022-11-14 11:11:54 -07:00
< h3 id = "errors" > Wrapping multiple errors< / h3 >
< p > <!-- CL 432898 -->
2022-11-14 13:20:17 -07:00
Go 1.20 expands support for error wrapping to permit an error to
wrap multiple other errors.
< / p >
< p >
An error < code > e< /code< / e > can wrap more than one error by providing
an < code > Unwrap< / code > method that returns a < code > []error< / code > .
< / p >
< p >
The < a href = "/pkg/errors/#Is" > < code > errors.Is< / code > < / a > and
< a href = "/pkg/errors/#As" > < code > errors.As< / code > < / a > functions
have been updated to inspect multiply wrapped errors.
< / p >
< p >
The < a href = "/pkg/fmt/#Errorf" > < code > fmt.Errorf< / code > < / a > function
now supports multiple occurrances of the < code > %w< / code > format verb,
which will cause it to return an error that wraps all of those error operands.
< / p >
< p >
The new function < a href = "/pkg/errors/#Join" > < code > errors.Join< / code > < / a >
returns an error wrapping a list of errors.
2022-11-14 11:11:54 -07:00
< / p >
2022-08-24 09:21:55 -06:00
< 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 >
2022-08-24 11:04:42 -06:00
2022-11-14 11:11:54 -07:00
< dl id = "archive/zip" > < dt > < a href = "/pkg/archive/zip/" > archive/zip< / a > < / dt >
< dd >
< p > <!-- CL 449955 -->
2022-11-14 13:35:19 -07:00
Reading from a directory file that contains file data will now return an error.
The zip specification does not permit directory files to contain file data,
so this change only affects reading from invalid archives.
2022-11-14 11:11:54 -07:00
< / p >
< / dd >
< / dl > <!-- archive/zip -->
2022-08-24 11:04:42 -06:00
< 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 -->
2022-11-14 11:11:54 -07:00
< 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 >
< / dd >
< / dl > <!-- context -->
< 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 >
< / dd >
< / dl > <!-- crypto/ed25519 -->
2022-08-24 11:04:42 -06:00
< 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 -->
2022-11-14 11:11:54 -07:00
< 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 >
< / dd >
< / dl > <!-- crypto/rsa -->
2022-08-24 11:04:42 -06:00
< 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 -->
2022-11-14 11:11:54 -07:00
< 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
< / p >
< / dd >
< / dl > <!-- crypto/tls -->
2022-08-24 11:04:42 -06:00
< 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 >
2022-11-14 11:11:54 -07:00
< 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
< / p >
2022-08-24 11:04:42 -06:00
< / 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 -->
2022-11-14 13:35:19 -07:00
The < a href = "/pkg/encoding/binary/#ReadVarint" > < code > ReadVarint< / code > < / a > and
< a href = "/pkg/encoding/binary/#ReadUvarint" > < code > ReadUvarint< / code > < / a >
functions will now return < code > io.ErrUnexpectedEOF< / code > after reading a partial value,
rather than < code > io.EOF< / code > .
2022-08-24 11:04:42 -06:00
< / 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 >
2022-11-14 11:11:54 -07:00
< p > <!-- CL 103875 -->
TODO: < a href = "https://go.dev/cl/103875" > https://go.dev/cl/103875< / a > : encoding/xml: error when more than one colon in qualified names
< / p >
< p > <!-- CL 107255 -->
TODO: < a href = "https://go.dev/cl/107255" > https://go.dev/cl/107255< / a > : encoding/xml: error when closing tag does not match opening tag
< / p >
2022-08-24 11:04:42 -06:00
< / dd >
< / dl > <!-- encoding/xml -->
2022-11-14 13:20:17 -07:00
< dl id = "errors" > < dt > < a href = "/pkg/errors/" > errors< / a > < / dt >
< dd >
< p > <!-- https://go.dev/issue/53435 -->
The new < code > Join< / code > function returns an error wrapping a list of errors.
< / p >
< / dd >
< / dl > <!-- errors -->
2022-08-24 11:04:42 -06:00
< dl id = "fmt" > < dt > < a href = "/pkg/fmt/" > fmt< / a > < / dt >
< dd >
2022-11-14 13:20:17 -07:00
< p > <!-- https://go.dev/issue/53435 -->
The < code > Errorf< / code > function supports multiple occurrances of
the < code > %w< / code > format verb.
< / p >
2022-08-24 11:04:42 -06:00
< 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 -->
2022-11-14 11:11:54 -07:00
< 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 >
< 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 >
< / dd >
< / dl > <!-- go/ast -->
2022-08-24 11:04:42 -06:00
< 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 -->
2022-11-14 11:11:54 -07:00
< dl id = "io/fs" > < dt > < a href = "/pkg/io/fs/" > io/fs< / a > < / dt >
< dd >
< p > <!-- CL 363814 -->
TODO: < a href = "https://go.dev/cl/363814" > https://go.dev/cl/363814< / a > : path/filepath, io/fs: add SkipAll; modified api/next/47209.txt
< / p >
< / dd >
< / dl > <!-- io -->
< dl id = "math/rand" > < dt > < a href = "/pkg/math/rand/" > math/rand< / a > < / dt >
< dd >
< p > <!-- https://go.dev/issue/54880 -->
TODO: < a href = "https://go.dev/issue/54880" > https://go.dev/issue/54880< / a > : seed global generator randomly
< / p >
< p > <!-- CL 436955 -->
TODO: < a href = "https://go.dev/cl/436955" > https://go.dev/cl/436955< / a > : math/rand: deprecate Read
< / p >
< / dd >
< / dl > <!-- math/rand -->
< dl id = "mime" > < dt > < a href = "/pkg/mime/" > mime< / a > < / dt >
< dd >
< p > <!-- https://go.dev/issue/48866 -->
2022-11-14 13:35:19 -07:00
The < code > ParseMediaType< / code > function now allows duplicate parameter names,
so long as the values of the names are the same.
2022-11-14 11:11:54 -07:00
< / p >
< / dd >
< / dl > <!-- mime -->
< dl id = "mime/multipart" > < dt > < a href = "/pkg/mime/multipart/" > mime/multipart< / a > < / dt >
< dd >
< p > <!-- CL 431675 -->
2022-11-14 13:35:19 -07:00
Methods of the < code > Reader< / code > type now wrap errors
returned by the underlying < code > io.Reader< / code > .
2022-11-14 11:11:54 -07:00
< / p >
< / dd >
< / dl > <!-- mime/multipart -->
< dl id = "net" > < dt > < a href = "/pkg/net/" > net< / a > < / dt >
< dd >
< p > <!-- https://go.dev/issue/50101 -->
TODO: < a href = "https://go.dev/issue/50101" > https://go.dev/issue/50101< / a > : make LookupCNAME consistent between Unix and Windows, document
< / p >
< p > <!-- https://go.dev/issue/53482 -->
TODO: < a href = "https://go.dev/issue/53482" > https://go.dev/issue/53482< / a > : add FlagRunning to the Flags of struct Interface, to exactly reflect the states of an interface or NIC
< / p >
< p > <!-- https://go.dev/issue/55301 -->
TODO: < a href = "https://go.dev/issue/55301" > https://go.dev/issue/55301< / a > : Add ControlContext to Dialer
< / p >
< p > <!-- CL 413454 -->
TODO: < a href = "https://go.dev/cl/413454" > https://go.dev/cl/413454< / a > : net: add FlagRunning to exactly reflect the states of an interface.; modified api/next/53482.txt
< / p >
< p > <!-- CL 428955 -->
TODO: < a href = "https://go.dev/cl/428955" > https://go.dev/cl/428955< / a > : net: set AD bit in DNS queries when trust-ad in resolv.conf
< / p >
< p > <!-- CL 444955 -->
TODO: < a href = "https://go.dev/cl/444955" > https://go.dev/cl/444955< / a > : net: add ControlContext to Dialer; modified api/next/55301.txt
< / p >
< p > <!-- CL 446179 -->
TODO: < a href = "https://go.dev/cl/446179" > https://go.dev/cl/446179< / a > : net: unify CNAME handling across ports
< / p >
< p > <!-- CL 448075 -->
TODO: < a href = "https://go.dev/cl/448075" > https://go.dev/cl/448075< / a > : net: auto-reload the /etc/nsswitch.conf on unix systems
< / p >
< / dd >
< / dl > <!-- net -->
2022-08-24 11:04:42 -06:00
< 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 >
2022-11-14 11:11:54 -07:00
< p > <!-- https://go.dev/issue/51914 -->
TODO: < a href = "https://go.dev/issue/51914" > https://go.dev/issue/51914< / a > : support for the 103 status code
< / p >
< p > <!-- https://go.dev/issue/53896 -->
TODO: < a href = "https://go.dev/issue/53896" > https://go.dev/issue/53896< / a > : easier access to HTTP/2 error codes
< / p >
< p > <!-- https://go.dev/issue/54299 -->
TODO: < a href = "https://go.dev/issue/54299" > https://go.dev/issue/54299< / a > : add Transport.OnProxyConnectResponse
< / p >
< p > <!-- CL 418614 -->
TODO: < a href = "https://go.dev/cl/418614" > https://go.dev/cl/418614< / a > : net/http: accept HEAD requests with a body; accept HEAD requests with a body
< / p >
< p > <!-- CL 436890 -->
TODO: < a href = "https://go.dev/cl/436890" > https://go.dev/cl/436890< / a > : net/http: add ResponseController and per-handler timeouts; modified api/next/54136.txt
< / p >
< p > <!-- CL 447216 -->
TODO: < a href = "https://go.dev/cl/447216" > https://go.dev/cl/447216< / a > : net/http: add Transport.OnProxyConnectResponse; modified api/next/54299.txt
< / p >
2022-08-24 11:04:42 -06:00
< / 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 -->
2022-11-14 11:11:54 -07:00
< dl id = "net/netip" > < dt > < a href = "/pkg/net/netip/" > net/netip< / a > < / dt >
< dd >
< p > <!-- https://go.dev/issue/51766 -->
TODO: < a href = "https://go.dev/issue/51766" > https://go.dev/issue/51766< / a > : add IPv6LinkLocalAllRouters
< / p >
< p > <!-- https://go.dev/issue/51777 -->
TODO: < a href = "https://go.dev/issue/51777" > https://go.dev/issue/51777< / a > : add IPv6Loopback
< / p >
< p > <!-- CL 412475 -->
TODO: < a href = "https://go.dev/cl/412475" > https://go.dev/cl/412475< / a > : net/netip: add IPv6LinkLocalAllRouters and IPv6Loopback; modified api/next/51766.txt, api/next/51777.txt
< / p >
< / dd >
< / dl > <!-- net/netip -->
< 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
< / p >
< / dd >
< / dl > <!-- os -->
2022-11-09 09:10:59 -07:00
< dl id = "os/exec" > < dt > < a href = "/pkg/os/exec/" > os/exec< / a > < / dt >
< dd >
< p > <!-- https://go.dev/issue/50436, CL 401835 -->
The new < code > Cmd< / code > fields < code > Cancel< / code > and < code > WaitDelay< / code >
specify the behavior of the < code > Cmd< / code > when its associated
< code > Context< / code > is canceled or its process exits with I/O pipes still
held open by a child process.
< / p >
< / dd >
< / dl > <!-- os/exec -->
2022-11-14 11:11:54 -07:00
< dl id = "path/filepath" > < dt > < a href = "/pkg/path/filepath/" > path/filepath< / a > < / dt >
< dd >
< p > <!-- CL 363814 --> <!-- https://go.dev/issue/47209 -->
TODO: < a href = "https://go.dev/cl/363814" > https://go.dev/cl/363814< / a > : path/filepath, io/fs: add SkipAll; modified api/next/47209.txt
< / p >
< / dd >
< / dl > <!-- io -->
< dl id = "reflect" > < dt > < a href = "/pkg/reflect/" > reflect< / a > < / dt >
< dd >
< p > <!-- https://go.dev/issue/46746 -->
TODO: < a href = "https://go.dev/issue/46746" > https://go.dev/issue/46746< / a > : add Value.Equal, Value.Comparable
< / p >
< p > <!-- https://go.dev/issue/48000 -->
TODO: < a href = "https://go.dev/issue/48000" > https://go.dev/issue/48000< / a > : add reflect.Value.Grow
< / p >
< p > <!-- https://go.dev/issue/52376 -->
TODO: < a href = "https://go.dev/issue/52376" > https://go.dev/issue/52376< / a > : add Value.SetZero
< / p >
< p > <!-- CL 389635 -->
TODO: < a href = "https://go.dev/cl/389635" > https://go.dev/cl/389635< / a > : reflect: add Value.Grow
< / p >
< p > <!-- CL 411476 -->
TODO: < a href = "https://go.dev/cl/411476" > https://go.dev/cl/411476< / a > : reflect: add Value.SetZero
< / p >
< p > <!-- CL 423794 -->
TODO: < a href = "https://go.dev/cl/423794" > https://go.dev/cl/423794< / a > : reflect: add Value.{Comparable,Equal}
< / p >
< p > <!-- CL 425184 -->
TODO: < a href = "https://go.dev/cl/425184" > https://go.dev/cl/425184< / a > : reflect: fix Value.SetIterXXX to check for the read-only bit
< / p >
< p > <!-- CL 428757 -->
TODO: < a href = "https://go.dev/cl/428757" > https://go.dev/cl/428757< / a > : reflect: deprecate SliceHeader and StringHeader
< / p >
< / dd >
< / dl > <!-- reflect -->
< dl id = "regexp" > < dt > < a href = "/pkg/regexp/" > regexp< / a > < / dt >
< dd >
< p > <!-- CL 444817 -->
TODO: < a href = "https://go.dev/cl/444817" > https://go.dev/cl/444817< / a > : regexp: add ErrLarge error; modified api/next/56041.txt
< / p >
< / dd >
< / dl > <!-- regexp -->
< 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
< / p >
< / dd >
< / dl > <!-- runtime/metrics -->
2022-08-24 11:04:42 -06:00
< 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 >
2022-11-14 11:11:54 -07:00
< 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
< / 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
< / p >
2022-08-24 11:04:42 -06:00
< / dd >
< / dl > <!-- syscall -->
2022-11-09 09:19:21 -07:00
< dl id = "testing" > < dt > < a href = "/pkg/testing/" > testing< / a > < / dt >
< dd >
< p > <!-- https://go.dev/issue/43620, CL 420254 -->
The new method < a href = "/pkg/testing/#B.Elapsed" > < code > B.Elapsed< / code > < / a >
reports the current elapsed time of the benchmark, which may be useful for
calculating rates to report with < code > ReportMetric< / code > .
< / p >
< / dd >
< / dl > <!-- testing -->
2022-08-24 11:04:42 -06:00
< 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 >
2022-11-14 11:11:54 -07:00
< p > <!-- CL 382734 --> <!-- https://go.dev/issue/50770 -->
TODO: < a href = "https://go.dev/cl/382734" > https://go.dev/cl/382734< / a > : time: implement Compare method
< / p >
< p > <!-- CL 425037 -->
TODO: < a href = "https://go.dev/cl/425037" > https://go.dev/cl/425037< / a > : time: fix Parse to ignore extra sub-nanosecond digits
< / p >
< p > <!-- CL 444277 -->
TODO: < a href = "https://go.dev/cl/444277" > https://go.dev/cl/444277< / a > : time: implement strict RFC 3339 during marshal and unmarshal
< / p >
2022-08-24 11:04:42 -06:00
< / 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 -->
2022-11-14 11:11:54 -07:00
<!-- 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 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 -->
<!-- CL 423362 crypto/internal/boring: update to newer boringcrypto, add arm64 -->
<!-- https://go.dev/issue/53481 x/cryptobyte ReadUint64, AddUint64 -->
<!-- https://go.dev/issue/51994 x/crypto/ssh -->
<!-- https://go.dev/issue/55358 x/exp/slices -->
<!-- https://go.dev/issue/54714 x/sys/unix -->
<!-- https://go.dev/issue/50035 https://go.dev/issue/54237 x/time/rate -->
<!-- CL 421879: cmd/cgo: add and use runtime/cgo.Incomplete instead of //go:notinheap -->
<!-- https://go.dev/issue/46731: replace `//go:notinheap` with runtime/internal/sys.NotInHeap -->