mirror of
https://github.com/golang/go.git
synced 2026-02-03 01:15:04 +03:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7dff7439dc | ||
|
|
62c3a6350b | ||
|
|
eba9e08766 | ||
|
|
f3bdcda88a | ||
|
|
362f22d2d2 |
@@ -1,7 +1,7 @@
|
||||
name: Language Change Proposals
|
||||
description: Changes to the language
|
||||
labels: ["Proposal", "LanguageChange", "LanguageChangeReview"]
|
||||
title: "proposal: spec: proposal title"
|
||||
labels: ["Proposal", "v2", "LanguageChange"]
|
||||
title: "proposal: Go 2: proposal title"
|
||||
|
||||
|
||||
body:
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -30,7 +30,6 @@ _testmain.go
|
||||
/misc/cgo/testso/main
|
||||
/pkg/
|
||||
/src/*.*/
|
||||
/src/_artifacts/
|
||||
/src/cmd/cgo/zdefaultcc.go
|
||||
/src/cmd/dist/dist
|
||||
/src/cmd/go/internal/cfg/zdefaultcc.go
|
||||
@@ -38,7 +37,7 @@ _testmain.go
|
||||
/src/go/build/zcgo.go
|
||||
/src/go/doc/headscan
|
||||
/src/internal/buildcfg/zbootstrap.go
|
||||
/src/internal/runtime/sys/zversion.go
|
||||
/src/runtime/internal/sys/zversion.go
|
||||
/src/unicode/maketables
|
||||
/src/time/tzdata/zzipdata.go
|
||||
/test.out
|
||||
|
||||
4
LICENSE
4
LICENSE
@@ -1,4 +1,4 @@
|
||||
Copyright 2009 The Go Authors.
|
||||
Copyright (c) 2009 The Go Authors. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
@@ -10,7 +10,7 @@ notice, this list of conditions and the following disclaimer.
|
||||
copyright notice, this list of conditions and the following disclaimer
|
||||
in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of Google LLC nor the names of its
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ Go is an open source programming language that makes it easy to build simple,
|
||||
reliable, and efficient software.
|
||||
|
||||

