Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package go1.22 for openSUSE:Factory checked in at 2024-02-07 18:49:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/go1.22 (Old) and /work/SRC/openSUSE:Factory/.go1.22.new.1815 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "go1.22" Wed Feb 7 18:49:20 2024 rev:4 rq:1144766 version:1.22.0 Changes: -------- --- /work/SRC/openSUSE:Factory/go1.22/go1.22.changes 2024-01-25 18:41:24.219081754 +0100 +++ /work/SRC/openSUSE:Factory/.go1.22.new.1815/go1.22.changes 2024-02-07 18:51:31.665463050 +0100 @@ -1,0 +2,487 @@ +Tue Feb 6 22:28:04 UTC 2024 - Jeff Kowalczyk <[email protected]> + +- go1.22 (released 2024-02-06) is a major release of Go. + go1.22.x minor releases will be provided through February 2024. + https://github.com/golang/go/wiki/Go-Release-Cycle + go1.22 arrives six months after go1.21. 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#1218424 go1.22 release tracking + * Language change: go1.22 makes two changes to for loops. + Previously, the variables declared by a for loop were created + once and updated by each iteration. In go1.22, each iteration + of the loop creates new variables, to avoid accidental sharing + bugs. The transition support tooling described in the proposal + continues to work in the same way it did in Go 1.21. + * Language change: For loops may now range over integers + * Language change: go1.22 includes a preview of a language change + we are considering for a future version of Go: + range-over-function iterators. Building with + GOEXPERIMENT=rangefunc enables this feature. + * go command: Commands in workspaces can now use a vendor + directory containing the dependencies of the workspace. The + directory is created by go work vendor, and used by build + commands when the -mod flag is set to vendor, which is the + default when a workspace vendor directory is present. Note + that the vendor directory's contents for a workspace are + different from those of a single module: if the directory at + the root of a workspace also contains one of the modules in the + workspace, its vendor directory can contain the dependencies of + either the workspace or of the module, but not both. + * go get is no longer supported outside of a module in the legacy + GOPATH mode (that is, with GO111MODULE=off). Other build + commands, such as go build and go test, will continue to work + indefinitely for legacy GOPATH programs. + * go mod init no longer attempts to import module requirements + from configuration files for other vendoring tools (such as + Gopkg.lock). + * go test -cover now prints coverage summaries for covered + packages that do not have their own test files. Prior to Go + 1.22 a go test -cover run for such a package would report: ? + mymod/mypack [no test files] and now with go1.22, functions in + the package are treated as uncovered: mymod/mypack coverage: + 0.0% of statements Note that if a package contains no + executable code at all, we can't report a meaningful coverage + percentage; for such packages the go tool will continue to + report that there are no test files. + * trace: The trace tool's web UI has been gently refreshed as + part of the work to support the new tracer, resolving several + issues and improving the readability of various sub-pages. The + web UI now supports exploring traces in a thread-oriented + view. The trace viewer also now displays the full duration of + all system calls. These improvements only apply for viewing + traces produced by programs built with go1.22 or newer. A + future release will bring some of these improvements to traces + produced by older version of Go. + * vet: References to loop variables The behavior of the vet tool + has changed to match the new semantics (see above) of loop + variables in go1.22. When analyzing a file that requires go1.22 + or newer (due to its go.mod file or a per-file build + constraint), vetcode> no longer reports references to loop + variables from within a function literal that might outlive the + iteration of the loop. In Go 1.22, loop variables are created + anew for each iteration, so such references are no longer at + risk of using a variable after it has been updated by the loop. + * vet: New warnings for missing values after append The vet tool + now reports calls to append that pass no values to be appended + to the slice, such as slice = append(slice). Such a statement + has no effect, and experience has shown that is nearly always a + mistake. + * vet: New warnings for deferring time.Since The vet tool now + reports a non-deferred call to time.Since(t) within a defer + statement. This is equivalent to calling time.Now().Sub(t) + before the defer statement, not when the deferred function is + called. In nearly all cases, the correct code requires + deferring the time.Since call. + * vet: New warnings for mismatched key-value pairs in log/slog + calls The vet tool now reports invalid arguments in calls to + functions and methods in the structured logging package, + log/slog, that accept alternating key/value pairs. It reports + calls where an argument in a key position is neither a string + nor a slog.Attr, and where a final key is missing its value. + * runtime: The runtime now keeps type-based garbage collection + metadata nearer to each heap object, improving the CPU + performance (latency or throughput) of Go programs by + 1-3%. This change also reduces the memory overhead of the + majority Go programs by approximately 1% by deduplicating + redundant metadata. Some programs may see a smaller improvement + because this change adjusts the size class boundaries of the + memory allocator, so some objects may be moved up a size class. + A consequence of this change is that some objects' addresses + that were previously always aligned to a 16 byte (or higher) + boundary will now only be aligned to an 8 byte boundary. Some + programs that use assembly instructions that require memory + addresses to be more than 8-byte aligned and rely on the memory + allocator's previous alignment behavior may break, but we + expect such programs to be rare. Such programs may be built + with GOEXPERIMENT=noallocheaders to revert to the old metadata + layout and restore the previous alignment behavior, but package + owners should update their assembly code to avoid the alignment + assumption, as this workaround will be removed in a future + release. + * runtime: On the windows/amd64 port, programs linking or loading + Go libraries built with -buildmode=c-archive or + -buildmode=c-shared can now use the SetUnhandledExceptionFilter + Win32 function to catch exceptions not handled by the Go + runtime. Note that this was already supported on the + windows/386 port. + * compiler: Profile-guided Optimization (PGO) builds can now + devirtualize a higher proportion of calls than previously + possible. Most programs from a representative set of Go + programs now see between 2 and 14% improvement from enabling + PGO. + * compiler: The compiler now interleaves devirtualization and + inlining, so interface method calls are better optimized. + * compiler: go1.22 also includes a preview of an enhanced + implementation of the compiler's inlining phase that uses + heuristics to boost inlinability at call sites deemed + "important" (for example, in loops) and discourage inlining at + call sites deemed "unimportant" (for example, on panic + paths). Building with GOEXPERIMENT=newinliner enables the new + call-site heuristics; see issue #61502 for more info and to + provide feedback. + * linker: The linker's -s and -w flags are now behave more + consistently across all platforms. The -w flag suppresses DWARF + debug information generation. The -s flag suppresses symbol + table generation. The -s flag also implies the -w flag, which + can be negated with -w=0. That is, -s -w=0 will generate a + binary with DWARF debug information generation but without the + symbol table. + * linker: On ELF platforms, the -B linker flag now accepts a + special form: with -B gobuildid, the linker will generate a GNU + build ID (the ELF NT_GNU_BUILD_ID note) derived from the Go + build ID. + * linker: On Windows, when building with -linkmode=internal, the + linker now preserves SEH information from C object files by + copying the .pdata and .xdata sections into the final + binary. This helps with debugging and profiling binaries using + native tools, such as WinDbg. Note that until now, C functions' + SEH exception handlers were not being honored, so this change + may cause some programs to behave differently. + -linkmode=external is not affected by this change, as external + linkers already preserve SEH information. + * bootstrap: As mentioned in the Go 1.20 release notes, go1.22 + now requires the final point release of Go 1.20 or later for + bootstrap. We expect that Go 1.24 will require the final point + release of go1.22 or later for bootstrap. + * core library: New math/rand/v2 package: go1.22 includes the + first âv2â package in the standard library, math/rand/v2. The + changes compared to math/rand are detailed in proposal + go#61716. The most important changes are: + - The Read method, deprecated in math/rand, was not carried + forward for math/rand/v2. (It remains available in + math/rand.) The vast majority of calls to Read should use + crypto/randâs Read instead. Otherwise a custom Read can be + constructed using the Uint64 method. + - The global generator accessed by top-level functions is + unconditionally randomly seeded. Because the API guarantees + no fixed sequence of results, optimizations like per-thread + random generator states are now possible. + - The Source interface now has a single Uint64 method; there is + no Source64 interface. + - Many methods now use faster algorithms that were not possible + to adopt in math/rand because they changed the output + streams. + - The Intn, Int31, Int31n, Int63, and Int64n top-level + functions and methods from math/rand are spelled more + idiomatically in math/rand/v2: IntN, Int32, Int32N, Int64, + and Int64N. There are also new top-level functions and + methods Uint32, Uint32N, Uint64, Uint64N, Uint, and UintN. + - The new generic function N is like Int64N or Uint64N but + works for any integer type. For example a random duration + from 0 up to 5 minutes is rand.N(5*time.Minute). + - The Mitchell & Reeds LFSR generator provided by math/randâs + Source has been replaced by two more modern pseudo-random + generator sources: ChaCha8 PCG. ChaCha8 is a new, + cryptographically strong random number generator roughly + similar to PCG in efficiency. ChaCha8 is the algorithm used + for the top-level functions in math/rand/v2. As of go1.22, + math/rand's top-level functions (when not explicitly seeded) + and the Go runtime also use ChaCha8 for randomness. + - We plan to include an API migration tool in a future release, + likely Go 1.23. + * core library: New go/version package: The new go/version + package implements functions for validating and comparing Go + version strings. + * core library: Enhanced routing patterns: HTTP routing in the + standard library is now more expressive. The patterns used by + net/http.ServeMux have been enhanced to accept methods and + wildcards. This change breaks backwards compatibility in small + ways, some obviousâpatterns with "{" and "}" behave + differentlyâ and some less soâtreatment of escaped paths has + been improved. The change is controlled by a GODEBUG field + named httpmuxgo121. Set httpmuxgo121=1 to restore the old + behavior. + * Minor changes to the library As always, there are various minor + changes and updates to the library, made with the Go 1 promise + of compatibility in mind. There are also various performance + improvements, not enumerated here. + * archive/tar: The new method Writer.AddFS adds all of the files + from an fs.FS to the archive. + * archive/zip: The new method Writer.AddFS adds all of the files + from an fs.FS to the archive. + * bufio: When a SplitFunc returns ErrFinalToken with a nil token, + Scanner will now stop immediately. Previously, it would report + a final empty token before stopping, which was usually not + desired. Callers that do want to report a final empty token can + do so by returning []byte{} rather than nil. + * cmp: The new function Or returns the first in a sequence of + values that is not the zero value. + * crypto/tls: ConnectionState.ExportKeyingMaterial will now + return an error unless TLS 1.3 is in use, or the + extended_master_secret extension is supported by both the + server and client. crypto/tls has supported this extension + since Go 1.20. This can be disabled with the tlsunsafeekm=1 + GODEBUG setting. + * crypto/tls: By default, the minimum version offered by + crypto/tls servers is now TLS 1.2 if not specified with + config.MinimumVersion, matching the behavior of crypto/tls + clients. This change can be reverted with the tls10server=1 + GODEBUG setting. + * crypto/tls: By default, cipher suites without ECDHE support are + no longer offered by either clients or servers during pre-TLS + 1.3 handshakes. This change can be reverted with the + tlsrsakex=1 GODEBUG setting. + * crypto/x509: The new CertPool.AddCertWithConstraint method can + be used to add customized constraints to root certificates to + be applied during chain building. + * crypto/x509: On Android, root certificates will now be loaded + from /data/misc/keychain/certs-added as well as + /system/etc/security/cacerts. + * crypto/x509: A new type, OID, supports ASN.1 Object Identifiers + with individual components larger than 31 bits. A new field + which uses this type, Policies, is added to the Certificate + struct, and is now populated during parsing. Any OIDs which + cannot be represented using a asn1.ObjectIdentifier will appear + in Policies, but not in the old PolicyIdentifiers field. When + calling CreateCertificate, the Policies field is ignored, and + policies are taken from the PolicyIdentifiers field. Using the + x509usepolicies=1 GODEBUG setting inverts this, populating + certificate policies from the Policies field, and ignoring the + PolicyIdentifiers field. We may change the default value of + x509usepolicies in Go 1.23, making Policies the default field + for marshaling. + * database/sql: The new Null[T] type provide a way to scan + nullable columns for any column types. + * debug/elf: Constant R_MIPS_PC32 is defined for use with MIPS64 + systems. Additional R_LARCH_* constants are defined for use + with LoongArch systems. + * encoding: The new methods AppendEncode and AppendDecode added + to each of the Encoding types in the packages encoding/base32, + encoding/base64, and encoding/hex simplify encoding and + decoding from and to byte slices by taking care of byte slice + buffer management. + * encoding: The methods base32.Encoding.WithPadding and + base64.Encoding.WithPadding now panic if the padding argument + is a negative value other than NoPadding. + * encoding/json: Marshaling and encoding functionality now + escapes '\b' and '\f' characters as \b and \f instead of \u0008 + and \u000c. + * go/ast: The following declarations related to syntactic + identifier resolution are now deprecated: Ident.Obj, Object, + Scope, File.Scope, File.Unresolved, Importer, Package, + NewPackage. In general, identifiers cannot be accurately + resolved without type information. Consider, for example, the + identifier K in T{K: ""}: it could be the name of a local + variable if T is a map type, or the name of a field if T is a + struct type. New programs should use the go/types package to + resolve identifiers; see Object, Info.Uses, and Info.Defs for + details. + * go/ast: The new ast.Unparen function removes any enclosing + parentheses from an expression. + * go/types: The new Alias type represents type + aliases. Previously, type aliases were not represented + explicitly, so a reference to a type alias was equivalent to + spelling out the aliased type, and the name of the alias was + lost. The new representation retains the intermediate + Alias. This enables improved error reporting (the name of a + type alias can be reported), and allows for better handling of + cyclic type declarations involving type aliases. In a future + release, Alias types will also carry type parameter + information. The new function Unalias returns the actual type + denoted by an Alias type (or any other Type for that matter). + * go/types: Because Alias types may break existing type switches + that do not know to check for them, this functionality is + controlled by a GODEBUG field named gotypesalias. With + gotypesalias=0, everything behaves as before, and Alias types + are never created. With gotypesalias=1, Alias types are created + and clients must expect them. The default is gotypesalias=0. In + a future release, the default will be changed to + gotypesalias=1. Clients of go/types are urged to adjust their + code as soon as possible to work with gotypesalias=1 to + eliminate problems early. + * go/types: The Info struct now exports the FileVersions map + which provides per-file Go version information. + * go/types: The new helper method PkgNameOf returns the local ++++ 190 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/go1.22/go1.22.changes ++++ and /work/SRC/openSUSE:Factory/.go1.22.new.1815/go1.22.changes Old: ---- go1.22rc2.src.tar.gz New: ---- go1.22.0.src.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ go1.22.spec ++++++ --- /var/tmp/diff_new_pack.Vnwm3H/_old 2024-02-07 18:51:32.281485586 +0100 +++ /var/tmp/diff_new_pack.Vnwm3H/_new 2024-02-07 18:51:32.281485586 +0100 @@ -122,7 +122,7 @@ %endif Name: go1.22 -Version: 1.22rc2 +Version: 1.22.0 Release: 0 Summary: A compiled, garbage-collected, concurrent programming language License: BSD-3-Clause ++++++ go1.22rc2.src.tar.gz -> go1.22.0.src.tar.gz ++++++ /work/SRC/openSUSE:Factory/go1.22/go1.22rc2.src.tar.gz /work/SRC/openSUSE:Factory/.go1.22.new.1815/go1.22.0.src.tar.gz differ: char 13, line 1
