This is a tracking issue for doing an audit of API additions for Go 1.23 as of CL 590835.
New API changes for Go 1.23
archive/tar
type FileInfoNames interface { Gname, IsDir, ModTime, Mode, Name, Size, Sys, Uname }
#50102type FileInfoNames interface, Gname() (string, error)
#50102type FileInfoNames interface, IsDir() bool
#50102type FileInfoNames interface, ModTime() time.Time
#50102type FileInfoNames interface, Mode() fs.FileMode
#50102type FileInfoNames interface, Name() string
#50102type FileInfoNames interface, Size() int64
#50102type FileInfoNames interface, Sys() interface{}
#50102type FileInfoNames interface, Uname() (string, error)
#50102
crypto/tls
const QUICResumeSession = 8
#63691const QUICResumeSession QUICEventKind
#63691const QUICStoreSession = 9
#63691const QUICStoreSession QUICEventKind
#63691method (*ECHRejectionError) Error() string
#63369method (*QUICConn) StoreSession(*SessionState) error
#63691type Config struct, EncryptedClientHelloConfigList []uint8
#63369type Config struct, EncryptedClientHelloRejectionVerify func(ConnectionState) error
#63369type ConnectionState struct, ECHAccepted bool
#63369type ECHRejectionError struct
#63369type ECHRejectionError struct, RetryConfigList []uint8
#63369type QUICConfig struct, EnableStoreSessionEvent bool
#63691type QUICEvent struct, SessionState *SessionState
#63691type QUICSessionTicketOptions struct, Extra [][]uint8
#63691
crypto/x509
func ParseOID(string) (OID, error)
#66249method (*OID) UnmarshalBinary([]uint8) error
#66249method (*OID) UnmarshalText([]uint8) error
#66249method (OID) MarshalBinary() ([]uint8, error)
#66249method (OID) MarshalText() ([]uint8, error)
#66249
debug/elf
const PT_OPENBSD_NOBTCFI = 1705237480
#66054const PT_OPENBSD_NOBTCFI ProgType
#66054const STT_GNU_IFUNC = 10
#66836const STT_GNU_IFUNC SymType
#66836const STT_RELC = 8
#66836const STT_RELC SymType
#66836const STT_SRELC = 9
#66836const STT_SRELC SymType
#66836
encoding/binary
func Append([]uint8, ByteOrder, interface{}) ([]uint8, error)
#60023func Decode([]uint8, ByteOrder, interface{}) (int, error)
#60023func Encode([]uint8, ByteOrder, interface{}) (int, error)
#60023
go/ast
func Preorder(Node) iter.Seq[Node]
#66339
go/types
method (*Alias) Origin() *Alias
#67143method (*Alias) Rhs() Type
#66559method (*Alias) SetTypeParams([]*TypeParam)
#67143method (*Alias) TypeArgs() *TypeList
#67143method (*Alias) TypeParams() *TypeParamList
#67143method (*Func) Signature() *Signature
#65772
iter
func Pull2[$0 interface{}, $1 interface{}](Seq2[$0, $1]) (func() ($0, $1, bool), func())
#61897func Pull[$0 interface{}](Seq[$0]) (func() ($0, bool), func())
#61897type Seq2[$0 interface{}, $1 interface{}] func(func($0, $1) bool)
#61897type Seq[$0 interface{}] func(func($0) bool)
#61897
maps
func All[$0 interface{ ~map[$1]$2 }, $1 comparable, $2 interface{}]($0) iter.Seq2[$1, $2]
#61900func Collect[$0 comparable, $1 interface{}](iter.Seq2[$0, $1]) map[$0]$1
#61900func Insert[$0 interface{ ~map[$1]$2 }, $1 comparable, $2 interface{}]($0, iter.Seq2[$1, $2])
#61900func Keys[$0 interface{ ~map[$1]$2 }, $1 comparable, $2 interface{}]($0) iter.Seq[$1]
#61900func Values[$0 interface{ ~map[$1]$2 }, $1 comparable, $2 interface{}]($0) iter.Seq[$2]
#61900
math/rand/v2
func Uint() uint
#61716method (*ChaCha8) Read([]uint8) (int, error)
#67059method (*Rand) Uint() uint
#61716
net
method (*DNSError) Unwrap() error
#63116method (*TCPConn) SetKeepAliveConfig(KeepAliveConfig) error
#62254type DNSError struct, UnwrapErr error
#63116type Dialer struct, KeepAliveConfig KeepAliveConfig
#62254type KeepAliveConfig struct
#62254type KeepAliveConfig struct, Count int
#62254type KeepAliveConfig struct, Enable bool
#62254type KeepAliveConfig struct, Idle time.Duration
#62254type KeepAliveConfig struct, Interval time.Duration
#62254type ListenConfig struct, KeepAliveConfig KeepAliveConfig
#62254
net/http
func ParseCookie(string) ([]*Cookie, error)
#66008func ParseSetCookie(string) (*Cookie, error)
#66008method (*Request) CookiesNamed(string) []*Cookie
#61472type Cookie struct, Partitioned bool
#62490type Cookie struct, Quoted bool
#46443type Request struct, Pattern string
#66405
net/http/httptest
func NewRequestWithContext(context.Context, string, string, io.Reader) *http.Request
#59473
os
func CopyFS(string, fs.FS) error
#62484
path/filepath
func Localize(string) (string, error)
#57151
reflect
func SliceAt(Type, unsafe.Pointer, int) Value
#61308method (Value) Seq() iter.Seq[Value]
#66056method (Value) Seq2() iter.Seq2[Value, Value]
#66056type Type interface, CanSeq() bool
#66056type Type interface, CanSeq2() bool
#66056type Type interface, OverflowComplex(complex128) bool
#60427type Type interface, OverflowFloat(float64) bool
#60427type Type interface, OverflowInt(int64) bool
#60427type Type interface, OverflowUint(uint64) bool
#60427
runtime/debug
func SetCrashOutput(*os.File, CrashOptions) error
#42888type CrashOptions struct
#67182
slices
func All[$0 interface{ ~[]$1 }, $1 interface{}]($0) iter.Seq2[int, $1]
#61899func AppendSeq[$0 interface{ ~[]$1 }, $1 interface{}]($0, iter.Seq[$1]) $0
#61899func Backward[$0 interface{ ~[]$1 }, $1 interface{}]($0) iter.Seq2[int, $1]
#61899func Chunk[$0 interface{ ~[]$1 }, $1 interface{}]($0, int) iter.Seq[$0]
#53987func Collect[$0 interface{}](iter.Seq[$0]) []$0
#61899func Repeat[$0 interface{ ~[]$1 }, $1 interface{}]($0, int) $0
#65238func SortedFunc[$0 interface{}](iter.Seq[$0], func($0, $0) int) []$0
#61899func SortedStableFunc[$0 interface{}](iter.Seq[$0], func($0, $0) int) []$0
#61899func Sorted[$0 cmp.Ordered](iter.Seq[$0]) []$0
#61899func Values[$0 interface{ ~[]$1 }, $1 interface{}]($0) iter.Seq[$1]
#61899
structs
type HostLayout struct
#66408
sync
method (*Map) Clear()
#61696
sync/atomic
func AndInt32(*int32, int32) int32
#61395func AndInt64(*int64, int64) int64
#61395func AndUint32(*uint32, uint32) uint32
#61395func AndUint64(*uint64, uint64) uint64
#61395func AndUintptr(*uintptr, uintptr) uintptr
#61395func OrInt32(*int32, int32) int32
#61395func OrInt64(*int64, int64) int64
#61395func OrUint32(*uint32, uint32) uint32
#61395func OrUint64(*uint64, uint64) uint64
#61395func OrUintptr(*uintptr, uintptr) uintptr
#61395method (*Int32) And(int32) int32
#61395method (*Int32) Or(int32) int32
#61395method (*Int64) And(int64) int64
#61395method (*Int64) Or(int64) int64
#61395method (*Uint32) And(uint32) uint32
#61395method (*Uint32) Or(uint32) uint32
#61395method (*Uint64) And(uint64) uint64
#61395method (*Uint64) Or(uint64) uint64
#61395method (*Uintptr) And(uintptr) uintptr
#61395method (*Uintptr) Or(uintptr) uintptr
#61395
syscall (windows-386)
const WSAENOPROTOOPT = 10042
#62254const WSAENOPROTOOPT Errno
#62254
syscall (windows-amd64)
const WSAENOPROTOOPT = 10042
#62254const WSAENOPROTOOPT Errno
#62254
unicode/utf16
func RuneLen(int32) int
#44940
unique
func Make[$0 comparable]($0) Handle[$0]
#62483method (Handle[$0]) Value() $0
#62483type Handle[$0 comparable] struct
#62483
CC @rsc, @ianlancetaylor, @golang/release.
Comment From: rsc
Reading through the list, these all LGTM, meaning I remember the proposals and still think that the APIs are correct. Would be good for @ianlancetaylor to check the same, and then I think we can close this. Thanks!
Comment From: dmitshur
I also looked a bit at the proposed and implemented APIs. Everything seems to align. The WSAENOPROTOOPT
constant wasn't mentioned in proposal #62254, but it seems fine.
Comment From: ianlancetaylor
I have also reviewed. LGTM.
Comment From: dmitshur
For posterity: the type QUICConfig struct, EnableStoreSessionEvent bool
field has since been renamed to EnableSessionEvents
after a deliberate decision in #68124.