|
||||
*Gopher image by [Renee French][rf], licensed under [Creative Commons 4.0 Attribution license][cc4-by].*
|
||||
*Gopher image by [Renee French][rf], licensed under [Creative Commons 4.0 Attributions license][cc4-by].*
|
||||
|
||||
Our canonical Git repository is located at https://go.googlesource.com/go.
|
||||
There is a mirror of the repository at https://github.com/golang/go.
|
||||
|
||||
@@ -18,7 +18,7 @@ pkg crypto/tls, type Config struct, EncryptedClientHelloRejectionVerify func(Con
|
||||
pkg crypto/tls, type ConnectionState struct, ECHAccepted bool #63369
|
||||
pkg crypto/tls, type ECHRejectionError struct #63369
|
||||
pkg crypto/tls, type ECHRejectionError struct, RetryConfigList []uint8 #63369
|
||||
pkg crypto/tls, type QUICConfig struct, EnableSessionEvents bool #63691
|
||||
pkg crypto/tls, type QUICConfig struct, EnableStoreSessionEvent bool #63691
|
||||
pkg crypto/tls, type QUICEvent struct, SessionState *SessionState #63691
|
||||
pkg crypto/tls, type QUICSessionTicketOptions struct, Extra [][]uint8 #63691
|
||||
pkg crypto/x509, func ParseOID(string) (OID, error) #66249
|
||||
|
||||
223
api/go1.24.txt
223
api/go1.24.txt
@@ -1,223 +0,0 @@
|
||||
pkg bytes, func FieldsFuncSeq([]uint8, func(int32) bool) iter.Seq[[]uint8] #61901
|
||||
pkg bytes, func FieldsSeq([]uint8) iter.Seq[[]uint8] #61901
|
||||
pkg bytes, func Lines([]uint8) iter.Seq[[]uint8] #61901
|
||||
pkg bytes, func SplitAfterSeq([]uint8, []uint8) iter.Seq[[]uint8] #61901
|
||||
pkg bytes, func SplitSeq([]uint8, []uint8) iter.Seq[[]uint8] #61901
|
||||
pkg crypto/cipher, func NewCFBDecrypter //deprecated #69445
|
||||
pkg crypto/cipher, func NewCFBEncrypter //deprecated #69445
|
||||
pkg crypto/cipher, func NewGCMWithRandomNonce(Block) (AEAD, error) #69981
|
||||
pkg crypto/cipher, func NewOFB //deprecated #69445
|
||||
pkg crypto/fips140, func Enabled() bool #70123
|
||||
pkg crypto/hkdf, func Expand[$0 hash.Hash](func() $0, []uint8, string, int) ([]uint8, error) #61477
|
||||
pkg crypto/hkdf, func Extract[$0 hash.Hash](func() $0, []uint8, []uint8) ([]uint8, error) #61477
|
||||
pkg crypto/hkdf, func Key[$0 hash.Hash](func() $0, []uint8, []uint8, string, int) ([]uint8, error) #61477
|
||||
pkg crypto/mlkem, const CiphertextSize1024 = 1568 #70122
|
||||
pkg crypto/mlkem, const CiphertextSize1024 ideal-int #70122
|
||||
pkg crypto/mlkem, const CiphertextSize768 = 1088 #70122
|
||||
pkg crypto/mlkem, const CiphertextSize768 ideal-int #70122
|
||||
pkg crypto/mlkem, const EncapsulationKeySize1024 = 1568 #70122
|
||||
pkg crypto/mlkem, const EncapsulationKeySize1024 ideal-int #70122
|
||||
pkg crypto/mlkem, const EncapsulationKeySize768 = 1184 #70122
|
||||
pkg crypto/mlkem, const EncapsulationKeySize768 ideal-int #70122
|
||||
pkg crypto/mlkem, const SeedSize = 64 #70122
|
||||
pkg crypto/mlkem, const SeedSize ideal-int #70122
|
||||
pkg crypto/mlkem, const SharedKeySize = 32 #70122
|
||||
pkg crypto/mlkem, const SharedKeySize ideal-int #70122
|
||||
pkg crypto/mlkem, func GenerateKey1024() (*DecapsulationKey1024, error) #70122
|
||||
pkg crypto/mlkem, func GenerateKey768() (*DecapsulationKey768, error) #70122
|
||||
pkg crypto/mlkem, func NewDecapsulationKey1024([]uint8) (*DecapsulationKey1024, error) #70122
|
||||
pkg crypto/mlkem, func NewDecapsulationKey768([]uint8) (*DecapsulationKey768, error) #70122
|
||||
pkg crypto/mlkem, func NewEncapsulationKey1024([]uint8) (*EncapsulationKey1024, error) #70122
|
||||
pkg crypto/mlkem, func NewEncapsulationKey768([]uint8) (*EncapsulationKey768, error) #70122
|
||||
pkg crypto/mlkem, method (*DecapsulationKey1024) Bytes() []uint8 #70122
|
||||
pkg crypto/mlkem, method (*DecapsulationKey1024) Decapsulate([]uint8) ([]uint8, error) #70122
|
||||
pkg crypto/mlkem, method (*DecapsulationKey1024) EncapsulationKey() *EncapsulationKey1024 #70122
|
||||
pkg crypto/mlkem, method (*DecapsulationKey768) Bytes() []uint8 #70122
|
||||
pkg crypto/mlkem, method (*DecapsulationKey768) Decapsulate([]uint8) ([]uint8, error) #70122
|
||||
pkg crypto/mlkem, method (*DecapsulationKey768) EncapsulationKey() *EncapsulationKey768 #70122
|
||||
pkg crypto/mlkem, method (*EncapsulationKey1024) Bytes() []uint8 #70122
|
||||
pkg crypto/mlkem, method (*EncapsulationKey1024) Encapsulate() ([]uint8, []uint8) #70122
|
||||
pkg crypto/mlkem, method (*EncapsulationKey768) Bytes() []uint8 #70122
|
||||
pkg crypto/mlkem, method (*EncapsulationKey768) Encapsulate() ([]uint8, []uint8) #70122
|
||||
pkg crypto/mlkem, type DecapsulationKey1024 struct #70122
|
||||
pkg crypto/mlkem, type DecapsulationKey768 struct #70122
|
||||
pkg crypto/mlkem, type EncapsulationKey1024 struct #70122
|
||||
pkg crypto/mlkem, type EncapsulationKey768 struct #70122
|
||||
pkg crypto/pbkdf2, func Key[$0 hash.Hash](func() $0, string, []uint8, int, int) ([]uint8, error) #69488
|
||||
pkg crypto/rand, func Text() string #67057
|
||||
pkg crypto/sha3, func New224() *SHA3 #69982
|
||||
pkg crypto/sha3, func New256() *SHA3 #69982
|
||||
pkg crypto/sha3, func New384() *SHA3 #69982
|
||||
pkg crypto/sha3, func New512() *SHA3 #69982
|
||||
pkg crypto/sha3, func NewCSHAKE128([]uint8, []uint8) *SHAKE #69982
|
||||
pkg crypto/sha3, func NewCSHAKE256([]uint8, []uint8) *SHAKE #69982
|
||||
pkg crypto/sha3, func NewSHAKE128() *SHAKE #69982
|
||||
pkg crypto/sha3, func NewSHAKE256() *SHAKE #69982
|
||||
pkg crypto/sha3, func Sum224([]uint8) [28]uint8 #69982
|
||||
pkg crypto/sha3, func Sum256([]uint8) [32]uint8 #69982
|
||||
pkg crypto/sha3, func Sum384([]uint8) [48]uint8 #69982
|
||||
pkg crypto/sha3, func Sum512([]uint8) [64]uint8 #69982
|
||||
pkg crypto/sha3, func SumSHAKE128([]uint8, int) []uint8 #69982
|
||||
pkg crypto/sha3, func SumSHAKE256([]uint8, int) []uint8 #69982
|
||||
pkg crypto/sha3, method (*SHA3) AppendBinary([]uint8) ([]uint8, error) #69982
|
||||
pkg crypto/sha3, method (*SHA3) BlockSize() int #69982
|
||||
pkg crypto/sha3, method (*SHA3) MarshalBinary() ([]uint8, error) #69982
|
||||
pkg crypto/sha3, method (*SHA3) Reset() #69982
|
||||
pkg crypto/sha3, method (*SHA3) Size() int #69982
|
||||
pkg crypto/sha3, method (*SHA3) Sum([]uint8) []uint8 #69982
|
||||
pkg crypto/sha3, method (*SHA3) UnmarshalBinary([]uint8) error #69982
|
||||
pkg crypto/sha3, method (*SHA3) Write([]uint8) (int, error) #69982
|
||||
pkg crypto/sha3, method (*SHAKE) AppendBinary([]uint8) ([]uint8, error) #69982
|
||||
pkg crypto/sha3, method (*SHAKE) BlockSize() int #69982
|
||||
pkg crypto/sha3, method (*SHAKE) MarshalBinary() ([]uint8, error) #69982
|
||||
pkg crypto/sha3, method (*SHAKE) Read([]uint8) (int, error) #69982
|
||||
pkg crypto/sha3, method (*SHAKE) Reset() #69982
|
||||
pkg crypto/sha3, method (*SHAKE) UnmarshalBinary([]uint8) error #69982
|
||||
pkg crypto/sha3, method (*SHAKE) Write([]uint8) (int, error) #69982
|
||||
pkg crypto/sha3, type SHA3 struct #69982
|
||||
pkg crypto/sha3, type SHAKE struct #69982
|
||||
pkg crypto/subtle, func WithDataIndependentTiming(func()) #66450
|
||||
pkg crypto/tls, const X25519MLKEM768 = 4588 #69985
|
||||
pkg crypto/tls, const X25519MLKEM768 CurveID #69985
|
||||
pkg crypto/tls, type ClientHelloInfo struct, Extensions []uint16 #32936
|
||||
pkg crypto/tls, type Config struct, EncryptedClientHelloKeys []EncryptedClientHelloKey #68500
|
||||
pkg crypto/tls, type EncryptedClientHelloKey struct #68500
|
||||
pkg crypto/tls, type EncryptedClientHelloKey struct, Config []uint8 #68500
|
||||
pkg crypto/tls, type EncryptedClientHelloKey struct, PrivateKey []uint8 #68500
|
||||
pkg crypto/tls, type EncryptedClientHelloKey struct, SendAsRetry bool #68500
|
||||
pkg crypto/x509, const NoValidChains = 10 #68484
|
||||
pkg crypto/x509, const NoValidChains InvalidReason #68484
|
||||
pkg crypto/x509, method (OID) AppendBinary([]uint8) ([]uint8, error) #62384
|
||||
pkg crypto/x509, method (OID) AppendText([]uint8) ([]uint8, error) #62384
|
||||
pkg crypto/x509, type Certificate struct, InhibitAnyPolicy int #68484
|
||||
pkg crypto/x509, type Certificate struct, InhibitAnyPolicyZero bool #68484
|
||||
pkg crypto/x509, type Certificate struct, InhibitPolicyMapping int #68484
|
||||
pkg crypto/x509, type Certificate struct, InhibitPolicyMappingZero bool #68484
|
||||
pkg crypto/x509, type Certificate struct, PolicyMappings []PolicyMapping #68484
|
||||
pkg crypto/x509, type Certificate struct, RequireExplicitPolicy int #68484
|
||||
pkg crypto/x509, type Certificate struct, RequireExplicitPolicyZero bool #68484
|
||||
pkg crypto/x509, type PolicyMapping struct #68484
|
||||
pkg crypto/x509, type PolicyMapping struct, IssuerDomainPolicy OID #68484
|
||||
pkg crypto/x509, type PolicyMapping struct, SubjectDomainPolicy OID #68484
|
||||
pkg crypto/x509, type VerifyOptions struct, CertificatePolicies []OID #68484
|
||||
pkg debug/elf, const VER_FLG_BASE = 1 #63952
|
||||
pkg debug/elf, const VER_FLG_BASE DynamicVersionFlag #63952
|
||||
pkg debug/elf, const VER_FLG_INFO = 4 #63952
|
||||
pkg debug/elf, const VER_FLG_INFO DynamicVersionFlag #63952
|
||||
pkg debug/elf, const VER_FLG_WEAK = 2 #63952
|
||||
pkg debug/elf, const VER_FLG_WEAK DynamicVersionFlag #63952
|
||||
pkg debug/elf, method (*File) DynamicVersionNeeds() ([]DynamicVersionNeed, error) #63952
|
||||
pkg debug/elf, method (*File) DynamicVersions() ([]DynamicVersion, error) #63952
|
||||
pkg debug/elf, type DynamicVersion struct #63952
|
||||
pkg debug/elf, type DynamicVersion struct, Deps []string #63952
|
||||
pkg debug/elf, type DynamicVersion struct, Flags DynamicVersionFlag #63952
|
||||
pkg debug/elf, type DynamicVersion struct, Name string #63952
|
||||
pkg debug/elf, type DynamicVersion struct, Index uint16 #63952
|
||||
pkg debug/elf, type DynamicVersionDep struct #63952
|
||||
pkg debug/elf, type DynamicVersionDep struct, Dep string #63952
|
||||
pkg debug/elf, type DynamicVersionDep struct, Flags DynamicVersionFlag #63952
|
||||
pkg debug/elf, type DynamicVersionDep struct, Index uint16 #63952
|
||||
pkg debug/elf, type DynamicVersionFlag uint16 #63952
|
||||
pkg debug/elf, type DynamicVersionNeed struct #63952
|
||||
pkg debug/elf, type DynamicVersionNeed struct, Name string #63952
|
||||
pkg debug/elf, type DynamicVersionNeed struct, Needs []DynamicVersionDep #63952
|
||||
pkg debug/elf, type Symbol struct, HasVersion bool #63952
|
||||
pkg debug/elf, type Symbol struct, VersionIndex VersionIndex #63952
|
||||
pkg debug/elf, method (VersionIndex) Index() uint16 #63952
|
||||
pkg debug/elf, method (VersionIndex) IsHidden() bool #63952
|
||||
pkg debug/elf, type VersionIndex uint16 #63952
|
||||
pkg encoding, type BinaryAppender interface { AppendBinary } #62384
|
||||
pkg encoding, type BinaryAppender interface, AppendBinary([]uint8) ([]uint8, error) #62384
|
||||
pkg encoding, type TextAppender interface { AppendText } #62384
|
||||
pkg encoding, type TextAppender interface, AppendText([]uint8) ([]uint8, error) #62384
|
||||
pkg go/types, method (*Interface) EmbeddedTypes() iter.Seq[Type] #66626
|
||||
pkg go/types, method (*Interface) ExplicitMethods() iter.Seq[*Func] #66626
|
||||
pkg go/types, method (*Interface) Methods() iter.Seq[*Func] #66626
|
||||
pkg go/types, method (*MethodSet) Methods() iter.Seq[*Selection] #66626
|
||||
pkg go/types, method (*Named) Methods() iter.Seq[*Func] #66626
|
||||
pkg go/types, method (*Scope) Children() iter.Seq[*Scope] #66626
|
||||
pkg go/types, method (*Struct) Fields() iter.Seq[*Var] #66626
|
||||
pkg go/types, method (*Tuple) Variables() iter.Seq[*Var] #66626
|
||||
pkg go/types, method (*TypeList) Types() iter.Seq[Type] #66626
|
||||
pkg go/types, method (*TypeParamList) TypeParams() iter.Seq[*TypeParam] #66626
|
||||
pkg go/types, method (*Union) Terms() iter.Seq[*Term] #66626
|
||||
pkg hash/maphash, func Comparable[$0 comparable](Seed, $0) uint64 #54670
|
||||
pkg hash/maphash, func WriteComparable[$0 comparable](*Hash, $0) #54670
|
||||
pkg log/slog, method (*LevelVar) AppendText([]uint8) ([]uint8, error) #62384
|
||||
pkg log/slog, method (Level) AppendText([]uint8) ([]uint8, error) #62384
|
||||
pkg log/slog, var DiscardHandler Handler #62005
|
||||
pkg math/big, method (*Float) AppendText([]uint8) ([]uint8, error) #62384
|
||||
pkg math/big, method (*Int) AppendText([]uint8) ([]uint8, error) #62384
|
||||
pkg math/big, method (*Rat) AppendText([]uint8) ([]uint8, error) #62384
|
||||
pkg math/rand/v2, method (*ChaCha8) AppendBinary([]uint8) ([]uint8, error) #62384
|
||||
pkg math/rand/v2, method (*PCG) AppendBinary([]uint8) ([]uint8, error) #62384
|
||||
pkg net, method (IP) AppendText([]uint8) ([]uint8, error) #62384
|
||||
pkg net/http, method (*Protocols) SetHTTP1(bool) #67814
|
||||
pkg net/http, method (*Protocols) SetHTTP2(bool) #67814
|
||||
pkg net/http, method (*Protocols) SetUnencryptedHTTP2(bool) #67816
|
||||
pkg net/http, method (Protocols) HTTP1() bool #67814
|
||||
pkg net/http, method (Protocols) HTTP2() bool #67814
|
||||
pkg net/http, method (Protocols) String() string #67814
|
||||
pkg net/http, method (Protocols) UnencryptedHTTP2() bool #67816
|
||||
pkg net/http, type HTTP2Config struct #67813
|
||||
pkg net/http, type HTTP2Config struct, CountError func(string) #67813
|
||||
pkg net/http, type HTTP2Config struct, MaxConcurrentStreams int #67813
|
||||
pkg net/http, type HTTP2Config struct, MaxDecoderHeaderTableSize int #67813
|
||||
pkg net/http, type HTTP2Config struct, MaxEncoderHeaderTableSize int #67813
|
||||
pkg net/http, type HTTP2Config struct, MaxReadFrameSize int #67813
|
||||
pkg net/http, type HTTP2Config struct, MaxReceiveBufferPerConnection int #67813
|
||||
pkg net/http, type HTTP2Config struct, MaxReceiveBufferPerStream int #67813
|
||||
pkg net/http, type HTTP2Config struct, PermitProhibitedCipherSuites bool #67813
|
||||
pkg net/http, type HTTP2Config struct, PingTimeout time.Duration #67813
|
||||
pkg net/http, type HTTP2Config struct, SendPingTimeout time.Duration #67813
|
||||
pkg net/http, type HTTP2Config struct, WriteByteTimeout time.Duration #67813
|
||||
pkg net/http, type Protocols struct #67814
|
||||
pkg net/http, type Server struct, HTTP2 *HTTP2Config #67813
|
||||
pkg net/http, type Server struct, Protocols *Protocols #67814
|
||||
pkg net/http, type Transport struct, HTTP2 *HTTP2Config #67813
|
||||
pkg net/http, type Transport struct, Protocols *Protocols #67814
|
||||
pkg net/netip, method (Addr) AppendBinary([]uint8) ([]uint8, error) #62384
|
||||
pkg net/netip, method (Addr) AppendText([]uint8) ([]uint8, error) #62384
|
||||
pkg net/netip, method (AddrPort) AppendBinary([]uint8) ([]uint8, error) #62384
|
||||
pkg net/netip, method (AddrPort) AppendText([]uint8) ([]uint8, error) #62384
|
||||
pkg net/netip, method (Prefix) AppendBinary([]uint8) ([]uint8, error) #62384
|
||||
pkg net/netip, method (Prefix) AppendText([]uint8) ([]uint8, error) #62384
|
||||
pkg net/url, method (*URL) AppendBinary([]uint8) ([]uint8, error) #62384
|
||||
pkg os, func OpenInRoot(string, string) (*File, error) #67002
|
||||
pkg os, func OpenRoot(string) (*Root, error) #67002
|
||||
pkg os, method (*Root) Close() error #67002
|
||||
pkg os, method (*Root) Create(string) (*File, error) #67002
|
||||
pkg os, method (*Root) FS() fs.FS #67002
|
||||
pkg os, method (*Root) Lstat(string) (fs.FileInfo, error) #67002
|
||||
pkg os, method (*Root) Mkdir(string, fs.FileMode) error #67002
|
||||
pkg os, method (*Root) Name() string #67002
|
||||
pkg os, method (*Root) Open(string) (*File, error) #67002
|
||||
pkg os, method (*Root) OpenFile(string, int, fs.FileMode) (*File, error) #67002
|
||||
pkg os, method (*Root) OpenRoot(string) (*Root, error) #67002
|
||||
pkg os, method (*Root) Remove(string) error #67002
|
||||
pkg os, method (*Root) Stat(string) (fs.FileInfo, error) #67002
|
||||
pkg os, type Root struct #67002
|
||||
pkg regexp, method (*Regexp) AppendText([]uint8) ([]uint8, error) #62384
|
||||
pkg runtime, func AddCleanup[$0 interface{}, $1 interface{}](*$0, func($1), $1) Cleanup #67535
|
||||
pkg runtime, func GOROOT //deprecated #51473
|
||||
pkg runtime, method (Cleanup) Stop() #67535
|
||||
pkg runtime, type Cleanup struct #67535
|
||||
pkg strings, func FieldsFuncSeq(string, func(int32) bool) iter.Seq[string] #61901
|
||||
pkg strings, func FieldsSeq(string) iter.Seq[string] #61901
|
||||
pkg strings, func Lines(string) iter.Seq[string] #61901
|
||||
pkg strings, func SplitAfterSeq(string, string) iter.Seq[string] #61901
|
||||
pkg strings, func SplitSeq(string, string) iter.Seq[string] #61901
|
||||
pkg testing, method (*B) Chdir(string) #62516
|
||||
pkg testing, method (*B) Context() context.Context #36532
|
||||
pkg testing, method (*B) Loop() bool #61515
|
||||
pkg testing, method (*F) Chdir(string) #62516
|
||||
pkg testing, method (*F) Context() context.Context #36532
|
||||
pkg testing, method (*T) Chdir(string) #62516
|
||||
pkg testing, method (*T) Context() context.Context #36532
|
||||
pkg testing, type TB interface, Chdir(string) #62516
|
||||
pkg testing, type TB interface, Context() context.Context #36532
|
||||
pkg time, method (Time) AppendBinary([]uint8) ([]uint8, error) #62384
|
||||
pkg time, method (Time) AppendText([]uint8) ([]uint8, error) #62384
|
||||
pkg weak, func Make[$0 interface{}](*$0) Pointer[$0] #67552
|
||||
pkg weak, method (Pointer[$0]) Value() *$0 #67552
|
||||
pkg weak, type Pointer[$0 interface{}] struct #67552
|
||||
111
api/go1.25.txt
111
api/go1.25.txt
@@ -1,111 +0,0 @@
|
||||
pkg crypto, func SignMessage(Signer, io.Reader, []uint8, SignerOpts) ([]uint8, error) #63405
|
||||
pkg crypto, type MessageSigner interface { Public, Sign, SignMessage } #63405
|
||||
pkg crypto, type MessageSigner interface, Public() PublicKey #63405
|
||||
pkg crypto, type MessageSigner interface, Sign(io.Reader, []uint8, SignerOpts) ([]uint8, error) #63405
|
||||
pkg crypto, type MessageSigner interface, SignMessage(io.Reader, []uint8, SignerOpts) ([]uint8, error) #63405
|
||||
pkg crypto/ecdsa, func ParseRawPrivateKey(elliptic.Curve, []uint8) (*PrivateKey, error) #63963
|
||||
pkg crypto/ecdsa, func ParseUncompressedPublicKey(elliptic.Curve, []uint8) (*PublicKey, error) #63963
|
||||
pkg crypto/ecdsa, method (*PrivateKey) Bytes() ([]uint8, error) #63963
|
||||
pkg crypto/ecdsa, method (*PublicKey) Bytes() ([]uint8, error) #63963
|
||||
pkg crypto/sha3, method (*SHA3) Clone() (hash.Cloner, error) #69521
|
||||
pkg crypto/tls, type Config struct, GetEncryptedClientHelloKeys func(*ClientHelloInfo) ([]EncryptedClientHelloKey, error) #71920
|
||||
pkg crypto/tls, type ConnectionState struct, CurveID CurveID #67516
|
||||
pkg debug/elf, const PT_RISCV_ATTRIBUTES = 1879048195 #72843
|
||||
pkg debug/elf, const PT_RISCV_ATTRIBUTES ProgType #72843
|
||||
pkg debug/elf, const SHT_RISCV_ATTRIBUTES = 1879048195 #72843
|
||||
pkg debug/elf, const SHT_RISCV_ATTRIBUTES SectionType #72843
|
||||
pkg go/ast, const FilterFuncDuplicates //deprecated #73088
|
||||
pkg go/ast, const FilterImportDuplicates //deprecated #73088
|
||||
pkg go/ast, const FilterUnassociatedComments //deprecated #73088
|
||||
pkg go/ast, func FilterPackage //deprecated #73088
|
||||
pkg go/ast, func MergePackageFiles //deprecated #73088
|
||||
pkg go/ast, func PackageExports //deprecated #73088
|
||||
pkg go/ast, func PreorderStack(Node, []Node, func(Node, []Node) bool) #73319
|
||||
pkg go/ast, type MergeMode //deprecated #73088
|
||||
pkg go/parser, func ParseDir //deprecated #71122
|
||||
pkg go/token, method (*FileSet) AddExistingFiles(...*File) #73205
|
||||
pkg go/types, const FieldVar = 6 #70250
|
||||
pkg go/types, const FieldVar VarKind #70250
|
||||
pkg go/types, const LocalVar = 2 #70250
|
||||
pkg go/types, const LocalVar VarKind #70250
|
||||
pkg go/types, const PackageVar = 1 #70250
|
||||
pkg go/types, const PackageVar VarKind #70250
|
||||
pkg go/types, const ParamVar = 4 #70250
|
||||
pkg go/types, const ParamVar VarKind #70250
|
||||
pkg go/types, const RecvVar = 3 #70250
|
||||
pkg go/types, const RecvVar VarKind #70250
|
||||
pkg go/types, const ResultVar = 5 #70250
|
||||
pkg go/types, const ResultVar VarKind #70250
|
||||
pkg go/types, func LookupSelection(Type, bool, *Package, string) (Selection, bool) #70737
|
||||
pkg go/types, method (*Var) Kind() VarKind #70250
|
||||
pkg go/types, method (*Var) SetKind(VarKind) #70250
|
||||
pkg go/types, method (VarKind) String() string #70250
|
||||
pkg go/types, type VarKind uint8 #70250
|
||||
pkg hash, type Cloner interface { BlockSize, Clone, Reset, Size, Sum, Write } #69521
|
||||
pkg hash, type Cloner interface, BlockSize() int #69521
|
||||
pkg hash, type Cloner interface, Clone() (Cloner, error) #69521
|
||||
pkg hash, type Cloner interface, Reset() #69521
|
||||
pkg hash, type Cloner interface, Size() int #69521
|
||||
pkg hash, type Cloner interface, Sum([]uint8) []uint8 #69521
|
||||
pkg hash, type Cloner interface, Write([]uint8) (int, error) #69521
|
||||
pkg hash, type XOF interface { BlockSize, Read, Reset, Write } #69518
|
||||
pkg hash, type XOF interface, BlockSize() int #69518
|
||||
pkg hash, type XOF interface, Read([]uint8) (int, error) #69518
|
||||
pkg hash, type XOF interface, Reset() #69518
|
||||
pkg hash, type XOF interface, Write([]uint8) (int, error) #69518
|
||||
pkg hash/maphash, method (*Hash) Clone() (hash.Cloner, error) #69521
|
||||
pkg io/fs, func Lstat(FS, string) (FileInfo, error) #49580
|
||||
pkg io/fs, func ReadLink(FS, string) (string, error) #49580
|
||||
pkg io/fs, type ReadLinkFS interface { Lstat, Open, ReadLink } #49580
|
||||
pkg io/fs, type ReadLinkFS interface, Lstat(string) (FileInfo, error) #49580
|
||||
pkg io/fs, type ReadLinkFS interface, Open(string) (File, error) #49580
|
||||
pkg io/fs, type ReadLinkFS interface, ReadLink(string) (string, error) #49580
|
||||
pkg log/slog, func GroupAttrs(string, ...Attr) Attr #66365
|
||||
pkg log/slog, method (Record) Source() *Source #70280
|
||||
pkg mime/multipart, func FileContentDisposition(string, string) string #46771
|
||||
pkg net/http, func NewCrossOriginProtection() *CrossOriginProtection #73626
|
||||
pkg net/http, method (*CrossOriginProtection) AddInsecureBypassPattern(string) #73626
|
||||
pkg net/http, method (*CrossOriginProtection) AddTrustedOrigin(string) error #73626
|
||||
pkg net/http, method (*CrossOriginProtection) Check(*Request) error #73626
|
||||
pkg net/http, method (*CrossOriginProtection) Handler(Handler) Handler #73626
|
||||
pkg net/http, method (*CrossOriginProtection) SetDenyHandler(Handler) #73626
|
||||
pkg net/http, type CrossOriginProtection struct #73626
|
||||
pkg os, method (*Root) Chmod(string, fs.FileMode) error #67002
|
||||
pkg os, method (*Root) Chown(string, int, int) error #67002
|
||||
pkg os, method (*Root) Chtimes(string, time.Time, time.Time) error #67002
|
||||
pkg os, method (*Root) Lchown(string, int, int) error #67002
|
||||
pkg os, method (*Root) Link(string, string) error #67002
|
||||
pkg os, method (*Root) MkdirAll(string, fs.FileMode) error #67002
|
||||
pkg os, method (*Root) ReadFile(string) ([]uint8, error) #73126
|
||||
pkg os, method (*Root) Readlink(string) (string, error) #67002
|
||||
pkg os, method (*Root) RemoveAll(string) error #67002
|
||||
pkg os, method (*Root) Rename(string, string) error #67002
|
||||
pkg os, method (*Root) Symlink(string, string) error #67002
|
||||
pkg os, method (*Root) WriteFile(string, []uint8, fs.FileMode) error #73126
|
||||
pkg reflect, func TypeAssert[$0 interface{}](Value) ($0, bool) #62121
|
||||
pkg runtime, func SetDefaultGOMAXPROCS() #73193
|
||||
pkg runtime/trace, func NewFlightRecorder(FlightRecorderConfig) *FlightRecorder #63185
|
||||
pkg runtime/trace, method (*FlightRecorder) Enabled() bool #63185
|
||||
pkg runtime/trace, method (*FlightRecorder) Start() error #63185
|
||||
pkg runtime/trace, method (*FlightRecorder) Stop() #63185
|
||||
pkg runtime/trace, method (*FlightRecorder) WriteTo(io.Writer) (int64, error) #63185
|
||||
pkg runtime/trace, type FlightRecorder struct #63185
|
||||
pkg runtime/trace, type FlightRecorderConfig struct #63185
|
||||
pkg runtime/trace, type FlightRecorderConfig struct, MaxBytes uint64 #63185
|
||||
pkg runtime/trace, type FlightRecorderConfig struct, MinAge time.Duration #63185
|
||||
pkg sync, method (*WaitGroup) Go(func()) #63796
|
||||
pkg testing, method (*B) Attr(string, string) #43936
|
||||
pkg testing, method (*B) Output() io.Writer #59928
|
||||
pkg testing, method (*F) Attr(string, string) #43936
|
||||
pkg testing, method (*F) Output() io.Writer #59928
|
||||
pkg testing, method (*T) Attr(string, string) #43936
|
||||
pkg testing, method (*T) Output() io.Writer #59928
|
||||
pkg testing, type TB interface, Attr(string, string) #43936
|
||||
pkg testing, type TB interface, Output() io.Writer #59928
|
||||
pkg testing/fstest, method (MapFS) Lstat(string) (fs.FileInfo, error) #49580
|
||||
pkg testing/fstest, method (MapFS) ReadLink(string) (string, error) #49580
|
||||
pkg testing/synctest, func Test(*testing.T, func(*testing.T)) #67434
|
||||
pkg testing/synctest, func Wait() #67434
|
||||
pkg unicode, var CategoryAliases map[string]string #70780
|
||||
pkg unicode, var Cn *RangeTable #70780
|
||||
pkg unicode, var LC *RangeTable #70780
|
||||
180
api/go1.26.txt
180
api/go1.26.txt
@@ -1,180 +0,0 @@
|
||||
pkg bytes, method (*Buffer) Peek(int) ([]uint8, error) #73794
|
||||
pkg crypto, type Decapsulator interface { Decapsulate, Encapsulator } #75300
|
||||
pkg crypto, type Decapsulator interface, Decapsulate([]uint8) ([]uint8, error) #75300
|
||||
pkg crypto, type Decapsulator interface, Encapsulator() Encapsulator #75300
|
||||
pkg crypto, type Encapsulator interface { Bytes, Encapsulate } #75300
|
||||
pkg crypto, type Encapsulator interface, Bytes() []uint8 #75300
|
||||
pkg crypto, type Encapsulator interface, Encapsulate() ([]uint8, []uint8) #75300
|
||||
pkg crypto/ecdh, type KeyExchanger interface { Curve, ECDH, PublicKey } #75300
|
||||
pkg crypto/ecdh, type KeyExchanger interface, Curve() Curve #75300
|
||||
pkg crypto/ecdh, type KeyExchanger interface, ECDH(*PublicKey) ([]uint8, error) #75300
|
||||
pkg crypto/ecdh, type KeyExchanger interface, PublicKey() *PublicKey #75300
|
||||
pkg crypto/ecdsa, type PrivateKey struct, D //deprecated #63963
|
||||
pkg crypto/ecdsa, type PublicKey struct, X //deprecated #63963
|
||||
pkg crypto/ecdsa, type PublicKey struct, Y //deprecated #63963
|
||||
pkg crypto/fips140, func Enforced() bool #74630
|
||||
pkg crypto/fips140, func Version() string #75301
|
||||
pkg crypto/fips140, func WithoutEnforcement(func()) #74630
|
||||
pkg crypto/hpke, func AES128GCM() AEAD #75300
|
||||
pkg crypto/hpke, func AES256GCM() AEAD #75300
|
||||
pkg crypto/hpke, func ChaCha20Poly1305() AEAD #75300
|
||||
pkg crypto/hpke, func DHKEM(ecdh.Curve) KEM #75300
|
||||
pkg crypto/hpke, func ExportOnly() AEAD #75300
|
||||
pkg crypto/hpke, func HKDFSHA256() KDF #75300
|
||||
pkg crypto/hpke, func HKDFSHA384() KDF #75300
|
||||
pkg crypto/hpke, func HKDFSHA512() KDF #75300
|
||||
pkg crypto/hpke, func MLKEM1024() KEM #75300
|
||||
pkg crypto/hpke, func MLKEM1024P384() KEM #75300
|
||||
pkg crypto/hpke, func MLKEM768() KEM #75300
|
||||
pkg crypto/hpke, func MLKEM768P256() KEM #75300
|
||||
pkg crypto/hpke, func MLKEM768X25519() KEM #75300
|
||||
pkg crypto/hpke, func NewAEAD(uint16) (AEAD, error) #75300
|
||||
pkg crypto/hpke, func NewDHKEMPrivateKey(ecdh.KeyExchanger) (PrivateKey, error) #75300
|
||||
pkg crypto/hpke, func NewDHKEMPublicKey(*ecdh.PublicKey) (PublicKey, error) #75300
|
||||
pkg crypto/hpke, func NewHybridPrivateKey(crypto.Decapsulator, ecdh.KeyExchanger) (PrivateKey, error) #75300
|
||||
pkg crypto/hpke, func NewHybridPublicKey(crypto.Encapsulator, *ecdh.PublicKey) (PublicKey, error) #75300
|
||||
pkg crypto/hpke, func NewKDF(uint16) (KDF, error) #75300
|
||||
pkg crypto/hpke, func NewKEM(uint16) (KEM, error) #75300
|
||||
pkg crypto/hpke, func NewMLKEMPrivateKey(crypto.Decapsulator) (PrivateKey, error) #75300
|
||||
pkg crypto/hpke, func NewMLKEMPublicKey(crypto.Encapsulator) (PublicKey, error) #75300
|
||||
pkg crypto/hpke, func NewRecipient([]uint8, PrivateKey, KDF, AEAD, []uint8) (*Recipient, error) #75300
|
||||
pkg crypto/hpke, func NewSender(PublicKey, KDF, AEAD, []uint8) ([]uint8, *Sender, error) #75300
|
||||
pkg crypto/hpke, func Open(PrivateKey, KDF, AEAD, []uint8, []uint8) ([]uint8, error) #75300
|
||||
pkg crypto/hpke, func SHAKE128() KDF #75300
|
||||
pkg crypto/hpke, func SHAKE256() KDF #75300
|
||||
pkg crypto/hpke, func Seal(PublicKey, KDF, AEAD, []uint8, []uint8) ([]uint8, error) #75300
|
||||
pkg crypto/hpke, method (*Recipient) Export(string, int) ([]uint8, error) #75300
|
||||
pkg crypto/hpke, method (*Recipient) Open([]uint8, []uint8) ([]uint8, error) #75300
|
||||
pkg crypto/hpke, method (*Sender) Export(string, int) ([]uint8, error) #75300
|
||||
pkg crypto/hpke, method (*Sender) Seal([]uint8, []uint8) ([]uint8, error) #75300
|
||||
pkg crypto/hpke, type AEAD interface, ID() uint16 #75300
|
||||
pkg crypto/hpke, type AEAD interface, unexported methods #75300
|
||||
pkg crypto/hpke, type KDF interface, ID() uint16 #75300
|
||||
pkg crypto/hpke, type KDF interface, unexported methods #75300
|
||||
pkg crypto/hpke, type KEM interface, DeriveKeyPair([]uint8) (PrivateKey, error) #75300
|
||||
pkg crypto/hpke, type KEM interface, GenerateKey() (PrivateKey, error) #75300
|
||||
pkg crypto/hpke, type KEM interface, ID() uint16 #75300
|
||||
pkg crypto/hpke, type KEM interface, NewPrivateKey([]uint8) (PrivateKey, error) #75300
|
||||
pkg crypto/hpke, type KEM interface, NewPublicKey([]uint8) (PublicKey, error) #75300
|
||||
pkg crypto/hpke, type KEM interface, unexported methods #75300
|
||||
pkg crypto/hpke, type PrivateKey interface, Bytes() ([]uint8, error) #75300
|
||||
pkg crypto/hpke, type PrivateKey interface, KEM() KEM #75300
|
||||
pkg crypto/hpke, type PrivateKey interface, PublicKey() PublicKey #75300
|
||||
pkg crypto/hpke, type PrivateKey interface, unexported methods #75300
|
||||
pkg crypto/hpke, type PublicKey interface, Bytes() []uint8 #75300
|
||||
pkg crypto/hpke, type PublicKey interface, KEM() KEM #75300
|
||||
pkg crypto/hpke, type PublicKey interface, unexported methods #75300
|
||||
pkg crypto/hpke, type Recipient struct #75300
|
||||
pkg crypto/hpke, type Sender struct #75300
|
||||
pkg crypto/mlkem, method (*DecapsulationKey1024) Encapsulator() crypto.Encapsulator #75300
|
||||
pkg crypto/mlkem, method (*DecapsulationKey768) Encapsulator() crypto.Encapsulator #75300
|
||||
pkg crypto/mlkem/mlkemtest, func Encapsulate1024(*mlkem.EncapsulationKey1024, []uint8) ([]uint8, []uint8, error) #73627
|
||||
pkg crypto/mlkem/mlkemtest, func Encapsulate768(*mlkem.EncapsulationKey768, []uint8) ([]uint8, []uint8, error) #73627
|
||||
pkg crypto/rsa, func DecryptPKCS1v15 //deprecated #75302
|
||||
pkg crypto/rsa, func DecryptPKCS1v15SessionKey //deprecated #75302
|
||||
pkg crypto/rsa, func EncryptOAEPWithOptions(io.Reader, *PublicKey, []uint8, *OAEPOptions) ([]uint8, error) #65716
|
||||
pkg crypto/rsa, func EncryptPKCS1v15 //deprecated #75302
|
||||
pkg crypto/rsa, type PKCS1v15DecryptOptions //deprecated #75302
|
||||
pkg crypto/tls, const QUICErrorEvent = 10 #75108
|
||||
pkg crypto/tls, const QUICErrorEvent QUICEventKind #75108
|
||||
pkg crypto/tls, const SecP256r1MLKEM768 = 4587 #71206
|
||||
pkg crypto/tls, const SecP256r1MLKEM768 CurveID #71206
|
||||
pkg crypto/tls, const SecP384r1MLKEM1024 = 4589 #71206
|
||||
pkg crypto/tls, const SecP384r1MLKEM1024 CurveID #71206
|
||||
pkg crypto/tls, type ClientHelloInfo struct, HelloRetryRequest bool #74425
|
||||
pkg crypto/tls, type ConnectionState struct, HelloRetryRequest bool #74425
|
||||
pkg crypto/tls, type QUICEvent struct, Err error #75108
|
||||
pkg crypto/x509, func OIDFromASN1OID(asn1.ObjectIdentifier) (OID, error) #75325
|
||||
pkg crypto/x509, method (ExtKeyUsage) OID() OID #75325
|
||||
pkg crypto/x509, method (ExtKeyUsage) String() string #56866
|
||||
pkg crypto/x509, method (KeyUsage) String() string #56866
|
||||
pkg debug/elf, const R_LARCH_CALL36 = 110 #75562
|
||||
pkg debug/elf, const R_LARCH_CALL36 R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC32 = 13 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC32 R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC64 = 14 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC64 R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC64_HI12 = 118 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC64_HI12 R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC64_LO20 = 117 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC64_LO20 R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC64_PC_HI12 = 114 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC64_PC_HI12 R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC64_PC_LO20 = 113 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC64_PC_LO20 R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC_CALL = 120 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC_CALL R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC_HI20 = 115 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC_HI20 R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC_LD = 119 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC_LD R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC_LO12 = 116 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC_LO12 R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC_PCREL20_S2 = 126 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC_PCREL20_S2 R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC_PC_HI20 = 111 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC_PC_HI20 R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC_PC_LO12 = 112 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_DESC_PC_LO12 R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_GD_PCREL20_S2 = 125 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_GD_PCREL20_S2 R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_LD_PCREL20_S2 = 124 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_LD_PCREL20_S2 R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_LE_ADD_R = 122 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_LE_ADD_R R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_LE_HI20_R = 121 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_LE_HI20_R R_LARCH #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_LE_LO12_R = 123 #75562
|
||||
pkg debug/elf, const R_LARCH_TLS_LE_LO12_R R_LARCH #75562
|
||||
pkg errors, func AsType[$0 error](error) ($0, bool) #51945
|
||||
pkg go/ast, func ParseDirective(token.Pos, string) (Directive, bool) #68021
|
||||
pkg go/ast, method (*Directive) End() token.Pos #68021
|
||||
pkg go/ast, method (*Directive) ParseArgs() ([]DirectiveArg, error) #68021
|
||||
pkg go/ast, method (*Directive) Pos() token.Pos #68021
|
||||
pkg go/ast, type BasicLit struct, ValueEnd token.Pos #76031
|
||||
pkg go/ast, type Directive struct #68021
|
||||
pkg go/ast, type Directive struct, Args string #68021
|
||||
pkg go/ast, type Directive struct, ArgsPos token.Pos #68021
|
||||
pkg go/ast, type Directive struct, Name string #68021
|
||||
pkg go/ast, type Directive struct, Slash token.Pos #68021
|
||||
pkg go/ast, type Directive struct, Tool string #68021
|
||||
pkg go/ast, type DirectiveArg struct #68021
|
||||
pkg go/ast, type DirectiveArg struct, Arg string #68021
|
||||
pkg go/ast, type DirectiveArg struct, Pos token.Pos #68021
|
||||
pkg go/token, method (*File) End() Pos #75849
|
||||
pkg log/slog, func NewMultiHandler(...Handler) *MultiHandler #65954
|
||||
pkg log/slog, method (*MultiHandler) Enabled(context.Context, Level) bool #65954
|
||||
pkg log/slog, method (*MultiHandler) Handle(context.Context, Record) error #65954
|
||||
pkg log/slog, method (*MultiHandler) WithAttrs([]Attr) Handler #65954
|
||||
pkg log/slog, method (*MultiHandler) WithGroup(string) Handler #65954
|
||||
pkg log/slog, type MultiHandler struct #65954
|
||||
pkg net, method (*Dialer) DialIP(context.Context, string, netip.Addr, netip.Addr) (*IPConn, error) #49097
|
||||
pkg net, method (*Dialer) DialTCP(context.Context, string, netip.AddrPort, netip.AddrPort) (*TCPConn, error) #49097
|
||||
pkg net, method (*Dialer) DialUDP(context.Context, string, netip.AddrPort, netip.AddrPort) (*UDPConn, error) #49097
|
||||
pkg net, method (*Dialer) DialUnix(context.Context, string, *UnixAddr, *UnixAddr) (*UnixConn, error) #49097
|
||||
pkg net/http, method (*ClientConn) Available() int #75772
|
||||
pkg net/http, method (*ClientConn) Close() error #75772
|
||||
pkg net/http, method (*ClientConn) Err() error #75772
|
||||
pkg net/http, method (*ClientConn) InFlight() int #75772
|
||||
pkg net/http, method (*ClientConn) Release() #75772
|
||||
pkg net/http, method (*ClientConn) Reserve() error #75772
|
||||
pkg net/http, method (*ClientConn) RoundTrip(*Request) (*Response, error) #75772
|
||||
pkg net/http, method (*ClientConn) SetStateHook(func(*ClientConn)) #75772
|
||||
pkg net/http, method (*Transport) NewClientConn(context.Context, string, string) (*ClientConn, error) #75772
|
||||
pkg net/http, type ClientConn struct #75772
|
||||
pkg net/http, type HTTP2Config struct, StrictMaxConcurrentRequests bool #67813
|
||||
pkg net/http/httputil, type ReverseProxy struct, Director //deprecated #73161
|
||||
pkg net/netip, method (Prefix) Compare(Prefix) int #61642
|
||||
pkg os, method (*Process) WithHandle(func(uintptr)) error #70352
|
||||
pkg os, var ErrNoHandle error #70352
|
||||
pkg reflect, method (Value) Fields() iter.Seq2[StructField, Value] #66631
|
||||
pkg reflect, method (Value) Methods() iter.Seq2[Method, Value] #66631
|
||||
pkg reflect, type Type interface, Fields() iter.Seq[StructField] #66631
|
||||
pkg reflect, type Type interface, Ins() iter.Seq[Type] #66631
|
||||
pkg reflect, type Type interface, Methods() iter.Seq[Method] #66631
|
||||
pkg reflect, type Type interface, Outs() iter.Seq[Type] #66631
|
||||
pkg testing, method (*B) ArtifactDir() string #71287
|
||||
pkg testing, method (*F) ArtifactDir() string #71287
|
||||
pkg testing, method (*T) ArtifactDir() string #71287
|
||||
pkg testing, type TB interface, ArtifactDir() string #71287
|
||||
pkg testing/cryptotest, func SetGlobalRandom(*testing.T, uint64) #70942
|
||||
@@ -1,2 +1,2 @@
|
||||
branch: dev.simd
|
||||
branch: release-branch.go1.23
|
||||
parent-branch: master
|
||||
|
||||
@@ -70,6 +70,6 @@ To begin the next release development cycle, populate the contents of `next`
|
||||
with those of `initial`. From the repo root:
|
||||
|
||||
> cd doc
|
||||
> cp -R initial/ next
|
||||
> cp -r initial/* next
|
||||
|
||||
Then edit `next/1-intro.md` to refer to the next version.
|
||||
|
||||
@@ -1039,12 +1039,6 @@ The value of <code>GOMIPS64</code> environment variable (<code>hardfloat</code>
|
||||
<code>GOMIPS64_hardfloat</code> or <code>GOMIPS64_softfloat</code>.
|
||||
</p>
|
||||
|
||||
<h3 id="riscv64">RISCV64</h3>
|
||||
|
||||
<p>
|
||||
Reference: <a href="/pkg/cmd/internal/obj/riscv">Go RISCV64 Assembly Instructions Reference Manual</a>
|
||||
</p>
|
||||
|
||||
<h3 id="unsupported_opcodes">Unsupported opcodes</h3>
|
||||
|
||||
<p>
|
||||
|
||||
6864
doc/go1.17_spec.html
Normal file
6864
doc/go1.17_spec.html
Normal file
File diff suppressed because it is too large
Load Diff
@@ -82,7 +82,7 @@ while still insisting that races are errors and that tools can diagnose and repo
|
||||
<p>
|
||||
The following formal definition of Go's memory model closely follows
|
||||
the approach presented by Hans-J. Boehm and Sarita V. Adve in
|
||||
“<a href="https://dl.acm.org/doi/10.1145/1375581.1375591">Foundations of the C++ Concurrency Memory Model</a>”,
|
||||
“<a href="https://www.hpl.hp.com/techreports/2008/HPL-2008-56.pdf">Foundations of the C++ Concurrency Memory Model</a>”,
|
||||
published in PLDI 2008.
|
||||
The definition of data-race-free programs and the guarantee of sequential consistency
|
||||
for race-free programs are equivalent to the ones in that work.
|
||||
@@ -231,7 +231,7 @@ do exactly this.
|
||||
|
||||
<p>
|
||||
A read of an array, struct, or complex number
|
||||
may be implemented as a read of each individual sub-value
|
||||
may by implemented as a read of each individual sub-value
|
||||
(array element, struct field, or real/imaginary component),
|
||||
in any order.
|
||||
Similarly, a write of an array, struct, or complex number
|
||||
@@ -453,7 +453,7 @@ crash, or do something else.)
|
||||
</p>
|
||||
|
||||
<p class="rule">
|
||||
The <i>k</i>th receive from a channel with capacity <i>C</i> is synchronized before the completion of the <i>k</i>+<i>C</i>th send on that channel.
|
||||
The <i>k</i>th receive on a channel with capacity <i>C</i> is synchronized before the completion of the <i>k</i>+<i>C</i>th send from that channel completes.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
675
doc/go_spec.html
675
doc/go_spec.html
File diff suppressed because it is too large
Load Diff
170
doc/godebug.md
170
doc/godebug.md
@@ -34,7 +34,6 @@ For example, if a Go program is running in an environment that contains
|
||||
|
||||
then that Go program will disable the use of HTTP/2 by default in both
|
||||
the HTTP client and the HTTP server.
|
||||
Unrecognized settings in the `GODEBUG` environment variable are ignored.
|
||||
It is also possible to set the default `GODEBUG` for a given program
|
||||
(discussed below).
|
||||
|
||||
@@ -109,9 +108,7 @@ Only the work module's `go.mod` is consulted for `godebug` directives.
|
||||
Any directives in required dependency modules are ignored.
|
||||
It is an error to list a `godebug` with an unrecognized setting.
|
||||
(Toolchains older than Go 1.23 reject all `godebug` lines, since they do not
|
||||
understand `godebug` at all.) When a workspace is in use, `godebug`
|
||||
directives in `go.mod` files are ignored, and `go.work` will be consulted
|
||||
for `godebug` directives instead.
|
||||
understand `godebug` at all.)
|
||||
|
||||
The defaults from the `go` and `godebug` lines apply to all main
|
||||
packages that are built. For more fine-grained control,
|
||||
@@ -153,152 +150,6 @@ for example,
|
||||
see the [runtime documentation](/pkg/runtime#hdr-Environment_Variables)
|
||||
and the [go command documentation](/cmd/go#hdr-Build_and_test_caching).
|
||||
|
||||
### Go 1.26
|
||||
|
||||
Go 1.26 added a new `httpcookiemaxnum` setting that controls the maximum number
|
||||
of cookies that net/http will accept when parsing HTTP headers. If the number of
|
||||
cookie in a header exceeds the number set in `httpcookiemaxnum`, cookie parsing
|
||||
will fail early. The default value is `httpcookiemaxnum=3000`. Setting
|
||||
`httpcookiemaxnum=0` will allow the cookie parsing to accept an indefinite
|
||||
number of cookies. To avoid denial of service attacks, this setting and default
|
||||
was backported to Go 1.25.2 and Go 1.24.8.
|
||||
|
||||
Go 1.26 added a new `urlstrictcolons` setting that controls whether `net/url.Parse`
|
||||
allows malformed hostnames containing colons outside of a bracketed IPv6 address.
|
||||
The default `urlstrictcolons=1` rejects URLs such as `http://localhost:1:2` or `http://::1/`.
|
||||
Colons are permitted as part of a bracketed IPv6 address, such as `http://[::1]/`.
|
||||
|
||||
Go 1.26 enabled two additional post-quantum key exchange mechanisms:
|
||||
SecP256r1MLKEM768 and SecP384r1MLKEM1024. The default can be reverted using the
|
||||
[`tlssecpmlkem` setting](/pkg/crypto/tls/#Config.CurvePreferences).
|
||||
|
||||
Go 1.26 added a new `tracebacklabels` setting that controls the inclusion of
|
||||
goroutine labels set through the the `runtime/pprof` package. Setting `tracebacklabels=1`
|
||||
includes these key/value pairs in the goroutine status header of runtime
|
||||
tracebacks and debug=2 runtime/pprof stack dumps. This format may change in the future.
|
||||
(see go.dev/issue/76349)
|
||||
|
||||
Go 1.26 added a new `cryptocustomrand` setting that controls whether most crypto/...
|
||||
APIs ignore the random `io.Reader` parameter. For Go 1.26, it defaults
|
||||
to `cryptocustomrand=0`, ignoring the random parameters. Using `cryptocustomrand=1`
|
||||
reverts to the pre-Go 1.26 behavior.
|
||||
|
||||
### Go 1.25
|
||||
|
||||
Go 1.25 added a new `decoratemappings` setting that controls whether the Go
|
||||
runtime annotates OS anonymous memory mappings with context about their
|
||||
purpose. These annotations appear in /proc/self/maps and /proc/self/smaps as
|
||||
"[anon: Go: ...]". This setting is only used on Linux. For Go 1.25, it defaults
|
||||
to `decoratemappings=1`, enabling annotations. Using `decoratemappings=0`
|
||||
reverts to the pre-Go 1.25 behavior. This setting is fixed at program startup
|
||||
time, and can't be modified by changing the `GODEBUG` environment variable
|
||||
after the program starts.
|
||||
|
||||
Go 1.25 added a new `embedfollowsymlinks` setting that controls whether the
|
||||
Go command will follow symlinks to regular files embedding files.
|
||||
The default value `embedfollowsymlinks=0` does not allow following
|
||||
symlinks. `embedfollowsymlinks=1` will allow following symlinks.
|
||||
|
||||
Go 1.25 added a new `containermaxprocs` setting that controls whether the Go
|
||||
runtime will consider cgroup CPU limits when setting the default GOMAXPROCS.
|
||||
The default value `containermaxprocs=1` will use cgroup limits in addition to
|
||||
the total logical CPU count and CPU affinity. `containermaxprocs=0` will
|
||||
disable consideration of cgroup limits. This setting only affects Linux.
|
||||
|
||||
Go 1.25 added a new `updatemaxprocs` setting that controls whether the Go
|
||||
runtime will periodically update GOMAXPROCS for new CPU affinity or cgroup
|
||||
limits. The default value `updatemaxprocs=1` will enable periodic updates.
|
||||
`updatemaxprocs=0` will disable periodic updates.
|
||||
|
||||
Go 1.25 disabled SHA-1 signature algorithms in TLS 1.2 according to RFC 9155.
|
||||
The default can be reverted using the `tlssha1=1` setting.
|
||||
|
||||
Go 1.25 switched to SHA-256 to fill in missing SubjectKeyId in
|
||||
crypto/x509.CreateCertificate. The setting `x509sha256skid=0` reverts to SHA-1.
|
||||
|
||||
Go 1.25 corrected the semantics of contention reports for runtime-internal locks,
|
||||
and so removed the [`runtimecontentionstacks` setting](/pkg/runtime#hdr-Environment_Variables).
|
||||
|
||||
Go 1.25 (starting with Go 1.25 RC 2) disabled build information stamping when
|
||||
multiple VCS are detected due to concerns around VCS injection attacks. This
|
||||
behavior and setting was backported to Go 1.24.5 and Go 1.23.11. This behavior
|
||||
can be renabled with the setting `allowmultiplevcs=1`.
|
||||
|
||||
### Go 1.24
|
||||
|
||||
Go 1.24 added a new `fips140` setting that controls whether the Go
|
||||
Cryptographic Module operates in FIPS 140-3 mode.
|
||||
The possible values are:
|
||||
- "off": no special support for FIPS 140-3 mode. This is the default.
|
||||
- "on": the Go Cryptographic Module operates in FIPS 140-3 mode.
|
||||
- "only": like "on", but cryptographic algorithms not approved by
|
||||
FIPS 140-3 return an error or panic.
|
||||
For more information, see [FIPS 140-3 Compliance](/doc/security/fips140).
|
||||
This setting is fixed at program startup time, and can't be modified
|
||||
by changing the `GODEBUG` environment variable after the program starts.
|
||||
|
||||
Go 1.24 changed the global [`math/rand.Seed`](/pkg/math/rand/#Seed) to be a
|
||||
no-op. This behavior is controlled by the `randseednop` setting.
|
||||
For Go 1.24 it defaults to `randseednop=1`.
|
||||
Using `randseednop=0` reverts to the pre-Go 1.24 behavior.
|
||||
|
||||
Go 1.24 added new values for the `multipathtcp` setting.
|
||||
The possible values for `multipathtcp` are now:
|
||||
- "0": disable MPTCP on dialers and listeners by default
|
||||
- "1": enable MPTCP on dialers and listeners by default
|
||||
- "2": enable MPTCP on listeners only by default
|
||||
- "3": enable MPTCP on dialers only by default
|
||||
|
||||
For Go 1.24, it now defaults to multipathtcp="2", thus
|
||||
enabled by default on listeners. Using multipathtcp="0" reverts to the
|
||||
pre-Go 1.24 behavior.
|
||||
|
||||
Go 1.24 changed the behavior of `go test -json` to emit build errors as JSON
|
||||
instead of text.
|
||||
These new JSON events are distinguished by new `Action` values,
|
||||
but can still cause problems with CI systems that aren't robust to these events.
|
||||
This behavior can be controlled with the `gotestjsonbuildtext` setting.
|
||||
Using `gotestjsonbuildtext=1` restores the 1.23 behavior.
|
||||
This setting will be removed in a future release, Go 1.28 at the earliest.
|
||||
|
||||
Go 1.24 changed [`crypto/rsa`](/pkg/crypto/rsa) to require RSA keys to be at
|
||||
least 1024 bits. This behavior can be controlled with the `rsa1024min` setting.
|
||||
Using `rsa1024min=0` restores the Go 1.23 behavior.
|
||||
|
||||
Go 1.24 introduced a mechanism for enabling platform specific Data Independent
|
||||
Timing (DIT) modes in the [`crypto/subtle`](/pkg/crypto/subtle) package. This
|
||||
mode can be enabled for an entire program with the `dataindependenttiming` setting.
|
||||
For Go 1.24 it defaults to `dataindependenttiming=0`. There is no change in default
|
||||
behavior from Go 1.23 when `dataindependenttiming` is unset.
|
||||
Using `dataindependenttiming=1` enables the DIT mode for the entire Go program.
|
||||
When enabled, DIT will be enabled when calling into C from Go. When enabled,
|
||||
calling into Go code from C will enable DIT, and disable it before returning to
|
||||
C if it was not enabled when Go code was entered.
|
||||
This currently only affects arm64 programs. For all other platforms it is a no-op.
|
||||
|
||||
Go 1.24 removed the `x509sha1` setting. `crypto/x509` no longer supports verifying
|
||||
signatures on certificates that use SHA-1 based signature algorithms.
|
||||
|
||||
Go 1.24 changes the default value of the [`x509usepolicies`
|
||||
setting.](/pkg/crypto/x509/#CreateCertificate) from `0` to `1`. When marshalling
|
||||
certificates, policies are now taken from the
|
||||
[`Certificate.Policies`](/pkg/crypto/x509/#Certificate.Policies) field rather
|
||||
than the
|
||||
[`Certificate.PolicyIdentifiers`](/pkg/crypto/x509/#Certificate.PolicyIdentifiers)
|
||||
field by default.
|
||||
|
||||
Go 1.24 enabled the post-quantum key exchange mechanism
|
||||
X25519MLKEM768 by default. The default can be reverted using the
|
||||
[`tlsmlkem` setting](/pkg/crypto/tls/#Config.CurvePreferences).
|
||||
This can be useful when dealing with buggy TLS servers that do not handle large records correctly,
|
||||
causing a timeout during the handshake (see [TLS post-quantum TL;DR fail](https://tldr.fail/)).
|
||||
Go 1.24 also removed X25519Kyber768Draft00 and the Go 1.23 `tlskyber` setting.
|
||||
|
||||
Go 1.24 made [`ParsePKCS1PrivateKey`](/pkg/crypto/x509/#ParsePKCS1PrivateKey)
|
||||
use and validate the CRT parameters in the encoded private key. This behavior
|
||||
can be controlled with the `x509rsacrt` setting. Using `x509rsacrt=0` restores
|
||||
the Go 1.23 behavior.
|
||||
|
||||
### Go 1.23
|
||||
|
||||
Go 1.23 changed the channels created by package time to be unbuffered
|
||||
@@ -306,7 +157,7 @@ Go 1.23 changed the channels created by package time to be unbuffered
|
||||
and [`Timer.Reset`](/pkg/time/#Timer.Reset) method results much easier.
|
||||
The [`asynctimerchan` setting](/pkg/time/#NewTimer) disables this change.
|
||||
There are no runtime metrics for this change,
|
||||
This setting will be removed in Go 1.27.
|
||||
This setting may be removed in a future release, Go 1.27 at the earliest.
|
||||
|
||||
Go 1.23 changed the mode bits reported by [`os.Lstat`](/pkg/os#Lstat) and [`os.Stat`](/pkg/os#Stat)
|
||||
for reparse points, which can be controlled with the `winsymlink` setting.
|
||||
@@ -328,8 +179,6 @@ Previous versions default to `winreadlinkvolume=0`.
|
||||
Go 1.23 enabled the experimental post-quantum key exchange mechanism
|
||||
X25519Kyber768Draft00 by default. The default can be reverted using the
|
||||
[`tlskyber` setting](/pkg/crypto/tls/#Config.CurvePreferences).
|
||||
This can be useful when dealing with buggy TLS servers that do not handle large records correctly,
|
||||
causing a timeout during the handshake (see [TLS post-quantum TL;DR fail](https://tldr.fail/)).
|
||||
|
||||
Go 1.23 changed the behavior of
|
||||
[crypto/x509.ParseCertificate](/pkg/crypto/x509/#ParseCertificate) to reject
|
||||
@@ -343,7 +192,6 @@ any effect.
|
||||
Go 1.23 changed the default TLS cipher suites used by clients and servers when
|
||||
not explicitly configured, removing 3DES cipher suites. The default can be reverted
|
||||
using the [`tls3des` setting](/pkg/crypto/tls/#Config.CipherSuites).
|
||||
This setting will be removed in Go 1.27.
|
||||
|
||||
Go 1.23 changed the behavior of [`tls.X509KeyPair`](/pkg/crypto/tls#X509KeyPair)
|
||||
and [`tls.LoadX509KeyPair`](/pkg/crypto/tls#LoadX509KeyPair) to populate the
|
||||
@@ -351,7 +199,6 @@ Leaf field of the returned [`tls.Certificate`](/pkg/crypto/tls#Certificate).
|
||||
This behavior is controlled by the `x509keypairleaf` setting. For Go 1.23, it
|
||||
defaults to `x509keypairleaf=1`. Previous versions default to
|
||||
`x509keypairleaf=0`.
|
||||
This setting will be removed in Go 1.27.
|
||||
|
||||
Go 1.23 changed
|
||||
[`net/http.ServeContent`](/pkg/net/http#ServeContent),
|
||||
@@ -385,31 +232,28 @@ Whether the type checker produces `Alias` types or not is controlled by the
|
||||
[`gotypesalias` setting](/pkg/go/types#Alias).
|
||||
For Go 1.22 it defaults to `gotypesalias=0`.
|
||||
For Go 1.23, `gotypesalias=1` will become the default.
|
||||
This setting will be removed in Go 1.27.
|
||||
This setting will be removed in a future release, Go 1.27 at the earliest.
|
||||
|
||||
Go 1.22 changed the default minimum TLS version supported by both servers
|
||||
and clients to TLS 1.2. The default can be reverted to TLS 1.0 using the
|
||||
[`tls10server` setting](/pkg/crypto/tls/#Config).
|
||||
This setting will be removed in Go 1.27.
|
||||
|
||||
Go 1.22 changed the default TLS cipher suites used by clients and servers when
|
||||
not explicitly configured, removing the cipher suites which used RSA based key
|
||||
exchange. The default can be reverted using the [`tlsrsakex` setting](/pkg/crypto/tls/#Config).
|
||||
This setting will be removed in Go 1.27.
|
||||
|
||||
Go 1.22 disabled
|
||||
[`ConnectionState.ExportKeyingMaterial`](/pkg/crypto/tls/#ConnectionState.ExportKeyingMaterial)
|
||||
when the connection supports neither TLS 1.3 nor Extended Master Secret
|
||||
(implemented in Go 1.21). It can be reenabled with the [`tlsunsafeekm`
|
||||
setting](/pkg/crypto/tls/#ConnectionState.ExportKeyingMaterial).
|
||||
This setting will be removed in Go 1.27.
|
||||
|
||||
Go 1.22 changed how the runtime interacts with transparent huge pages on Linux.
|
||||
In particular, a common default Linux kernel configuration can result in
|
||||
significant memory overheads, and Go 1.22 no longer works around this default.
|
||||
To work around this issue without adjusting kernel settings, transparent huge
|
||||
pages can be disabled for Go memory with the
|
||||
[`disablethp` setting](/pkg/runtime#hdr-Environment_Variables).
|
||||
[`disablethp` setting](/pkg/runtime#hdr-Environment_Variable).
|
||||
This behavior was backported to Go 1.21.1, but the setting is only available
|
||||
starting with Go 1.21.6.
|
||||
This setting may be removed in a future release, and users impacted by this issue
|
||||
@@ -421,7 +265,7 @@ Go 1.22 added contention on runtime-internal locks to the [`mutex`
|
||||
profile](/pkg/runtime/pprof#Profile). Contention on these locks is always
|
||||
reported at `runtime._LostContendedRuntimeLock`. Complete stack traces of
|
||||
runtime locks can be enabled with the [`runtimecontentionstacks`
|
||||
setting](/pkg/runtime#hdr-Environment_Variables). These stack traces have
|
||||
setting](/pkg/runtime#hdr-Environment_Variable). These stack traces have
|
||||
non-standard semantics, see setting documentation for details.
|
||||
|
||||
Go 1.22 added a new [`crypto/x509.Certificate`](/pkg/crypto/x509/#Certificate)
|
||||
@@ -430,7 +274,7 @@ certificate policy OIDs with components larger than 31 bits. By default this
|
||||
field is only used during parsing, when it is populated with policy OIDs, but
|
||||
not used during marshaling. It can be used to marshal these larger OIDs, instead
|
||||
of the existing PolicyIdentifiers field, by using the
|
||||
[`x509usepolicies` setting](/pkg/crypto/x509/#CreateCertificate).
|
||||
[`x509usepolicies` setting.](/pkg/crypto/x509/#CreateCertificate).
|
||||
|
||||
|
||||
### Go 1.21
|
||||
@@ -498,7 +342,7 @@ There is no plan to remove this setting.
|
||||
|
||||
Go 1.18 removed support for SHA1 in most X.509 certificates,
|
||||
controlled by the [`x509sha1` setting](/pkg/crypto/x509#InsecureAlgorithmError).
|
||||
This setting was removed in Go 1.24.
|
||||
This setting will be removed in a future release, Go 1.22 at the earliest.
|
||||
|
||||
### Go 1.10
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
<!--
|
||||
NOTE: In this document and others in this directory, the convention is to
|
||||
set fixed-width phrases with non-fixed-width spaces, as in
|
||||
`hello` `world`.
|
||||
-->
|
||||
|
||||
<style>
|
||||
main ul li { margin: 0.5em 0; }
|
||||
</style>
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
### Minor changes to the library {#minor_library_changes}
|
||||
|
||||
|
||||
|
||||
14
doc/next/1-intro.md
Normal file
14
doc/next/1-intro.md
Normal file
@@ -0,0 +1,14 @@
|
||||
<!--
|
||||
NOTE: In this document and others in this directory, the convention is to
|
||||
set fixed-width phrases with non-fixed-width spaces, as in
|
||||
`hello` `world`.
|
||||
-->
|
||||
|
||||
<style>
|
||||
main ul li { margin: 0.5em 0; }
|
||||
</style>
|
||||
|
||||
## DRAFT RELEASE NOTES — Introduction to Go 1.23 {#introduction}
|
||||
|
||||
**Go 1.23 is not yet released. These are work-in-progress release notes.
|
||||
Go 1.23 is expected to be released in August 2024.**
|
||||
18
doc/next/2-language.md
Normal file
18
doc/next/2-language.md
Normal file
@@ -0,0 +1,18 @@
|
||||
## Changes to the language {#language}
|
||||
|
||||
<!-- go.dev/issue/61405, CL 557835, CL 584596 -->
|
||||
Go 1.23 makes the (Go 1.22) ["range-over-func" experiment](/wiki/RangefuncExperiment) a part of the language.
|
||||
The "range" clause in a "for-range" loop now accepts iterator functions of the following types
|
||||
|
||||
func(func() bool)
|
||||
func(func(K) bool)
|
||||
func(func(K, V) bool)
|
||||
|
||||
as range expressions.
|
||||
Calls of the iterator argument function produce the iteration values for the "for-range" loop.
|
||||
For details see the [iter] package documentation and the [language spec](/ref/spec#For_range).
|
||||
For motivation see the 2022 ["range-over-func" discussion](/issue/56413).
|
||||
|
||||
<!-- go.dev/issue/46477, CL 566856, CL 586955, CL 586956 -->
|
||||
Go 1.23 includes preview support for [generic type aliases](/issue/46477).
|
||||
Building the toolchain with `GOEXPERIMENT=aliastypeparams` enables this feature.
|
||||
84
doc/next/3-tools.md
Normal file
84
doc/next/3-tools.md
Normal file
@@ -0,0 +1,84 @@
|
||||
## Tools {#tools}
|
||||
|
||||
### Telemetry
|
||||
|
||||
<!-- go.dev/issue/58894, go.dev/issue/67111 -->
|
||||
Starting in Go 1.23, the Go toolchain can collect usage and breakage
|
||||
statistics that help the Go team understand how the Go toolchain is
|
||||
used and how well it is working. We refer to these statistics as
|
||||
[Go telemetry](/doc/telemetry).
|
||||
|
||||
Go telemetry is an _opt-in system_, controlled by the
|
||||
[`go` `telemetry` command](/cmd/go/#hdr-Manage_telemetry_data_and_settings).
|
||||
By default, the toolchain programs
|
||||
collect statistics in counter files that can be inspected locally
|
||||
but are otherwise unused (`go` `telemetry` `local`).
|
||||
|
||||
To help us keep Go working well and understand Go usage,
|
||||
please consider opting in to Go telemetry by running
|
||||
`go` `telemetry` `on`.
|
||||
In that mode,
|
||||
anonymous counter reports are uploaded to
|
||||
[telemetry.go.dev](https://telemetry.go.dev) weekly,
|
||||
where they are aggregated into graphs and also made
|
||||
available for download by any Go contributors or users
|
||||
wanting to analyze the data.
|
||||
See “[Go Telemetry](/doc/telemetry)” for more details
|
||||
about the Go Telemetry system.
|
||||
|
||||
### Go command {#go-command}
|
||||
|
||||
Setting the `GOROOT_FINAL` environment variable no longer has an effect
|
||||
([#62047](/issue/62047)).
|
||||
Distributions that install the `go` command to a location other than
|
||||
`$GOROOT/bin/go` should install a symlink instead of relocating
|
||||
or copying the `go` binary.
|
||||
|
||||
<!-- go.dev/issue/34208, CL 563137, CL 586095 -->
|
||||
The new `go` `env` `-changed` flag causes the command to print only
|
||||
those settings whose effective value differs from the default value
|
||||
that would be obtained in an empty environment with no prior uses of the `-w` flag.
|
||||
|
||||
<!-- go.dev/issue/27005, CL 585401 -->
|
||||
The new `go` `mod` `tidy` `-diff` flag causes the command not to modify
|
||||
the files but instead print the necessary changes as a unified diff.
|
||||
It exits with a non-zero code if updates are needed.
|
||||
|
||||
<!-- go.dev/issue/52792, CL 562775 -->
|
||||
The `go` `list` `-m` `-json` command now includes new `Sum` and `GoModSum` fields.
|
||||
This is similar to the existing behavior of the `go` `mod` `download` `-json` command.
|
||||
|
||||
<!-- go.dev/issue/65573 ("cmd/go: separate default GODEBUGs from go language version") -->
|
||||
The new `godebug` directive in `go.mod` and `go.work` declares a
|
||||
[GODEBUG setting](/doc/godebug) to apply for the work module or workspace in use.
|
||||
|
||||
### Vet {#vet}
|
||||
|
||||
<!-- go.dev/issue/46136 -->
|
||||
The `go vet` subcommand now includes the
|
||||
[stdversion](https://pkg.go.dev/golang.org/x/tools/go/analysis/passes/stdversion)
|
||||
analyzer, which flags references to symbols that are too new for the version
|
||||
of Go in effect in the referring file. (The effective version is determined
|
||||
by the `go` directive in the file's enclosing `go.mod` file, and
|
||||
by any [`//go:build` constraints](/cmd/go#hdr-Build_constraints)
|
||||
in the file.)
|
||||
|
||||
For example, it will report a diagnostic for a reference to the
|
||||
`reflect.TypeFor` function (introduced in go1.22) from a file in a
|
||||
module whose go.mod file specifies `go 1.21`.
|
||||
|
||||
### Cgo {#cgo}
|
||||
|
||||
<!-- go.dev/issue/66456 -->
|
||||
[cmd/cgo] supports the new `-ldflags` flag for passing flags to the C linker.
|
||||
The `go` command uses it automatically, avoiding "argument list too long"
|
||||
errors with a very large `CGO_LDFLAGS`.
|
||||
|
||||
### Trace {#trace}
|
||||
|
||||
<!-- go.dev/issue/65316 -->
|
||||
The `trace` tool now better tolerates partially broken traces by attempting to
|
||||
recover what trace data it can. This functionality is particularly helpful when
|
||||
viewing a trace that was collected during a program crash, since the trace data
|
||||
leading up to the crash will now [be recoverable](/issue/65319) under most
|
||||
circumstances.
|
||||
7
doc/next/4-runtime.md
Normal file
7
doc/next/4-runtime.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## Runtime {#runtime}
|
||||
|
||||
The traceback printed by the runtime after an unhandled panic or other
|
||||
fatal error now indents the second and subsequent lines of the error
|
||||
message (for example, the argument to panic) by a single tab, so that
|
||||
it can be unambiguously distinguished from the stack trace of the
|
||||
first goroutine. See [#64590](/issue/64590) for discussion.
|
||||
38
doc/next/5-toolchain.md
Normal file
38
doc/next/5-toolchain.md
Normal file
@@ -0,0 +1,38 @@
|
||||
## Compiler {#compiler}
|
||||
|
||||
The build time overhead to building with [Profile Guided Optimization](/doc/pgo) has been reduced significantly.
|
||||
Previously, large builds could see 100%+ build time increase from enabling PGO.
|
||||
In Go 1.23, overhead should be in the single digit percentages.
|
||||
|
||||
<!-- https://go.dev/issue/62737 , https://golang.org/cl/576681, https://golang.org/cl/577615 -->
|
||||
The compiler in Go 1.23 can now overlap the stack frame slots of local variables
|
||||
accessed in disjoint regions of a function, which reduces stack usage
|
||||
for Go applications.
|
||||
|
||||
<!-- https://go.dev/cl/577935 -->
|
||||
For 386 and amd64, the compiler will use information from PGO to align certain
|
||||
hot blocks in loops. This improves performance an additional 1-1.5% at
|
||||
a cost of an additional 0.1% text and binary size. This is currently only implemented
|
||||
on 386 and amd64 because it has not shown an improvement on other platforms.
|
||||
Hot block alignment can be disabled with `-gcflags=[<packages>=]-d=alignhot=0`
|
||||
|
||||
## Assembler {#assembler}
|
||||
|
||||
## Linker {#linker}
|
||||
|
||||
<!-- go.dev/issue/67401, CL 585556, CL 587220, and many more -->
|
||||
The linker now disallows using a `//go:linkname` directive to refer to
|
||||
internal symbols in the standard library (including the runtime) that
|
||||
are not marked with `//go:linkname` on their definitions.
|
||||
Similarly, the linker disallows references to such symbols from assembly
|
||||
code.
|
||||
For backward compatibility, existing usages of `//go:linkname` found in
|
||||
a large open-source code corpus remain supported.
|
||||
Any new references to standard library internal symbols will be disallowed.
|
||||
|
||||
A linker command line flag `-checklinkname=0` can be used to disable
|
||||
this check, for debugging and experimenting purposes.
|
||||
|
||||
<!-- CL 473495 -->
|
||||
When building a dynamically linked ELF binary (including PIE binary), the
|
||||
new `-bindnow` flag enables immediate function binding.
|
||||
2
doc/next/6-stdlib/0-heading.md
Normal file
2
doc/next/6-stdlib/0-heading.md
Normal file
@@ -0,0 +1,2 @@
|
||||
## Core library {#library}
|
||||
|
||||
32
doc/next/6-stdlib/1-time.md
Normal file
32
doc/next/6-stdlib/1-time.md
Normal file
@@ -0,0 +1,32 @@
|
||||
### Timer changes
|
||||
|
||||
Go 1.23 makes two significant changes to the implementation of
|
||||
[time.Timer] and [time.Ticker].
|
||||
|
||||
<!-- go.dev/issue/61542 -->
|
||||
First, `Timer`s and `Ticker`s that are no longer referred to by the program
|
||||
become eligible for garbage collection immediately, even if their
|
||||
`Stop` methods have not been called.
|
||||
Earlier versions of Go did not collect unstopped `Timer`s until after
|
||||
they had fired and never collected unstopped `Ticker`s.
|
||||
|
||||
<!-- go.dev/issue/37196 -->
|
||||
Second, the timer channel associated with a `Timer` or `Ticker` is
|
||||
now unbuffered, with capacity 0.
|
||||
The main effect of this change is that Go now guarantees
|
||||
that for any call to a `Reset` or `Stop` method, no stale values
|
||||
prepared before that call will be sent or received after the call.
|
||||
Earlier versions of Go used channels with a one-element buffer,
|
||||
making it difficult to use `Reset` and `Stop` correctly.
|
||||
A visible effect of this change is that `len` and `cap` of timer channels
|
||||
now returns 0 instead of 1, which may affect programs that
|
||||
poll the length to decide whether a receive on the timer channel
|
||||
will succeed.
|
||||
Such code should use a non-blocking receive instead.
|
||||
|
||||
These new behaviors are only enabled when the main Go program
|
||||
is in a module with a `go.mod` `go` line using Go 1.23.0 or later.
|
||||
When Go 1.23 builds older programs, the old behaviors remain in effect.
|
||||
The new [GODEBUG setting](/doc/godebug) [`asynctimerchan=1`](/pkg/time/#NewTimer)
|
||||
can be used to revert back to asynchronous channel behaviors
|
||||
even when a program names Go 1.23.0 or later in its `go.mod` file.
|
||||
13
doc/next/6-stdlib/2-unique.md
Normal file
13
doc/next/6-stdlib/2-unique.md
Normal file
@@ -0,0 +1,13 @@
|
||||
### New unique package
|
||||
|
||||
The new [unique] package provides facilities for
|
||||
canonicalizing values (like "interning" or "hash-consing").
|
||||
|
||||
Any value of comparable type may be canonicalized with the new
|
||||
`Make[T]` function, which produces a reference to a canonical copy of
|
||||
the value in the form of a `Handle[T]`.
|
||||
Two `Handle[T]` are equal if and only if the values used to produce the
|
||||
handles are equal, allowing programs to deduplicate values and reduce
|
||||
their memory footprint.
|
||||
Comparing two `Handle[T]` values is efficient, reducing down to a simple
|
||||
pointer comparison.
|
||||
29
doc/next/6-stdlib/3-iter.md
Normal file
29
doc/next/6-stdlib/3-iter.md
Normal file
@@ -0,0 +1,29 @@
|
||||
### Iterators
|
||||
|
||||
The new [iter] package provides the basic definitions for working with
|
||||
user-defined iterators.
|
||||
|
||||
The [slices] package adds several functions that work with iterators:
|
||||
- [All](/pkg/slices#All) returns an iterator over slice indexes and values.
|
||||
- [Values](/pkg/slices#Values) returns an iterator over slice elements.
|
||||
- [Backward](/pkg/slices#Backward) returns an iterator that loops over
|
||||
a slice backward.
|
||||
- [Collect](/pkg/slices#Collect) collects values from an iterator into
|
||||
a new slice.
|
||||
- [AppendSeq](/pkg/slices#AppendSeq) appends values from an iterator to
|
||||
an existing slice.
|
||||
- [Sorted](/pkg/slices#Sorted) collects values from an iterator into a
|
||||
new slice, and then sorts the slice.
|
||||
- [SortedFunc](/pkg/slices#SortedFunc) is like `Sorted` but with a
|
||||
comparison function.
|
||||
- [SortedStableFunc](/pkg/slices#SortedStableFunc) is like `SortFunc`
|
||||
but uses a stable sort algorithm.
|
||||
- [Chunk](/pkg/slices#Chunk) returns an iterator over consecutive
|
||||
sub-slices of up to n elements of a slice.
|
||||
|
||||
The [maps] package adds several functions that work with iterators:
|
||||
- [All](/pkg/maps#All) returns an iterator over key-value pairs from a map.
|
||||
- [Keys](/pkg/maps#Keys) returns an iterator over keys in a map.
|
||||
- [Values](/pkg/maps#Values) returns an iterator over values in a map.
|
||||
- [Insert](/pkg/maps#Insert) adds the key-value pairs from an iterator to an existing map.
|
||||
- [Collect](/pkg/maps#Collect) collects key-value pairs from an iterator into a new map and returns it.
|
||||
11
doc/next/6-stdlib/4-structs.md
Normal file
11
doc/next/6-stdlib/4-structs.md
Normal file
@@ -0,0 +1,11 @@
|
||||
### New structs package
|
||||
|
||||
The new [structs] package provides
|
||||
types for struct fields that modify properties of
|
||||
the containing struct type such as memory layout.
|
||||
|
||||
In this release, the only such type is
|
||||
[`HostLayout`](/pkg/structs#HostLayout)
|
||||
which indicates that a structure with a field of that
|
||||
type has a layout that conforms to host platform
|
||||
expectations.
|
||||
3
doc/next/6-stdlib/99-minor/0-heading.md
Normal file
3
doc/next/6-stdlib/99-minor/0-heading.md
Normal file
@@ -0,0 +1,3 @@
|
||||
### Minor changes to the library {#minor_library_changes}
|
||||
|
||||
|
||||
1
doc/next/6-stdlib/99-minor/README
Normal file
1
doc/next/6-stdlib/99-minor/README
Normal file
@@ -0,0 +1 @@
|
||||
API changes and other small changes to the standard library go here.
|
||||
4
doc/next/6-stdlib/99-minor/archive/tar/50102.md
Normal file
4
doc/next/6-stdlib/99-minor/archive/tar/50102.md
Normal file
@@ -0,0 +1,4 @@
|
||||
If the argument to [FileInfoHeader] implements the new [FileInfoNames]
|
||||
interface, then the interface methods will be used to set the Uname/Gname
|
||||
of the file header. This allows applications to override the system-dependent
|
||||
Uname/Gname lookup.
|
||||
3
doc/next/6-stdlib/99-minor/crypto/tls/63369.md
Normal file
3
doc/next/6-stdlib/99-minor/crypto/tls/63369.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The TLS client now supports the Encrypted Client Hello [draft specification](https://www.ietf.org/archive/id/draft-ietf-tls-esni-18.html).
|
||||
This feature can be enabled by setting the [Config.EncryptedClientHelloConfigList]
|
||||
field to an encoded ECHConfigList for the host that is being connected to.
|
||||
3
doc/next/6-stdlib/99-minor/crypto/tls/63691.md
Normal file
3
doc/next/6-stdlib/99-minor/crypto/tls/63691.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The [QUICConn] type used by QUIC implementations includes new events
|
||||
reporting on the state of session resumption, and provides a way for
|
||||
the QUIC layer to add data to session tickets and session cache entries.
|
||||
3
doc/next/6-stdlib/99-minor/crypto/tls/66214.md
Normal file
3
doc/next/6-stdlib/99-minor/crypto/tls/66214.md
Normal file
@@ -0,0 +1,3 @@
|
||||
3DES cipher suites were removed from the default list used when
|
||||
[Config.CipherSuites] is nil. The default can be reverted by adding `tls3des=1` to
|
||||
the GODEBUG environment variable.
|
||||
3
doc/next/6-stdlib/99-minor/crypto/tls/67061.md
Normal file
3
doc/next/6-stdlib/99-minor/crypto/tls/67061.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The experimental post-quantum key exchange mechanism X25519Kyber768Draft00
|
||||
is now enabled by default when [Config.CurvePreferences] is nil.
|
||||
The default can be reverted by adding `tlskyber=0` to the GODEBUG environment variable.
|
||||
3
doc/next/6-stdlib/99-minor/crypto/tls/67065.md
Normal file
3
doc/next/6-stdlib/99-minor/crypto/tls/67065.md
Normal file
@@ -0,0 +1,3 @@
|
||||
Go 1.23 changed the behavior of [X509KeyPair] and [LoadX509KeyPair]
|
||||
to populate the [Certificate.Leaf] field of the returned [Certificate].
|
||||
The new `x509keypairleaf` [GODEBUG setting](/doc/godebug) is added for this behavior.
|
||||
3
doc/next/6-stdlib/99-minor/crypto/x509/45990.md
Normal file
3
doc/next/6-stdlib/99-minor/crypto/x509/45990.md
Normal file
@@ -0,0 +1,3 @@
|
||||
[CreateCertificateRequest] now correct supports RSA-PSS signature algorithms.
|
||||
|
||||
[CreateCertificateRequest] and [CreateRevocationList] now verify the generated signature using the signer’s public key. If the signature is invalid, an error is returned. This has been the behavior of [CreateCertificate] since Go 1.16.
|
||||
4
doc/next/6-stdlib/99-minor/crypto/x509/62048.md
Normal file
4
doc/next/6-stdlib/99-minor/crypto/x509/62048.md
Normal file
@@ -0,0 +1,4 @@
|
||||
The [`x509sha1` GODEBUG setting](/pkg/crypto/x509#InsecureAlgorithmError) will
|
||||
be removed in the next Go major release (Go 1.24). This will mean that crypto/x509
|
||||
will no longer support verifying signatures on certificates that use SHA-1 based
|
||||
signature algorithms.
|
||||
3
doc/next/6-stdlib/99-minor/crypto/x509/66249.md
Normal file
3
doc/next/6-stdlib/99-minor/crypto/x509/66249.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The new [ParseOID] function parses a dot-encoded ASN.1 Object Identifier string.
|
||||
The [OID] type now implements the [encoding.BinaryMarshaler],
|
||||
[encoding.BinaryUnmarshaler], [encoding.TextMarshaler], [encoding.TextUnmarshaler] interfaces.
|
||||
3
doc/next/6-stdlib/99-minor/database/sql/64707.md
Normal file
3
doc/next/6-stdlib/99-minor/database/sql/64707.md
Normal file
@@ -0,0 +1,3 @@
|
||||
Errors returned by [driver.Valuer] implementations are now wrapped for
|
||||
improved error handling during operations like [DB.Query], [DB.Exec],
|
||||
and [DB.QueryRow].
|
||||
3
doc/next/6-stdlib/99-minor/debug/elf/66054.md
Normal file
3
doc/next/6-stdlib/99-minor/debug/elf/66054.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The `debug/elf` package now defines [PT_OPENBSD_NOBTCFI]. This [ProgType] is
|
||||
used to disable Branch Tracking Control Flow Integrity (BTCFI) enforcement
|
||||
on OpenBSD binaries.
|
||||
2
doc/next/6-stdlib/99-minor/debug/elf/66836.md
Normal file
2
doc/next/6-stdlib/99-minor/debug/elf/66836.md
Normal file
@@ -0,0 +1,2 @@
|
||||
Now defines the symbol type constants [STT_RELC], [STT_SRELC], and
|
||||
[STT_GNU_IFUNC].
|
||||
3
doc/next/6-stdlib/99-minor/encoding/binary/60023.md
Normal file
3
doc/next/6-stdlib/99-minor/encoding/binary/60023.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The new [Encode] and [Decode] functions are byte slice equivalents
|
||||
to [Read] and [Write].
|
||||
[Append] allows marshaling multiple data into the same byte slice.
|
||||
2
doc/next/6-stdlib/99-minor/go/ast/66339.md
Normal file
2
doc/next/6-stdlib/99-minor/go/ast/66339.md
Normal file
@@ -0,0 +1,2 @@
|
||||
The new [Preorder] function returns a convenient iterator over all the
|
||||
nodes of a syntax tree.
|
||||
1
doc/next/6-stdlib/99-minor/go/types/46477.md
Normal file
1
doc/next/6-stdlib/99-minor/go/types/46477.md
Normal file
@@ -0,0 +1 @@
|
||||
<!-- see ../../../../2-language.md -->
|
||||
3
doc/next/6-stdlib/99-minor/go/types/65772.md
Normal file
3
doc/next/6-stdlib/99-minor/go/types/65772.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The [Func] type, which represents a function or method symbol, now
|
||||
has a [Func.Signature] method that returns the function's type, which
|
||||
is always a `Signature`.
|
||||
3
doc/next/6-stdlib/99-minor/go/types/66559.md
Normal file
3
doc/next/6-stdlib/99-minor/go/types/66559.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The [Alias] type now has an [Rhs] method that returns the type on the
|
||||
right-hand side of its declaration: given `type A = B`, the `Rhs` of A
|
||||
is B. ([#66559](/issue/66559))
|
||||
2
doc/next/6-stdlib/99-minor/go/types/67143.md
Normal file
2
doc/next/6-stdlib/99-minor/go/types/67143.md
Normal file
@@ -0,0 +1,2 @@
|
||||
The methods [Alias.Origin], [Alias.SetTypeParams], [Alias.TypeParams],
|
||||
and [Alias.TypeArgs] have been added. They are needed for generic alias types.
|
||||
4
doc/next/6-stdlib/99-minor/go/types/cl-577715.md
Normal file
4
doc/next/6-stdlib/99-minor/go/types/cl-577715.md
Normal file
@@ -0,0 +1,4 @@
|
||||
<!-- CL 577715, CL 579076 -->
|
||||
By default, go/types now produces [Alias] type nodes for type aliases.
|
||||
This behavior can be controlled by the `GODEBUG` `gotypesalias` flag.
|
||||
Its default has changed from 0 in Go 1.22 to 1 in Go 1.23.
|
||||
1
doc/next/6-stdlib/99-minor/iter/61897.md
Normal file
1
doc/next/6-stdlib/99-minor/iter/61897.md
Normal file
@@ -0,0 +1 @@
|
||||
<!-- see ../../3-iter.md -->
|
||||
1
doc/next/6-stdlib/99-minor/maps/61900.md
Normal file
1
doc/next/6-stdlib/99-minor/maps/61900.md
Normal file
@@ -0,0 +1 @@
|
||||
<!-- see ../../3-iter.md -->
|
||||
2
doc/next/6-stdlib/99-minor/math/rand/v2/61716.md
Normal file
2
doc/next/6-stdlib/99-minor/math/rand/v2/61716.md
Normal file
@@ -0,0 +1,2 @@
|
||||
The [Uint] function and [Rand.Uint] method have been added.
|
||||
They were inadvertently left out of Go 1.22.
|
||||
1
doc/next/6-stdlib/99-minor/math/rand/v2/67059.md
Normal file
1
doc/next/6-stdlib/99-minor/math/rand/v2/67059.md
Normal file
@@ -0,0 +1 @@
|
||||
The new [ChaCha8.Read] method implements the [io.Reader] interface.
|
||||
3
doc/next/6-stdlib/99-minor/net/62254.md
Normal file
3
doc/next/6-stdlib/99-minor/net/62254.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The new type [KeepAliveConfig] permits fine-tuning the keep-alive
|
||||
options for TCP connections, via a new [TCPConn.SetKeepAliveConfig]
|
||||
method and new KeepAliveConfig fields for [Dialer] and [ListenConfig].
|
||||
3
doc/next/6-stdlib/99-minor/net/63116.md
Normal file
3
doc/next/6-stdlib/99-minor/net/63116.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The [DNSError] type now wraps errors caused by timeouts or cancellation.
|
||||
For example, `errors.Is(someDNSErr, context.DeadlineExceedeed)`
|
||||
will now report whether a DNS error was caused by a timeout.
|
||||
3
doc/next/6-stdlib/99-minor/net/67925.md
Normal file
3
doc/next/6-stdlib/99-minor/net/67925.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The new `GODEBUG` setting `netedns0=0` disables sending EDNS0
|
||||
additional headers on DNS requests, as they reportedly break the DNS
|
||||
server on some modems.
|
||||
3
doc/next/6-stdlib/99-minor/net/http/46443.md
Normal file
3
doc/next/6-stdlib/99-minor/net/http/46443.md
Normal file
@@ -0,0 +1,3 @@
|
||||
[Cookie] now preserves double quotes surrounding a cookie value.
|
||||
The new [Cookie.Quoted] field indicates whether the [Cookie.Value]
|
||||
was originally quoted.
|
||||
1
doc/next/6-stdlib/99-minor/net/http/61472.md
Normal file
1
doc/next/6-stdlib/99-minor/net/http/61472.md
Normal file
@@ -0,0 +1 @@
|
||||
The new [Request.CookiesNamed] method retrieves all cookies that match the given name.
|
||||
1
doc/next/6-stdlib/99-minor/net/http/62490.md
Normal file
1
doc/next/6-stdlib/99-minor/net/http/62490.md
Normal file
@@ -0,0 +1 @@
|
||||
The new [Cookie.Partitioned] field identifies cookies with the Partitioned attribute.
|
||||
2
doc/next/6-stdlib/99-minor/net/http/64910.md
Normal file
2
doc/next/6-stdlib/99-minor/net/http/64910.md
Normal file
@@ -0,0 +1,2 @@
|
||||
The patterns used by [ServeMux] now allow one or more spaces or tabs after the method name.
|
||||
Previously, only a single space was permitted.
|
||||
7
doc/next/6-stdlib/99-minor/net/http/66008.md
Normal file
7
doc/next/6-stdlib/99-minor/net/http/66008.md
Normal file
@@ -0,0 +1,7 @@
|
||||
The new [ParseCookie] function parses a Cookie header value and
|
||||
returns all the cookies which were set in it. Since the same cookie
|
||||
name can appear multiple times the returned Values can contain
|
||||
more than one value for a given key.
|
||||
|
||||
The new [ParseSetCookie] function parses a Set-Cookie header value and
|
||||
returns a cookie. It returns an error on syntax error.
|
||||
16
doc/next/6-stdlib/99-minor/net/http/66343.md
Normal file
16
doc/next/6-stdlib/99-minor/net/http/66343.md
Normal file
@@ -0,0 +1,16 @@
|
||||
[ServeContent], [ServeFile], and [ServeFileFS] now remove
|
||||
the `Cache-Control`, `Content-Encoding`, `Etag`, and `Last-Modified`
|
||||
headers when serving an error. These headers usually apply to the
|
||||
non-error content, but not to the text of errors.
|
||||
|
||||
Middleware which wraps a [ResponseWriter] and applies on-the-fly
|
||||
encoding, such as `Content-Encoding: gzip`, will not function after
|
||||
this change. The previous behavior of [ServeContent], [ServeFile],
|
||||
and [ServeFileFS] may be restored by setting
|
||||
`GODEBUG=httpservecontentkeepheaders=1`.
|
||||
|
||||
Note that middleware which changes the size of the served content
|
||||
(such as by compressing it) already does not function properly when
|
||||
[ServeContent] handles a Range request. On-the-fly compression
|
||||
should use the `Transfer-Encoding` header instead of `Content-Encoding`.
|
||||
|
||||
3
doc/next/6-stdlib/99-minor/net/http/66405.md
Normal file
3
doc/next/6-stdlib/99-minor/net/http/66405.md
Normal file
@@ -0,0 +1,3 @@
|
||||
For inbound requests, the new [Request.Pattern] field contains the [ServeMux]
|
||||
pattern (if any) that matched the request. This field is not set when
|
||||
`GODEBUG=httpmuxgo121=1` is set.
|
||||
2
doc/next/6-stdlib/99-minor/net/http/httptest/59473.md
Normal file
2
doc/next/6-stdlib/99-minor/net/http/httptest/59473.md
Normal file
@@ -0,0 +1,2 @@
|
||||
The new [NewRequestWithContext] method creates an incoming request with
|
||||
a [context.Context].
|
||||
3
doc/next/6-stdlib/99-minor/os/33357.md
Normal file
3
doc/next/6-stdlib/99-minor/os/33357.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The [Stat] function now sets the [ModeSocket] bit for
|
||||
files that are Unix sockets on Windows. These files are identified
|
||||
by having a reparse tag set to `IO_REPARSE_TAG_AF_UNIX`.
|
||||
7
doc/next/6-stdlib/99-minor/os/61893.md
Normal file
7
doc/next/6-stdlib/99-minor/os/61893.md
Normal file
@@ -0,0 +1,7 @@
|
||||
On Windows, the mode bits reported by [Lstat] and [Stat] for
|
||||
reparse points changed. Mount points no longer have [ModeSymlink] set,
|
||||
and reparse points that are not symlinks, Unix sockets, or dedup files
|
||||
now always have [ModeIrregular] set.
|
||||
This behavior is controlled by the `winsymlink` setting.
|
||||
For Go 1.23, it defaults to `winsymlink=1`.
|
||||
Previous versions default to `winsymlink=0`.
|
||||
1
doc/next/6-stdlib/99-minor/os/62484.md
Normal file
1
doc/next/6-stdlib/99-minor/os/62484.md
Normal file
@@ -0,0 +1 @@
|
||||
The [CopyFS] function copies an [io/fs.FS] into the local filesystem.
|
||||
5
doc/next/6-stdlib/99-minor/os/63703.md
Normal file
5
doc/next/6-stdlib/99-minor/os/63703.md
Normal file
@@ -0,0 +1,5 @@
|
||||
On Windows, [Readlink] no longer tries to normalize volumes
|
||||
to drive letters, which was not always even possible.
|
||||
This behavior is controlled by the `winreadlinkvolume` setting.
|
||||
For Go 1.23, it defaults to `winreadlinkvolume=1`.
|
||||
Previous versions default to `winreadlinkvolume=0`.
|
||||
2
doc/next/6-stdlib/99-minor/path/filepath/57151.md
Normal file
2
doc/next/6-stdlib/99-minor/path/filepath/57151.md
Normal file
@@ -0,0 +1,2 @@
|
||||
The new [Localize] function safely converts a slash-separated
|
||||
path into an operating system path.
|
||||
11
doc/next/6-stdlib/99-minor/path/filepath/63703.md
Normal file
11
doc/next/6-stdlib/99-minor/path/filepath/63703.md
Normal file
@@ -0,0 +1,11 @@
|
||||
On Windows, [EvalSymlinks] no longer evaluates mount points,
|
||||
which was a source of many inconsistencies and bugs.
|
||||
This behavior is controlled by the `winsymlink` setting.
|
||||
For Go 1.23, it defaults to `winsymlink=1`.
|
||||
Previous versions default to `winsymlink=0`.
|
||||
|
||||
On Windows, [EvalSymlinks] no longer tries to normalize
|
||||
volumes to drive letters, which was not always even possible.
|
||||
This behavior is controlled by the `winreadlinkvolume` setting.
|
||||
For Go 1.23, it defaults to `winreadlinkvolume=1`.
|
||||
Previous versions default to `winreadlinkvolume=0`.
|
||||
6
doc/next/6-stdlib/99-minor/reflect/60427.md
Normal file
6
doc/next/6-stdlib/99-minor/reflect/60427.md
Normal file
@@ -0,0 +1,6 @@
|
||||
The new methods synonymous with the method of the same name
|
||||
in [Value] are added to [Type]:
|
||||
1. [Type.OverflowComplex]
|
||||
2. [Type.OverflowFloat]
|
||||
3. [Type.OverflowInt]
|
||||
4. [Type.OverflowUint]
|
||||
3
doc/next/6-stdlib/99-minor/reflect/61308.md
Normal file
3
doc/next/6-stdlib/99-minor/reflect/61308.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The new [SliceAt] function is analogous to [NewAt], but for slices.
|
||||
|
||||
The [Value.Pointer] and [Value.UnsafePointer] methods now support values of kind [String].
|
||||
4
doc/next/6-stdlib/99-minor/reflect/66056.md
Normal file
4
doc/next/6-stdlib/99-minor/reflect/66056.md
Normal file
@@ -0,0 +1,4 @@
|
||||
The new methods [Value.Seq] and [Value.Seq2] return sequences that iterate over the value
|
||||
as though it were used in a for/range loop.
|
||||
The new methods [Type.CanSeq] and [Type.CanSeq2] report whether calling
|
||||
[Value.Seq] and [Value.Seq2], respectively, will succeed without panicking.
|
||||
5
doc/next/6-stdlib/99-minor/runtime/debug/42888.md
Normal file
5
doc/next/6-stdlib/99-minor/runtime/debug/42888.md
Normal file
@@ -0,0 +1,5 @@
|
||||
The [SetCrashOutput] function allows the user to specify an alternate
|
||||
file to which the runtime should write its fatal crash report.
|
||||
It may be used to construct an automated reporting mechanism for all
|
||||
unexpected crashes, not just those in goroutines that explicitly use
|
||||
`recover`.
|
||||
1
doc/next/6-stdlib/99-minor/runtime/debug/67182.md
Normal file
1
doc/next/6-stdlib/99-minor/runtime/debug/67182.md
Normal file
@@ -0,0 +1 @@
|
||||
<!-- pacify TestCheckAPIFragments -->
|
||||
2
doc/next/6-stdlib/99-minor/runtime/pprof/43669.md
Normal file
2
doc/next/6-stdlib/99-minor/runtime/pprof/43669.md
Normal file
@@ -0,0 +1,2 @@
|
||||
The maximum stack depth for alloc, mutex, block, threadcreate and goroutine
|
||||
profiles has been raised from 32 to 128 frames.
|
||||
4
doc/next/6-stdlib/99-minor/runtime/trace/65319.md
Normal file
4
doc/next/6-stdlib/99-minor/runtime/trace/65319.md
Normal file
@@ -0,0 +1,4 @@
|
||||
<!-- go.dev/issue/65319 -->
|
||||
The runtime now explicitly flushes trace data when a program crashes due to an
|
||||
uncaught panic. This means that more complete trace data will be available in a
|
||||
trace if the program crashes while tracing is active.
|
||||
1
doc/next/6-stdlib/99-minor/slices/53987.md
Normal file
1
doc/next/6-stdlib/99-minor/slices/53987.md
Normal file
@@ -0,0 +1 @@
|
||||
<!-- see ../../3-iter.md -->
|
||||
1
doc/next/6-stdlib/99-minor/slices/61899.md
Normal file
1
doc/next/6-stdlib/99-minor/slices/61899.md
Normal file
@@ -0,0 +1 @@
|
||||
<!-- see ../../3-iter.md -->
|
||||
2
doc/next/6-stdlib/99-minor/slices/65238.md
Normal file
2
doc/next/6-stdlib/99-minor/slices/65238.md
Normal file
@@ -0,0 +1,2 @@
|
||||
The [Repeat] function returns a new slice that repeats the
|
||||
provided slice the given number of times.
|
||||
1
doc/next/6-stdlib/99-minor/structs/66408.md
Normal file
1
doc/next/6-stdlib/99-minor/structs/66408.md
Normal file
@@ -0,0 +1 @@
|
||||
<!-- This is a new package; covered in 6-stdlib/3-structs.md. -->
|
||||
2
doc/next/6-stdlib/99-minor/sync/61696.md
Normal file
2
doc/next/6-stdlib/99-minor/sync/61696.md
Normal file
@@ -0,0 +1,2 @@
|
||||
The [Map.Clear] method deletes all the entries, resulting in
|
||||
an empty [Map]. It is analogous to `clear`.
|
||||
3
doc/next/6-stdlib/99-minor/sync/atomic/61395.md
Normal file
3
doc/next/6-stdlib/99-minor/sync/atomic/61395.md
Normal file
@@ -0,0 +1,3 @@
|
||||
<!-- Issue #61395 -->
|
||||
The new [And] and [Or] operators apply a bitwise `AND` or `OR` to
|
||||
the given input, returning the old value.
|
||||
1
doc/next/6-stdlib/99-minor/syscall/62254.md
Normal file
1
doc/next/6-stdlib/99-minor/syscall/62254.md
Normal file
@@ -0,0 +1 @@
|
||||
The syscall package now defines [WSAENOPROTOOPT] on Windows.
|
||||
1
doc/next/6-stdlib/99-minor/syscall/65817.md
Normal file
1
doc/next/6-stdlib/99-minor/syscall/65817.md
Normal file
@@ -0,0 +1 @@
|
||||
The [GetsockoptInt] function is now supported on Windows.
|
||||
3
doc/next/6-stdlib/99-minor/testing/fstest/63675.md
Normal file
3
doc/next/6-stdlib/99-minor/testing/fstest/63675.md
Normal file
@@ -0,0 +1,3 @@
|
||||
[TestFS] now returns a structured error that can be unwrapped
|
||||
(via method `Unwrap() []error`). This allows inspecting errors
|
||||
using [errors.Is] or [errors.As].
|
||||
1
doc/next/6-stdlib/99-minor/text/template/57646.md
Normal file
1
doc/next/6-stdlib/99-minor/text/template/57646.md
Normal file
@@ -0,0 +1 @@
|
||||
Templates now support the new "else with" action, which reduces template complexity in some use cases.
|
||||
2
doc/next/6-stdlib/99-minor/time/67470.md
Normal file
2
doc/next/6-stdlib/99-minor/time/67470.md
Normal file
@@ -0,0 +1,2 @@
|
||||
[Parse] and [ParseInLocation] now return an error if the time zone
|
||||
offset is out of range.
|
||||
3
doc/next/6-stdlib/99-minor/unicode/utf16/44940.md
Normal file
3
doc/next/6-stdlib/99-minor/unicode/utf16/44940.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The [RuneLen] function returns the number of 16-bit words in
|
||||
the UTF-16 encoding of the rune. It returns -1 if the rune
|
||||
is not a valid value to encode in UTF-16.
|
||||
1
doc/next/6-stdlib/99-minor/unique/62483.md
Normal file
1
doc/next/6-stdlib/99-minor/unique/62483.md
Normal file
@@ -0,0 +1 @@
|
||||
<!-- This is a new package; covered in 6-stdlib/2-unique.md. -->
|
||||
38
doc/next/7-ports.md
Normal file
38
doc/next/7-ports.md
Normal file
@@ -0,0 +1,38 @@
|
||||
## Ports {#ports}
|
||||
|
||||
### Darwin {#darwin}
|
||||
|
||||
<!-- go.dev/issue/64207 -->
|
||||
As [announced](go1.22#darwin) in the Go 1.22 release notes,
|
||||
Go 1.23 requires macOS 11 Big Sur or later;
|
||||
support for previous versions has been discontinued.
|
||||
|
||||
### Linux {#linux}
|
||||
|
||||
<!-- go.dev/issue/67001 -->
|
||||
Go 1.23 is the last release that requires Linux kernel version 2.6.32 or later. Go 1.24 will require Linux kernel version 3.17 or later, with an exception that systems running 3.10 or later will continue to be supported if the kernel has been patched to support the getrandom system call.
|
||||
|
||||
### OpenBSD {#openbsd}
|
||||
|
||||
<!-- go.dev/issue/55999, CL 518629, CL 518630 -->
|
||||
Go 1.23 adds experimental support for OpenBSD on 64-bit RISC-V (`GOOS=openbsd`, `GOARCH=riscv64`).
|
||||
|
||||
### ARM64 {#arm64}
|
||||
|
||||
<!-- go.dev/issue/60905, CL 559555 -->
|
||||
Go 1.23 introduces a new `GOARM64` environment variable, which specifies the minimum target version of the ARM64 architecture at compile time. Allowed values are `v8.{0-9}` and `v9.{0-5}`. This may be followed by an option specifying extensions implemented by target hardware. Valid options are `,lse` and `,crypto`.
|
||||
|
||||
The `GOARM64` environment variable defaults to `v8.0`.
|
||||
|
||||
### RISC-V {#riscv}
|
||||
|
||||
<!-- go.dev/issue/61476, CL 541135 -->
|
||||
Go 1.23 introduces a new `GORISCV64` environment variable, which selects the [RISC-V user-mode application profile](https://github.com/riscv/riscv-profiles/blob/main/src/profiles.adoc) for which to compile. Allowed values are `rva20u64` and `rva22u64`.
|
||||
|
||||
The `GORISCV64` environment variable defaults to `rva20u64`.
|
||||
|
||||
### Wasm {#wasm}
|
||||
|
||||
<!-- go.dev/issue/63718 -->
|
||||
The `go_wasip1_wasm_exec` script in `GOROOT/misc/wasm` has dropped support
|
||||
for versions of `wasmtime` < 14.0.0.
|
||||
51
doc/next/9-todo.md
Normal file
51
doc/next/9-todo.md
Normal file
@@ -0,0 +1,51 @@
|
||||
<!-- These items need to be completed and moved to an appropriate location in the release notes. -->
|
||||
|
||||
<!-- These items need to be reviewed, and mentioned in the Go 1.23 release notes if applicable.
|
||||
|
||||
None right now; more may come up later on.
|
||||
-->
|
||||
|
||||
<!-- Maybe should be documented? Maybe shouldn't? Someone familiar with the change needs to determine.
|
||||
|
||||
CL 359594 ("x/website/_content/ref/mod: document dotless module paths") - resolved go.dev/issue/32819 ("cmd/go: document that module names without dots are reserved") and also mentioned accepted proposal go.dev/issue/37641
|
||||
CL 570681 ("os: make FindProcess use pidfd on Linux") mentions accepted proposal go.dev/issue/51246 (described as fully implemented in Go 1.22) and NeedsInvestigation continuation issue go.dev/issue/62654.
|
||||
CL 555075 ("x/tools/go/ssa: support range-over-func") - x/tools CL implements range-over-func support in x/tools/go/ssa for accepted proposal https://go.dev/issue/66601; this particular proposal and change doesn't seem to need a dedicated mention in Go 1.23 release notes but someone more familiar should take another look
|
||||
-->
|
||||
|
||||
<!-- Items that don't need to be mentioned in Go 1.23 release notes but are picked up by relnote todo.
|
||||
|
||||
CL 458895 - an x/playground fix that mentioned an accepted cmd/go proposal go.dev/issue/40728 in Go 1.16 milestone...
|
||||
CL 582097 - an x/build CL working on relnote itself; it doesn't need a release note
|
||||
CL 561935 - crypto CL that used purego tag and mentioned accepted-but-not-implemented proposal https://go.dev/issue/23172 to document purego tag; doesn't need a release note
|
||||
CL 568340 - fixed a spurious race in time.Ticker.Reset (added via accepted proposal https://go.dev/issue/33184), doesn't seem to need a release note
|
||||
CL 562619 - x/website CL documented minimum bootstrap version on go.dev, mentioning accepted proposals go.dev/issue/54265 and go.dev/issue/44505; doesn't need a release note
|
||||
CL 557055 - x/tools CL implemented accepted proposal https://go.dev/issue/46941 for x/tools/go/ssa
|
||||
CL 564275 - an x/tools CL that updates test data in preparation for accepted proposal https://go.dev/issue/51473; said proposal isn't implemented for Go 1.23 and so it doesn't need a release note
|
||||
CL 572535 - used "unix" build tag in more places, mentioned accepted proposal https://go.dev/issue/51572; doesn't need a release note
|
||||
CL 555255 - an x/tools CL implements accepted proposal https://go.dev/issue/53367 for x/tools/go/cfg
|
||||
CL 585216 - an x/build CL mentions accepted proposal https://go.dev/issue/56001 because it fixed a bug causing downloads not to be produced for that new-to-Go-1.22 port; this isn't relevant to Go 1.23 release notes
|
||||
CL 481062 - added examples for accepted proposal https://go.dev/issue/56102; doesn't need a release note
|
||||
CL 497195 - an x/net CL adds one of 4 fields for accepted proposal https://go.dev/issue/57893 in x/net/http2; seemingly not related to net/http and so doesn't need a Go 1.23 release note
|
||||
CL 463097, CL 568198 - x/net CLs that implemented accepted proposal https://go.dev/issue/57953 for x/net/websocket; no need for rel note
|
||||
many x/net CLs - work on accepted proposal https://go.dev/issue/58547 to add a QUIC implementation to x/net/quic
|
||||
CL 514775 - implements a performance optimization for accepted proposal https://go.dev/issue/59488
|
||||
CL 484995 - x/sys CL implements accepted proposal https://go.dev/issue/59537 to add x/sys/unix API
|
||||
CL 555597 - optimizes TypeFor (added in accepted proposal https://go.dev/issue/60088) for non-interface types; doesn't seem to need a release note
|
||||
a few x/tools CLs deprecated and deleted the experimental golang.org/x/tools/cmd/getgo tool per accepted proposal https://go.dev/issue/60951; an unreleased change and not something that's in scope of Go 1.23 release notes
|
||||
many x/vuln CLs to implement accepted proposal https://go.dev/issue/61347 ("x/vuln: convert govulncheck output to sarif format") in govulncheck
|
||||
CL 516355 - x/crypto CL that implemented accepted proposal https://go.dev/issue/61447 for x/crypto/ssh; doesn't need a Go 1.23 release note
|
||||
CL 559799 - a Go 1.22 release note edit CL mentioned a Go 1.22 accepted proposal https://go.dev/issue/62039, a little after Go 1.23 development began
|
||||
CL 581555 - an x/tools CL mentioned accepted proposal https://go.dev/issue/62292 for x/tools/go/aalysis; doesn't need a Go 1.23 release note
|
||||
CL 578355 - mentioned accepted proposal https://go.dev/issue/63131 to add GOARCH=wasm32, but that proposal hasn't been implemented in Go 1.23 so it doesn't need a release note
|
||||
CL 543335 - x/exp CL that backported a change to behavior in slices package (accepted proposal https://go.dev/issue/63393) to x/exp/slices; doesn't need a Go 1.23 release note
|
||||
CL 556820 - x/tools CL implemented accepted proposal https://go.dev/issue/64548 for x/tools/go/analysis
|
||||
CL 557056 - x/tools CL implemented accepted proposal https://go.dev/issue/64608 for x/tools/go/packages
|
||||
CL 558695 - x/crypto CL worked on accepted proposal https://go.dev/issue/64962 for x/crypto/ssh
|
||||
CL 572016 - x/tools CL implemented accepted proposal https://go.dev/issue/65754 for x/tools/go/cfg
|
||||
a few x/tools CLs tagged and deleted the golang.org/x/tools/cmd/guru command per accepted proposal https://go.dev/issue/65880; an unreleased change and not something that's in scope of Go 1.23 release notes
|
||||
CL 580076 - seemingly internal cmd/go change to propagate module information for accepted proposal https://go.dev/issue/66315; doesn't seem to warrant a release note
|
||||
CL 529816 - the 'tests' vet check was initially added to the 'go test' suite per accepted proposal https://go.dev/issue/44251, but the change was rolled back in CL 571695, with no roll forward as of 2024-05-23; nothing to document in Go 1.23 release notes for it at this time
|
||||
CL 564035 - changed encoding/xml, but the change was too disrptive and rolled back in CL 570175, reopening tracking issue go.dev/issue/65691; nothing to document in Go 1.23 release notes
|
||||
CL 587855 - a demonstration of benefit of accepted proposal https://go.dev/issue/60529; actual change isn't happening in Go 1.23 so doesn't need a release note
|
||||
CL 526875 - x/crypto CL implemented accepted proposal https://go.dev/issue/62518 for x/crypto/ssh
|
||||
-->
|
||||
@@ -1,46 +0,0 @@
|
||||
# Copyright 2024 The Go Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style
|
||||
# license that can be found in the LICENSE file.
|
||||
|
||||
# Rules for building and testing new FIPS snapshots.
|
||||
# For example:
|
||||
#
|
||||
# make v1.2.3.zip
|
||||
# make v1.2.3.test
|
||||
#
|
||||
# and then if changes are needed, check them into master
|
||||
# and run 'make v1.2.3.rm' and repeat.
|
||||
#
|
||||
# Note that once published a snapshot zip file should never
|
||||
# be modified. We record the sha256 hashes of the zip files
|
||||
# in fips140.sum, and the cmd/go/internal/fips140 test checks
|
||||
# that the zips match.
|
||||
#
|
||||
# When the zip file is finalized, run 'make updatesum' to update
|
||||
# fips140.sum.
|
||||
|
||||
default:
|
||||
@echo nothing to make
|
||||
|
||||
# make v1.2.3.zip builds a v1.2.3.zip file
|
||||
# from the current origin/master.
|
||||
# copy and edit the 'go run' command by hand to use a different branch.
|
||||
v%.zip:
|
||||
git fetch origin master
|
||||
go run ../../src/cmd/go/internal/fips140/mkzip.go v$*
|
||||
|
||||
# normally mkzip refuses to overwrite an existing zip file.
|
||||
# make v1.2.3.rm removes the zip file and unpacked
|
||||
# copy from the module cache.
|
||||
v%.rm:
|
||||
rm -f v$*.zip
|
||||
chmod -R u+w $$(go env GOMODCACHE)/golang.org/fips140@v$* 2>/dev/null || true
|
||||
rm -rf $$(go env GOMODCACHE)/golang.org/fips140@v$*
|
||||
|
||||
# make v1.2.3.test runs the crypto tests using that snapshot.
|
||||
v%.test:
|
||||
GOFIPS140=v$* go test -short crypto...
|
||||
|
||||
# make updatesum updates the fips140.sum file.
|
||||
updatesum:
|
||||
go test cmd/go/internal/fips140 -update
|
||||
@@ -1,9 +0,0 @@
|
||||
This directory holds snapshots of the crypto/internal/fips140 tree
|
||||
that are being validated and certified for FIPS-140 use.
|
||||
The file x.txt (for example, inprocess.txt, certified.txt)
|
||||
defines the meaning of the FIPS version alias x, listing
|
||||
the exact version to use.
|
||||
|
||||
The zip files are created by cmd/go/internal/fips140/mkzip.go.
|
||||
The fips140.sum file lists checksums for the zip files.
|
||||
See the Makefile for recipes.
|
||||
@@ -1,13 +0,0 @@
|
||||
# SHA256 checksums of snapshot zip files in this directory.
|
||||
# These checksums are included in the FIPS security policy
|
||||
# (validation instructions sent to the lab) and MUST NOT CHANGE.
|
||||
# That is, the zip files themselves must not change.
|
||||
#
|
||||
# It is okay to add new zip files to the list, and it is okay to
|
||||
# remove zip files from the list when they are removed from
|
||||
# this directory. To update this file:
|
||||
#
|
||||
# go test cmd/go/internal/fips140 -update
|
||||
#
|
||||
v1.0.0-c2097c7c.zip daf3614e0406f67ae6323c902db3f953a1effb199142362a039e7526dfb9368b
|
||||
v1.1.0-rc1.zip ea94f8c3885294c9efe1bd8f9b6e86daeb25b6aff2aeb20707cd9a5101f6f54e
|
||||
@@ -1 +0,0 @@
|
||||
v1.0.0-c2097c7c
|
||||
Binary file not shown.
@@ -1 +0,0 @@
|
||||
v1.0.0-c2097c7c
|
||||
Binary file not shown.
@@ -1,64 +0,0 @@
|
||||
# Copyright 2025 The Go Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style
|
||||
# license that can be found in the LICENSE file.
|
||||
|
||||
# Mercurial extension to add a 'goreposum' command that
|
||||
# computes a hash of a remote repo's tag state.
|
||||
# Tag definitions can come from the .hgtags file stored in
|
||||
# any head of any branch, and the server protocol does not
|
||||
# expose the tags directly. However, the protocol does expose
|
||||
# the hashes of all the branch heads, so we can use a hash of
|
||||
# all those branch names and heads as a conservative snapshot
|
||||
# of the entire remote repo state, and use that as the tag sum.
|
||||
# Any change on the server then invalidates the tag sum,
|
||||
# even if it didn't have anything to do with tags, but at least
|
||||
# we will avoid re-cloning a server when there have been no
|
||||
# changes at all.
|
||||
#
|
||||
# Separately, this extension also adds a 'golookup' command that
|
||||
# returns the hash of a specific reference, like 'default' or a tag.
|
||||
# And golookup of a hash confirms that it still exists on the server.
|
||||
# We can use that to revalidate that specific versions still exist and
|
||||
# have the same meaning they did the last time we checked.
|
||||
#
|
||||
# Usage:
|
||||
#
|
||||
# hg --config "extensions.goreposum=$GOROOT/lib/hg/goreposum.py" goreposum REPOURL
|
||||
|
||||
import base64, hashlib, sys
|
||||
from mercurial import registrar, ui, hg, node
|
||||
from mercurial.i18n import _
|
||||
cmdtable = {}
|
||||
command = registrar.command(cmdtable)
|
||||
@command(b'goreposum', [], _('url'), norepo=True)
|
||||
def goreposum(ui, url):
|
||||
"""
|
||||
goreposum computes a checksum of all the named state in the remote repo.
|
||||
It hashes together all the branch names and hashes
|
||||
and then all the bookmark names and hashes.
|
||||
Tags are stored in .hgtags files in any of the branches,
|
||||
so the branch metadata includes the tags as well.
|
||||
"""
|
||||
h = hashlib.sha256()
|
||||
peer = hg.peer(ui, {}, url)
|
||||
for name, revs in peer.branchmap().items():
|
||||
h.update(name)
|
||||
for r in revs:
|
||||
h.update(b' ')
|
||||
h.update(r)
|
||||
h.update(b'\n')
|
||||
if (b'bookmarks' in peer.listkeys(b'namespaces')):
|
||||
for name, rev in peer.listkeys(b'bookmarks').items():
|
||||
h.update(name)
|
||||
h.update(b'=')
|
||||
h.update(rev)
|
||||
h.update(b'\n')
|
||||
print('r1:'+base64.standard_b64encode(h.digest()).decode('utf-8'))
|
||||
|
||||
@command(b'golookup', [], _('url rev'), norepo=True)
|
||||
def golookup(ui, url, rev):
|
||||
"""
|
||||
golookup looks up a single identifier in the repo,
|
||||
printing its hash.
|
||||
"""
|
||||
print(node.hex(hg.peer(ui, {}, url).lookup(rev)).decode('utf-8'))
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user