mirror of
https://github.com/golang/go.git
synced 2025-12-07 13:50:04 +00:00
doc/next: delete
The release note fragments have been merged and added as _content/doc/go1.26.md in x/website in CL 726360. For #75005. Change-Id: I13533b8a6aac470afe066ddf420028c0360a5bb1 Reviewed-on: https://go-review.googlesource.com/c/go/+/726341 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Gopher Robot <gobot@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Mark Freeman <markfreeman@google.com>
This commit is contained in:
parent
dcc5fe0c62
commit
5945fc02fc
60 changed files with 0 additions and 360 deletions
|
|
@ -1,8 +0,0 @@
|
||||||
<style>
|
|
||||||
main ul li { margin: 0.5em 0; }
|
|
||||||
</style>
|
|
||||||
|
|
||||||
## DRAFT RELEASE NOTES — Introduction to Go 1.26 {#introduction}
|
|
||||||
|
|
||||||
**Go 1.26 is not yet released. These are work-in-progress release notes.
|
|
||||||
Go 1.26 is expected to be released in February 2026.**
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
## Changes to the language {#language}
|
|
||||||
|
|
||||||
<!-- https://go.dev/issue/45624 --->
|
|
||||||
|
|
||||||
The built-in `new` function, which creates a new variable, now allows
|
|
||||||
its operand to be an expression, specifying the initial value of the
|
|
||||||
variable.
|
|
||||||
|
|
||||||
This feature is particularly useful when working with serialization
|
|
||||||
packages such as `encoding/json` or protocol buffers that use a
|
|
||||||
pointer to represent an optional value, as it enables an optional
|
|
||||||
field to be populated in a simple expression, for example:
|
|
||||||
|
|
||||||
```go
|
|
||||||
import "encoding/json"
|
|
||||||
|
|
||||||
type Person struct {
|
|
||||||
Name string `json:"name"`
|
|
||||||
Age *int `json:"age"` // age if known; nil otherwise
|
|
||||||
}
|
|
||||||
|
|
||||||
func personJSON(name string, born time.Time) ([]byte, error) {
|
|
||||||
return json.Marshal(Person{
|
|
||||||
Name: name,
|
|
||||||
Age: new(yearsSince(born)),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func yearsSince(t time.Time) int {
|
|
||||||
return int(time.Since(t).Hours() / (365.25 * 24)) // approximately
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
## Tools {#tools}
|
|
||||||
|
|
||||||
### Go command {#go-command}
|
|
||||||
|
|
||||||
<!-- go.dev/issue/74667 -->
|
|
||||||
`cmd/doc`, and `go tool doc` have been deleted. `go doc` can be used as
|
|
||||||
a replacement for `go tool doc`: it takes the same flags and arguments and
|
|
||||||
has the same behavior.
|
|
||||||
|
|
||||||
<!-- go.dev/issue/75432 -->
|
|
||||||
The `go fix` command, following the pattern of `go vet` in Go 1.10,
|
|
||||||
now uses the Go analysis framework (`golang.org/x/tools/go/analysis`).
|
|
||||||
This means the same analyzers that provide diagnostics in `go vet`
|
|
||||||
can be used to suggest and apply fixes in `go fix`.
|
|
||||||
The `go fix` command's historical fixers, all of which were obsolete,
|
|
||||||
have been removed and replaced by a suite of new analyzers that
|
|
||||||
offer fixes to use newer features of the language and library.
|
|
||||||
<!-- I'll write a blog post that discusses this at length. --adonovan -->
|
|
||||||
|
|
||||||
### Cgo {#cgo}
|
|
||||||
|
|
||||||
### Pprof {#pprof}
|
|
||||||
|
|
||||||
<!-- go.dev/issue/74774 -->
|
|
||||||
The `pprof` tool web UI, enabled with the `-http` flag, now defaults to the flame graph view.
|
|
||||||
The previous graph view is available in the "View -> Graph" menu, or via `/ui/graph`.
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
## Runtime {#runtime}
|
|
||||||
|
|
||||||
### New garbage collector
|
|
||||||
|
|
||||||
The Green Tea garbage collector, previously available as an experiment in
|
|
||||||
Go 1.25, is now enabled by default after incorporating feedback.
|
|
||||||
|
|
||||||
This garbage collector’s design improves the performance of marking and
|
|
||||||
scanning small objects through better locality and CPU scalability.
|
|
||||||
Benchmark results vary, but we expect somewhere between a 10—40% reduction
|
|
||||||
in garbage collection overhead in real-world programs that heavily use the
|
|
||||||
garbage collector.
|
|
||||||
Further improvements, on the order of 10% in garbage collection overhead,
|
|
||||||
are expected when running on newer amd64-based CPU platforms (Intel Ice
|
|
||||||
Lake or AMD Zen 4 and newer), as the garbage collector now leverages
|
|
||||||
vector instructions for scanning small objects when possible.
|
|
||||||
|
|
||||||
The new garbage collector may be disabled by setting
|
|
||||||
`GOEXPERIMENT=nogreenteagc` at build time.
|
|
||||||
This opt-out setting is expected to be removed in Go 1.27.
|
|
||||||
If you disable the new garbage collector for any reason related to its
|
|
||||||
performance or behavior, please [file an issue](/issue/new).
|
|
||||||
|
|
||||||
### Faster cgo calls
|
|
||||||
|
|
||||||
<!-- CL 646198 -->
|
|
||||||
|
|
||||||
The baseline runtime overhead of cgo calls has been reduced by ~30%.
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
## Compiler {#compiler}
|
|
||||||
|
|
||||||
<!-- CLs 707755, 722440 -->
|
|
||||||
|
|
||||||
The compiler can now allocate the backing store for slices on the stack in more
|
|
||||||
situations, which improves performance. If this change is causing trouble, the
|
|
||||||
[bisect tool](https://pkg.go.dev/golang.org/x/tools/cmd/bisect) can be used to
|
|
||||||
find the allocation causing trouble using the `-compile=variablemake` flag. All
|
|
||||||
such new stack allocations can also be turned off using
|
|
||||||
`-gcflags=all=-d=variablemakehash=n`.
|
|
||||||
|
|
||||||
## Assembler {#assembler}
|
|
||||||
|
|
||||||
## Linker {#linker}
|
|
||||||
|
|
||||||
On 64-bit ARM-based Windows (the `windows/arm64` port), the linker now supports internal
|
|
||||||
linking mode of cgo programs, which can be requested with the
|
|
||||||
`-ldflags=-linkmode=internal` flag.
|
|
||||||
|
|
||||||
## Bootstrap {#bootstrap}
|
|
||||||
|
|
||||||
<!-- go.dev/issue/69315 -->
|
|
||||||
As mentioned in the [Go 1.24 release notes](/doc/go1.24#bootstrap), Go 1.26 now requires
|
|
||||||
Go 1.24.6 or later for bootstrap.
|
|
||||||
We expect that Go 1.28 will require a minor release of Go 1.26 or later for bootstrap.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
## Standard library {#library}
|
|
||||||
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
### New secret package
|
|
||||||
|
|
||||||
<!-- https://go.dev/issue/21865 --->
|
|
||||||
|
|
||||||
The new [secret](/pkg/runtime/secret) package is available as an experiment.
|
|
||||||
It provides a facility for securely erasing temporaries used in
|
|
||||||
code that manipulates secret information, typically cryptographic in nature.
|
|
||||||
Users can access it by passing `GOEXPERIMENT=runtimesecret` at build time.
|
|
||||||
|
|
||||||
<!-- if we land any code that uses runtimesecret for forward secrecy
|
|
||||||
like crypto/tls, mention them here too -->
|
|
||||||
|
|
||||||
The secret.Do function runs its function argument and then erases all
|
|
||||||
temporary storage (registers, stack, new heap allocations) used by
|
|
||||||
that function argument. Heap storage is not erased until that storage
|
|
||||||
is deemed unreachable by the garbage collector, which might take some
|
|
||||||
time after secret.Do completes.
|
|
||||||
|
|
||||||
This package is intended to make it easier to ensure [forward
|
|
||||||
secrecy](https://en.wikipedia.org/wiki/Forward_secrecy).
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
### crypto/hpke
|
|
||||||
|
|
||||||
The new [crypto/hpke] package implements Hybrid Public Key Encryption
|
|
||||||
(HPKE) as specified in [RFC 9180], including support for post-quantum
|
|
||||||
hybrid KEMs.
|
|
||||||
|
|
||||||
[RFC 9180]: https://rfc-editor.org/rfc/rfc9180.html
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
### Minor changes to the library {#minor_library_changes}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
API changes and other small changes to the standard library go here.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
The new [Buffer.Peek] method returns the next n bytes from the buffer without
|
|
||||||
advancing it.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
The new [Encapsulator] and [Decapsulator] interfaces allow accepting abstract
|
|
||||||
KEM encapsulation or decapsulation keys.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
The random parameter to [GenerateKey] is now ignored.
|
|
||||||
Instead, it now always uses a secure source of cryptographically random bytes.
|
|
||||||
For deterministic testing, use the new [testing/cryptotest.SetGlobalRandom] function.
|
|
||||||
The new GODEBUG setting `cryptocustomrand=1` temporarily restores the old behavior.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
The random parameter to [Curve.GenerateKey] is now ignored.
|
|
||||||
Instead, it now always uses a secure source of cryptographically random bytes.
|
|
||||||
For deterministic testing, use the new [testing/cryptotest.SetGlobalRandom] function.
|
|
||||||
The new GODEBUG setting `cryptocustomrand=1` temporarily restores the old behavior.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
The new [KeyExchanger] interface, implemented by [PrivateKey], makes it possible
|
|
||||||
to accept abstract ECDH private keys, e.g. those implemented in hardware.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
The `big.Int` fields of [PublicKey] and [PrivateKey] are now deprecated.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
The random parameter to [GenerateKey], [SignASN1], [Sign], and [PrivateKey.Sign] is now ignored.
|
|
||||||
Instead, they now always use a secure source of cryptographically random bytes.
|
|
||||||
For deterministic testing, use the new [testing/cryptotest.SetGlobalRandom] function.
|
|
||||||
The new GODEBUG setting `cryptocustomrand=1` temporarily restores the old behavior.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
If the random parameter to [GenerateKey] is nil, GenerateKey now always uses a
|
|
||||||
secure source of cryptographically random bytes, instead of [crypto/rand.Reader]
|
|
||||||
(which could have been overridden). The new GODEBUG setting `cryptocustomrand=1`
|
|
||||||
temporarily restores the old behavior.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
The new [WithoutEnforcement] and [Enforced] functions now allow running
|
|
||||||
in `GODEBUG=fips140=only` mode while selectively disabling the strict FIPS 140-3 checks.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
[Version] returns the resolved FIPS 140-3 Go Cryptographic Module version when building against a frozen module with GOFIPS140.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
<!-- crypto/hpke is documented in its own section. -->
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
The new [DecapsulationKey768.Encapsulator] and
|
|
||||||
[DecapsulationKey1024.Encapsulator] methods implement the new
|
|
||||||
[crypto.Decapsulator] interface.
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
The new [crypto/mlkem/mlkemtest] package exposes the [Encapsulate768] and
|
|
||||||
[Encapsulate1024] functions which implement derandomized ML-KEM encapsulation,
|
|
||||||
for use with known-answer tests.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
The random parameter to [Prime] is now ignored.
|
|
||||||
Instead, it now always uses a secure source of cryptographically random bytes.
|
|
||||||
For deterministic testing, use the new [testing/cryptotest.SetGlobalRandom] function.
|
|
||||||
The new GODEBUG setting `cryptocustomrand=1` temporarily restores the old behavior.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
The new [EncryptOAEPWithOptions] function allows specifying different hash
|
|
||||||
functions for OAEP padding and MGF1 mask generation.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
The random parameter to [GenerateKey], [GenerateMultiPrimeKey], and [EncryptPKCS1v15] is now ignored.
|
|
||||||
Instead, they now always use a secure source of cryptographically random bytes.
|
|
||||||
For deterministic testing, use the new [testing/cryptotest.SetGlobalRandom] function.
|
|
||||||
The new GODEBUG setting `cryptocustomrand=1` temporarily restores the old behavior.
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
If [PrivateKey] fields are modified after calling [PrivateKey.Precompute],
|
|
||||||
[PrivateKey.Validate] now fails.
|
|
||||||
|
|
||||||
[PrivateKey.D] is now checked for consistency with precomputed values, even if
|
|
||||||
it is not used.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
Unsafe PKCS #1 v1.5 encryption padding (implemented by [EncryptPKCS1v15],
|
|
||||||
[DecryptPKCS1v15], and [DecryptPKCS1v15SessionKey]) is now deprecated.
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
The hybrid [SecP256r1MLKEM768] and [SecP384r1MLKEM1024] post-quantum key
|
|
||||||
exchanges are now enabled by default. They can be disabled by setting
|
|
||||||
[Config.CurvePreferences] or with the `tlssecpmlkem=0` GODEBUG setting.
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
The new [ClientHelloInfo.HelloRetryRequest] field indicates if the ClientHello
|
|
||||||
was sent in response to a HelloRetryRequest message. The new
|
|
||||||
[ConnectionState.HelloRetryRequest] field indicates if the server
|
|
||||||
sent a HelloRetryRequest, or if the client received a HelloRetryRequest,
|
|
||||||
depending on connection role.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
The [QUICConn] type used by QUIC implementations includes new event
|
|
||||||
for reporting TLS handshake errors.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
If [Certificate.PrivateKey] implements [crypto.MessageSigner], its SignMessage
|
|
||||||
method is used instead of Sign in TLS 1.2 and later.
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
The following GODEBUG settings introduced in [Go 1.22](/doc/godebug#go-122)
|
|
||||||
and [Go 1.23](/doc/godebug#go-123) will be removed in the next major Go release.
|
|
||||||
Starting in Go 1.27, the new behavior will apply regardless of GODEBUG setting or go.mod language version.
|
|
||||||
|
|
||||||
- `tlsunsafeekm`: [ConnectionState.ExportKeyingMaterial] will require TLS 1.3 or Extended Master Secret.
|
|
||||||
- `tlsrsakex`: legacy RSA-only key exchanges without ECDH won't be enabled by default.
|
|
||||||
- `tls10server`: the default minimum TLS version for both clients and servers will be TLS 1.2.
|
|
||||||
- `tls3des`: the default cipher suites will not include 3DES.
|
|
||||||
- `x509keypairleaf`: [X509KeyPair] and [LoadX509KeyPair] will always populate the [Certificate.Leaf] field.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
The [ExtKeyUsage] and [KeyUsage] types now have String methods that return the
|
|
||||||
correspodning OID names as defined in RFC 5280 and other registries.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
The [ExtKeyUsage] type now has an OID method that returns the corresponding OID for the EKU.
|
|
||||||
|
|
||||||
The new [OIDFromASN1OID] function allows converting an [encoding/asn1.ObjectIdentifier] into
|
|
||||||
an [OID].
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
A database driver may implement [RowsColumnScanner] to entirely override `Scan` behavior.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
Additional `R_LARCH_*` constants from [LoongArch ELF psABI v20250521][laelf-20250521]
|
|
||||||
(global version v2.40) are defined for use with LoongArch systems.
|
|
||||||
|
|
||||||
[laelf-20250521]: https://github.com/loongson/la-abi-specs/blob/v2.40/laelf.adoc
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
The new [AsType] function is a generic version of [As]. It is type-safe, faster,
|
|
||||||
and, in most cases, easier to use.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
The new [ParseDirective] function parses [directive
|
|
||||||
comments](/doc/comment#Syntax), which are comments such as `//go:generate`.
|
|
||||||
Source code tools can support their own directive comments and this new API
|
|
||||||
should help them implement the conventional syntax.
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
The new [BasicLit.ValueEnd] field records the precise end position of
|
|
||||||
a literal so that the [BasicLit.End] method can now always return the
|
|
||||||
correct answer. (Previously it was computed using a heuristic that was
|
|
||||||
incorrect for multi-line raw string literals in Windows source files,
|
|
||||||
due to removal of carriage returns.)
|
|
||||||
|
|
||||||
Programs that update the `ValuePos` field of `BasicLit`s produced by
|
|
||||||
the parser may need to also update or clear the `ValueEnd` field to
|
|
||||||
avoid minor differences in formatted output. <!-- #76395 --->
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
The new [File.End] convenience method returns the file's end position.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
The `asynctimerchan` GODEBUG setting introduced in [Go 1.23](/doc/godebug#go-123)
|
|
||||||
will be removed in the next major Go release.
|
|
||||||
Starting in Go 1.27, the [time](/pkg/time) package will always use unbuffered
|
|
||||||
(synchronous) channels for timers regardless of GODEBUG setting or go.mod language version.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
The JPEG encoder and decoder have been replaced with new, faster, more accurate implementations.
|
|
||||||
Code that expects specific bit-for-bit outputs from the encoder or decoder may need to be updated.
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
The [`NewMultiHandler`](/pkg/log/slog#NewMultiHandler) function creates a
|
|
||||||
[`MultiHandler`](/pkg/log/slog#MultiHandler) that invokes all the given Handlers.
|
|
||||||
Its `Enable` method reports whether any of the handlers' `Enabled` methods
|
|
||||||
return true.
|
|
||||||
Its `Handle`, `WithAttr` and `WithGroup` methods call the corresponding method
|
|
||||||
on each of the enabled handlers.
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
The new <code>Dialer</code> methods
|
|
||||||
<a href="/pkg/net/#Dialer.DialIP"><code>DialIP</code></a>,
|
|
||||||
<a href="/pkg/net/#Dialer.DialTCP"><code>DialTCP</code></a>,
|
|
||||||
<a href="/pkg/net/#Dialer.DialUDP"><code>DialUDP</code></a>, and
|
|
||||||
<a href="/pkg/net/#Dialer.DialUnix"><code>DialUnix</code></a>
|
|
||||||
permit dialing specific network types with context values.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
The new
|
|
||||||
[HTTP2Config.StrictMaxConcurrentRequests](/pkg/net/http#HTTP2Config.StrictMaxConcurrentRequests)
|
|
||||||
field controls whether a new connection should be opened
|
|
||||||
if an existing HTTP/2 connection has exceeded its stream limit.
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
The new [Transport.NewClientConn] method returns a client connection
|
|
||||||
to an HTTP server.
|
|
||||||
Most users should continue to use [Transport.RoundTrip] to make requests,
|
|
||||||
which manages a pool of connection.
|
|
||||||
`NewClientConn` is useful for users who need to implement their own conection management.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
The HTTP client returned by [Server.Client] will now redirect requests for
|
|
||||||
`example.com` and any subdomains to the server being tested.
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
The [ReverseProxy.Director] configuration field is deprecated
|
|
||||||
in favor of [ReverseProxy.Rewrite].
|
|
||||||
|
|
||||||
A malicious client can remove headers added by a `Director` function
|
|
||||||
by designating those headers as hop-by-hop. Since there is no way to address
|
|
||||||
this problem within the scope of the `Director` API, we added a new
|
|
||||||
`Rewrite` hook in Go 1.20. `Rewrite` hooks are provided with both the
|
|
||||||
unmodified inbound request received by the proxy and the outbound request
|
|
||||||
which will be sent by the proxy.
|
|
||||||
|
|
||||||
Since the `Director` hook is fundamentally unsafe, we are now deprecating it.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
The new [Prefix.Compare] method compares two prefixes.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
[Parse] now rejects malformed URLs containing colons in the host subcomponent,
|
|
||||||
such as `http://::1/` or `http://localhost:80:80/`.
|
|
||||||
URLs containing bracketed IPv6 addresses, such as `http://[::1]/` are still accepted.
|
|
||||||
The new GODEBUG=urlstrictcolons=0 setting restores the old behavior.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
The new [Process.WithHandle] method provides access to an internal process
|
|
||||||
handle on supported platforms (Linux 5.4 or later and Windows). On Linux,
|
|
||||||
the process handle is a pidfd. The method returns [ErrNoHandle] on unsupported
|
|
||||||
platforms or when no process handle is available.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
On Windows, the [OpenFile] `flag` parameter can now contain any combination of
|
|
||||||
Windows-specific file flags, such as `FILE_FLAG_OVERLAPPED` and
|
|
||||||
`FILE_FLAG_SEQUENTIAL_SCAN`, for control of file or device caching behavior,
|
|
||||||
access modes, and other special-purpose flags.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
[NotifyContext] now cancels the returned context with [context.CancelCauseFunc]
|
|
||||||
and an error indicating which signal was received.
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
[reflect.Type] includes new methods that return iterators for a type's fields, methods, inputs and outputs.
|
|
||||||
Similarly, [reflect.Value] includes two new methods that return iterators over a value's fields or methods,
|
|
||||||
each element being a pair of the value ([reflect.Value]) and its type information ([reflect.StructField] or
|
|
||||||
[reflect.Method]).
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
Several new scheduler metrics have been added, including counts of
|
|
||||||
goroutines in various states (waiting, runnable, etc.) under the
|
|
||||||
`/sched/goroutines` prefix, the number of OS threads the runtime is
|
|
||||||
aware of with `/sched/threads:threads`, and the total number of
|
|
||||||
goroutines created by the program with
|
|
||||||
`/sched/goroutines-created:goroutines`.
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
The new methods [T.ArtifactDir], [B.ArtifactDir], and [F.ArtifactDir]
|
|
||||||
return a directory in which to write test output files (artifacts).
|
|
||||||
|
|
||||||
When the `-artifacts` flag is provided to `go test`,
|
|
||||||
this directory will be located under the output directory
|
|
||||||
(specified with `-outputdir`, or the current directory by default).
|
|
||||||
Otherwise, artifacts are stored in a temporary directory
|
|
||||||
which is removed after the test completes.
|
|
||||||
|
|
||||||
The first call to `ArtifactDir` when `-artifacts` is provided
|
|
||||||
writes the location of the directory to the test log.
|
|
||||||
|
|
||||||
For example, in a test named `TestArtifacts`,
|
|
||||||
`t.ArtifactDir()` emits:
|
|
||||||
|
|
||||||
```
|
|
||||||
=== ARTIFACTS Test /path/to/artifact/dir
|
|
||||||
```
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
The new [SetGlobalRandom] function configures a global, deterministic
|
|
||||||
cryptographic randomness source for the duration of the test. It affects
|
|
||||||
crypto/rand, and all implicit sources of cryptographic randomness in the
|
|
||||||
`crypto/...` packages.
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
The `gotypesalias` GODEBUG setting introduced in [Go 1.22](/doc/godebug#go-122)
|
|
||||||
will be removed in the next major Go release.
|
|
||||||
Starting in Go 1.27, the [go/types](/pkg/go/types) package will always produce an
|
|
||||||
[Alias type](/pkg/go/types#Alias) for the representation of [type aliases](/ref/spec#Type_declarations)
|
|
||||||
regardless of GODEBUG setting or go.mod language version.
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
## Ports {#ports}
|
|
||||||
|
|
||||||
### Darwin
|
|
||||||
|
|
||||||
<!-- go.dev/issue/75836 -->
|
|
||||||
|
|
||||||
Go 1.26 is the last release that will run on macOS 12 Monterey. Go 1.27 will require macOS 13 Ventura or later.
|
|
||||||
|
|
||||||
### FreeBSD
|
|
||||||
|
|
||||||
<!-- go.dev/issue/76475 -->
|
|
||||||
|
|
||||||
The freebsd/riscv64 port (`GOOS=freebsd GOARCH=riscv64`) has been marked broken.
|
|
||||||
See [issue 76475](/issue/76475) for details.
|
|
||||||
|
|
||||||
### Windows
|
|
||||||
|
|
||||||
<!-- go.dev/issue/71671 -->
|
|
||||||
|
|
||||||
As [announced](/doc/go1.25#windows) in the Go 1.25 release notes, the [broken](/doc/go1.24#windows) 32-bit windows/arm port (`GOOS=windows` `GOARCH=arm`) is removed.
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue