commit go1.23 for openSUSE:Factory
Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package go1.23 for openSUSE:Factory checked in at 2024-08-14 14:15:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/go1.23 (Old) and /work/SRC/openSUSE:Factory/.go1.23.new.7232 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "go1.23" Wed Aug 14 14:15:43 2024 rev:2 rq:1193775 version:1.23.0 Changes: -------- --- /work/SRC/openSUSE:Factory/go1.23/go1.23.changes 2024-07-25 11:51:28.615672768 +0200 +++ /work/SRC/openSUSE:Factory/.go1.23.new.7232/go1.23.changes 2024-08-14 14:16:33.840835804 +0200 @@ -1,0 +2,418 @@ +Tue Aug 13 16:16:34 UTC 2024 - Jeff Kowalczyk <jkowalczyk@suse.com> + +- go1.23 (released 2024-08-13) is a major release of Go. + go1.23.x minor releases will be provided through August 2025. + https://github.com/golang/go/wiki/Go-Release-Cycle + go1.23 arrives six months after go1.22. 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#1229122 go1.23 release tracking + * Language change: Go 1.23 makes the (Go 1.22) "range-over-func" + experiment 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. For motivation see the 2022 "range-over-func" discussion. + * Language change: Go 1.23 includes preview support for generic + type aliases. Building the toolchain with + GOEXPERIMENT=aliastypeparams enables this feature within a + package. (Using generic alias types across package boundaries + is not yet supported.) + * Opt-in Telemetry: 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. + Go telemetry is an opt-in system, controlled by the go + telemetry command. 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 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" for more + details about the Go Telemetry system. + * go command: Setting the GOROOT_FINAL environment variable no + longer has an effect (#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 command: 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 command: 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 command: 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 command: The new godebug directive in go.mod and go.work + declares a GODEBUG setting to apply for the work module or + workspace in use. + * go vet: The go vet subcommand now includes the 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 + 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: 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. + * go trace: 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 under most + circumstances. + * 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 go#64590 for discussion. + * Compiler: The build time overhead to building with Profile + Guided Optimization 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. + * Compiler: 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. + * Compiler: 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. + * Linker: 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. + * Linker: A linker command line flag -checklinkname=0 can be used + to disable this check, for debugging and experimenting + purposes. + * Linker: When building a dynamically linked ELF binary + (including PIE binary), the new -bindnow flag enables immediate + function binding. + * Standard library changes: + * timer: 1.23 makes two significant changes to the implementation + of time.Timer and time.Ticker. + First, Timers and Tickers 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 Timers until after + they had fired and never collected unstopped Tickers. + 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 asynctimerchan=1 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. + * unique: 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. + * iter: The new iter package provides the basic definitions for + working with user-defined iterators. + * slices: The slices package adds several functions that work + with iterators: + - All returns an iterator over slice indexes and values. + - Values returns an iterator over slice elements. + - Backward returns an iterator that loops over a slice backward. + - Collect collects values from an iterator into a new slice. + - AppendSeq appends values from an iterator to an existing slice. + - Sorted collects values from an iterator into a new slice, and then sorts the slice. + - SortedFunc is like Sorted but with a comparison function. + - SortedStableFunc is like SortFunc but uses a stable sort algorithm. + - Chunk returns an iterator over consecutive sub-slices of up to n elements of a slice. + * maps: The maps package adds several functions that work with + iterators: + - All returns an iterator over key-value pairs from a map. + - Keys returns an iterator over keys in a map. + - Values returns an iterator over values in a map. + - Insert adds the key-value pairs from an iterator to an existing map. + - Collect collects key-value pairs from an iterator into a new map and returns it. + * structs: 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 which + indicates that a structure with a field of that type has a + layout that conforms to host platform expectations. + * Minor changes to the standard library: As always, there are + various minor changes and updates to the library, made with the + Go 1 promise of compatibility in mind. + * archive/tar: 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. + * crypto/tls: The TLS client now supports the Encrypted Client + Hello draft specification. This feature can be enabled by + setting the Config.EncryptedClientHelloConfigList field to an + encoded ECHConfigList for the host that is being connected to. + * crypto/tls: 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. + * crypto/tls: 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. + * crypto/tls: 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. + * crypto/tls: 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 + is added for this behavior. + * crypto/x509: CreateCertificateRequest now correctly supports + RSA-PSS signature algorithms. + * crypto/x509: 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. + * crypto/x509: The x509sha1 GODEBUG setting 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. + * crypto/x509: 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. + database/sql + * crypto/x509: Errors returned by driver.Valuer implementations + are now wrapped for improved error handling during operations + like DB.Query, DB.Exec, and DB.QueryRow. + * debug/elf: 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. + * debug/elf: Now defines the symbol type constants STT_RELC, + STT_SRELC, and STT_GNU_IFUNC. + * encoding/binary The new Encode and Decode functions are byte + slice equivalents to Read and Write. Append allows marshaling + multiple data into the same byte slice. + * go/ast: The new Preorder function returns a convenient iterator + over all the nodes of a syntax tree. + * go/types: 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. + * go/types: 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. (go#66559) + * go/types: The methods Alias.Origin, Alias.SetTypeParams, + Alias.TypeParams, and Alias.TypeArgs have been added. They are + needed for generic alias types. + * go/types: 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. + * math/rand/v2: The Uint function and Rand.Uint method have been + added. They were inadvertently left out of Go 1.22. + * math/rand/v2: The new ChaCha8.Read method implements the + io.Reader interface. + * net: 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. + * net: 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. + * net: The new GODEBUG setting netedns0=0 disables sending EDNS0 + additional headers on DNS requests, as they reportedly break + the DNS server on some modems. + * net/http: Cookie now preserves double quotes surrounding a + cookie value. The new Cookie.Quoted field indicates whether the + Cookie.Value was originally quoted. + * net/http: The new Request.CookiesNamed method retrieves all + cookies that match the given name. + * net/http: The new Cookie.Partitioned field identifies cookies + with the Partitioned attribute. + * net/http: The patterns used by ServeMux now allow one or more + spaces or tabs after the method name. Previously, only a single + space was permitted. + * net/http: 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. + * net/http: The new ParseSetCookie function parses a Set-Cookie + header value and returns a cookie. It returns an error on + syntax error. + * net/http: 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. + * net/http: 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. + * net/http: 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. + * net/http/httptest: The new NewRequestWithContext method creates + an incoming request with a context.Context. ++++ 121 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/go1.23/go1.23.changes ++++ and /work/SRC/openSUSE:Factory/.go1.23.new.7232/go1.23.changes Old: ---- go1.23rc1.src.tar.gz New: ---- go1.23.0.src.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ go1.23.spec ++++++ --- /var/tmp/diff_new_pack.HUgbcs/_old 2024-08-14 14:16:34.684871088 +0200 +++ /var/tmp/diff_new_pack.HUgbcs/_new 2024-08-14 14:16:34.684871088 +0200 @@ -122,7 +122,7 @@ %endif Name: go1.23 -Version: 1.23rc1 +Version: 1.23.0 Release: 0 Summary: A compiled, garbage-collected, concurrent programming language License: BSD-3-Clause @@ -410,7 +410,7 @@ # documentation and examples # fix documetation permissions (rpmlint warning) find doc/ misc/ -type f -exec chmod 0644 '{}' + -# remove markdown doc source templates new in go1.23rc1 +# remove markdown doc source templates new in go1.23 # templates do not appear to be rendered markdown content rm -rf doc/{initial,next} # remove unwanted arch-dependant binaries (rpmlint warning) ++++++ go1.23rc1.src.tar.gz -> go1.23.0.src.tar.gz ++++++ /work/SRC/openSUSE:Factory/go1.23/go1.23rc1.src.tar.gz /work/SRC/openSUSE:Factory/.go1.23.new.7232/go1.23.0.src.tar.gz differ: char 110, line 1
participants (1)
-
Source-Sync