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 } #50102
  • type FileInfoNames interface, Gname() (string, error) #50102
  • type FileInfoNames interface, IsDir() bool #50102
  • type FileInfoNames interface, ModTime() time.Time #50102
  • type FileInfoNames interface, Mode() fs.FileMode #50102
  • type FileInfoNames interface, Name() string #50102
  • type FileInfoNames interface, Size() int64 #50102
  • type FileInfoNames interface, Sys() interface{} #50102
  • type FileInfoNames interface, Uname() (string, error) #50102

crypto/tls

  • const QUICResumeSession = 8 #63691
  • const QUICResumeSession QUICEventKind #63691
  • const QUICStoreSession = 9 #63691
  • const QUICStoreSession QUICEventKind #63691
  • method (*ECHRejectionError) Error() string #63369
  • method (*QUICConn) StoreSession(*SessionState) error #63691
  • type Config struct, EncryptedClientHelloConfigList []uint8 #63369
  • type Config struct, EncryptedClientHelloRejectionVerify func(ConnectionState) error #63369
  • type ConnectionState struct, ECHAccepted bool #63369
  • type ECHRejectionError struct #63369
  • type ECHRejectionError struct, RetryConfigList []uint8 #63369
  • type QUICConfig struct, EnableStoreSessionEvent bool #63691
  • type QUICEvent struct, SessionState *SessionState #63691
  • type QUICSessionTicketOptions struct, Extra [][]uint8 #63691

crypto/x509

  • func ParseOID(string) (OID, error) #66249
  • method (*OID) UnmarshalBinary([]uint8) error #66249
  • method (*OID) UnmarshalText([]uint8) error #66249
  • method (OID) MarshalBinary() ([]uint8, error) #66249
  • method (OID) MarshalText() ([]uint8, error) #66249

debug/elf

  • const PT_OPENBSD_NOBTCFI = 1705237480 #66054
  • const PT_OPENBSD_NOBTCFI ProgType #66054
  • const STT_GNU_IFUNC = 10 #66836
  • const STT_GNU_IFUNC SymType #66836
  • const STT_RELC = 8 #66836
  • const STT_RELC SymType #66836
  • const STT_SRELC = 9 #66836
  • const STT_SRELC SymType #66836

encoding/binary

  • func Append([]uint8, ByteOrder, interface{}) ([]uint8, error) #60023
  • func Decode([]uint8, ByteOrder, interface{}) (int, error) #60023
  • func Encode([]uint8, ByteOrder, interface{}) (int, error) #60023

go/ast

  • func Preorder(Node) iter.Seq[Node] #66339

go/types

  • method (*Alias) Origin() *Alias #67143
  • method (*Alias) Rhs() Type #66559
  • method (*Alias) SetTypeParams([]*TypeParam) #67143
  • method (*Alias) TypeArgs() *TypeList #67143
  • method (*Alias) TypeParams() *TypeParamList #67143
  • method (*Func) Signature() *Signature #65772

iter

  • func Pull2[$0 interface{}, $1 interface{}](Seq2[$0, $1]) (func() ($0, $1, bool), func()) #61897
  • func Pull[$0 interface{}](Seq[$0]) (func() ($0, bool), func()) #61897
  • type Seq2[$0 interface{}, $1 interface{}] func(func($0, $1) bool) #61897
  • type 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] #61900
  • func Collect[$0 comparable, $1 interface{}](iter.Seq2[$0, $1]) map[$0]$1 #61900
  • func Insert[$0 interface{ ~map[$1]$2 }, $1 comparable, $2 interface{}]($0, iter.Seq2[$1, $2]) #61900
  • func Keys[$0 interface{ ~map[$1]$2 }, $1 comparable, $2 interface{}]($0) iter.Seq[$1] #61900
  • func Values[$0 interface{ ~map[$1]$2 }, $1 comparable, $2 interface{}]($0) iter.Seq[$2] #61900

math/rand/v2

  • func Uint() uint #61716
  • method (*ChaCha8) Read([]uint8) (int, error) #67059
  • method (*Rand) Uint() uint #61716

net

  • method (*DNSError) Unwrap() error #63116
  • method (*TCPConn) SetKeepAliveConfig(KeepAliveConfig) error #62254
  • type DNSError struct, UnwrapErr error #63116
  • type Dialer struct, KeepAliveConfig KeepAliveConfig #62254
  • type KeepAliveConfig struct #62254
  • type KeepAliveConfig struct, Count int #62254
  • type KeepAliveConfig struct, Enable bool #62254
  • type KeepAliveConfig struct, Idle time.Duration #62254
  • type KeepAliveConfig struct, Interval time.Duration #62254
  • type ListenConfig struct, KeepAliveConfig KeepAliveConfig #62254

net/http

  • func ParseCookie(string) ([]*Cookie, error) #66008
  • func ParseSetCookie(string) (*Cookie, error) #66008
  • method (*Request) CookiesNamed(string) []*Cookie #61472
  • type Cookie struct, Partitioned bool #62490
  • type Cookie struct, Quoted bool #46443
  • type 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 #61308
  • method (Value) Seq() iter.Seq[Value] #66056
  • method (Value) Seq2() iter.Seq2[Value, Value] #66056
  • type Type interface, CanSeq() bool #66056
  • type Type interface, CanSeq2() bool #66056
  • type Type interface, OverflowComplex(complex128) bool #60427
  • type Type interface, OverflowFloat(float64) bool #60427
  • type Type interface, OverflowInt(int64) bool #60427
  • type Type interface, OverflowUint(uint64) bool #60427

runtime/debug

  • func SetCrashOutput(*os.File, CrashOptions) error #42888
  • type CrashOptions struct #67182

slices

  • func All[$0 interface{ ~[]$1 }, $1 interface{}]($0) iter.Seq2[int, $1] #61899
  • func AppendSeq[$0 interface{ ~[]$1 }, $1 interface{}]($0, iter.Seq[$1]) $0 #61899
  • func Backward[$0 interface{ ~[]$1 }, $1 interface{}]($0) iter.Seq2[int, $1] #61899
  • func Chunk[$0 interface{ ~[]$1 }, $1 interface{}]($0, int) iter.Seq[$0] #53987
  • func Collect[$0 interface{}](iter.Seq[$0]) []$0 #61899
  • func Repeat[$0 interface{ ~[]$1 }, $1 interface{}]($0, int) $0 #65238
  • func SortedFunc[$0 interface{}](iter.Seq[$0], func($0, $0) int) []$0 #61899
  • func SortedStableFunc[$0 interface{}](iter.Seq[$0], func($0, $0) int) []$0 #61899
  • func Sorted[$0 cmp.Ordered](iter.Seq[$0]) []$0 #61899
  • func 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 #61395
  • func AndInt64(*int64, int64) int64 #61395
  • func AndUint32(*uint32, uint32) uint32 #61395
  • func AndUint64(*uint64, uint64) uint64 #61395
  • func AndUintptr(*uintptr, uintptr) uintptr #61395
  • func OrInt32(*int32, int32) int32 #61395
  • func OrInt64(*int64, int64) int64 #61395
  • func OrUint32(*uint32, uint32) uint32 #61395
  • func OrUint64(*uint64, uint64) uint64 #61395
  • func OrUintptr(*uintptr, uintptr) uintptr #61395
  • method (*Int32) And(int32) int32 #61395
  • method (*Int32) Or(int32) int32 #61395
  • method (*Int64) And(int64) int64 #61395
  • method (*Int64) Or(int64) int64 #61395
  • method (*Uint32) And(uint32) uint32 #61395
  • method (*Uint32) Or(uint32) uint32 #61395
  • method (*Uint64) And(uint64) uint64 #61395
  • method (*Uint64) Or(uint64) uint64 #61395
  • method (*Uintptr) And(uintptr) uintptr #61395
  • method (*Uintptr) Or(uintptr) uintptr #61395

syscall (windows-386)

  • const WSAENOPROTOOPT = 10042 #62254
  • const WSAENOPROTOOPT Errno #62254

syscall (windows-amd64)

  • const WSAENOPROTOOPT = 10042 #62254
  • const WSAENOPROTOOPT Errno #62254

unicode/utf16

  • func RuneLen(int32) int #44940

unique

  • func Make[$0 comparable]($0) Handle[$0] #62483
  • method (Handle[$0]) Value() $0 #62483
  • type 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.