| Index | index by Group | index by Distribution | index by Vendor | index by creation date | index by Name | Mirrors | Help | Search |
| Name: go1.27-doc | Distribution: openSUSE Tumbleweed |
| Version: 1.27.0 | Vendor: openSUSE |
| Release: 6.1 | Build date: Wed Aug 19 18:45:14 2026 |
| Group: Documentation/Other | Build host: reproducible |
| Size: 388840 | Source RPM: go1.27-1.27.0-6.1.src.rpm |
| Packager: https://bugs.opensuse.org | |
| Url: https://go.dev/ | |
| Summary: Go documentation | |
Go examples and documentation.
BSD-3-Clause
* Wed Aug 19 2026 Jeff Kowalczyk <jkowalczyk@suse.com>
- go1.27.0 (released 2026-08-19) is a major release of Go.
go1.27.x minor releases will be provided through August 2027.
https://github.com/golang/go/wiki/Go-Release-Cycle
go1.27 arrives six months after Go 1.26. Most of its changes are
in the implementation of the toolchain, runtime, and
libraries. As always, the release maintains the Go 1 promise of
compatibility. We expect almost all Go programs to continue to
compile and run as before.
Refs boo#1272545 go1.27 release tracking
* Language change: Go 1.27 now supports generic methods: a method
declaration may declare its own type parameters. This widely
anticipated change allows adding generic functions within the
namespace of a particular data type where before one had to
declare such functions with a scope of the entire package.
* Language change: A key in a struct literal may now be any valid
field selector for the struct type, not just a (top-level)
field name of the struct.
* Language change: Function type inference has been generalized
to apply in all contexts where a generic function is assigned
to a variable of (or converted to) a matching function type.
* Tools: Response file (@file) parsing is now supported for the
compile, link, asm, cgo, cover, and pack tools. The response
file contains whitespace-separated arguments with support for
single-quoted and double-quoted strings, escape sequences, and
backslash-newline line continuation. The format is compatible
with GCC’s response file implementation to ensure
interoperability with existing build systems.
* go command: The go command no longer has support for the bzr
version control system. It will no longer be able to directly
fetch modules hosted on bzr servers.
* godebug: Starting with Go 1.27, the go command now recognizes a
GODEBUG setting for which support was removed (such as
asynctimerchan, see below) if it appears in go.mod files
(godebug entries) and .go source files (//go:debug
comments). It accepts these settings if they are set to the
final default value established before the setting was
removed. If they are set to an old value, the go command will
fail. This change is in the spirit of the Go 1 compatibility
guarantee and allows existing programs that set supported
GODEBUG settings to continue to build and run without changes
even when the respective setting support has been removed.
* go test: go test now invokes the stdversion vet check by
default. This reports the use of standard library symbols that
are too new for the Go version in force in the referring file,
as determined by go directive in go.mod and build tags on the
file.
* go test: go test -json now annotates "Action":"output" lines
with an optional new field "OutputType", specifying the type of
output. Currently, the possible values include “error”,
“error-continue”, and “frame”. See cmd/test2json help for
details.
* go doc: The go doc command now supports package@version syntax,
such as go doc example.com/pkg@v1.2.3.
* go doc: The go doc command now accepts the -ex command-line
option to list executable examples of the given package or
symbol. When an example name is passed on the command line
(such as go doc bytes.ExampleBuffer), go doc now prints the
example source code along with comments.
* go fix: The go fix command contains several new modernizers
(atomictypes, embedlit, slicesbackward, and unsafefuncs).
* go fix: The existing fmtappendf analyzer was removed due to
stylistic concerns.
* go fix: The existing waitgroup analyzer was renamed to
waitgroupgo to avoid ambiguity.
* go mod tidy: For modules specifying go 1.27 or later in their
go.mod file, go mod tidy now automatically merges duplicate
require blocks. This ensures the file maintains a clean,
standard structure containing at most two require blocks: one
for direct dependencies and one for indirect dependencies.
* go mod fix: Existing comment blocks attached to dependencies
are preserved during this consolidation. If a comment block is
associated with a mixed set of directives (containing both
direct and indirect dependencies), the comment block is merged
and attached to the new direct dependency block.
* go mod fix: Previously, if a go.mod file accumulated multiple
disjoint require blocks (often due to manual edits, unresolved
Git merge conflicts, or legacy upgrades) go mod tidy would
leave the extra blocks intact or inadvertently create new
ones. The tool now strictly enforces the two-block layout,
consolidating disparate requirements into their respective
blocks and cleaning up the structure of the module file
automatically.
* go tool trace: go tool trace’s -http command-line option now
restricts the listen address to localhost when passed only a
port (e.g., -http=:6060). This change makes go tool trace
consistent with the behavior of go tool pprof’s -http flag. To
listen on all addresses, explicitly include the specified
address (e.g., -http=0.0.0.0:6060).
* runtime: Tracebacks for modules with go directives configuring
Go 1.27 or later will now include runtime/pprof goroutine
labels in the header line. This behavior can be disabled with
tracebacklabels=0 GODEBUG setting (added in Go 1.26). This
opt-out is expected to be kept indefinitely in case goroutine
labels acquire sensitive information that shouldn’t be made
available in tracebacks.
* runtime: The asynctimerchan GODEBUG setting (added in Go 1.23)
has been removed permanently. Channels created by package time
are now always unbuffered (synchronous), irrespective of
GODEBUG settings.
* runtime: Faster memory allocation. The compiler now generates
calls to size-specialized memory allocation routines, reducing
the cost of some small (<80 byte) memory allocations by up to
30%. Improvements vary depending on the workload, but the
overall improvement is expected to be ~1% in real
allocation-heavy programs. This causes the binary size to
increase by about 60 KB (independent of the workload). Please
file an issue if you notice any regressions. You may set
GOEXPERIMENT=nosizespecializedmalloc at build time to disable
it. This opt-out setting is expected to be removed in Go 1.28.
* runtime: Goroutine leak profile. A new profile type that
reports leaked goroutines, previously available as an
experiment in Go 1.26, is now generally available. The new
profile type, named goroutineleak, is supported in the
runtime/pprof package. It is also available as the
net/http/pprof endpoint /debug/pprof/goroutineleak. A leaked
goroutine is a goroutine blocked on some concurrency primitive
(channels, sync.Mutex, sync.Cond, etc) that cannot possibly
become unblocked. The runtime detects leaked goroutines using
the garbage collector: if a goroutine G is blocked on
concurrency primitive P, and P is unreachable from any runnable
goroutine or any goroutine that those could unblock, then P
cannot be unblocked, so goroutine G can never wake up. While it
is impossible to detect permanently blocked goroutines in all
cases, this approach detects a large class of such
leaks. Because this technique builds on reachability, the
runtime may fail to identify leaks caused by blocking on
concurrency primitives reachable through global variables or
the local variables of runnable goroutines. Special thanks to
Vlad Saioc at Uber for contributing this work. The
goroutineleakprofile GOEXPERIMENT setting is now deleted.
* compiler: The compiler now resolves a relative filename in a
//line or /*line*/ directive against the directory of the file
containing the directive, matching the behavior of
go/scanner. Absolute filenames are unaffected. See #70478.
* compiler: The compiler now generates simpler names for function
literals (closures). Previously, when the containing function
is inlined, the function literal’s name can get quite long. Now
the compiler chooses the same name for the function literal
regardless of inlining. It may also combine multiple instances
of the same function literal (as its containing function is
inlined) to share the same code in the compiled binary. This
change does not affect the functionality of Go code. Tests that
check symbol names may need update, although it is recommended
to not depend on the names of function literals. For programs
that incorrectly compare function code pointer for equality,
the issue may be more exposed with Go 1.27, as function
literals with different captured closure data may have equal
code pointers in more cases.
* linker: When targeting macOS, the linker now accepts -macos and
- macsdk command-line options, which specify the OS and SDK
versions in the LC_BUILD_VERSION load command. By default, it
selects the oldest supported macOS version (currently 13.0.0)
and a recent SDK version (currently 26.2.0).
* Standard library: New encoding/json/v2 and
encoding/json/jsontext packages
* Standard library: The encoding/json/v2 package is a major
revision of encoding/json. It provides Marshal, MarshalWrite,
MarshalEncode, Unmarshal, UnmarshalRead, and UnmarshalDecode,
all of which accept variadic Options arguments to configure
marshaling and unmarshaling behavior. The v2 package chooses
stricter, more interoperable defaults than v1: it rejects
invalid UTF-8 in JSON strings and rejects duplicate names
within a JSON object. See the v1 encoding/json package
documentation for the complete set of behavioral differences
and the options available to adjust them. Marshal performance
is broadly at parity with the previous implementation, while
unmarshal performance is significantly faster. Users who
encounter compatibility problems with the new implementation
may disable it by setting GOEXPERIMENT=nojsonv2 at build time,
restoring the original v1 implementation. This opt-out is
expected to be removed in a future release.
* Standard library: The encoding/json/jsontext package provides
lower-level syntactic processing of JSON. The Encoder and
Decoder types operate on JSON as a sequence of Token and Value,
maintaining a state machine to ensure the produced or consumed
sequence is valid JSON text. The encoding/json package is now
backed by the v2 implementation. Marshaling and unmarshaling
behavior is preserved, but the exact text of error messages may
differ. The package also gains a number of new Options that can
configure v2 to operate with v1 semantics to avoid requiring a
full migration to the new API. The v1 API will continue to be
supported and users are not required to migrate. Marshal
performance is broadly at parity with the previous
implementation, while unmarshal performance is significantly
faster.
* crypto: The new crypto/mldsa package implements the
post-quantum ML-DSA signature scheme specified in FIPS 204.
* crypto: crypto/x509 now supports ML-DSA private keys,
public keys, and signatures.
* crypto: crypto/tls now supports ML-DSA signatures in
TLS 1.3, with the new MLDSA44, MLDSA65, and MLDSA87
SignatureScheme values.
* uuid: The new uuid package generates and parses UUIDs.
* simd (experimental): New experimental simd package. Go 1.27
introduces a new experimental simd package that provides
portable and vector-size-agnostic SIMD support. It will make
use of the hardware instructions if they are available. This
package is enabled by setting the environment variable
GOEXPERIMENT=simd at build time. The simd package is available
on all architectures, and provides vector types of unspecified
size such as Int8s and Float32s. It supports a “scalable”
subset of the operations present in the simd/archsimd package
that are hardware-supported or easily emulated across
architectures and vector widths.
* simd/archsimd (experimental): Go 1.27 continues the
experimental support for SIMD operations in the simd/archsimd
package that began in Go 1.26. This release revises the amd64
API and adds support for arm64 “Neon” 128-bit SIMD and
WebAssembly 128-bit SIMD. The simd/archsimd package is enabled
by setting the environment variable GOEXPERIMENT=simd at build
time. This package provides access to architecture-specific
SIMD operations. It supports 128-bit vector types on wasm,
arm64, and amd64, and 256-bit and 512-bit vector types on some
amd64 processors. The API is not yet considered stable. We
intend to provide support for additional architectures in
future versions, but the API is intentionally
architecture-specific and thus non-portable.
* bytes: The new CutLast function slices a []byte around the last
occurrence of a separator. It can replace and simplify some
common uses of LastIndex.
* compress/flate: Compression speed is improved in Go 1.27. The
exact encoded output from Writer may be different from Go 1.26
as a result of the encoder implementation change. Since DEFLATE
is the underlying compression used in archive/zip,
compress/gzip, compress/zlib, and image/png, the outputs from
those packages may also have changed.
* crypto: The new MLDSAMu Hash value is added for use as a
signaling mechanism for External mu ML-DSA signing.
* crypto/ecdsa: PrivateKey.Sign now checks that the length of the
hash is correct, if a non-nil SignerOpts is provided.
* crypto/tls: The new QUICConfig.ClientHelloInfoConn field
specifies the net.Conn to use for the ClientHelloInfo.Conn
field during QUIC server handshakes.
* crypto/tls: The MLKEM1024 key exchange is now supported. It can
be enabled by adding it to Config.CurvePreferences.
* crypto/tls: Config.Rand is now deprecated. For deterministic
testing, use testing/cryptotest.SetGlobalRandom.
* crypto/tls: Post-quantum hybrid key exchanges can now be
explicitly enabled in Config.CurvePreferences even if the
tlsmlkem=0 or tlssecpmlkem=0 GODEBUG options are used. Those
options were always meant to only apply to the default set used
when Config.CurvePreferences is nil.
* crypto/tls: The new ConnectionState.LocalCertificate field
contains the certificate chain presented to the connection peer
during the handshake.
* crypto/tls: The tlsunsafeekm (added in Go 1.22), tlsrsakex
(added in Go 1.22), tls3des (added in Go 1.23), tls10server
(added in Go 1.22), and x509keypairleaf (added in Go 1.23)
GODEBUG settings have been removed permanently.
* crypto/x509: When parsing into pkix.Name fields, a wider range
of pkix.AttributeTypeAndValue.Value types is now supported, and
unknown types are parsed into asn1.RawValue.
* crypto/x509: The new Certificate.RawSignatureAlgorithm,
CertificateRequest.RawSignatureAlgorithm, and
RevocationList.RawSignatureAlgorithm fields expose the
DER-encoded AlgorithmIdentifier of the signature algorithm,
including when the SignatureAlgorithm field is
UnknownSignatureAlgorithm.
* crypto/x509: SystemCertPool now respects SSL_CERT_FILE and
SSL_CERT_DIR on Windows and Darwin. When these environment
variables are set, roots are loaded from disk and instead of
using the platform certificate verification APIs, the native Go
verifier is used. This behavior can be disabled with
GODEBUG=x509sslcertoverrideplatform=0.
* crypto/x509/pkix: RDNSequence.String (and therefore
Name.String) now renders string-typed attribute values as
strings even when the attribute’s OID is
unrecognized. Previously such values were always hex-encoded in
their DER form. See #33093.
* database/sql: The new ConvertAssign function gives database
drivers access to the type conversions performed by Rows.Scan.
* database/sql/driver: Drivers may implement the new
RowsColumnScanner interface to scan directly into user-provided
destinations.
* go/constant: The new StringLen function returns the length of a
string Value without fully constructing the Value.
* go/scanner: The scanner now allows retrieving the end position
of a token via the new Scanner.End method.
* go/token: File now has a String method.
* go/types: The Hasher type is an implementation of
maphash.Hasher for Types that respects the Identical
equivalence relation, allowing Types to be used in hash tables
and similar data structures. HasherIgnoreTags is the analogous
hasher for IdenticalIgnoreTags.
* go/types: The gotypesalias GODEBUG setting (added in Go 1.22)
has been removed permanently and the package go/types now
always produces an Alias type node for alias declarations
irrespective of GODEBUG settings.
* hash/maphash: The Hasher interface type defines the contract
between values of a particular type and future hash-based data
structures such as hash tables and Bloom filters; see #70471.
* hash/maphash: The ComparableHasher type provides a convenient
implementation of Hasher for comparable types where the Equal
method is defined as ==.
* math/big: Int now has a Divide method to compute quotient and
remainder of two Int values. It supports rounding modes Trunc,
Floor, Round, and Ceil.
* math/rand/v2: Rand now supports a generic method N, matching
the behavior of the top-level N function.
* net: UnixConn read methods now return io.EOF directly instead
of wrapping it in net.OpError when the underlying read returns
EOF.
* net/http: Transport and Server support TLS ALPN protocol
negotiation on user-provided net.Conn connections which
implement a ConnectionState() tls.ConnectionState method.
* net/http: HTTP/2 server now accepts client priority signals, as
defined in RFC 9218, allowing it to prioritize serving HTTP/2
streams with higher priority. If the old behavior is preferred,
where streams are served in a round-robin manner regardless of
priority, Server.DisableClientPriority can be set to true.
* net/http: HTTP/1 Response.Body now automatically drains any
unread content upon being closed, up to a conservative limit,
to allow better connection reuse. For most programs, this
change should be a no-op, or result in a performance
improvement. In rare cases, programs that do not benefit from
connection reuse might experience performance degradation if
they had been improperly allowing an excessive amount of idle
connections to linger; usually by setting
Transport.MaxIdleConns to 0 or using different Clients for
different requests, thereby bypassing Transport.MaxIdleConns
limit. In these cases, setting Transport.DisableKeepAlives to
true will disable connection reuse. However, such performance
degradation usually indicates improper configuration or usage
of Transport or Client in the first place, and a deeper look
would likely be beneficial.
* net/http: The new Server.MaxHeaderValueCount field allows HTTP
servers to control the number of header values that they are
willing to accept. If unset, DefaultMaxHeaderValueCount is
used.
* net/http/httptest: The new NewTestServer function creates a
Server configured to use an in-memory fake network suitable for
use with the testing/synctest package.
* net/url: The new URL.Clone method creates a deep copy of a
URL. The new Values.Clone method creates a deep copy of Values.
* runtime/secret: Goroutines that are created while in secret
mode will now themselves execute in secret mode.
* strings: The new CutLast function slices a string around the
last occurrence of a separator. It can replace and simplify
some common uses of LastIndex.
* syscall: On Plan 9, the Errno type is now defined and
implements the error interface, as on other platforms. Plan 9
system calls return ErrorString values, so Errno is never
returned by this package on Plan 9. It is defined so that
portable code referring to syscall.Errno builds on Plan 9
without build constraints.
* testing/synctest: The new Sleep helper function combines
time.Sleep and synctest.Wait.
* unicode: The unicode package and associated support throughout
the system have been upgraded from Unicode 15 to Unicode
17. See the Unicode 16.0.0 and Unicode 17.0.0 release notes for
information about the changes.
* Ports: Darwin: As announced in the Go 1.26 release notes, Go
1.27 requires macOS 13 Ventura or later; support for previous
versions has been discontinued.
* Ports: PowerPC: On the big-endian 64-bit PowerPC port on Linux
(GOOS=linux GOARCH=ppc64), the Go toolchain now generates
binaries that use the ELFv2 system ABI. ELFv2 support requires
Linux kernel 3.13 or later. RHEL7 backported this support to
its 3.10 kernel.
* Ports: PowerPC: Cgo, position-independent executables (PIE),
and external linking are now supported. Using these features
requires an ELFv2 compatible runtime (libc and all linked and
loaded libraries).
* Ports: PowerPC: For programs that do not use cgo, the Go
toolchain still generates static binaries with internal linking
by default. For programs that have cgo options, if a static,
pure-Go binary is needed, one can set the environment variable
CGO_ENABLED=0 when running go build.
* Thu Aug 13 2026 Jeff Kowalczyk <jkowalczyk@suse.com>
- go1.27rc3 (released 2026-08-13) is a release candidate version of
go1.27 cut from the master branch at the revision tagged
go1.27rc3.
Refs boo#1272545 go1.27 release tracking
CVE-2026-56853 CVE-2026-39821 CVE-2026-56862 CVE-2026-56859 CVE-2026-56860 CVE-2026-56865 CVE-2026-56864 CVE-2026-33818 CVE-2026-56858
* go#80205 boo#1275028 security: fix CVE-2026-56853 net/http: apply ReadHeaderTimeout when doing unencrypted HTTP/2 check
* go#78760 boo#1266609 security: fix CVE-2026-39821 x/net/idna: failure to reject ASCII-only Punycode-encoded labels
* go#80528 boo#1275032 security: fix CVE-2026-56862 crypto/tls: limit handshake messages we are willing to accept post-handshake
* go#80481 boo#1275026 security: fix CVE-2026-56859 encoding/xml: add recursion depth guard during decode
* go#80494 boo#1275029 security: fix CVE-2026-56860 net/url: avoid quadratic complexity in resolvePath
* go#80744 boo#1275024 security: fix CVE-2026-56865 x/mod/sumdb/tlog: fix transparency log tile verification bypass
* go#80745 boo#1275025 security: fix CVE-2026-56864 x/mod/sumdb: ignore unrelated, unauthenticated hashes in Lookup
* go#80405 boo#1275034 security: fix CVE-2026-33818 encoding/asn1: enforce maximum recursion depth
* go#80435 boo#1275033 security: fix CVE-2026-56858 html/template: fix Javascript regexp context tracking
* Tue Jul 07 2026 Jeff Kowalczyk <jkowalczyk@suse.com>
- go1.27rc2 (released 2026-07-07) is a release candidate version of
go1.27 cut from the master branch at the revision tagged
go1.27rc2.
Refs boo#1272545 go1.27 release tracking
* go1.27 requires go1.24.6 or later for bootstrap.
* Thu Jun 18 2026 Jeff Kowalczyk <jkowalczyk@suse.com>
- go1.27rc1 (released 2026-06-18) is a release candidate version of
go1.27 cut from the master branch at the revision tagged
go1.27rc1.
Refs boo#1272545 go1.27 release tracking
* go1.27 requires go1.24.6 or later for bootstrap.
/usr/share/doc/packages/go/1.27/asm.html /usr/share/doc/packages/go/1.27/go_mem.html /usr/share/doc/packages/go/1.27/go_spec.html /usr/share/doc/packages/go/1.27/godebug.md
Generated by rpm2html 1.8.1
Fabrice Bellet, Sun Aug 23 23:04:24 2026