-
Notifications
You must be signed in to change notification settings - Fork 18k
api: audit for Go 1.24 #70701
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
I left a couple of small API follow-up questions:
|
I believe Ian are I are close to addressing #63952 (comment), and I'm planning to run that tweak by the proposal committee later today just to formalize it. That should block RC1, but I expect it to be resolved by later today. For #62384 (comment) I think we need a little more documentation, but no changes to the API, so that doesn't have to block RC1. @ianlancetaylor , are you happy with your API audit? If so, we can close this as soon as the debug/elf tweaks are done. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This can be closed once CL 635079 lands. |
Actually, we have one more small API question here: https://go-review.googlesource.com/c/go/+/635336/comment/238a2cab_e32e56f4/ |
I've reviewed all the changes here and they look OK to me. |
Done.
Resolved. (This still needs a documentation update, but not an API change.) |
This is a tracking issue for doing an audit of API additions for Go 1.24 as of CL 634055.
New API changes for Go 1.24
bytes
func FieldsFuncSeq([]uint8, func(int32) bool) iter.Seq[[]uint8]
bytes, strings: add iterator forms of existing functions #61901func FieldsSeq([]uint8) iter.Seq[[]uint8]
bytes, strings: add iterator forms of existing functions #61901func Lines([]uint8) iter.Seq[[]uint8]
bytes, strings: add iterator forms of existing functions #61901func SplitAfterSeq([]uint8, []uint8) iter.Seq[[]uint8]
bytes, strings: add iterator forms of existing functions #61901func SplitSeq([]uint8, []uint8) iter.Seq[[]uint8]
bytes, strings: add iterator forms of existing functions #61901crypto/cipher
func NewCFBDecrypter //deprecated
crypto/cipher: deprecate NewOFB, NewCFBDecrypter and NewCFBEncrypter #69445func NewCFBEncrypter //deprecated
crypto/cipher: deprecate NewOFB, NewCFBDecrypter and NewCFBEncrypter #69445func NewGCMWithRandomNonce(Block) (AEAD, error)
crypto/cipher: add NewGCMWithRandomNonce #69981func NewOFB //deprecated
crypto/cipher: deprecate NewOFB, NewCFBDecrypter and NewCFBEncrypter #69445crypto/fips140
func Enabled() bool
crypto: mechanism to enable FIPS mode #70123crypto/hkdf
func Expand[$0 hash.Hash](func() $0, []uint8, string, int) ([]uint8, error)
crypto/hkdf: add package #61477func Extract[$0 hash.Hash](func() $0, []uint8, []uint8) ([]uint8, error)
crypto/hkdf: add package #61477func Key[$0 hash.Hash](func() $0, []uint8, []uint8, string, int) ([]uint8, error)
crypto/hkdf: add package #61477crypto/mlkem
const CiphertextSize1024 = 1568
crypto/mlkem: new package #70122const CiphertextSize1024 ideal-int
crypto/mlkem: new package #70122const CiphertextSize768 = 1088
crypto/mlkem: new package #70122const CiphertextSize768 ideal-int
crypto/mlkem: new package #70122const EncapsulationKeySize1024 = 1568
crypto/mlkem: new package #70122const EncapsulationKeySize1024 ideal-int
crypto/mlkem: new package #70122const EncapsulationKeySize768 = 1184
crypto/mlkem: new package #70122const EncapsulationKeySize768 ideal-int
crypto/mlkem: new package #70122const SeedSize = 64
crypto/mlkem: new package #70122const SeedSize ideal-int
crypto/mlkem: new package #70122const SharedKeySize = 32
crypto/mlkem: new package #70122const SharedKeySize ideal-int
crypto/mlkem: new package #70122func GenerateKey1024() (*DecapsulationKey1024, error)
crypto/mlkem: new package #70122func GenerateKey768() (*DecapsulationKey768, error)
crypto/mlkem: new package #70122func NewDecapsulationKey1024([]uint8) (*DecapsulationKey1024, error)
crypto/mlkem: new package #70122func NewDecapsulationKey768([]uint8) (*DecapsulationKey768, error)
crypto/mlkem: new package #70122func NewEncapsulationKey1024([]uint8) (*EncapsulationKey1024, error)
crypto/mlkem: new package #70122func NewEncapsulationKey768([]uint8) (*EncapsulationKey768, error)
crypto/mlkem: new package #70122method (*DecapsulationKey1024) Bytes() []uint8
crypto/mlkem: new package #70122method (*DecapsulationKey1024) Decapsulate([]uint8) ([]uint8, error)
crypto/mlkem: new package #70122method (*DecapsulationKey1024) EncapsulationKey() *EncapsulationKey1024
crypto/mlkem: new package #70122method (*DecapsulationKey768) Bytes() []uint8
crypto/mlkem: new package #70122method (*DecapsulationKey768) Decapsulate([]uint8) ([]uint8, error)
crypto/mlkem: new package #70122method (*DecapsulationKey768) EncapsulationKey() *EncapsulationKey768
crypto/mlkem: new package #70122method (*EncapsulationKey1024) Bytes() []uint8
crypto/mlkem: new package #70122method (*EncapsulationKey1024) Encapsulate() ([]uint8, []uint8)
crypto/mlkem: new package #70122method (*EncapsulationKey768) Bytes() []uint8
crypto/mlkem: new package #70122method (*EncapsulationKey768) Encapsulate() ([]uint8, []uint8)
crypto/mlkem: new package #70122type DecapsulationKey1024 struct
crypto/mlkem: new package #70122type DecapsulationKey768 struct
crypto/mlkem: new package #70122type EncapsulationKey1024 struct
crypto/mlkem: new package #70122type EncapsulationKey768 struct
crypto/mlkem: new package #70122crypto/pbkdf2
func Key[$0 hash.Hash](func() $0, string, []uint8, int, int) ([]uint8, error)
crypto/pbkdf2: add package #69488crypto/rand
func Text() string
crypto/rand: add func Text #67057crypto/sha3
func New224() *SHA3
crypto/sha3: import from x/crypto #69982func New256() *SHA3
crypto/sha3: import from x/crypto #69982func New384() *SHA3
crypto/sha3: import from x/crypto #69982func New512() *SHA3
crypto/sha3: import from x/crypto #69982func NewCSHAKE128([]uint8, []uint8) *SHAKE
crypto/sha3: import from x/crypto #69982func NewCSHAKE256([]uint8, []uint8) *SHAKE
crypto/sha3: import from x/crypto #69982func NewSHAKE128() *SHAKE
crypto/sha3: import from x/crypto #69982func NewSHAKE256() *SHAKE
crypto/sha3: import from x/crypto #69982func Sum224([]uint8) [28]uint8
crypto/sha3: import from x/crypto #69982func Sum256([]uint8) [32]uint8
crypto/sha3: import from x/crypto #69982func Sum384([]uint8) [48]uint8
crypto/sha3: import from x/crypto #69982func Sum512([]uint8) [64]uint8
crypto/sha3: import from x/crypto #69982func SumSHAKE128([]uint8, int) []uint8
crypto/sha3: import from x/crypto #69982func SumSHAKE256([]uint8, int) []uint8
crypto/sha3: import from x/crypto #69982method (*SHA3) AppendBinary([]uint8) ([]uint8, error)
crypto/sha3: import from x/crypto #69982method (*SHA3) BlockSize() int
crypto/sha3: import from x/crypto #69982method (*SHA3) MarshalBinary() ([]uint8, error)
crypto/sha3: import from x/crypto #69982method (*SHA3) Reset()
crypto/sha3: import from x/crypto #69982method (*SHA3) Size() int
crypto/sha3: import from x/crypto #69982method (*SHA3) Sum([]uint8) []uint8
crypto/sha3: import from x/crypto #69982method (*SHA3) UnmarshalBinary([]uint8) error
crypto/sha3: import from x/crypto #69982method (*SHA3) Write([]uint8) (int, error)
crypto/sha3: import from x/crypto #69982method (*SHAKE) AppendBinary([]uint8) ([]uint8, error)
crypto/sha3: import from x/crypto #69982method (*SHAKE) BlockSize() int
crypto/sha3: import from x/crypto #69982method (*SHAKE) MarshalBinary() ([]uint8, error)
crypto/sha3: import from x/crypto #69982method (*SHAKE) Read([]uint8) (int, error)
crypto/sha3: import from x/crypto #69982method (*SHAKE) Reset()
crypto/sha3: import from x/crypto #69982method (*SHAKE) UnmarshalBinary([]uint8) error
crypto/sha3: import from x/crypto #69982method (*SHAKE) Write([]uint8) (int, error)
crypto/sha3: import from x/crypto #69982type SHA3 struct
crypto/sha3: import from x/crypto #69982type SHAKE struct
crypto/sha3: import from x/crypto #69982crypto/subtle
func WithDataIndependentTiming(func())
crypto/subtle: add WithDataIndependentTiming #66450crypto/tls
const X25519MLKEM768 = 4588
crypto/tls: add X25519MLKEM768 and use by default; remove x25519Kyber768Draft00 #69985const X25519MLKEM768 CurveID
crypto/tls: add X25519MLKEM768 and use by default; remove x25519Kyber768Draft00 #69985type ClientHelloInfo struct, Extensions []uint16
crypto/tls: add Extensions to ClientHelloInfo #32936type Config struct, EncryptedClientHelloKeys []EncryptedClientHelloKey
crypto/tls: support server side Encrypted Client Hello #68500type EncryptedClientHelloKey struct
crypto/tls: support server side Encrypted Client Hello #68500type EncryptedClientHelloKey struct, Config []uint8
crypto/tls: support server side Encrypted Client Hello #68500type EncryptedClientHelloKey struct, PrivateKey []uint8
crypto/tls: support server side Encrypted Client Hello #68500type EncryptedClientHelloKey struct, SendAsRetry bool
crypto/tls: support server side Encrypted Client Hello #68500crypto/x509
const NoValidChains = 10
crypto/x509: support Inhibit Any-policy and Policy Constraints #68484const NoValidChains InvalidReason
crypto/x509: support Inhibit Any-policy and Policy Constraints #68484method (OID) AppendBinary([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384method (OID) AppendText([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384type Certificate struct, InhibitAnyPolicy int
crypto/x509: support Inhibit Any-policy and Policy Constraints #68484type Certificate struct, InhibitAnyPolicyZero bool
crypto/x509: support Inhibit Any-policy and Policy Constraints #68484type Certificate struct, InhibitPolicyMapping int
crypto/x509: support Inhibit Any-policy and Policy Constraints #68484type Certificate struct, InhibitPolicyMappingZero bool
crypto/x509: support Inhibit Any-policy and Policy Constraints #68484type Certificate struct, PolicyMappings []PolicyMapping
crypto/x509: support Inhibit Any-policy and Policy Constraints #68484type Certificate struct, RequireExplicitPolicy int
crypto/x509: support Inhibit Any-policy and Policy Constraints #68484type Certificate struct, RequireExplicitPolicyZero bool
crypto/x509: support Inhibit Any-policy and Policy Constraints #68484type PolicyMapping struct
crypto/x509: support Inhibit Any-policy and Policy Constraints #68484type PolicyMapping struct, IssuerDomainPolicy OID
crypto/x509: support Inhibit Any-policy and Policy Constraints #68484type PolicyMapping struct, SubjectDomainPolicy OID
crypto/x509: support Inhibit Any-policy and Policy Constraints #68484type VerifyOptions struct, CertificatePolicies []OID
crypto/x509: support Inhibit Any-policy and Policy Constraints #68484debug/elf
const VER_FLG_BASE = 1
debug/elf: add SHT_GNU_VERDEF section parsing #63952const VER_FLG_BASE DynamicVersionFlag
debug/elf: add SHT_GNU_VERDEF section parsing #63952const VER_FLG_INFO = 4
debug/elf: add SHT_GNU_VERDEF section parsing #63952const VER_FLG_INFO DynamicVersionFlag
debug/elf: add SHT_GNU_VERDEF section parsing #63952const VER_FLG_WEAK = 2
debug/elf: add SHT_GNU_VERDEF section parsing #63952const VER_FLG_WEAK DynamicVersionFlag
debug/elf: add SHT_GNU_VERDEF section parsing #63952const VerFlagGlobal = 2
debug/elf: add SHT_GNU_VERDEF section parsing #63952const VerFlagGlobal SymbolVersionFlag
debug/elf: add SHT_GNU_VERDEF section parsing #63952const VerFlagHidden = 4
debug/elf: add SHT_GNU_VERDEF section parsing #63952const VerFlagHidden SymbolVersionFlag
debug/elf: add SHT_GNU_VERDEF section parsing #63952const VerFlagLocal = 1
debug/elf: add SHT_GNU_VERDEF section parsing #63952const VerFlagLocal SymbolVersionFlag
debug/elf: add SHT_GNU_VERDEF section parsing #63952const VerFlagNone = 0
debug/elf: add SHT_GNU_VERDEF section parsing #63952const VerFlagNone SymbolVersionFlag
debug/elf: add SHT_GNU_VERDEF section parsing #63952method (*File) DynamicVersionNeeds() ([]DynamicVersionNeed, error)
debug/elf: add SHT_GNU_VERDEF section parsing #63952method (*File) DynamicVersions() ([]DynamicVersion, error)
debug/elf: add SHT_GNU_VERDEF section parsing #63952type DynamicVersion struct
debug/elf: add SHT_GNU_VERDEF section parsing #63952type DynamicVersion struct, Deps []string
debug/elf: add SHT_GNU_VERDEF section parsing #63952type DynamicVersion struct, Flags DynamicVersionFlag
debug/elf: add SHT_GNU_VERDEF section parsing #63952type DynamicVersion struct, Index uint16
debug/elf: add SHT_GNU_VERDEF section parsing #63952type DynamicVersion struct, Version uint16
debug/elf: add SHT_GNU_VERDEF section parsing #63952type DynamicVersionDep struct
debug/elf: add SHT_GNU_VERDEF section parsing #63952type DynamicVersionDep struct, Dep string
debug/elf: add SHT_GNU_VERDEF section parsing #63952type DynamicVersionDep struct, Flags DynamicVersionFlag
debug/elf: add SHT_GNU_VERDEF section parsing #63952type DynamicVersionDep struct, Other uint16
debug/elf: add SHT_GNU_VERDEF section parsing #63952type DynamicVersionFlag uint16
debug/elf: add SHT_GNU_VERDEF section parsing #63952type DynamicVersionNeed struct
debug/elf: add SHT_GNU_VERDEF section parsing #63952type DynamicVersionNeed struct, Name string
debug/elf: add SHT_GNU_VERDEF section parsing #63952type DynamicVersionNeed struct, Needs []DynamicVersionDep
debug/elf: add SHT_GNU_VERDEF section parsing #63952type DynamicVersionNeed struct, Version uint16
debug/elf: add SHT_GNU_VERDEF section parsing #63952type Symbol struct, VersionFlags SymbolVersionFlag
debug/elf: add SHT_GNU_VERDEF section parsing #63952type Symbol struct, VersionIndex int16
debug/elf: add SHT_GNU_VERDEF section parsing #63952type SymbolVersionFlag uint8
debug/elf: add SHT_GNU_VERDEF section parsing #63952encoding
type BinaryAppender interface { AppendBinary }
encoding: add AppendText and AppendBinary #62384type BinaryAppender interface, AppendBinary([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384type TextAppender interface { AppendText }
encoding: add AppendText and AppendBinary #62384type TextAppender interface, AppendText([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384go/types
method (*Interface) EmbeddedTypes() iter.Seq[Type]
go/types: add iterator methods #66626method (*Interface) ExplicitMethods() iter.Seq[*Func]
go/types: add iterator methods #66626method (*Interface) Methods() iter.Seq[*Func]
go/types: add iterator methods #66626method (*MethodSet) Methods() iter.Seq[*Selection]
go/types: add iterator methods #66626method (*Named) Methods() iter.Seq[*Func]
go/types: add iterator methods #66626method (*Scope) Children() iter.Seq[*Scope]
go/types: add iterator methods #66626method (*Struct) Fields() iter.Seq[*Var]
go/types: add iterator methods #66626method (*Tuple) Variables() iter.Seq[*Var]
go/types: add iterator methods #66626method (*TypeList) Types() iter.Seq[Type]
go/types: add iterator methods #66626method (*TypeParamList) TypeParams() iter.Seq[*TypeParam]
go/types: add iterator methods #66626method (*Union) Terms() iter.Seq[*Term]
go/types: add iterator methods #66626hash/maphash
func Comparable[$0 comparable](Seed, $0) uint64
hash/maphash: add func Comparable #54670func WriteComparable[$0 comparable](*Hash, $0)
hash/maphash: add func Comparable #54670log/slog
method (*LevelVar) AppendText([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384method (Level) AppendText([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384var DiscardHandler Handler
log/slog: addslog.DiscardHandler
#62005math/big
method (*Float) AppendText([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384method (*Int) AppendText([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384method (*Rat) AppendText([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384math/rand/v2
method (*ChaCha8) AppendBinary([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384method (*PCG) AppendBinary([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384net
method (IP) AppendText([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384net/http
method (*Protocols) SetHTTP1(bool)
net/http: HTTP version selection API #67814method (*Protocols) SetHTTP2(bool)
net/http: HTTP version selection API #67814method (*Protocols) SetUnencryptedHTTP2(bool)
net/http: support unencrypted HTTP/2 (h2c) #67816method (Protocols) HTTP1() bool
net/http: HTTP version selection API #67814method (Protocols) HTTP2() bool
net/http: HTTP version selection API #67814method (Protocols) String() string
net/http: HTTP version selection API #67814method (Protocols) UnencryptedHTTP2() bool
net/http: support unencrypted HTTP/2 (h2c) #67816type HTTP2Config struct
net/http: HTTP/2 configuration API #67813type HTTP2Config struct, CountError func(string)
net/http: HTTP/2 configuration API #67813type HTTP2Config struct, MaxConcurrentStreams int
net/http: HTTP/2 configuration API #67813type HTTP2Config struct, MaxDecoderHeaderTableSize int
net/http: HTTP/2 configuration API #67813type HTTP2Config struct, MaxEncoderHeaderTableSize int
net/http: HTTP/2 configuration API #67813type HTTP2Config struct, MaxReadFrameSize int
net/http: HTTP/2 configuration API #67813type HTTP2Config struct, MaxReceiveBufferPerConnection int
net/http: HTTP/2 configuration API #67813type HTTP2Config struct, MaxReceiveBufferPerStream int
net/http: HTTP/2 configuration API #67813type HTTP2Config struct, PermitProhibitedCipherSuites bool
net/http: HTTP/2 configuration API #67813type HTTP2Config struct, PingTimeout time.Duration
net/http: HTTP/2 configuration API #67813type HTTP2Config struct, SendPingTimeout time.Duration
net/http: HTTP/2 configuration API #67813type HTTP2Config struct, WriteByteTimeout time.Duration
net/http: HTTP/2 configuration API #67813type Protocols struct
net/http: HTTP version selection API #67814type Server struct, HTTP2 *HTTP2Config
net/http: HTTP/2 configuration API #67813type Server struct, Protocols *Protocols
net/http: HTTP version selection API #67814type Transport struct, HTTP2 *HTTP2Config
net/http: HTTP/2 configuration API #67813type Transport struct, Protocols *Protocols
net/http: HTTP version selection API #67814net/netip
method (Addr) AppendBinary([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384method (Addr) AppendText([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384method (AddrPort) AppendBinary([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384method (AddrPort) AppendText([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384method (Prefix) AppendBinary([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384method (Prefix) AppendText([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384net/url
method (*URL) AppendBinary([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384os
func OpenInRoot(string, string) (*File, error)
os: safer file open functions #67002func OpenRoot(string) (*Root, error)
os: safer file open functions #67002method (*Root) Close() error
os: safer file open functions #67002method (*Root) Create(string) (*File, error)
os: safer file open functions #67002method (*Root) FS() fs.FS
os: safer file open functions #67002method (*Root) Lstat(string) (fs.FileInfo, error)
os: safer file open functions #67002method (*Root) Mkdir(string, fs.FileMode) error
os: safer file open functions #67002method (*Root) Name() string
os: safer file open functions #67002method (*Root) Open(string) (*File, error)
os: safer file open functions #67002method (*Root) OpenFile(string, int, fs.FileMode) (*File, error)
os: safer file open functions #67002method (*Root) OpenRoot(string) (*Root, error)
os: safer file open functions #67002method (*Root) Remove(string) error
os: safer file open functions #67002method (*Root) Stat(string) (fs.FileInfo, error)
os: safer file open functions #67002type Root struct
os: safer file open functions #67002regexp
method (*Regexp) AppendText([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384runtime
func AddCleanup[$0 interface{}, $1 interface{}](*$0, func($1), $1) Cleanup
runtime: add AddCleanup #67535func GOROOT //deprecated
runtime: deprecate func GOROOT #51473method (Cleanup) Stop()
runtime: add AddCleanup #67535type Cleanup struct
runtime: add AddCleanup #67535strings
func FieldsFuncSeq(string, func(int32) bool) iter.Seq[string]
bytes, strings: add iterator forms of existing functions #61901func FieldsSeq(string) iter.Seq[string]
bytes, strings: add iterator forms of existing functions #61901func Lines(string) iter.Seq[string]
bytes, strings: add iterator forms of existing functions #61901func SplitAfterSeq(string, string) iter.Seq[string]
bytes, strings: add iterator forms of existing functions #61901func SplitSeq(string, string) iter.Seq[string]
bytes, strings: add iterator forms of existing functions #61901testing
method (*B) Chdir(string)
testing: add TB.Chdir #62516method (*B) Context() context.Context
testing: reconsider adding Context method to testing.T #36532method (*B) Loop() bool
testing: add testing.B.Loop for iteration #61515method (*F) Chdir(string)
testing: add TB.Chdir #62516method (*F) Context() context.Context
testing: reconsider adding Context method to testing.T #36532method (*T) Chdir(string)
testing: add TB.Chdir #62516method (*T) Context() context.Context
testing: reconsider adding Context method to testing.T #36532type TB interface, Chdir(string)
testing: add TB.Chdir #62516type TB interface, Context() context.Context
testing: reconsider adding Context method to testing.T #36532time
method (Time) AppendBinary([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384method (Time) AppendText([]uint8) ([]uint8, error)
encoding: add AppendText and AppendBinary #62384weak
func Make[$0 interface{}](*$0) Pointer[$0]
weak: new package providing weak pointers #67552method (Pointer[$0]) Value() *$0
weak: new package providing weak pointers #67552type Pointer[$0 interface{}] struct
weak: new package providing weak pointers #67552CC @aclements, @ianlancetaylor, @golang/release.
The text was updated successfully, but these errors were encountered: