]> Cypherpunks.ru repositories - gostls13.git/log
gostls13.git
10 months agodoc/go1.21: document changes in crypto/tls related to client authentication alerts
Anit Gandhi [Tue, 27 Jun 2023 16:55:45 +0000 (16:55 +0000)]
doc/go1.21: document changes in crypto/tls related to client authentication alerts

For #52113
For #58645

Change-Id: Id7dff2570132588da95fb4216a86faf34fa2cbdc
GitHub-Last-Rev: 94eabfe82f189b7a5fb7f1ee32ac3074aa58088f
GitHub-Pull-Request: golang/go#60972
Reviewed-on: https://go-review.googlesource.com/c/go/+/505436
Run-TryBot: Roland Shoemaker <roland@golang.org>
Auto-Submit: Roland Shoemaker <roland@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Roland Shoemaker <roland@golang.org>
10 months agodoc: fix html tags
cui fliter [Wed, 2 Aug 2023 06:39:11 +0000 (14:39 +0800)]
doc: fix html tags

Change-Id: I535bec2de8f4f7dd415896a020d71c373c22be56
Reviewed-on: https://go-review.googlesource.com/c/go/+/515155
Run-TryBot: shuang cui <imcusg@gmail.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: David Chase <drchase@google.com>
10 months agodoc/go1.21: consistently use spaces for indentation
Tobias Klauser [Mon, 17 Jul 2023 12:32:44 +0000 (14:32 +0200)]
doc/go1.21: consistently use spaces for indentation

Change-Id: Ib0aec9ee6cd7aae1821c82e67f0c67be01122992
Reviewed-on: https://go-review.googlesource.com/c/go/+/509677
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: David Chase <drchase@google.com>
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>

10 months agocmd/internal/obj/mips: add WSBH/DSBH/DSHD instructions
Junxian Zhu [Tue, 9 May 2023 11:11:20 +0000 (19:11 +0800)]
cmd/internal/obj/mips: add WSBH/DSBH/DSHD instructions

Add support for WSBH/DSBH/DSHD instructions, which are introduced in mips{32,64}r2.

WSBH reverse bytes within halfwords for 32-bit word, DSBH reverse bytes within halfwords for 64-bit doubleword, and DSHD reverse halfwords within doublewords. These instructions can be used to optimize byte swaps.

Ref: The MIPS64 Instruction Set, Revision 5.04: https://s3-eu-west-1.amazonaws.com/downloads-mips/documents/MD00087-2B-MIPS64BIS-AFP-05.04.pdf

Updates #60072

Change-Id: I31c043150fe8ac03027f413ef4cb2f3e435775e1
Reviewed-on: https://go-review.googlesource.com/c/go/+/493816
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Joel Sing <joel@sing.id.au>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Joel Sing <joel@sing.id.au>

10 months agodoc/go1.21: finish last TODO for go/types.Package.GoVersion
Matthew Dempsky [Wed, 26 Jul 2023 17:40:12 +0000 (10:40 -0700)]
doc/go1.21: finish last TODO for go/types.Package.GoVersion

Updates #58645.

Change-Id: I7352bf7f03c478d92ebd0b8345d676d5b2dfccb7
Reviewed-on: https://go-review.googlesource.com/c/go/+/513475
Auto-Submit: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Bypass: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Robert Griesemer <gri@google.com>
10 months agocmd/asm: add s390x crypto related instructions
Srinivas Pokala [Wed, 12 Jul 2023 12:47:31 +0000 (14:47 +0200)]
cmd/asm: add s390x crypto related instructions

This CL add's the following instructions,useful for cipher and
message digest operations:

 * KM   - cipher message
 * KMC  - cipher message with chaining
 * KLMD - compute last message digest
 * KIMD - compute intermediate message digest

Fixes #61163

Change-Id: Ib0636430c3e4888ed61b86c5acae45ee596463ff
Reviewed-on: https://go-review.googlesource.com/c/go/+/509075
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
10 months agointernal/goexperiment: add "NewInliner" experiment
Than McIntosh [Tue, 11 Jul 2023 14:34:48 +0000 (10:34 -0400)]
internal/goexperiment: add "NewInliner" experiment

Add "NewInliner" to the list of Go experiments, used for enabling an
updated/improved version of the function inlining phase within the Go
compiler.

Updates #61502.

Change-Id: I3218b3ae59a2d05156e8017cd9ee1d7b66cad031
Reviewed-on: https://go-review.googlesource.com/c/go/+/511555
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Than McIntosh <thanm@google.com>

10 months agogo/types, types2: move posVers field into group of package-specific fields (cleanup)
Robert Griesemer [Tue, 1 Aug 2023 22:48:17 +0000 (15:48 -0700)]
go/types, types2: move posVers field into group of package-specific fields (cleanup)

posVers exists once for an entire package. Move it into the group
of fields related to the entire package (and out from the group
of fields that are specific to each batch of files).

Change-Id: I40ea722578408bdf2b85db91b65680e720c0c502
Reviewed-on: https://go-review.googlesource.com/c/go/+/514998
Auto-Submit: Robert Griesemer <gri@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
10 months agocrypto/tls: change SendSessionTicket to take an options struct
Damien Neil [Tue, 1 Aug 2023 20:33:37 +0000 (13:33 -0700)]
crypto/tls: change SendSessionTicket to take an options struct

To allow for future evolution of the API, make
QUICConn.SendSessionTicket take a QUICSessionTicketOptions
rather than a single bool.

For #60107

Change-Id: I798fd0feec5c7581e3c3574e2de99611c81df47f
Reviewed-on: https://go-review.googlesource.com/c/go/+/514997
Reviewed-by: Roland Shoemaker <roland@golang.org>
Run-TryBot: Damien Neil <dneil@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Marten Seemann <martenseemann@gmail.com>
10 months agoruntime: cpu profiler to use high resolution timers on Windows
qmuntal [Mon, 31 Jul 2023 15:33:40 +0000 (17:33 +0200)]
runtime: cpu profiler to use high resolution timers on Windows

The CPU profiler skip samples if the sampling rate is too high
for the system timer resolution. This CL uses high resolution
timers on Windows when available, to avoid this problem.

Note that the default sampling rate (100Hz) is already too high
for the Windows timer resolution (15.6ms), so this CL also improves
the default Windows sampling coverage.

Not adding regression tests, as they would be too flaky.

Fixes #61665

Change-Id: Ifdadabc9ebaf56f397eac517bd0e5f1502b956b3
Reviewed-on: https://go-review.googlesource.com/c/go/+/514375
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Quim Muntal <quimmuntal@gmail.com>
Reviewed-by: David Chase <drchase@google.com>
10 months agoreflect: update Type.FieldByName documentation
qiulaidongfeng [Wed, 2 Aug 2023 00:37:49 +0000 (00:37 +0000)]
reflect: update Type.FieldByName documentation

Fixes #61495

Change-Id: I9abaf3613c797006b803dcb1dbee16f25ffb7516

Change-Id: I9abaf3613c797006b803dcb1dbee16f25ffb7516
GitHub-Last-Rev: 7bc2cba77286be1bd322ee31eee3e1df3d8761f1
GitHub-Pull-Request: golang/go#61645
Reviewed-on: https://go-review.googlesource.com/c/go/+/514035
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>

10 months agoencoding/json: adjust comment to keep the same style as comment above
Jes Cok [Wed, 2 Aug 2023 12:30:56 +0000 (12:30 +0000)]
encoding/json: adjust comment to keep the same style as comment above

Change-Id: Id47d32d18031883b874bba4cf8541f75c5d7f9db
GitHub-Last-Rev: 98c671c00c112e7bdf70b2f901a4f7682f922725
GitHub-Pull-Request: golang/go#61711
Reviewed-on: https://go-review.googlesource.com/c/go/+/515215
Reviewed-by: Russ Cox <rsc@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
Auto-Submit: Russ Cox <rsc@golang.org>
Reviewed-by: David Chase <drchase@google.com>
10 months agocmd/go: missing name in failed command error
Mauri de Souza Meneguzzo [Wed, 2 Aug 2023 13:47:16 +0000 (13:47 +0000)]
cmd/go: missing name in failed command error

Fixed the error reporting for an unknown command to
preserve the name when displaying the error message.

Fixes #61604

Change-Id: I13defb84e61265ab48ab514e9d4f1626a4a3f758
GitHub-Last-Rev: 5d2889c60ceb3f43bb63b6641ecbcca08b7cd365
GitHub-Pull-Request: golang/go#61607
Reviewed-on: https://go-review.googlesource.com/c/go/+/513555
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Auto-Submit: Russ Cox <rsc@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
10 months agocrypto/tls: restrict RSA keys in certificates to <= 8192 bits
Roland Shoemaker [Wed, 7 Jun 2023 22:27:13 +0000 (15:27 -0700)]
crypto/tls: restrict RSA keys in certificates to <= 8192 bits

Extremely large RSA keys in certificate chains can cause a client/server
to expend significant CPU time verifying signatures. Limit this by
restricting the size of RSA keys transmitted during handshakes to <=
8192 bits.

Based on a survey of publicly trusted RSA keys, there are currently only
three certificates in circulation with keys larger than this, and all
three appear to be test certificates that are not actively deployed. It
is possible there are larger keys in use in private PKIs, but we target
the web PKI, so causing breakage here in the interests of increasing the
default safety of users of crypto/tls seems reasonable.

Thanks to Mateusz Poliwczak for reporting this issue.

Fixes #61460
Fixes CVE-2023-29409

Change-Id: Ie35038515a649199a36a12fc2c5df3af855dca6c
Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/1912161
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: Tatiana Bradley <tatianabradley@google.com>
Run-TryBot: Roland Shoemaker <bracewell@google.com>
Reviewed-on: https://go-review.googlesource.com/c/go/+/515257
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: David Chase <drchase@google.com>
Run-TryBot: David Chase <drchase@google.com>

10 months agocmd/distpack: test for .DS_Store files in all directories
Dmitri Shuralyov [Tue, 1 Aug 2023 17:43:08 +0000 (13:43 -0400)]
cmd/distpack: test for .DS_Store files in all directories

macOS may write a .DS_Store file to any directory at any time in
the general case, unfortunately. Expand test rules to catch them
no matter where they may appear.

For #24904.

Change-Id: I98a2bb5d0ae2ab3a191ff87b33d6f8048ca39aa8
Reviewed-on: https://go-review.googlesource.com/c/go/+/514898
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>

10 months agocmd/dist: tolerate macOS writing .DS_Store to GOROOT/bin
Dmitri Shuralyov [Sat, 29 Jul 2023 20:33:13 +0000 (16:33 -0400)]
cmd/dist: tolerate macOS writing .DS_Store to GOROOT/bin

I was trying out gorebuild (a program that runs make.bash many times)
on a macOS system. Unfortunately there were a few failed invocations
on my first try, but not with a very good or interesting reason:

go tool dist: unexpected new file in $GOROOT/bin: .DS_Store

Tolerate it since it's not unexpected, and will not affect the build.

Change-Id: I656536b896098c2ba934667196d4ce82e706c8da
Reviewed-on: https://go-review.googlesource.com/c/go/+/513763
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>

10 months agoencoding/json: replace "between or" with "between and" in comment
Jes Cok [Tue, 1 Aug 2023 20:22:13 +0000 (20:22 +0000)]
encoding/json: replace "between or" with "between and" in comment

Change-Id: Id19a15f9367de10e08a9ec22a8cb50c58d517906
GitHub-Last-Rev: f413d71c9ad0f2efc0b4811c7188cc2caa9c1de0
GitHub-Pull-Request: golang/go#61701
Reviewed-on: https://go-review.googlesource.com/c/go/+/514976
Reviewed-by: Russ Cox <rsc@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
Auto-Submit: Russ Cox <rsc@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
10 months agocmd/compile: implement float min/max in hardware for amd64 and arm64
Keith Randall [Mon, 31 Jul 2023 21:08:42 +0000 (14:08 -0700)]
cmd/compile: implement float min/max in hardware for amd64 and arm64

Update #59488

Change-Id: I89f5ea494cbcc887f6fae8560e57bcbd8749be86
Reviewed-on: https://go-review.googlesource.com/c/go/+/514596
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
10 months agoreflect: make linkable cross-references in documentation
Keith Randall [Tue, 1 Aug 2023 17:03:40 +0000 (10:03 -0700)]
reflect: make linkable cross-references in documentation

This makes it easier to click around in documentation on pkg.go.dev.

Change-Id: Idc67c312bc72c612e660607e5400b43ecc110bc1
Reviewed-on: https://go-review.googlesource.com/c/go/+/514895
Run-TryBot: Keith Randall <khr@golang.org>
Auto-Submit: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
10 months agoruntime: handle SIGPE exception for p256 crypto package on s390x
root [Wed, 31 May 2023 12:06:02 +0000 (12:06 +0000)]
runtime: handle SIGPE exception for p256 crypto package on s390x

Older s390x before z13 did not have support to carry out floating point operations i.e. they didn't have the support for vector instructions like VX/VL, etc.

Starting with Go1.19, z13 is the minimum hardware level for running Go on LoZ (s390x). The main cause of this issue was the refactoring of elliptic curve to internal/nistec. The new code structures made it difficult to dynamically switch implementations at runtime, so it became necessary (in order machines to continue to use the accelerated implementation) to require z13 as the minimum hardware.

Hence, Go programs, when run on unsupported hardware, should crash on startup instead of crashing out in crypto code.

Fixes: #58465
Change-Id: I7c1a816205d19b5ddd2f1464839d16fa96815384
Reviewed-on: https://go-review.googlesource.com/c/go/+/499495
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Bypass: Cherry Mui <cherryyz@google.com>

10 months agogo/types, types2: instantiated interfaces must be concurrency safe
Rob Findley [Tue, 25 Jul 2023 15:57:37 +0000 (11:57 -0400)]
go/types, types2: instantiated interfaces must be concurrency safe

It is the responsibility of go/types to complete any interface it
creates, except for those created by the user using NewInterface.
However, this was not being done for interfaces created during
instantiation.

Fix this by (rather carefully) ensuring that all newly created
interfaces are eventually completed.

Fixes golang/go#61561

Change-Id: I3926e7c9cf80714838d2c1b5f36a2d3221c60c41
Reviewed-on: https://go-review.googlesource.com/c/go/+/513015
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Robert Findley <rfindley@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
10 months agogo/types, types2: remove internal constant enableInterfaceInference
Robert Griesemer [Tue, 1 Aug 2023 04:46:31 +0000 (21:46 -0700)]
go/types, types2: remove internal constant enableInterfaceInference

We're not going to disable this functionality as it would
invalidate code that now type-checks with type inference
based on this mechanism.

Change-Id: Ib11059e2f70a5a209693b06f754cba862e3650ec
Reviewed-on: https://go-review.googlesource.com/c/go/+/514715
Auto-Submit: Robert Griesemer <gri@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
Run-TryBot: Robert Griesemer <gri@google.com>

10 months agocmd/compile/internal/mips: use hardware NOP instruction as NOOP on mips platform
Junxian Zhu [Wed, 12 Jul 2023 11:07:55 +0000 (19:07 +0800)]
cmd/compile/internal/mips: use hardware NOP instruction as NOOP on mips platform

This CL uses mips hardware NOP instruction as NOOP on mips platform, instead of pseudo NOP "nor $zero,$zero,$zero".

Change-Id: I336e1ba4228b71e6bfc6be66b367a4327fb3b36e
Reviewed-on: https://go-review.googlesource.com/c/go/+/509015
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Joel Sing <joel@sing.id.au>
Run-TryBot: Joel Sing <joel@sing.id.au>
Reviewed-by: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
10 months agotext/template, html/template: use reflect.TypeFor for known types
Ian Lance Taylor [Mon, 31 Jul 2023 22:24:18 +0000 (15:24 -0700)]
text/template, html/template: use reflect.TypeFor for known types

For #60088

Change-Id: Ibc3983ca5cfe396087ddfa96c43cfe32ca47129a
Reviewed-on: https://go-review.googlesource.com/c/go/+/514640
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>

10 months agoencoding/json: use reflect.TypeFor for known types
Ian Lance Taylor [Mon, 31 Jul 2023 22:18:12 +0000 (15:18 -0700)]
encoding/json: use reflect.TypeFor for known types

For #60088

Change-Id: I2e471c76de62944b14472966b63f5778124b9b8b
Reviewed-on: https://go-review.googlesource.com/c/go/+/514655
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Joseph Tsai <joetsai@digital-static.net>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Joseph Tsai <joetsai@digital-static.net>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
10 months agoencoding/xml: use reflect.TypeFor for known types
Ian Lance Taylor [Mon, 31 Jul 2023 22:20:54 +0000 (15:20 -0700)]
encoding/xml: use reflect.TypeFor for known types

For #60088

Change-Id: Ib2589b994d304cca1f2e2081639959d80818ac7f
Reviewed-on: https://go-review.googlesource.com/c/go/+/514639
Run-TryBot: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Joseph Tsai <joetsai@digital-static.net>
10 months agoos/exec: Use the built-in function min instead of minInt
apocelipes [Mon, 31 Jul 2023 19:40:37 +0000 (19:40 +0000)]
os/exec: Use the built-in function min instead of minInt

The built-in function `min` has been implemented and can now be used to replace some manually written `minType` helper functions.

Change-Id: Ie8ffc7881c8652ece752751214f1242bf76a6e7e
GitHub-Last-Rev: 5db344f13142c78f437571e3a1cdc0b02c0589cb
GitHub-Pull-Request: golang/go#60866
Reviewed-on: https://go-review.googlesource.com/c/go/+/504315
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: qiulaidongfeng <2645477756@qq.com>
10 months agoarchive/tar: narrow trim range for formatter'formatString
Jes Cok [Mon, 12 Jun 2023 12:09:44 +0000 (12:09 +0000)]
archive/tar: narrow trim range for formatter'formatString

Trim s[:len(b)-1] rather than s[:len(b)], since s[len(b)-1] is '/'.

Change-Id: I055da555810c112774549bd13d4faa8bfa0a60dc
GitHub-Last-Rev: 457977514d75a6c72086c2f4d89fb601280b8b90
GitHub-Pull-Request: golang/go#60729
Reviewed-on: https://go-review.googlesource.com/c/go/+/502376
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: David Chase <drchase@google.com>
10 months agoencoding/gob: use reflect.TypeFor for known types
Ian Lance Taylor [Mon, 31 Jul 2023 17:30:27 +0000 (10:30 -0700)]
encoding/gob: use reflect.TypeFor for known types

This avoids several mildly confusing Elem calls.

For #60088

Change-Id: If7b83d2ab10537c7e886a035b43cb272130c1669
Reviewed-on: https://go-review.googlesource.com/c/go/+/514455
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Rob Pike <r@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>

10 months agotime: mention time resolution in docs
qmuntal [Mon, 31 Jul 2023 09:00:40 +0000 (11:00 +0200)]
time: mention time resolution in docs

Updates #44343
Updates #53824

Change-Id: Ia7234fac4b1b88b3c331328aaa98dc85205e09ba
Reviewed-on: https://go-review.googlesource.com/c/go/+/514275
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Quim Muntal <quimmuntal@gmail.com>

10 months agosync: panic rather than throw on nil *Pool
Ian Lance Taylor [Sat, 29 Jul 2023 15:59:20 +0000 (08:59 -0700)]
sync: panic rather than throw on nil *Pool

Fixes #61651

Change-Id: I27d581719e6bf38910f9d47dcf023bbff74ddf72
Reviewed-on: https://go-review.googlesource.com/c/go/+/514037
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>

10 months agonet/http: fix doc comment on FormValue function
Eduard Bondarenko [Wed, 26 Jul 2023 16:28:28 +0000 (16:28 +0000)]
net/http: fix doc comment on FormValue function

This function checks Request.Form, which now includes values parsed from a PATCH request.

Fixes #60585

Change-Id: Icb095d9ac2f8b0c5dbf313e507ed838cb941517f
GitHub-Last-Rev: 3a477ea97e27f5b31d28085df75163fc13541c13
GitHub-Pull-Request: golang/go#61591
Reviewed-on: https://go-review.googlesource.com/c/go/+/513435
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Damien Neil <dneil@google.com>
Run-TryBot: Damien Neil <dneil@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Damien Neil <dneil@google.com>

10 months agoregexp/syntax: accept (?<name>...) syntax as valid capture
Mauri de Souza Meneguzzo [Sat, 29 Jul 2023 20:26:00 +0000 (20:26 +0000)]
regexp/syntax: accept (?<name>...) syntax as valid capture

Currently the only named capture supported by regexp is (?P<name>a).

The syntax (?<name>a) is also widely used and there is currently an effort from
 the Rust regex and RE2 teams to also accept this syntax.

Fixes #58458

Change-Id: If22d44d3a5c4e8133ec68238ab130c151ca7c5c5
GitHub-Last-Rev: 31b50e6ab40cfb0f36df6f570525657d4680017f
GitHub-Pull-Request: golang/go#61624
Reviewed-on: https://go-review.googlesource.com/c/go/+/513838
Auto-Submit: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
10 months agodoc/go_mem: explain arrays, structs, and complex numbers
Russ Cox [Mon, 31 Jul 2023 18:01:00 +0000 (14:01 -0400)]
doc/go_mem: explain arrays, structs, and complex numbers

Arrays, structs, and complex numbers are collections of values that
are handled separately by the memory model.

An earlier version may have said this, but the current version does not.
Say it.

Change-Id: If3928bed6659e58e688f88aa0dde05423cbb3820
Reviewed-on: https://go-review.googlesource.com/c/go/+/514476
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
10 months agoerrors: optimize *joinError's Error method for less allocation and faster execution
Jes Cok [Tue, 6 Jun 2023 23:25:42 +0000 (23:25 +0000)]
errors: optimize *joinError's Error method for less allocation and faster execution

Handle the case of one error at the beginning.
Use unsafe.String to avoid memory allocation when converting byte slice to string.

Change-Id: Ib23576f72b1d87489e6f17762be483f62ca4998a
GitHub-Last-Rev: ed8003bfbcae8efd42e54895db0554c139b9d3a7
GitHub-Pull-Request: golang/go#60026
Reviewed-on: https://go-review.googlesource.com/c/go/+/493237
Reviewed-by: Damien Neil <dneil@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>

10 months agodebug/buildinfo: read full data segment to lookup buildinfo magic
Alexander Yastrebov [Sat, 29 Jul 2023 17:00:35 +0000 (17:00 +0000)]
debug/buildinfo: read full data segment to lookup buildinfo magic

Fixes #61644

Change-Id: I7d40c33e65221994bb6865d22dd0994545603ba8
GitHub-Last-Rev: aca92afcbdef2dd191ed0e5c61da29d3b1cb0698
GitHub-Pull-Request: golang/go#61649
Reviewed-on: https://go-review.googlesource.com/c/go/+/514075
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
10 months agoencoding/json: optimize Unmarshal for maps
korzhao [Sun, 30 Jul 2023 07:02:15 +0000 (15:02 +0800)]
encoding/json: optimize Unmarshal for maps

benchmark                    old ns/op     new ns/op     delta
BenchmarkUnmarshalMap-10     218           172           -21.28%

benchmark                    old allocs     new allocs     delta
BenchmarkUnmarshalMap-10     15             12             -20.00%

benchmark                    old bytes     new bytes     delta
BenchmarkUnmarshalMap-10     328           256           -21.95%

Change-Id: Ie20ab62731c752eb0040c6d1591fedd7d12b1e0c
Reviewed-on: https://go-review.googlesource.com/c/go/+/514100
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>

10 months agocmd/compile: try to rewrite loops to count down
Jorropo [Tue, 25 Jul 2023 14:19:10 +0000 (16:19 +0200)]
cmd/compile: try to rewrite loops to count down

Fixes #61629

This reduce the pressure on regalloc because then the loop only keep alive
one value (the iterator) instead of the iterator and the upper bound since
the comparison now acts against an immediate, often zero which can be skipped.

This optimize things like:
  for i := 0; i < n; i++ {
Or a range over a slice where the index is not used:
  for _, v := range someSlice {
Or the new range over int from #61405:
  for range n {

It is hit in 975 unique places while doing ./make.bash.

Change-Id: I5facff8b267a0b60ea3c1b9a58c4d74cdb38f03f
Reviewed-on: https://go-review.googlesource.com/c/go/+/512935
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Jorropo <jorropo.pgm@gmail.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Auto-Submit: Keith Randall <khr@golang.org>

10 months ago.github: fix templates with multiple labels
Sean Liao [Sun, 30 Jul 2023 08:46:55 +0000 (09:46 +0100)]
.github: fix templates with multiple labels

Also Go2 -> v2

Change-Id: Icde8ffc4a1ee2e43241a3dcd00ff0c48992b1e25
Reviewed-on: https://go-review.googlesource.com/c/go/+/514175
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Bypass: Dmitri Shuralyov <dmitshur@golang.org>

10 months agodebug/elf: don't use reflection in File.Symbols
Tolya Korniltsev [Mon, 24 Jul 2023 06:11:48 +0000 (13:11 +0700)]
debug/elf: don't use reflection in File.Symbols

cpu: AMD Ryzen 9 5950X 16-Core Processor
             |   old.txt    |               new.txt                |
             |    sec/op    |    sec/op     vs base                |
Symbols64-32   18.486µ ± 2%   4.509µ ± 24%  -75.61% (p=0.000 n=10)
Symbols32-32   17.823µ ± 3%   4.798µ ±  2%  -73.08% (p=0.000 n=10)
geomean         18.15µ        4.651µ        -74.38%

             |    old.txt    |               new.txt                |
             |     B/op      |     B/op      vs base                |
Symbols64-32   10.680Ki ± 0%   8.922Ki ± 0%  -16.46% (p=0.000 n=10)
Symbols32-32    9.773Ki ± 0%   8.570Ki ± 0%  -12.31% (p=0.000 n=10)
geomean         10.22Ki        8.744Ki       -14.41%

             |   old.txt   |              new.txt               |
             |  allocs/op  | allocs/op   vs base                |
Symbols64-32   119.00 ± 0%   45.00 ± 0%  -62.18% (p=0.000 n=10)
Symbols32-32   125.00 ± 0%   50.00 ± 0%  -60.00% (p=0.000 n=10)
geomean         122.0        47.43       -61.11%

Fixes #61534

Change-Id: I13a96467108771df31f018853df754e42100e773
Reviewed-on: https://go-review.googlesource.com/c/go/+/512395
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: David Chase <drchase@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>

10 months agoarchive/zip: add AddFS method to zip Writer
Mauri de Souza Meneguzzo [Thu, 27 Jul 2023 23:11:59 +0000 (23:11 +0000)]
archive/zip: add AddFS method to zip Writer

The method AddFS can be used to add the contents of a fs.FS filesystem
to a zip archive.
This method walks the directory tree starting at the root of the filesystem
and adds each file to the archive.

Fixes #54898

Change-Id: I80511cbd91a1d7e09ee52d2d1b09fb5eed25f45f
GitHub-Last-Rev: 1e17f2e6bae60cf5168d687dd1357ab58a883675
GitHub-Pull-Request: golang/go#61602
Reviewed-on: https://go-review.googlesource.com/c/go/+/513438
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>

10 months agocmd/internal/obj/mips: use more appropriate register types for OP_FRRR/OP_SRR
Joel Sing [Fri, 28 Jul 2023 16:03:38 +0000 (02:03 +1000)]
cmd/internal/obj/mips: use more appropriate register types for OP_FRRR/OP_SRR

Rather than passing registers as uint32, use int16 and cast to uint32 in
the OP_FRRR/OP_SRR implementation. This allows a large number of casts to be
removed and code simplified at call sites.

Change-Id: Ia4bf3bd022f79d65e45fca64db13db12739e5b23
Reviewed-on: https://go-review.googlesource.com/c/go/+/514099
Run-TryBot: Joel Sing <joel@sing.id.au>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Rong Zhang <rongrong@oss.cipunited.com>
Reviewed-by: David Chase <drchase@google.com>
Auto-Submit: Ian Lance Taylor <iant@golang.org>

10 months agocmd/internal/obj/mips: use more appropriate register types for OP_IRR
Joel Sing [Fri, 28 Jul 2023 10:20:39 +0000 (20:20 +1000)]
cmd/internal/obj/mips: use more appropriate register types for OP_IRR

Rather than passing registers as uint32, use int16 and cast to uint32 in
the OP_IRR implementation. This allows a large number of casts to be removed
and code simplified at call sites. Also be more consistent with op, register
and value ordering.

Change-Id: I510347d97787ce80a338037b25470addf3a2939d
Reviewed-on: https://go-review.googlesource.com/c/go/+/514098
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Joel Sing <joel@sing.id.au>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Rong Zhang <rongrong@oss.cipunited.com>
Auto-Submit: Ian Lance Taylor <iant@golang.org>

10 months agocmd/internal/obj/mips: use more appropriate register types for OP_RRR
Joel Sing [Fri, 28 Jul 2023 09:59:36 +0000 (19:59 +1000)]
cmd/internal/obj/mips: use more appropriate register types for OP_RRR

Rather than passing registers as uint32, use int16 and cast to uint32 in
the OP_RRR implementation. This allows a large number of casts to be removed
and code simplified at call sites.

Change-Id: I2194ea07a6f89861530cd88c4b60c993bb0fa0c1
Reviewed-on: https://go-review.googlesource.com/c/go/+/514097
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Rong Zhang <rongrong@oss.cipunited.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Joel Sing <joel@sing.id.au>
TryBot-Result: Gopher Robot <gobot@golang.org>

10 months agocmd/internal/obj/mips: use obj.REG_NONE rather than 0
Joel Sing [Fri, 28 Jul 2023 09:27:22 +0000 (19:27 +1000)]
cmd/internal/obj/mips: use obj.REG_NONE rather than 0

Instead of comparing register values to 0, use obj.REG_NONE to improve
readability. No functional change.

Change-Id: I848f7ab7e27fe7e5e9fe2caf9cce47e372c6cd6c
Reviewed-on: https://go-review.googlesource.com/c/go/+/514096
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: Joel Sing <joel@sing.id.au>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Rong Zhang <rongrong@oss.cipunited.com>
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Junxian Zhu <zhujunxian@oss.cipunited.com>
10 months agocmd/go: make go list -m -u all not complain about missing checksums
Russ Cox [Thu, 27 Jul 2023 19:56:37 +0000 (15:56 -0400)]
cmd/go: make go list -m -u all not complain about missing checksums

This is a band-aid of a fix for Go 1.21, to create space to work on
a real fix for Go 1.22, if in fact the real fix is different. It simply
disables the go.sum update check during go list -m -u.
I don't have a self-contained test for the breakage. See #61605.
All existing tests continue to pass.

For #61605.
After merging into the Go 1.21 branch we can move #61605 to the Go 1.22 milestone.

Change-Id: Ib155710092003f08d2a6ce0aefa8e0270cad5a5c
Reviewed-on: https://go-review.googlesource.com/c/go/+/513778
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Michael Matloob <matloob@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

10 months agocmd/link: fix up more zero-sized local symbols on darwin dynamic linking
Cherry Mui [Wed, 14 Jun 2023 21:09:30 +0000 (17:09 -0400)]
cmd/link: fix up more zero-sized local symbols on darwin dynamic linking

When dynamic linking on darwin, the darwin linker doesn't link
relocations pointing to zero-sized local symbols, like our
start/end marker symbols, e.g. runtime.text and runtime.etext.
It will choose to resolve to another symbol on the same address
that may not be local, therefore that reference may point to a
different DSO, which is not what we want. We already fix up some
marker symbols, like text/etext, data/edata, bss/ebss. But we
currently don't fix up noptrdata and noptrbss. With the new
darwin linker ld-prime, this causes problems when building a
plugin. Fix up those symbols.

For #61229.

Change-Id: I2181bb9184b85af9a3c3f5dc6d78e4d5a1d56d53
Reviewed-on: https://go-review.googlesource.com/c/go/+/503538
Reviewed-by: Than McIntosh <thanm@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

10 months agogo/types: add test cases for generic constraints, types and functions
Hiro [Mon, 31 Jul 2023 08:50:43 +0000 (08:50 +0000)]
go/types: add test cases for generic constraints, types and functions

Dups: #60856
For #60817

Change-Id: Ic0710758e170d6ceed66649fec08ef8054be4d6b
GitHub-Last-Rev: 8bbc76aaa704f102f9eabdfead45da452e1ea6e6
GitHub-Pull-Request: golang/go#61664
Reviewed-on: https://go-review.googlesource.com/c/go/+/514255
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@google.com>
Run-TryBot: Robert Griesemer <gri@google.com>
Auto-Submit: Robert Griesemer <gri@google.com>

10 months agocmd/link: always use symbol-targeted relocations on Mach-O
Cherry Mui [Thu, 15 Jun 2023 21:25:08 +0000 (17:25 -0400)]
cmd/link: always use symbol-targeted relocations on Mach-O

In Mach-O object files, there are two kinds of relocations:
"external" relocation, which targets a symbol, and "non-external"
relocation, which targets a section. For targeting symbols not in
the current object, we must use symbol-targeted relocations. For
targeting symbols defined in the current object, for some
relocation types, both kinds can be used. We currently use
section-targeted relocations for R_ADDR targeting locally defined
symbols.

Modern Apple toolchain seems to prefer symbol-targeted relocations.
Also, Apple's new linker, ld-prime, seems to not handle section-
targeted relocations well in some cases. So this CL switches to
always generate symbol-targeted relocations. This also simplifies
the code.

One exception is that DWARF tools seem to handle only section-
targeted relocations. So generate those in DWARF sections.

This CL supersedes CL 502616.

Fixes #60694.
For #61229.

Change-Id: I3b74df64f21114635061bcd89114392b3a2d588b
Reviewed-on: https://go-review.googlesource.com/c/go/+/503935
Reviewed-by: Than McIntosh <thanm@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

10 months agocmd/link: use symbol-targeted relocation for initializers on Mach-O
Cherry Mui [Mon, 12 Jun 2023 17:42:30 +0000 (13:42 -0400)]
cmd/link: use symbol-targeted relocation for initializers on Mach-O

Apple's new linker, ld-prime from Xcode 15 beta, when handling
initializers in __mod_init_func, drops the offset in the data,
resolving the relocation to the beginning of the section. The
latest version of ld-prime rejects non-zero addend. We need to use
symbol-targeted "external" relocations, so that it doesn't need
an addend and can be resolved correctly. This also works fine with
ld64.

Fixes #60694.
For #61229.

Change-Id: Ida2be6aa4c91bfcd142b755e2ec63aabfbbd77a6
Reviewed-on: https://go-review.googlesource.com/c/go/+/502616
Run-TryBot: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

10 months agoruntime: refactor defer processing
Matthew Dempsky [Thu, 27 Jul 2023 23:20:36 +0000 (16:20 -0700)]
runtime: refactor defer processing

This CL refactors gopanic, Goexit, and deferreturn to share a common
state machine for processing pending defers. The new state machine
removes a lot of redundant code and does overall less work.

It should also make it easier to implement further optimizations
(e.g., TODOs added in this CL).

Change-Id: I71d3cc8878a6f951d8633505424a191536c8e6b3
Reviewed-on: https://go-review.googlesource.com/c/go/+/513837
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

10 months agocmd/internal/obj/arm64: improve splitting of 24 bit unsigned scaled immediates
Joel Sing [Sat, 29 Apr 2023 10:29:41 +0000 (20:29 +1000)]
cmd/internal/obj/arm64: improve splitting of 24 bit unsigned scaled immediates

The previous implementation would limit itself to 0xfff000 | 0xfff << shift,
while the maximum possible value is 0xfff000 + 0xfff << shift. In practical
terms, this means that an additional ((1 << shift) - 1) * 0x1000 of offset
is reachable for operations that use this splitting format. In the case of
an 8 byte load/store, this is an additional 0x7000 that can be reached
without needing to use the literal pool.

Updates #59615

Change-Id: Ice7023104042d31c115eafb9398c2b999bdd6583
Reviewed-on: https://go-review.googlesource.com/c/go/+/512540
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: Joel Sing <joel@sing.id.au>

10 months agospec: add Appendix with detailed type unification rules
Robert Griesemer [Wed, 26 Jul 2023 00:18:20 +0000 (17:18 -0700)]
spec: add Appendix with detailed type unification rules

Change-Id: I0d4ccbc396c48d565c0cbe93c9558ab330a44d02
Reviewed-on: https://go-review.googlesource.com/c/go/+/513275
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Bypass: Robert Griesemer <gri@google.com>

10 months agocmd/internal/obj/arm64: avoid unnecessary literal pool usage for moves
Joel Sing [Wed, 3 May 2023 11:56:18 +0000 (21:56 +1000)]
cmd/internal/obj/arm64: avoid unnecessary literal pool usage for moves

In a number of load and store cases, the use of the literal pool can be
entirely avoided by simply adding or subtracting the offset from the
register. This uses the same number of instructions, while avoiding a
load from memory, along with the need for the value to be in the literal
pool. Overall this reduces the size of binaries slightly and should have
lower overhead.

Updates #59615

Change-Id: I9cb6a403dc71e34a46af913f5db87dbf52f8688c
Reviewed-on: https://go-review.googlesource.com/c/go/+/512539
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Joel Sing <joel@sing.id.au>

10 months agocmd/internal/obj/arm64: improve classification of loads and stores
Joel Sing [Mon, 1 May 2023 17:42:30 +0000 (03:42 +1000)]
cmd/internal/obj/arm64: improve classification of loads and stores

Currently, pool literals are added when they are not needed, namely
in the case where the offset is a 24 bit unsigned scaled immediate.
By improving the classification of loads and stores, we can avoid
generating unused pool literals. However, more importantly this
provides a basis for further improvement of the load and store
code generation.

Updates #59615

Change-Id: Ia3bad1709314565a05894a76c434cca2fa4533c4
Reviewed-on: https://go-review.googlesource.com/c/go/+/512538
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: Joel Sing <joel@sing.id.au>
TryBot-Result: Gopher Robot <gobot@golang.org>

10 months agomath: enable huge argument tests on s390x
Srinivas Pokala [Fri, 14 Jul 2023 05:49:03 +0000 (07:49 +0200)]
math: enable huge argument tests on s390x

new s390x assembly implementation of Sin/Cos/SinCos/Tan handle huge argument
test's.

Updates #29240

Change-Id: I9f22d9714528ef2af52c749079f3727250089baf
Reviewed-on: https://go-review.googlesource.com/c/go/+/509675
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Auto-Submit: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

10 months agoreflect: add TypeFor
Carl Johnson [Thu, 27 Jul 2023 01:21:48 +0000 (01:21 +0000)]
reflect: add TypeFor

Fixes #60088

Change-Id: I7b43d329def22c2524501ba1d6bfc73becc823d1
GitHub-Last-Rev: becd714c4562da4a3280c3a56ebaf246e48e9f37
GitHub-Pull-Request: golang/go#61598
Reviewed-on: https://go-review.googlesource.com/c/go/+/513478
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>

10 months agoreflect: optimize DeepEqual() for maps
korzhao [Thu, 6 Jul 2023 03:12:29 +0000 (11:12 +0800)]
reflect: optimize DeepEqual() for maps

benchmark                     old ns/op     new ns/op     delta
BenchmarkMapsDeepEqual-10     235           200           -15.05%

benchmark                     old allocs     new allocs     delta
BenchmarkMapsDeepEqual-10     7              6              -14.29%

benchmark                     old bytes     new bytes     delta
BenchmarkMapsDeepEqual-10     96            48            -50.00%

Change-Id: Ifa625ad25524cc9ee438711917606626b33a9597
Reviewed-on: https://go-review.googlesource.com/c/go/+/512576
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>

10 months agonet: ignore blackhole route in TestDialCancel
Meng Zhuo [Thu, 27 Jul 2023 08:20:58 +0000 (16:20 +0800)]
net: ignore blackhole route in TestDialCancel

CL 496037 had ignored 3 types of null route, however blackhole route
is not included i.e. on Linux we can add a blackhole route by
`ip route add blackhole 198.18.0.254/32`

Fixes #61590

Change-Id: I9ddb86c5be0e5e261afa96cbaf55d9fdf30b2795
Reviewed-on: https://go-review.googlesource.com/c/go/+/513595
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: M Zhuo <mzh@golangcn.org>

10 months agomath: huge argument handling for sin/cos in s390x
Srinivas Pokala [Mon, 20 Feb 2023 06:10:37 +0000 (07:10 +0100)]
math: huge argument handling for sin/cos in s390x

Currently s390x, sin/cos assembly implementation not handling huge
arguments. This change reverts assembly routine to native go implementation
for huge arguments. Implementing the changes in assembly giving better
performance than native go changes in terms of execution/cycles.

name                                         Go_changes     Asm_changes
Sin/input_size_(0.5)-8                      11.85ns ± 0%   5.32ns ± 1%
Sin/input_size_(1<<20)-8                    15.32ns ± 0%   9.75ns ± 3%
Sin/input_size_(1<<_40)-8                   17.9ns  ± 0%   10.3ns ± 6%
Sin/input_size_(1<<50)-8                    16.33ns ± 0%   9.75ns ± 6%
Sin/input_size_(1<<60)-8                    33.0ns  ± 1%   29.1ns ± 0%
Sin/input_size_(1<<80)-8                    29.9ns  ± 0%   27.2ns ± 2%
Sin/input_size_(1<<200)-8                   31.5ns  ± 1%   28.3ns ± 0%
Sin/input_size_(1<<480)-8                   29.4ns  ± 1%   28.0ns ± 1%
Sin/input_size_(1234567891234567_<<_180)-8  29.3ns  ± 1%   28.0ns ± 0%
Cos/input_size_(0.5)-8                      10.33ns ± 0%   5.69ns ± 1%
Cos/input_size_(1<<20)-8                    16.67ns ± 0%   9.18ns ± 0%
Cos/input_size_(1<<_40)-8                   18.50ns ± 0%   9.45ns ± 3%
Cos/input_size_(1<<50)-8                    16.67ns ± 0%   9.18ns ± 1%
Cos/input_size_(1<<60)-8                    31.6ns  ± 1%   26.7ns ± 2%
Cos/input_size_(1<<80)-8                    31.3ns  ± 0%   25.5ns ± 1%
Cos/input_size_(1<<200)-8                   30.0ns  ± 0%   26.7ns ± 1%
Cos/input_size_(1<<480)-8                   31.9ns  ±2%   27.0ns ± 0%
Cos/input_size_(1234567891234567_<<_180)-8  31.8ns  ± 0%   26.9ns ± 0%

Fixes #29240

Change-Id: Id2ebcfa113926f27510d527e80daaddad925a707
Reviewed-on: https://go-review.googlesource.com/c/go/+/469635
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bill O'Farrell <billotosyr@gmail.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
10 months agocmd/compile: intrinsify Sub64 on mips64
Junxian Zhu [Fri, 26 May 2023 05:33:45 +0000 (13:33 +0800)]
cmd/compile: intrinsify Sub64 on mips64

This CL intrinsify Sub64 on mips64.

pkg: math/bits
                  _   sec/op    _   sec/op     vs base               _
Sub-4               2.849n _ 0%   1.948n _ 0%  -31.64% (p=0.000 n=8)
Sub32-4             3.447n _ 0%   3.446n _ 0%        ~ (p=0.982 n=8)
Sub64-4             2.815n _ 0%   1.948n _ 0%  -30.78% (p=0.000 n=8)
Sub64multiple-4     6.124n _ 0%   3.340n _ 0%  -45.46% (p=0.000 n=8)

Change-Id: Ibba91a4350e4a549ae0b60d8cafc4bca05034b84
Reviewed-on: https://go-review.googlesource.com/c/go/+/498497
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Joel Sing <joel@sing.id.au>
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
10 months agocmd/compile: intrinsify Add64 on mips64
Junxian Zhu [Fri, 26 May 2023 05:26:51 +0000 (13:26 +0800)]
cmd/compile: intrinsify Add64 on mips64

This CL intrinsify Add64 on mips64.

pkg: math/bits
                  _   sec/op    _   sec/op     vs base               _
Add64-4             2.783n _ 0%   1.950n _ 0%  -29.93% (p=0.000 n=8)
Add64multiple-4     5.713n _ 0%   3.063n _ 0%  -46.38% (p=0.000 n=8)

pkg: crypto/elliptic
                                     _    sec/op    _   sec/op     vs base               _
ScalarBaseMult/P256-4                   353.7_ _ 0%   282.7_ _ 0%  -20.09% (p=0.000 n=8)
ScalarBaseMult/P224-4                   330.5_ _ 0%   250.0_ _ 0%  -24.37% (p=0.000 n=8)
ScalarBaseMult/P384-4                  1228.8_ _ 0%   791.5_ _ 0%  -35.59% (p=0.000 n=8)
ScalarBaseMult/P521-4                  15.412m _ 0%   2.438m _ 0%  -84.18% (p=0.000 n=8)
ScalarMult/P256-4                      1189.4_ _ 0%   904.2_ _ 0%  -23.98% (p=0.000 n=8)
ScalarMult/P224-4                      1138.8_ _ 0%   813.8_ _ 0%  -28.54% (p=0.000 n=8)
ScalarMult/P384-4                       4.419m _ 0%   2.692m _ 0%  -39.08% (p=0.000 n=8)
ScalarMult/P521-4                      59.768m _ 0%   8.773m _ 0%  -85.32% (p=0.000 n=8)
MarshalUnmarshal/P256/Uncompressed-4    8.697_ _ 1%   7.923_ _ 1%   -8.91% (p=0.000 n=8)
MarshalUnmarshal/P256/Compressed-4     104.75_ _ 0%   66.29_ _ 0%  -36.72% (p=0.000 n=8)
MarshalUnmarshal/P224/Uncompressed-4    8.728_ _ 1%   7.823_ _ 1%  -10.37% (p=0.000 n=8)
MarshalUnmarshal/P224/Compressed-4     1035.7_ _ 0%   676.5_ _ 2%  -34.69% (p=0.000 n=8)
MarshalUnmarshal/P384/Uncompressed-4    15.32_ _ 1%   11.81_ _ 1%  -22.90% (p=0.000 n=8)
MarshalUnmarshal/P384/Compressed-4      399.8_ _ 0%   217.4_ _ 0%  -45.62% (p=0.000 n=8)
MarshalUnmarshal/P521/Uncompressed-4    96.79_ _ 0%   20.32_ _ 0%  -79.01% (p=0.000 n=8)
MarshalUnmarshal/P521/Compressed-4     6640.4_ _ 0%   790.8_ _ 0%  -88.09% (p=0.000 n=8)

Change-Id: I8a0960b9665720c1d3e57dce36386e74db37fefa
Reviewed-on: https://go-review.googlesource.com/c/go/+/498496
Reviewed-by: Heschi Kreinick <heschi@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Joel Sing <joel@sing.id.au>
Reviewed-by: Keith Randall <khr@golang.org>
10 months agoencoding/json: replace dead link in appendString
korzhao [Thu, 29 Jun 2023 12:09:40 +0000 (20:09 +0800)]
encoding/json: replace dead link in appendString

Change-Id: I534698008b46b23352d9f1fed891fd96dc0947b7
Reviewed-on: https://go-review.googlesource.com/c/go/+/507115
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>

10 months agocmd/dist: update isUnsupportedVMASize test skip
Dmitri Shuralyov [Fri, 21 Jul 2023 19:59:02 +0000 (15:59 -0400)]
cmd/dist: update isUnsupportedVMASize test skip

The dist test name changed from "race" to "flag:race", "net:race",
"os:race" and so on in CL 496181, we missed that this skip was checking
the exact dist test name, and no builder reported a problem despite the
skip becoming inactive.

I considered deleting it as obsolete, but it may still be helpful
if someone runs race.bash on a linux/arm64 machine configured with
something other than the supported 48-bit VMA. So for now apply a
simple change to restore the existing skip.

Hopefully one day there will be a good way to check for unsupported VMA
size and disable the race detector conditionally instead of relying on
tests running, failing, and getting marked as skipped in cmd/dist.

For #29948.
For #37486.

Change-Id: I8af6862c92fb0ee538ab27327d43c50921bd1873
Reviewed-on: https://go-review.googlesource.com/c/go/+/512116
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
10 months agocmd/dist: handle -json flag in runPending (clean up)
Dmitri Shuralyov [Fri, 21 Jul 2023 17:49:06 +0000 (13:49 -0400)]
cmd/dist: handle -json flag in runPending (clean up)

Document work fields a bit more, and move code that
synthesizes JSON-encoded skip events to testjson.go.

For #37486.
For #61557.

Change-Id: Iffc23cf990bc39696e1e3fce8ce5a6790fc44e78
Reviewed-on: https://go-review.googlesource.com/c/go/+/512115
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
10 months agosyscall, cmd/cgo: skip tests that shouldn't run under 'unshare -n -r'
Dmitri Shuralyov [Thu, 27 Jul 2023 23:36:55 +0000 (19:36 -0400)]
syscall, cmd/cgo: skip tests that shouldn't run under 'unshare -n -r'

A small number of tests in the main tree are currently skipped in LUCI
because our builders there run tests without root. Unfortunately, these
tests begin to run when run under 'unshare -n -r' as implemented in
the current iteration of a no-network check. Add targeted builder-only
skips so that they don't begin to run and fail with a false positive.

Updates #10719.
For #30612.

Change-Id: I6dd320714a279c395882c1b2ebfbb2fce58f913b
Reviewed-on: https://go-review.googlesource.com/c/go/+/513779
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

10 months agocmd/asm: add PCALIGN support on 386/amd64
Mauri de Souza Meneguzzo [Fri, 28 Jul 2023 19:10:04 +0000 (19:10 +0000)]
cmd/asm: add PCALIGN support on 386/amd64

The PCALIGN asm directive was not supported on 386/amd64,
causing a compile-time error when used. The same directive
is currently supported on arm64, loong64 and ppc64 architectures.

This has potential for noticeable performance improvements on
amd64 across multiple packages, I did a quick test aligning a hot
loop on bytes.IndexByte:

```
IndexByte/10-16                 3.477n ± ∞ ¹   3.462n ± ∞ ¹        ~ (p=0.198 n=5)
IndexByte/32-16                 4.675n ± ∞ ¹   4.834n ± ∞ ¹   +3.40% (p=0.008 n=5)
IndexByte/4K-16                 67.47n ± ∞ ¹   44.44n ± ∞ ¹  -34.13% (p=0.008 n=5)
IndexByte/4M-16                 61.98µ ± ∞ ¹   45.07µ ± ∞ ¹  -27.28% (p=0.008 n=5)
IndexByte/64M-16               1206.6µ ± ∞ ¹   940.9µ ± ∞ ¹  -22.02% (p=0.008 n=5)
IndexBytePortable/10-16         4.064n ± ∞ ¹   4.044n ± ∞ ¹        ~ (p=0.325 n=5)
IndexBytePortable/32-16         9.999n ± ∞ ¹   9.934n ± ∞ ¹        ~ (p=0.151 n=5)
IndexBytePortable/4K-16         975.8n ± ∞ ¹   965.5n ± ∞ ¹        ~ (p=0.151 n=5)
IndexBytePortable/4M-16         973.3µ ± ∞ ¹   972.3µ ± ∞ ¹        ~ (p=0.222 n=5)
IndexBytePortable/64M-16        15.68m ± ∞ ¹   15.89m ± ∞ ¹        ~ (p=0.310 n=5)
geomean                         1.478µ         1.342µ         -9.20%

IndexByte/10-16                2.678Gi ± ∞ ¹   2.690Gi ± ∞ ¹        ~ (p=0.151 n=5)
IndexByte/32-16                6.375Gi ± ∞ ¹   6.165Gi ± ∞ ¹   -3.30% (p=0.008 n=5)
IndexByte/4K-16                56.54Gi ± ∞ ¹   85.85Gi ± ∞ ¹  +51.83% (p=0.008 n=5)
IndexByte/4M-16                63.03Gi ± ∞ ¹   86.68Gi ± ∞ ¹  +37.52% (p=0.008 n=5)
IndexByte/64M-16               51.80Gi ± ∞ ¹   66.42Gi ± ∞ ¹  +28.23% (p=0.008 n=5)
IndexBytePortable/10-16        2.291Gi ± ∞ ¹   2.303Gi ± ∞ ¹        ~ (p=0.421 n=5)
IndexBytePortable/32-16        2.980Gi ± ∞ ¹   3.000Gi ± ∞ ¹        ~ (p=0.151 n=5)
IndexBytePortable/4K-16        3.909Gi ± ∞ ¹   3.951Gi ± ∞ ¹        ~ (p=0.151 n=5)
IndexBytePortable/4M-16        4.013Gi ± ∞ ¹   4.017Gi ± ∞ ¹        ~ (p=0.222 n=5)
IndexBytePortable/64M-16       3.987Gi ± ∞ ¹   3.933Gi ± ∞ ¹        ~ (p=0.310 n=5)
geomean                        8.183Gi         9.013Gi        +10.14%
```

Fixes #56474

Change-Id: Idea022b1a16e6d4b8dd778723adb862c46602c4f
GitHub-Last-Rev: 2eb7e31dc378a02fd83faa7d41239df0f2859677
GitHub-Pull-Request: golang/go#61516
Reviewed-on: https://go-review.googlesource.com/c/go/+/511662
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Auto-Submit: Keith Randall <khr@golang.org>

10 months agosyscall: skip TestUnshare if there's nothing more to unshare
Dmitri Shuralyov [Fri, 28 Jul 2023 16:34:30 +0000 (12:34 -0400)]
syscall: skip TestUnshare if there's nothing more to unshare

Tests that need to use the internet are expected not to run when -short
test flag is set, and the Go build system automatically catches when a
test forgets that. It does this by unsharing all real network interfaces
and leaving only a loopback interface in a new network namespace.

TestUnshare tests that a process started with CLONE_NEWNET unshare flag
has fewer network interfaces than before. Of course, if /proc/net/dev
starts out with a single loopback interface, the test would fail with
a false positive:

=== RUN TestUnshare
exec_linux_test.go:139: Got 3 lines of output, want <3
--- FAIL: TestUnshare (0.00s)

Give the test what it wants: a skip when the environment doesn't meet
the minimum requirements for the test, and more useful log output if
it fails.

Change-Id: I6b9c29d88ce725e640a7ee86c7e1be9761f21b02
Reviewed-on: https://go-review.googlesource.com/c/go/+/513762
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>

10 months agocmd/internal/goobj: use unsafe.String in toString func
Jes Cok [Sat, 1 Jul 2023 14:01:23 +0000 (14:01 +0000)]
cmd/internal/goobj: use unsafe.String in toString func

Change-Id: I93a5e0996e48cc74e6b2e39c3a4c7aa68fd6a3a0
GitHub-Last-Rev: afd8feb0deac34f671e0ed11ad55f6be427bd8b1
GitHub-Pull-Request: golang/go#61137
Reviewed-on: https://go-review.googlesource.com/c/go/+/507517
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
10 months agocmd/dist: handle -json flag in runPending (minimal)
Dmitri Shuralyov [Fri, 21 Jul 2023 17:49:06 +0000 (13:49 -0400)]
cmd/dist: handle -json flag in runPending (minimal)

The -json flag is new to Go 1.21, but missed skips in runPending.
This CL adds minimal code to fix that. CL 512115 cleans up a bit.

For #37486.
Fixes (via backport) #61557.

Change-Id: I53e426c9a5585b2703f0ff6661a0470e1993f960
Reviewed-on: https://go-review.googlesource.com/c/go/+/512719
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Austin Clements <austin@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>

10 months agonet/http: perform streaming body feature detection once per process
Dmitri Shuralyov [Sun, 23 Jul 2023 18:19:57 +0000 (14:19 -0400)]
net/http: perform streaming body feature detection once per process

As far a I can tell, there's currently no situation where this feature
detection will report a different result per request, so default to
doing once per process until there's evidence that doing it more often
is worthwhile.

Change-Id: I567d3dbd847af2f49f2e83cd9eb0ae61d82c1f83
Reviewed-on: https://go-review.googlesource.com/c/go/+/513459
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
10 months agomath: support to handle huge arguments in tan function on s390x
root [Thu, 23 Feb 2023 06:44:23 +0000 (06:44 +0000)]
math: support to handle huge arguments in tan function on s390x

Currently on s390x, tan assembly implementation is not handling huge arguments at all. This change is to check for large arguments and revert back to native go implantation from assembly code in case of huge arguments.

The changes are implemented in assembly code to get better performance over native go implementation.

Benchmark details of tan function with table driven inputs are updated as part of the issue link.

Fixes #37854

Change-Id: I4e5321e65c27b7ce8c497fc9d3991ca8604753d2
Reviewed-on: https://go-review.googlesource.com/c/go/+/470595
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Keith Randall <khr@golang.org>

10 months agoreflect: deprecate PtrTo
qiulaidongfeng [Wed, 26 Jul 2023 05:59:50 +0000 (05:59 +0000)]
reflect: deprecate PtrTo

Replace reflect.PtrTo with reflect.PointerTo.

Fixes #59599

Change-Id: I49407193e2050543ef983cd637703acc682d9f51

Change-Id: I49407193e2050543ef983cd637703acc682d9f51
GitHub-Last-Rev: 7bc9ccf1dcb4b444406430b451ad4c47c6ec1be2
GitHub-Pull-Request: golang/go#61440
Reviewed-on: https://go-review.googlesource.com/c/go/+/511035
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
10 months agoruntime: call miniterrno on m0 on AIX and Solaris
Ian Lance Taylor [Wed, 26 Jul 2023 18:58:44 +0000 (11:58 -0700)]
runtime: call miniterrno on m0 on AIX and Solaris

AIX and Solaris call into libc for syscalls, and expect M.mOS.perrno
to point to the thread-local errno value for the current M.
We initialize that field in miniterrno called from mstart.
However, this means that any libc calls before mstart will not
return the correct errno value.

This caused trouble in checkfds, which runs very early, before mstart.
We worked around that in 513215. This CL reverts 513215 in favor
of a better workaround: call miniterrno for m0 earlier (we will
still wind up calling miniterrno again from mstart, which does
no harm).

This is a better workaround because it means that if we add future
syscalls before mstart, they will behave as expected.

Fixes #61584

Change-Id: Ib6a0d3c53d2c8214cc339a5019f9d4f71a746f0c
Reviewed-on: https://go-review.googlesource.com/c/go/+/513535
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>

10 months agonet: make mustHaveExternalNetwork work as usual on GOOS=linux
Dmitri Shuralyov [Tue, 25 Jul 2023 17:58:37 +0000 (13:58 -0400)]
net: make mustHaveExternalNetwork work as usual on GOOS=linux

I considered deleting mustHaveExternalNetwork in favor of just using
the real testenv.MustHaveExternalNetwork. That certainly makes these
tests that call it easier to understand. But that negatively affects
some ports that don't have a longtest builder as it'd make the tests
not run automatically on any builder at all.

So, make a minimal change that applies only to GOOS=linux for now.
If we make more progress on establishing -longtest builders for all
ports, this intermediate layer helper will cease to have any benefit
and can be deleted in favor of the one in testenv package.

Change-Id: Iaea207d98e780db429ab49e6e227650a8b35b786
Reviewed-on: https://go-review.googlesource.com/c/go/+/513416
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>

10 months agoall: use built-in clear to clear maps
Jes Cok [Tue, 25 Jul 2023 23:10:34 +0000 (23:10 +0000)]
all: use built-in clear to clear maps

Change-Id: I7f4ac72fe3230d8b7486fab0c925015cefcbe355
GitHub-Last-Rev: 54455839b674f980fb6c3afceb433db4833d340e
GitHub-Pull-Request: golang/go#61544
Reviewed-on: https://go-review.googlesource.com/c/go/+/512376
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

10 months agocmd/link: sort HOSTOBJ and UNDEFEXT symbols with undefined symbols in Mach-O symbol...
Cherry Mui [Wed, 14 Jun 2023 22:31:44 +0000 (18:31 -0400)]
cmd/link: sort HOSTOBJ and UNDEFEXT symbols with undefined symbols in Mach-O symbol table

HOSTOBJ and UNDEFEXT symbols are actually not defined in the
current translation unit. So put them as undefined symbols, along
with DYNIMPORT.

For #61229.

Change-Id: I1112ca928cdc401bac45adaa3f88b19422813960
Reviewed-on: https://go-review.googlesource.com/c/go/+/503539
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
10 months agocmd/cgo/internal/test: don't pass -lm on darwin
Cherry Mui [Mon, 10 Jul 2023 23:04:57 +0000 (19:04 -0400)]
cmd/cgo/internal/test: don't pass -lm on darwin

On darwin, -lm is not necessary as the math functions are included
in libSystem. Passing -lm multiple times results in linker
warnings. Don't pass it on darwin.

For #61229.

Change-Id: I72d8dab1f0eead68cbeb176ac97b8ed1a0cfddab
Reviewed-on: https://go-review.googlesource.com/c/go/+/508697
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
10 months agocmd/link: don't generate DYSYMTAB when external linking on Mach-O
Cherry Mui [Mon, 12 Jun 2023 17:46:08 +0000 (13:46 -0400)]
cmd/link: don't generate DYSYMTAB when external linking on Mach-O

When external linking, the external linker will generate it.

Updates #60694.
For #61229.

Change-Id: I086a7628dd9baa84b46315641746fc3640473f2b
Reviewed-on: https://go-review.googlesource.com/c/go/+/502617
Reviewed-by: Than McIntosh <thanm@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

10 months agocmd/asm/internal/asm: fix comment grammar
Jes Cok [Fri, 30 Jun 2023 23:23:03 +0000 (23:23 +0000)]
cmd/asm/internal/asm: fix comment grammar

Change-Id: I6fc0ae765c347669d1b061de018eb97d8e43461c
GitHub-Last-Rev: 9e6c1f1f97c2c7edcc1dddd58db6d4d7bff57f1c
GitHub-Pull-Request: golang/go#61131
Reviewed-on: https://go-review.googlesource.com/c/go/+/507515
Run-TryBot: Cherry Mui <cherryyz@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Joedian Reid <joedian@golang.org>
10 months agosrc/buildall.bash: mention no longer being used by Go build system
Dmitri Shuralyov [Thu, 27 Jul 2023 17:03:58 +0000 (13:03 -0400)]
src/buildall.bash: mention no longer being used by Go build system

The buildall.bash script was initially added in 2015 (in CL 9438),
documented as used in the implementation of the new compile-only
builders at the time.

That description was updated as the builder implementation changed
from "linux-amd64-compilesmoke" to "all-compile" and most recently
to "misc-compile", which it still mentions today.

The build system stopped using it in CL 464955 and there are no plans
to use it again in the future, so update the description so that it's
not misleading. Notably, adding additional checks to this script does
not mean they will be caught by builders.

Updates #31916.
Updates #58163.

Change-Id: I17558b1c150a3ad95105de14511c51791287991b
Reviewed-on: https://go-review.googlesource.com/c/go/+/513755
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

10 months agocmd/dist: skip testing packages without tests in short test mode
Dmitri Shuralyov [Wed, 14 Jun 2023 00:14:26 +0000 (20:14 -0400)]
cmd/dist: skip testing packages without tests in short test mode

For short all.bash, we can keep the small speedup of 2-10 seconds by
skipping 'go test' on packages without tests. This is viable without
coverage loss since the Go release process is guaranteed to run long
tests for all first class ports.

For golang/go#60463.

Change-Id: Ib5a6bd357d757141bc8f1c1dec148a6565726587
Reviewed-on: https://go-review.googlesource.com/c/go/+/503115
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
10 months agocmd/dist: test all 'std cmd' packages, even ones without _test.go files
Dmitri Shuralyov [Tue, 13 Jun 2023 20:04:06 +0000 (16:04 -0400)]
cmd/dist: test all 'std cmd' packages, even ones without _test.go files

Remove the optimization added in CL 10492 that skips running 'go test'
on Go packages without _test.go files. By now, 'go test' can find real
problems even in packages that don't have any custom tests.

On my fairly fast laptop, running go test -short on all 164 normal
and 96 vendored packages without tests took around 10 seconds on
the first run and 2.5 seconds on the second, a small fraction of
the total all.bash time. So prioritize gains in the test coverage
over those savings in all.bash time.

Fixes golang/go#60463.

Change-Id: I3d2bec5c367de687e57131e7fd7e6b84fed30187
Reviewed-on: https://go-review.googlesource.com/c/go/+/503095
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
10 months agocmd/asm: add the fifth argument of the instruction to Optab on arm64
erifan01 [Tue, 6 Jun 2023 09:55:58 +0000 (17:55 +0800)]
cmd/asm: add the fifth argument of the instruction to Optab on arm64

Currently the Optab structure contains four arguments of an instruction,
excludes the fifth argument p.RegTo2. It does not participate in
instruction matching and is usually handled separately.

Instructions with five operands are common in the newer arm instruction
set, so this CL adds the fifth argument to Optab, so that instruction
matching is easier. This caused the oplook function also needs to be
updated synchronously, this CL also made some cleaning and modifications
to this function.

Change-Id: I1d95ad99e72a44dfad1e00db182cfc369a0e55c6
Reviewed-on: https://go-review.googlesource.com/c/go/+/505975
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Eric Fang <eric.fang@arm.com>

10 months agomaps: remove Keys and Values
Ian Lance Taylor [Wed, 26 Jul 2023 18:08:03 +0000 (11:08 -0700)]
maps: remove Keys and Values

Preserve the names in case we want them to return an iterator.
Keep the efficient runtime implementations for now,
as we will probably want them under some name, perhaps KeysSlice
and ValuesSlice.

Fixes #61538

Change-Id: I6b03010bf071fb4531cb2f967dad46425962fcb8
Reviewed-on: https://go-review.googlesource.com/c/go/+/513476
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
10 months agocmd/distpack: sort files in standard walk order
Russ Cox [Fri, 21 Jul 2023 17:31:10 +0000 (13:31 -0400)]
cmd/distpack: sort files in standard walk order

The code was sorting files in the archives entirely by path string,
but that's not what fs.WalkDir would do. In a directory with
subdirectory foo/bar and file foo/bar.go, foo/bar gets visited
first, so foo/bar/baz appears before foo/bar.go, even though
"foo/bar/baz" > "foo/bar.go".

This CL replaces the string comparison with a path-aware
comparison that places foo/bar/baz before foo/bar.go,
so that if the tar file is extracted and then repacked using
fs.WalkDir, the files will remain in the same order.

This will make it easier to compare the pristine distpack-produced
tgz for darwin against the rebuilt tgz with signed binaries.

Before:
% tar tzvf /tmp/cmddist.tgz | grep -C1 runtime/cgo.go
-rw-r--r--  0 0      0       11122 Jul 13 15:00 go/src/runtime/callers_test.go
-rw-r--r--  0 0      0        2416 Jul 13 15:00 go/src/runtime/cgo.go
-rw-r--r--  0 0      0        2795 Jul 13 15:00 go/src/runtime/cgo/abi_amd64.h

After:
% tar tzvf pkg/distpack/go1.21rsc.src.tar.gz | grep -C1 runtime/cgo.go
-rw-r--r--  0 0      0        1848 Dec 31  1969 go/src/runtime/cgo/signal_ios_arm64.s
-rw-r--r--  0 0      0        2416 Dec 31  1969 go/src/runtime/cgo.go
-rw-r--r--  0 0      0        2479 Dec 31  1969 go/src/runtime/cgo_mmap.go

For #24904.
For #61513.

Change-Id: Ib7374bc0d6324377f81c561bef57fd87b2111b98
Reviewed-on: https://go-review.googlesource.com/c/go/+/511977
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>

10 months agocmd/compile: update README for unified IR
Keith Randall [Wed, 26 Jul 2023 18:01:29 +0000 (11:01 -0700)]
cmd/compile: update README for unified IR

Change-Id: Ie84e88db4b84f04f2c6f7750a2a413ecad6d817a
Reviewed-on: https://go-review.googlesource.com/c/go/+/513436
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Bypass: Keith Randall <khr@google.com>

10 months agocmd/compile: add indexed SET* opcodes for amd64
Keith Randall [Mon, 17 Jul 2023 17:21:07 +0000 (10:21 -0700)]
cmd/compile: add indexed SET* opcodes for amd64

Update #61356

Change-Id: I391af98563b1c068208784c80ea736c78c29639d
Reviewed-on: https://go-review.googlesource.com/c/go/+/510435
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Martin Möhrmann <martin@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Martin Möhrmann <moehrmann@google.com>
10 months agocmd/compile: get rid of special case in scheduler for entry block
Keith Randall [Fri, 14 Jul 2023 16:45:31 +0000 (09:45 -0700)]
cmd/compile: get rid of special case in scheduler for entry block

It isn't needed.

Fixes #61356

Change-Id: Ib466a3eac90c3ea57888cf40c294513033fc6118
Reviewed-on: https://go-review.googlesource.com/c/go/+/509856
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: Keith Randall <khr@golang.org>

10 months agocmd/compile: simplify uninterruptable range check for write barriers
Keith Randall [Tue, 30 May 2023 17:19:50 +0000 (10:19 -0700)]
cmd/compile: simplify uninterruptable range check for write barriers

Make the load detection a bit clearer and more precise. In particular,
for architectures which have to materialize the address using a
separate instruction, we were using the address materialization
instruction, not the load itself.

Also apply the marking a bit less. We don't need to mark the load itself,
only the instructions after the load. And we don't need to mark the WBend
itself, only the instructions before it.

Change-Id: Ie367a8023b003d5317b752d873bb385f931bb30e
Reviewed-on: https://go-review.googlesource.com/c/go/+/499395
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
10 months agocmd/compile: optimize s==s for strings
Keith Randall [Thu, 15 Jun 2023 16:14:12 +0000 (09:14 -0700)]
cmd/compile: optimize s==s for strings

s==s is always true for strings. This comes up in NaN testing in
generic code, where we want x==x to compile completely away except for
float types.

Fixes #60777

Change-Id: I3ce054b5121354de2f9751b010fb409f148cb637
Reviewed-on: https://go-review.googlesource.com/c/go/+/503795
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>

10 months agoos: remove 5ms sleep on Windows in (*Process).Wait
qmuntal [Thu, 13 Jul 2023 14:40:49 +0000 (16:40 +0200)]
os: remove 5ms sleep on Windows in (*Process).Wait

The 5ms sleep in (*Process).Wait was added to mitigate errors while
removing executable files using os.RemoveAll.

Windows 10 1903 implements POSIX semantics for DeleteFile, making the
implementation of os.RemoveAll on Windows much more robust. Older
Windows 10 versions also made internal improvements to avoid errors
when removing files, making it less likely that the 5ms sleep is
necessary.

Windows 10 is the oldest version that Go supports (see #57004), so it
makes sense to unconditionally remove the 5ms sleep now. We have all
the Go 1.22 development cycle to see if this causes any regression.

Fixes #25965

Change-Id: Ie0bbe6dc3e8389fd51a32484d5d20cf59b019451
Reviewed-on: https://go-review.googlesource.com/c/go/+/509335
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Quim Muntal <quimmuntal@gmail.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

10 months agomisc/wasm: switch default WASI runtime
Johan Brandhorst-Satzkorn [Tue, 25 Jul 2023 22:54:16 +0000 (15:54 -0700)]
misc/wasm: switch default WASI runtime

The default WASI runtime was originally set to Wazero, because it was
the first runtime used to test the Go implementation and because we
could easily find and fix issues in our implementation and theirs.

In CL 498675 we switched the default wasip1 runner to Wasmtime as it
runs faster and is a more established and mature runtime. We should
switch the default runtime to Wasmtime to consistently promote
Wasmtime as the primary tested and approved runtime.

Change-Id: Ic6c064142321af90f015e02b7fe0e71444d8842c
Reviewed-on: https://go-review.googlesource.com/c/go/+/513235
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Eli Bendersky <eliben@google.com>
Run-TryBot: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
Auto-Submit: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
10 months agocmd/internal/obj/arm64: factor out splitting of 24 bit unsigned scaled immediates
Joel Sing [Fri, 28 Apr 2023 20:07:42 +0000 (06:07 +1000)]
cmd/internal/obj/arm64: factor out splitting of 24 bit unsigned scaled immediates

Rather than duplicating this code, factor it out into a function and
add test coverage.

Change-Id: I37ce568ded4659d98a4ff1361520c5fb2207e947
Reviewed-on: https://go-review.googlesource.com/c/go/+/512537
Run-TryBot: Joel Sing <joel@sing.id.au>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
10 months agocmd/internal/obj/arm64: simplify buildop
Joel Sing [Wed, 3 May 2023 08:19:30 +0000 (18:19 +1000)]
cmd/internal/obj/arm64: simplify buildop

This code stems from the original 7l C code, where one way to determine
the end of a table is to put a sentinel entry, then scan for it. This is
now Go code and the length of an array is readily available.

Remove the sentinel and sentinel scan, then adjust the remaining code to
work accordingly.

Change-Id: I8964c787f5149f3548fa78bf8923aa7a93f9482e
Reviewed-on: https://go-review.googlesource.com/c/go/+/512536
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Joel Sing <joel@sing.id.au>

10 months agoencoding/base32: reduce overflow risk when calc encode/decode len
chanxuehong [Mon, 24 Jul 2023 08:58:16 +0000 (08:58 +0000)]
encoding/base32: reduce overflow risk when calc encode/decode len

Same as https://go-review.googlesource.com/c/go/+/510635, reduces risk of overflow

Change-Id: I18f5560d73af76c3e853464a89ad7e42dbbd5894
GitHub-Last-Rev: 652c8c6712886184e59a110c3fa1e6dcb643d93b
GitHub-Pull-Request: golang/go#61547
Reviewed-on: https://go-review.googlesource.com/c/go/+/512200
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
10 months agoos/exec: avoid calling LookPath in cmd.Start for resolved paths
qiulaidongfeng [Tue, 25 Jul 2023 01:19:30 +0000 (01:19 +0000)]
os/exec: avoid calling LookPath in cmd.Start for resolved paths

Follow up on CL 511458, see https://go-review.googlesource.com/c/go/+/511458/2..4/src/cmd/go/main.go#b270 .

For #36768.

Change-Id: Icc2a4dbb1219b1d69dd10a900478957b0e975847

Change-Id: Icc2a4dbb1219b1d69dd10a900478957b0e975847
GitHub-Last-Rev: bac7e66496806d505270c5b90d53672d80a1ca29
GitHub-Pull-Request: golang/go#61517
Reviewed-on: https://go-review.googlesource.com/c/go/+/512155
Auto-Submit: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>

10 months agospec: update section on type unification for Go 1.21
Robert Griesemer [Fri, 30 Jun 2023 21:54:34 +0000 (14:54 -0700)]
spec: update section on type unification for Go 1.21

This leaves the specific unification details out in favor
of a (forthcoming) section in an appendix.

Change-Id: If984c48bdf71c278e1a2759f9a18c51ef58df999
Reviewed-on: https://go-review.googlesource.com/c/go/+/507417
Reviewed-by: Robert Griesemer <gri@google.com>
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Bypass: Robert Griesemer <gri@google.com>

10 months agoruntime2: don't check fcntl errno in checkfds on AIX and Solaris
Ian Lance Taylor [Tue, 25 Jul 2023 22:14:03 +0000 (15:14 -0700)]
runtime2: don't check fcntl errno in checkfds on AIX and Solaris

On AIX and Solaris the errno value is fetched using m.mOS.perrno.
When checkfds is called, that value has not yet been set up by minit.
Since the error value doesn't really matter in checkfds,
don't bother to check it on AIX and Solaris.

Fixes #61584

Change-Id: I4e679ee3fdad4f0b833ae102597b2d6b8cb46cb6
Reviewed-on: https://go-review.googlesource.com/c/go/+/513215
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Roland Shoemaker <roland@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>

10 months agocmd/dist: fix broken link in README
Dmitri Shuralyov [Mon, 24 Jul 2023 14:26:10 +0000 (10:26 -0400)]
cmd/dist: fix broken link in README

While here, also update the go15bootstrap link to use the
shorter go.dev domain and https:// prefix for consistency.

For #54265.

Change-Id: I881eeda235589511a93bf47186f91f6c47c12932
Reviewed-on: https://go-review.googlesource.com/c/go/+/512720
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>