]> Cypherpunks repositories - gostls13.git/log
gostls13.git
3 years agoruntime: invalid negative frequency while tracing
Meng Zhuo [Fri, 17 Dec 2021 06:15:42 +0000 (14:15 +0800)]
runtime: invalid negative frequency while tracing

The riscv64 Hifive Unmatched is the only platform that
failed on testcase TestAnalyzeAnnotations occasionally
after CL 332954 had merged. The failure happens when
ticks per second (freq) is over 1e12 which causing the timestamps
of two events are same.

There are 2 reasons causing big frequency:
1. RDCYCLE is HART based according to the riscv manual which makes
   negative ticks delta
2. negative float64 -> uint64 is undefined and "lucky" negative float
   is too big to handle for trace

For #46737

Change-Id: I1f3c1ac31aae249969000c719c32aaf5a66d29a5
Reviewed-on: https://go-review.googlesource.com/c/go/+/373034
Trust: Zhuo Meng <mzh@golangcn.org>
Run-TryBot: Zhuo Meng <mzh@golangcn.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
3 years agodoc/go1.18: add section for runtime/debug changes
Ian Lance Taylor [Tue, 21 Dec 2021 21:58:15 +0000 (13:58 -0800)]
doc/go1.18: add section for runtime/debug changes

For #37475
For #47694

Change-Id: If8c1f1b756daf32648110f1a669b2ea60f797a24
Reviewed-on: https://go-review.googlesource.com/c/go/+/373875
Trust: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com>
3 years agodoc/go1.18: mention debug/plan9obj.ErrNoSymbols
Ian Lance Taylor [Tue, 21 Dec 2021 19:59:19 +0000 (11:59 -0800)]
doc/go1.18: mention debug/plan9obj.ErrNoSymbols

For #47694
For #48052

Change-Id: I136be9b498033309d876099aae16bad330555416
Reviewed-on: https://go-review.googlesource.com/c/go/+/373774
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
3 years agocmd/go: remove MallocNanoZone environment variable workaround
Cherry Mui [Thu, 23 Dec 2021 18:09:02 +0000 (13:09 -0500)]
cmd/go: remove MallocNanoZone environment variable workaround

We added a workaround in runtime/race. This should not be
necessary now.

Updates #49138.

Change-Id: Ia2010e4acc95c4ddf5f463ab2919401d893c0bac
Reviewed-on: https://go-review.googlesource.com/c/go/+/374314
Trust: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agocmd/compile/internal/ir: fix a typo in node.go
zhangjian [Thu, 23 Dec 2021 14:21:41 +0000 (14:21 +0000)]
cmd/compile/internal/ir: fix a typo in node.go

README.md -> HACKING.md

Change-Id: I63909b86b2e6f8d9a34622f5d2b05048c79cd698
GitHub-Last-Rev: afaab8f05eff1d66c796909ccf9912e0f4e99754
GitHub-Pull-Request: golang/go#50326
Reviewed-on: https://go-review.googlesource.com/c/go/+/374274
Run-TryBot: Dan Scales <danscales@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dan Scales <danscales@google.com>
Trust: Dan Scales <danscales@google.com>
Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com>
3 years agodoc/go1.18: fix broken HTML in net/http.MaxBytesHandler
Carl Johnson [Wed, 22 Dec 2021 04:23:26 +0000 (04:23 +0000)]
doc/go1.18: fix broken HTML in net/http.MaxBytesHandler

For #47694

Sorry about that! I guess the autocompleter in VSCode auto-closed the paragraph and I didn't notice.

Change-Id: I1e834e47deb708cd5285d26201a442305f8c3b24
GitHub-Last-Rev: ab8873155191072efd51270c85fc6feaed318cdc
GitHub-Pull-Request: golang/go#50305
Reviewed-on: https://go-review.googlesource.com/c/go/+/374014
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Trust: Dmitri Shuralyov <dmitshur@golang.org>

3 years agoruntime: handle stray profiling signal better
Cherry Mui [Wed, 22 Dec 2021 16:43:06 +0000 (11:43 -0500)]
runtime: handle stray profiling signal better

In c-archive mode, when we turn off profiling, we  restore the
previous handler for SIGPROF, and ignore SIGPROF signals if no
handler was installed. So if a pending signal lands after we
remove the Go signal handler, it will not kill the program.

In the current code there is a small window, where we can still
receive signals but we are set to not handling the signal. If a
signal lands in this window (possibly on another thread), it will
see that we are not handling this signal and no previous handler
installed, and kill the program. To avoid this race, we set the
previous handler to SIG_IGN (ignoring the signal) when turning on
profiling. So when turning off profiling we'll ignore the signal
even if a stray signal lands in the small window.

Fixes #43828.

Change-Id: I304bc85a93ca0e63b0c0d8e902b097bfdc8e3f1d
Reviewed-on: https://go-review.googlesource.com/c/go/+/374074
Trust: Cherry Mui <cherryyz@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agodoc/go1.18: list new net/netip and net functions and methods
Ian Lance Taylor [Tue, 21 Dec 2021 20:23:53 +0000 (12:23 -0800)]
doc/go1.18: list new net/netip and net functions and methods

For #46518
For #47694

Change-Id: I4848556674baf85ceec350645d9eddcd83f1b2e0
Reviewed-on: https://go-review.googlesource.com/c/go/+/373834
Trust: Ian Lance Taylor <iant@golang.org>
Trust: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
3 years agodoc/go1.18: mention testing.F in testing package section
Ian Lance Taylor [Tue, 21 Dec 2021 22:33:47 +0000 (14:33 -0800)]
doc/go1.18: mention testing.F in testing package section

For #47694

Change-Id: I27d88d864319bd8dbabfa6675a6abf2f74c50717
Reviewed-on: https://go-review.googlesource.com/c/go/+/373914
Trust: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Katie Hockman <katie@golang.org>
Trust: Katie Hockman <katie@golang.org>

3 years agodoc/go1.18: document {text,html}/template {break,continue} commands
Ian Lance Taylor [Tue, 21 Dec 2021 22:44:27 +0000 (14:44 -0800)]
doc/go1.18: document {text,html}/template {break,continue} commands

For #20531
For #47694

Change-Id: Iaefaa0a8982eabf59cd6a53120c8af9124d60d1a
Reviewed-on: https://go-review.googlesource.com/c/go/+/373915
Trust: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com>
3 years agodoc/go1.18: add net/http.MaxBytesHandler
Carl Johnson [Sat, 18 Dec 2021 02:54:22 +0000 (02:54 +0000)]
doc/go1.18: add net/http.MaxBytesHandler

For #47694

Change-Id: Ifab2c2720ec2ccef175a0e14a95f8df0437eb009
GitHub-Last-Rev: f3c2f12c7b6472610428cff5cad2a4497c47150e
GitHub-Pull-Request: golang/go#50250
Reviewed-on: https://go-review.googlesource.com/c/go/+/373015
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com>
3 years agoos: enable TestPipeThreads on FreeBSD
Tobias Klauser [Tue, 21 Dec 2021 12:13:01 +0000 (13:13 +0100)]
os: enable TestPipeThreads on FreeBSD

This test works on FreeBSD since CL 165801 was submitted.

Updates #19093

Change-Id: I45ffeb403c1de4385cdb21b9647f21976061e1ea
Reviewed-on: https://go-review.googlesource.com/c/go/+/373358
Trust: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agodoc/go1.18: mention new go/types/Config.Context field
Ian Lance Taylor [Tue, 21 Dec 2021 20:04:57 +0000 (12:04 -0800)]
doc/go1.18: mention new go/types/Config.Context field

For #47694
For #47916

Change-Id: Ieeffaf161da744adfdb4da8aac58a64c109ebcab
Reviewed-on: https://go-review.googlesource.com/c/go/+/373775
Trust: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
3 years agoall: update vendored golang.org/x/crypto for cryptobyte fix
Filippo Valsorda [Tue, 21 Dec 2021 16:49:38 +0000 (11:49 -0500)]
all: update vendored golang.org/x/crypto for cryptobyte fix

Fixes #49678

Change-Id: I47dd959a787180a67856e60dfa6eba3ddd045972
Reviewed-on: https://go-review.googlesource.com/c/go/+/373360
Run-TryBot: Filippo Valsorda <filippo@golang.org>
Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Trust: Filippo Valsorda <filippo@golang.org>

3 years agodoc/go1.18: mention new debug/elf.R_PPC64_RELATIVE constant
Ian Lance Taylor [Thu, 16 Dec 2021 00:30:15 +0000 (16:30 -0800)]
doc/go1.18: mention new debug/elf.R_PPC64_RELATIVE constant

For #47694

Change-Id: I9f4838100741d3ba13e9374e70466fa405c6e4d2
Reviewed-on: https://go-review.googlesource.com/c/go/+/372634
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com>
3 years agocmd/link: use SHT_INIT_ARRAY for .init_array section
Ian Lance Taylor [Tue, 21 Dec 2021 18:00:23 +0000 (10:00 -0800)]
cmd/link: use SHT_INIT_ARRAY for .init_array section

Fixes #50295

Change-Id: If55ebcd5f2af724da7c9c744458a56d21a7ddde7
Reviewed-on: https://go-review.googlesource.com/c/go/+/373734
Trust: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
3 years agoreflect: update relative path in comment
Jing维 [Mon, 20 Dec 2021 00:36:55 +0000 (00:36 +0000)]
reflect: update relative path in comment

Fix it to avoid misunderstanding.

Change-Id: I2a09cb9edfa8077c5c0c35e07000c0c7dc72755e
GitHub-Last-Rev: ae49d512eb7f58421ff2d3b9a8b04500a96ac831
GitHub-Pull-Request: golang/go#50260
Reviewed-on: https://go-review.googlesource.com/c/go/+/373334
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com>
3 years agonet/http: fix link to ResponseWriter trailer example
Reilly Watson [Mon, 20 Dec 2021 21:31:45 +0000 (16:31 -0500)]
net/http: fix link to ResponseWriter trailer example

The links to this example were using an underscore separator
instead of a hyphen, and incorrect casing.

Fixes #50279

Change-Id: I35d76a8a78cd708b7505ff1a70f7dacddaf43efd
Reviewed-on: https://go-review.googlesource.com/c/go/+/373514
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com>
3 years agoruntime: typo fix cyle -> cycle
“kinggo” [Mon, 20 Dec 2021 05:54:27 +0000 (05:54 +0000)]
runtime: typo fix cyle -> cycle

Change-Id: I213fa8aa9b9c2537a189677394ddd30c62312518
GitHub-Last-Rev: ccafdee9440b06232cdfca83099bf0aeff62a4c0
GitHub-Pull-Request: golang/go#50268
Reviewed-on: https://go-review.googlesource.com/c/go/+/373336
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Zhuo Meng <mzh@golangcn.org>
3 years agoruntime: check the correct environment variable in TestCgoCallbackGC
Cherry Mui [Tue, 21 Dec 2021 00:08:14 +0000 (19:08 -0500)]
runtime: check the correct environment variable in TestCgoCallbackGC

The test checks RUNTIME_TESTING_SHORT, whereas the test runner
actually set RUNTIME_TEST_SHORT. Check the correct one.

Updates #32023.

Change-Id: Ie8ab00e1f5b8c02112a9aa1ee0e56028185c8a44
Reviewed-on: https://go-review.googlesource.com/c/go/+/373614
Trust: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agonet/netip: add a fuzz test
Andrew LeFevre [Thu, 16 Dec 2021 05:25:09 +0000 (05:25 +0000)]
net/netip: add a fuzz test

This is a pretty straight port of the fuzz test at https://github.com/inetaf/netaddr.

The MarshalText methods of netip.Addr and net.IP, the Is* methods of netip.Addr
and net.IP and the MarshalText and String methods of netip.Addr are also
checked to ensure that they behave the same way.

Fixes #49367

Change-Id: I44abb01f2a7af45f39597992a1fc7ff0305728fa
GitHub-Last-Rev: c2323b0ae119b804a58b810ad7f0e2bb1b3a38ac
GitHub-Pull-Request: golang/go#50108
Reviewed-on: https://go-review.googlesource.com/c/go/+/371055
Trust: Matt Layher <mdlayher@gmail.com>
Trust: Katie Hockman <katie@golang.org>
Reviewed-by: Katie Hockman <katie@golang.org>
3 years agocmd/doc: don't log on constraint type elements
Ian Lance Taylor [Sat, 18 Dec 2021 23:54:38 +0000 (15:54 -0800)]
cmd/doc: don't log on constraint type elements

Fixes #50256

Change-Id: I2327a0b28f8173c801ed2946bec8083967667027
Reviewed-on: https://go-review.googlesource.com/c/go/+/373314
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
3 years agoall: fix spelling errors found by misspell
Dan Kortschak [Mon, 20 Dec 2021 07:17:42 +0000 (17:47 +1030)]
all: fix spelling errors found by misspell

Change-Id: Icedd0c3d49259d5aee249ecb33374e9b78e0c275
Reviewed-on: https://go-review.googlesource.com/c/go/+/373376
Reviewed-by: Robert Findley <rfindley@google.com>
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agocmd/internal/obj/riscv: mark stack bounds check prologue nonpreemptible
Cherry Mui [Mon, 20 Dec 2021 17:45:04 +0000 (12:45 -0500)]
cmd/internal/obj/riscv: mark stack bounds check prologue nonpreemptible

This is similar to CL 207350, for RISCV64.

May fix #50263.
Updates #35470.

Change-Id: I0d39e195e8254d65fa1aca1cdf1fc553aa8b7cba
Reviewed-on: https://go-review.googlesource.com/c/go/+/373434
Trust: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agogo/types: better error message when using comparable in union
Robert Griesemer [Fri, 17 Dec 2021 00:28:38 +0000 (16:28 -0800)]
go/types: better error message when using comparable in union

This is a port of CL 372674 from types2 to go/types with
minor adjustments for error handling.

For #49602.

Change-Id: I726081325a2ff2d5690d11ddc8a830bbcbd8ab33
Reviewed-on: https://go-review.googlesource.com/c/go/+/372954
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
3 years agogo/types, types2: delay "does not satisfy comparable" error until needed
Robert Griesemer [Thu, 16 Dec 2021 00:13:05 +0000 (16:13 -0800)]
go/types, types2: delay "does not satisfy comparable" error until needed

Fixes #49112.

Change-Id: I8effbca7bcbb257b18fd4d3d1914fd10d4afaaae
Reviewed-on: https://go-review.googlesource.com/c/go/+/372594
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
3 years agoruntime: mgc.go typo fix: becuse -> because
clamyang [Sun, 19 Dec 2021 03:03:38 +0000 (03:03 +0000)]
runtime: mgc.go typo fix: becuse -> because

Change-Id: I5019d5b9520e47a99a6136f615b6c9468073cc3c
GitHub-Last-Rev: 1a5392925a0c4e9b2915620fee3efa79ae14af20
GitHub-Pull-Request: golang/go#50239
Reviewed-on: https://go-review.googlesource.com/c/go/+/373055
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Trust: Brad Fitzpatrick <bradfitz@golang.org>

3 years agocmd/link: force eager binding when using plugins on darwin
Cherry Mui [Thu, 16 Dec 2021 19:33:13 +0000 (14:33 -0500)]
cmd/link: force eager binding when using plugins on darwin

When building/using plugins on darwin, we need to use flat
namespace so the same symbol from the main executable and the
plugin can be resolved to the same address. Apparently, when using
flat namespace the dynamic linker can hang at forkExec when
resolving a lazy binding. Work around it by forcing early bindings.

Fixes #38824.

Change-Id: I983aa0a0960b15bf3f7871382e8231ee244655f4
Reviewed-on: https://go-review.googlesource.com/c/go/+/372798
Trust: Cherry Mui <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agodoc/go1.18: document union element restriction
Ian Lance Taylor [Fri, 17 Dec 2021 01:54:27 +0000 (17:54 -0800)]
doc/go1.18: document union element restriction

For #47694

Change-Id: I9af871a4a45b002e72629904011aac8f076617f1
Reviewed-on: https://go-review.googlesource.com/c/go/+/372974
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
3 years agospec: describe constraint parsing ambiguity and work-around more precisely
Robert Griesemer [Thu, 16 Dec 2021 18:25:07 +0000 (10:25 -0800)]
spec: describe constraint parsing ambiguity and work-around more precisely

The new description matches the implementation (CL 370774).

Also, in the section on type constraints, use "defines" instead of
"determines" because the constraint interface defines the type set
which is precisely the set of acceptable type arguments.

For #49482.

Change-Id: I6f30f49100e8ba8bec0a0f1b450f88cae54312eb
Reviewed-on: https://go-review.googlesource.com/c/go/+/372874
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agospec: clarify that comparable cannot be a union element
Robert Griesemer [Thu, 16 Dec 2021 04:03:11 +0000 (20:03 -0800)]
spec: clarify that comparable cannot be a union element

For #49602.

Change-Id: I0d3ff8f087dffb3409918494147fd1dceff7514d
Reviewed-on: https://go-review.googlesource.com/c/go/+/372694
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agonet: lengthen arbitrary SetDeadline timeout by a few orders of magnitude
Bryan C. Mills [Thu, 16 Dec 2021 17:32:39 +0000 (12:32 -0500)]
net: lengthen arbitrary SetDeadline timeout by a few orders of magnitude

The "someTimeout" constant in the net test is “just to test that
net.Conn implementations don't explode when their SetFooDeadline
methods are called”. It was set to 10 seconds, which is short enough
that it could actually matter on some platforms.

Since the point of the constant is just to make sure methods don't
explode, we should set it to be at least a couple of orders of
magnitude longer than the test: then it is guaranteed not to have any
unintended side-effects.

Fixes #50227

Change-Id: If97ae7bef5e7f16b336d09ccc37f5ea2ea7e70b3
Reviewed-on: https://go-review.googlesource.com/c/go/+/372796
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agoos/exec: skip TestContextCancel on netbsd/arm64
Bryan C. Mills [Thu, 16 Dec 2021 15:40:47 +0000 (10:40 -0500)]
os/exec: skip TestContextCancel on netbsd/arm64

For #42061

Change-Id: I3b4c774ad9e375d4bfef1cfb4336c35ed30a6430
Reviewed-on: https://go-review.googlesource.com/c/go/+/372795
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agogo/types, types2: use compiler error message for undefined operators
Robert Griesemer [Thu, 16 Dec 2021 18:50:34 +0000 (10:50 -0800)]
go/types, types2: use compiler error message for undefined operators

For #48712.

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

3 years agocmd/compile/internal/types2: better error message when using comparable in union
Robert Griesemer [Thu, 16 Dec 2021 03:50:33 +0000 (19:50 -0800)]
cmd/compile/internal/types2: better error message when using comparable in union

Fixes #49602.

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

3 years agocmd/compile/internal/syntax: fix parsing of type parameter lists
Robert Griesemer [Thu, 9 Dec 2021 04:32:29 +0000 (20:32 -0800)]
cmd/compile/internal/syntax: fix parsing of type parameter lists

The parser cannot distinguish a type parameter list of the form

[P *T ] or
[P (T)]

where T is not a type literal from an array length specification
P*T (product) or P(T) (constant-valued function call) and thus
interprets these forms as the start of array types.

This ambiguity must be resolved explicitly by placing *T inside
an interface, adding a trailing comma, or by leaving parentheses
away where possible.

This CL adjusts the parser such that these forms are
interpreted as (the beginning) of type parameter lists
if the token after P*T or P(T) is a comma, or if T is
a type literal.

This CL also adjusts the printer to print a comma if
necessary to avoid this ambiguity, and adds additional
printer tests.

Fixes #49482

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

3 years agocmd/go: update go work docs
Michael Matloob [Wed, 15 Dec 2021 20:07:22 +0000 (15:07 -0500)]
cmd/go: update go work docs

Change-Id: If28cc02a5a6f9bf2c7f2550de77ca0b31c1b35ee
Reviewed-on: https://go-review.googlesource.com/c/go/+/372494
Trust: Michael Matloob <matloob@golang.org>
Run-TryBot: Michael Matloob <matloob@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
3 years agocmd/compile: only avoid escaping package paths for "go.shape"
Dan Scales [Thu, 16 Dec 2021 21:24:40 +0000 (13:24 -0800)]
cmd/compile: only avoid escaping package paths for "go.shape"

We have code that intends to avoid escaping the package path for
built-in packages. But it is hard to determine which packages are
built-in from a general rule, and we really only want to avoid escaping
for the "go.shape" package (since that gives ugly shape type names). So,
fix the code to only avoid escaping the package path specifically for
the "go.shape" package.

Fixes #50200

Change-Id: Ibaedd7690b99a173007c608c5dfa783ef82b326d
Reviewed-on: https://go-review.googlesource.com/c/go/+/372934
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Dan Scales <danscales@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
3 years agocmd/go/internal/vcs: prevent Git signatures from breaking commit time parsing
Andre Marianiello [Tue, 14 Dec 2021 22:50:28 +0000 (22:50 +0000)]
cmd/go/internal/vcs: prevent Git signatures from breaking commit time parsing

When a user has showSignature=true set in their Git config and the
commit in question has a signature, the git-show command will output
information about that signature. When this happens, the logic that
tries to parsing a timestamp from the git-show output chokes on this
signature information and the build stamping fails. This change prevents
commit signature information from being displayed even if
showSignature=true, preventing this issue.

Change-Id: I98d0a6fdd1e90dd1b91e0394713b6eb286a69d1a
GitHub-Last-Rev: 610706e23e33a037b9abede2ba0a926c0f336814
GitHub-Pull-Request: golang/go#49790
Reviewed-on: https://go-review.googlesource.com/c/go/+/367034
Trust: Cherry Mui <cherryyz@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agomisc/cgo/testcarchive: log command output more consistently
Bryan C. Mills [Fri, 3 Dec 2021 15:33:02 +0000 (10:33 -0500)]
misc/cgo/testcarchive: log command output more consistently

Also check that executables exist immediately after building them
in parallel tests.

The parallel tests in this package occasionally fail with
"no such file or directory", implying that either the build
command failed to actually write out the binary or something
concurrently deleted it.

This is purely a shot in the dark, but I'm hoping that perhaps
the stderr output from one of these commands will shed some
light on the underlying failure mode.

For #49693

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

3 years agonet/http/pprof: skip TestDeltaProfile on openbsd/arm
Bryan C. Mills [Thu, 16 Dec 2021 15:22:37 +0000 (10:22 -0500)]
net/http/pprof: skip TestDeltaProfile on openbsd/arm

It is observed to be flaky on the only openbsd/arm builder.
Skipping on that platform until someone can investigate.

For #50218

Change-Id: Id3a6dc12b93b3cec67870d8d81bd608c4589c952
Reviewed-on: https://go-review.googlesource.com/c/go/+/372794
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agocmd/go: add missing cgo condition in TestScript/mod_list_compiled_concurrent
Bryan C. Mills [Thu, 16 Dec 2021 20:15:32 +0000 (15:15 -0500)]
cmd/go: add missing cgo condition in TestScript/mod_list_compiled_concurrent

Updates #50205

Change-Id: I60d2e32c2cd84599f4a0126e4da4f1d61bd29b51
Reviewed-on: https://go-review.googlesource.com/c/go/+/372799
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agocmd/go: examine dependencies of main modules in workspace mode
Michael Matloob [Thu, 9 Dec 2021 19:52:49 +0000 (14:52 -0500)]
cmd/go: examine dependencies of main modules in workspace mode

To make sure that we properly pull in everything in all, because
different main modules can interfere with each others' pruning.

Fixes #49763
Change-Id: I0756993d8ae9919ccb27ec460d579d348c38ec3b
Reviewed-on: https://go-review.googlesource.com/c/go/+/370663
Trust: Michael Matloob <matloob@golang.org>
Run-TryBot: Michael Matloob <matloob@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agoreflect: fix name of type parameter
zhouguangyuan [Thu, 16 Dec 2021 14:18:26 +0000 (22:18 +0800)]
reflect: fix name of type parameter

Fixes #50208

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

3 years agocmd/compile: don't re-typecheck while importing
Keith Randall [Tue, 14 Dec 2021 04:11:07 +0000 (20:11 -0800)]
cmd/compile: don't re-typecheck while importing

The imported code is already typechecked. NodAddrAt typechecks its
argument, which is unnecessary here and leads to errors when
typechecking unexported field references in other packages' code.

Mark the node is question as already typechecked, so we don't
retypecheck it.

Fixes #50148

Change-Id: I9789e3e7dd4d58ec095675e27b1c98389f7a0c44
Reviewed-on: https://go-review.googlesource.com/c/go/+/371554
Trust: Keith Randall <khr@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>
Trust: Dan Scales <danscales@google.com>
Reviewed-by: Dan Scales <danscales@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agocmd/compile: upgrade ssa to do (int or float) -> complex
Keith Randall [Wed, 15 Dec 2021 21:04:54 +0000 (13:04 -0800)]
cmd/compile: upgrade ssa to do (int or float) -> complex

Generic instantiations can produce conversions from constant
literal ints or floats to complex values. We could constant literals
during instantiation, but it is just as easy to upgrade the code
generator to do the conversions.

Fixes #50193

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

3 years agotest: add simpler test for issue 50109
Dan Scales [Mon, 13 Dec 2021 23:10:31 +0000 (15:10 -0800)]
test: add simpler test for issue 50109

Thanks to the simpler test case for issue 50109. I'm keeping the old
test case in place, since it's not too complex, and may be useful for
testing other things as well.

Updates #50109

Change-Id: I80cdbd1da473d0cc4dcbd68e45bab7ddb6f9263e
Reviewed-on: https://go-review.googlesource.com/c/go/+/371515
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Dan Scales <danscales@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: roger peppe <rogpeppe@gmail.com>
3 years agonet: increase timing slop in TimeoutFluctuation tests on NetBSD and OpenBSD
Bryan C. Mills [Wed, 15 Dec 2021 15:46:11 +0000 (10:46 -0500)]
net: increase timing slop in TimeoutFluctuation tests on NetBSD and OpenBSD

Decrease the slop everywhere else, since NetBSD and OpenBSD seem to be
the only ones that miss by that much.

For #50189
Updates #36108

Change-Id: I22ac39cc7c254e40358fcd933b5a6016629602c3
Reviewed-on: https://go-review.googlesource.com/c/go/+/372215
Trust: Bryan Mills <bcmills@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agonet: skip Lookup tests of external hosts on builders with flaky networks
Bryan C. Mills [Wed, 15 Dec 2021 16:39:18 +0000 (11:39 -0500)]
net: skip Lookup tests of external hosts on builders with flaky networks

For #50191

Change-Id: Ic1059127e756d69ea9b75cf5805669ec43fedd5c
Reviewed-on: https://go-review.googlesource.com/c/go/+/372216
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agocmd/compile/internal/types2: record types for union subexpressions
Robert Griesemer [Wed, 15 Dec 2021 19:42:58 +0000 (11:42 -0800)]
cmd/compile/internal/types2: record types for union subexpressions

This is a port of CL 371757 from go/types to types2, with
minor adjustments for different error handling and AST.

It also names the added API test cases more consistently.
The same renaming was applied to the respective go/types
file.

Updates #50093

Change-Id: Iaa132106a197a207f831525432e62e9d452b17c9
Reviewed-on: https://go-review.googlesource.com/c/go/+/372475
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
3 years agocmd/compile/internal/types2: externalize union type sets
Robert Griesemer [Wed, 15 Dec 2021 19:24:56 +0000 (11:24 -0800)]
cmd/compile/internal/types2: externalize union type sets

This is a port of CL 371756 from go/types to types2 with
minor adjustments due to different error handling or AST.

Updates #50093

Change-Id: Iab6a4634f8fc917bf99df439d31098624085f52a
Reviewed-on: https://go-review.googlesource.com/c/go/+/372474
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
3 years agocmd/compile: correct type identity comparison with "any"
Cherry Mui [Wed, 15 Dec 2021 17:34:34 +0000 (12:34 -0500)]
cmd/compile: correct type identity comparison with "any"

The builtin "any" type should only be identical to an unnamed empty
interface type, not a defined empty interface type.

Fixes #50169.

Change-Id: Ie5bb88868497cb795de1fd0276133ba9812edfe4
Reviewed-on: https://go-review.googlesource.com/c/go/+/372217
Trust: Cherry Mui <cherryyz@google.com>
Trust: Dan Scales <danscales@google.com>
Reviewed-by: Dan Scales <danscales@google.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agomisc/cgo/testshared: increase size limit in size check
Jakub Čajka [Mon, 13 Dec 2021 14:57:25 +0000 (15:57 +0100)]
misc/cgo/testshared: increase size limit in size check

Recently in Fedora we switched binutils ld's separate-code on. This
led to increased size of binaries, especially on 64k aligned arches.
For example trivial test binary size grew from 80k to 211k on ppc64le
tripping the size check(RHBZ#2030308). Therefore adjusting the size limit.

Change-Id: Ic722d90c338739c0b285f40b12ba4d675e9626a2
Reviewed-on: https://go-review.googlesource.com/c/go/+/371634
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
3 years agomisc/cgo/testshared: pass -x flag only to commands supporting it
Jakub Čajka [Mon, 13 Dec 2021 12:28:15 +0000 (13:28 +0100)]
misc/cgo/testshared: pass -x flag only to commands supporting it

Running testshared with the -testx flag leads to:

./testshared.test -testx -testwork
+ mkdir -p /tmp/shared_test125221103
shared_test.go:79: executing go env -x GOROOT failed exit status 2:
flag provided but not defined: -x
usage: go env [-json] [-u] [-w] [var ...]
Run 'go help env' for details.
panic: executing go env -x GOROOT failed exit status 2:
flag provided but not defined: -x
usage: go env [-json] [-u] [-w] [var ...]
Run 'go help env' for details.

Change-Id: Id299979487c021e9ad1d57f5f7088d935830a6a3
Reviewed-on: https://go-review.googlesource.com/c/go/+/371614
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Trust: Cherry Mui <cherryyz@google.com>

3 years agoall: fix typo in comment
ichxxx [Wed, 15 Dec 2021 18:52:21 +0000 (18:52 +0000)]
all: fix typo in comment

Remove duplicate 'the'

Change-Id: I3ed81c8d9c488662387e45580a3bcd462448ba44
GitHub-Last-Rev: 86443993b9b58c6fce4e09e283604c32ccc44cec
GitHub-Pull-Request: golang/go#50017
Reviewed-on: https://go-review.googlesource.com/c/go/+/372394
Reviewed-by: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agodoc/go1.18: discuss embedded build info compatibility
Hana [Wed, 15 Dec 2021 13:40:30 +0000 (08:40 -0500)]
doc/go1.18: discuss embedded build info compatibility

Fixes #50085

Change-Id: I9be8ddb983fb4fe598becbb0b93bb5b7e1f8438f
Reviewed-on: https://go-review.googlesource.com/c/go/+/372214
Trust: Hyang-Ah Hana Kim <hyangah@gmail.com>
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
3 years agonet: eliminate arbitrary timeout in TestVariousDeadlines
Bryan C. Mills [Tue, 14 Dec 2021 22:07:24 +0000 (17:07 -0500)]
net: eliminate arbitrary timeout in TestVariousDeadlines

When we set a timeout, we don't actually have a guarantee one how long
the OS will take to notice it. Moreover, if the test deadlocks
completely (for example, due to a deadline never taking effect), it
would be more useful to get a full goroutine dump instead of the current
"client stuck in Dial+Copy" failure message.

For #37883
For #41863

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

3 years agodoc/go1.18: mention that embedding a type parameter is forbidden
Ian Lance Taylor [Wed, 15 Dec 2021 00:09:36 +0000 (16:09 -0800)]
doc/go1.18: mention that embedding a type parameter is forbidden

For #47694

Change-Id: Ibf38eabcb78abc563fcf77e2b566175a18c06fa3
Reviewed-on: https://go-review.googlesource.com/c/go/+/372114
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agoruntime/cgo: fix signature of crosscall_amd64 in comment
MoZhonghua [Fri, 12 Nov 2021 08:08:25 +0000 (08:08 +0000)]
runtime/cgo: fix signature of crosscall_amd64 in comment

In CL 289192, crosscall_amd64() was changed to recieve 3
arguments, but the comment was not updated.

Change-Id: Iba36c27aa5189e50f3fcc2a50291fecb2ef722c1
GitHub-Last-Rev: e7c041f00c562fdfeec84f1f3ea341713dcc7bf5
GitHub-Pull-Request: golang/go#49539
Reviewed-on: https://go-review.googlesource.com/c/go/+/363442
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
3 years agodoc/go1.18: fix an unclosed anchor
Brad Fitzpatrick [Tue, 14 Dec 2021 23:39:14 +0000 (15:39 -0800)]
doc/go1.18: fix an unclosed anchor

Change-Id: I432bcc6ff917d008598b2f37c6e826f588a3d6d6
Reviewed-on: https://go-review.googlesource.com/c/go/+/372074
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Trust: Brad Fitzpatrick <bradfitz@golang.org>

3 years agodoc: fix typo in 1.18 release notes for package testing
Olivier Mengué [Tue, 14 Dec 2021 22:05:03 +0000 (23:05 +0100)]
doc: fix typo in 1.18 release notes for package testing

In release notes for Go 1.18, fix typo in changes for package testing to
correctly document the change in CL 343883.

Change-Id: I40d92858ed3f74554a094466c06771f83dd81942
Reviewed-on: https://go-review.googlesource.com/c/go/+/371616
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Trust: Cherry Mui <cherryyz@google.com>

3 years agogo/types: record types for union subexpressions
Robert Findley [Tue, 14 Dec 2021 17:48:31 +0000 (12:48 -0500)]
go/types: record types for union subexpressions

Prior to unions, unary and binary expressions always had a recorded
type. Preserve this by recording a type for all unary and binary
expressions encountered while parsing a union type.

Updates #50093

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

3 years agogo/types: externalize union type sets
Robert Findley [Tue, 14 Dec 2021 16:33:10 +0000 (11:33 -0500)]
go/types: externalize union type sets

Move calculated type sets for unions into a map, rather than storing
them on the Union type.

Type sets for unions only matter during calculation of interface type
sets, and to a lesser extent inside of Identical. The latter should not
be encountered during type checking, as Identical uses the precomputed
interface type set when comparing interfaces, and unions do not arise
outside of interface types.

Removing the tset field from Union potentially frees up memory, and
eliminates a source of races via calls to NewUnion and Identical. It
also sets the stage for recording Unions for every subexpression of
union terms, which preserves an existing invariant that BinaryExprs and
UnaryExprs should have a recorded type.

Updates #50093

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

3 years agodoc/go1.18: add caution about use of generics in production
Ian Lance Taylor [Tue, 14 Dec 2021 21:27:57 +0000 (13:27 -0800)]
doc/go1.18: add caution about use of generics in production

Per https://groups.google.com/g/golang-dev/c/iuB22_G9Kbo/m/7B1jd1I3BQAJ.

For #47694

Change-Id: I033cdadb2067e432f7c307d1546b4c5d0cfd5d8c
Reviewed-on: https://go-review.googlesource.com/c/go/+/371954
Trust: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
3 years agodoc/go1.18: move debug/buildinfo to core library section
Cherry Mui [Tue, 14 Dec 2021 21:15:30 +0000 (16:15 -0500)]
doc/go1.18: move debug/buildinfo to core library section

It is a new package and seems a major change.

Updates #47694.

Change-Id: If854e494e28bcd1e79c99e59119755b9cb6793d6
Reviewed-on: https://go-review.googlesource.com/c/go/+/371816
Trust: Cherry Mui <cherryyz@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
3 years agoos: enable TestClosedPipeRace* on FreeBSD
Austin Clements [Sat, 11 Dec 2021 02:17:12 +0000 (21:17 -0500)]
os: enable TestClosedPipeRace* on FreeBSD

This test has worked since CL 165801 (committed March 12, 2019), so
stop skipping it. With this, we check that Close makes concurrent I/O
operations on pipes return Errclosed on all platforms.

Updates #19093.

Change-Id: Ic090c70996c115abf80d8f9b93ca2aeaf347c9d8
Reviewed-on: https://go-review.googlesource.com/c/go/+/371016
Trust: Austin Clements <austin@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agotesting: retry spurious errors from RemoveAll for temp directories
Bryan C. Mills [Mon, 13 Dec 2021 19:28:17 +0000 (14:28 -0500)]
testing: retry spurious errors from RemoveAll for temp directories

This works around what appears to be either a kernel bug or a Go
runtime or syscall bug affecting certain Windows versions
(possibly all pre-2016?).

The retry loop is a simplified version of the one used in
cmd/go/internal/robustio. We use the same 2-second arbitrary timeout
as was used in that package, since it seems to be reliable in practice
on the affected builders. (If it proves to be too short, we can
lengthen it, within reason, in a followup CL.)

Since this puts a higher-level workaround in place, we can also revert
the lower-level workaround added to a specific test in CL 345670.

This addresses the specific occurrences of the bug for users of
(*testing.T).TempDir, but does not fix the underlying bug for Go users
outside the "testing" package (which remains open as #25965).

Fixes #50051
Updates #48012
Updates #25965

Change-Id: I35be7125f32f05c8350787f5ca9a22974b8d0770
Reviewed-on: https://go-review.googlesource.com/c/go/+/371296
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Patrik Nyblom <pnyb@google.com>
Trust: Patrik Nyblom <pnyb@google.com>
Run-TryBot: Patrik Nyblom <pnyb@google.com>

3 years agodoc: update go1.18 release notes with a blurb about workspace mode
Michael Matloob [Mon, 13 Dec 2021 18:49:30 +0000 (13:49 -0500)]
doc: update go1.18 release notes with a blurb about workspace mode

For #47694

Change-Id: I79cdbdc66ea9942b597f29c9a4f428075f053466
Reviewed-on: https://go-review.googlesource.com/c/go/+/371295
Trust: Michael Matloob <matloob@golang.org>
Run-TryBot: Michael Matloob <matloob@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
3 years agoapi: promote next to go1.18 go1.18beta1
Cherry Mui [Tue, 14 Dec 2021 17:24:08 +0000 (12:24 -0500)]
api: promote next to go1.18

Change-Id: Ifc61e67413e5e56afbd0d4954f0150303d1a3a27
Reviewed-on: https://go-review.googlesource.com/c/go/+/371755
Trust: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-by: Alex Rakoczy <alex@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agodoc/go1.18: remove residual TODOs
Cherry Mui [Tue, 14 Dec 2021 17:17:53 +0000 (12:17 -0500)]
doc/go1.18: remove residual TODOs

There doesn't seem anything that still needs to de done there.

Updates #47694.

Change-Id: I7909f566638332f3904d20a34f61d371af1d2da2
Reviewed-on: https://go-review.googlesource.com/c/go/+/371754
Trust: Cherry Mui <cherryyz@google.com>
Reviewed-by: Jeremy Faller <jeremy@golang.org>
Trust: Jeremy Faller <jeremy@golang.org>
Reviewed-by: Alex Rakoczy <alex@golang.org>
3 years agocmd/compile: fix any in -G=0 mode
Russ Cox [Tue, 14 Dec 2021 15:49:07 +0000 (10:49 -0500)]
cmd/compile: fix any in -G=0 mode

Fixes go test -gcflags=all=-G=0 -short std,
except for the packages with generics in their tests
(constraints, encoding/xml), and except for the
go/internal/gcimporter and go/types tests,
because the compiler does not preserve any
in its -G=0 export information.
(That's probably acceptable for now.)

Fixes cd test/; GO_BUILDER_NAME=longtest go run run.go
completely, which should fix the longtest builder.

Fixes #50159.

Change-Id: I9390972239c18831833edd6530191da2842b876b
Reviewed-on: https://go-review.googlesource.com/c/go/+/371715
Trust: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agogo/types, types2: record (top-level) union types
Robert Griesemer [Mon, 13 Dec 2021 23:04:43 +0000 (15:04 -0800)]
go/types, types2: record (top-level) union types

Fixes #50093.

Change-Id: Ibebeda542d2a81c979670f9098c4a6d2c3e73abb
Reviewed-on: https://go-review.googlesource.com/c/go/+/371514
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
3 years agocmd/compile: fix case where we didn't delay transformAssign in varDecl
Dan Scales [Tue, 14 Dec 2021 00:15:52 +0000 (16:15 -0800)]
cmd/compile: fix case where we didn't delay transformAssign in varDecl

We delay all transformations on generic functions, and only do them on
instantiated functions, for several reasons, of which one is that
otherwise the compiler won't understand the relationship between
constrained type parameters. In an instantiation with shape arguments,
the underlying relationship between the type arguments are clear and
don't lead to compiler errors.

This issue is because I missed delaying assignment transformations for
variable declarations. So, we were trying to transform an assignment,
and the compiler doesn't understand the relationship between the T and U
type parameters.

The fix is to delay assignment transformations for variable declarations
of generic functions, just as we do already for normal assignment
statements.

A work-around for this issue would be to just separate the assignment
from the variable declaration in the generic function (for this case of
an assignment involving both of the constrained type parameters).

Fixes #50147

Change-Id: Icdbcda147e5c4b386e4715811761cbe73d0d837e
Reviewed-on: https://go-review.googlesource.com/c/go/+/371534
Trust: Dan Scales <danscales@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
3 years agocmd/compile: avoid re-instantiating method that is already imported
Dan Scales [Mon, 13 Dec 2021 20:42:38 +0000 (12:42 -0800)]
cmd/compile: avoid re-instantiating method that is already imported

We can import an shape-instantiated function/method for inlining
purposes. If we are instantiating the methods of a instantiated type
that we have seen, and it happens to need a shape instantiation that we
have imported, then don't re-create the instantiation, since we will end
up with conflicting/duplicate definitions for the instantiation symbol.
Instead, we can just use the existing imported instantation, and enter
it in the instInfoMap[].

Fixes #50121

Change-Id: I6eeb8786faad71106e261e113048b579afad04fa
Reviewed-on: https://go-review.googlesource.com/c/go/+/371414
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Dan Scales <danscales@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
3 years agocmd/internal/obj: fix tail call in non-zero frame leaf function on MIPS and S390X
Cherry Mui [Mon, 13 Dec 2021 15:24:07 +0000 (10:24 -0500)]
cmd/internal/obj: fix tail call in non-zero frame leaf function on MIPS and S390X

A "RET f(SB)" wasn't assembled correctly in a leaf function with
non-zero frame size. Follows CL 371034, for MIPS(32/64)(be/le)
and S390X. Other architectures seem to do it right. Add a test.

Change-Id: I41349a7ae9862b924f3a3de2bcb55b782061ce21
Reviewed-on: https://go-review.googlesource.com/c/go/+/371214
Trust: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
Reviewed-by: David Chase <drchase@google.com>
3 years agonet/http: revert h2_bundle.go formatting change from CL 368254
Bryan C. Mills [Mon, 13 Dec 2021 21:12:50 +0000 (16:12 -0500)]
net/http: revert h2_bundle.go formatting change from CL 368254

h2_bundle.go is automatically generated from x/net/http2. Any
formatting changes within that file need to be first made upstream.

This brings the contents of h2_bundle.go back in line with the
upstream generator, fixing the cmd/internal/moddeps test that is
currently failing on the longtest builders.

For #49884

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

3 years agocmd/go: document -fuzzminimizetime
Katie Hockman [Fri, 10 Dec 2021 19:25:55 +0000 (14:25 -0500)]
cmd/go: document -fuzzminimizetime

Change-Id: I435942ff7285d32ffbc8901d9d7e76544d5aeb61
Reviewed-on: https://go-review.googlesource.com/c/go/+/370881
Trust: Katie Hockman <katie@golang.org>
Run-TryBot: Katie Hockman <katie@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agocmd/compile/internal/amd64: fix for coverage testing
Than McIntosh [Mon, 13 Dec 2021 17:03:13 +0000 (12:03 -0500)]
cmd/compile/internal/amd64: fix for coverage testing

Fix up a unit test to make it more friendly for coverage runs.
Currently on tip if you do

   cd ${GOROOT}/src ; go test -cover cmd/compile/...

it will cause a failure in the TestGoAMD64v1 testpoint of
cmd/compile/internal/amd64, the reason being that this testpoint
copies and reruns the test executable, expecting the rerun to produce
only the output "PASS", whereas if "-cover" is used, the output will
include percentage of statements covered as well. To fix, rework the
test to tolerate additional output if coverage is enabled.

Change-Id: I2512e06ca06e5f38108f2891ff84276d148c4f9e
Reviewed-on: https://go-review.googlesource.com/c/go/+/371234
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
3 years agotesting: update docs for fuzzcachedir
Katie Hockman [Fri, 10 Dec 2021 19:03:20 +0000 (14:03 -0500)]
testing: update docs for fuzzcachedir

Although most of the code seems to be already implemented
to support this for general use, it didn't make it in for
Go 1.18, so for now we should at least document that it's
only for use by the go command.

Change-Id: Id559e72d590aedeaaa50bcf880bca1a385d858dd
Reviewed-on: https://go-review.googlesource.com/c/go/+/370954
Trust: Katie Hockman <katie@golang.org>
Run-TryBot: Katie Hockman <katie@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
3 years agoall: gofmt -w -r 'interface{} -> any' src
Russ Cox [Wed, 1 Dec 2021 17:15:45 +0000 (12:15 -0500)]
all: gofmt -w -r 'interface{} -> any' src

And then revert the bootstrap cmd directories and certain testdata.
And adjust tests as needed.

Not reverting the changes in std that are bootstrapped,
because some of those changes would appear in API docs,
and we want to use any consistently.
Instead, rewrite 'any' to 'interface{}' in cmd/dist for those directories
when preparing the bootstrap copy.

A few files changed as a result of running gofmt -w
not because of interface{} -> any but because they
hadn't been updated for the new //go:build lines.

Fixes #49884.

Change-Id: Ie8045cba995f65bd79c694ec77a1b3d1fe01bb09
Reviewed-on: https://go-review.googlesource.com/c/go/+/368254
Trust: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agospec: fix conversion rules (match implementation)
Robert Griesemer [Fri, 10 Dec 2021 23:35:46 +0000 (15:35 -0800)]
spec: fix conversion rules (match implementation)

As written, the conversion P(x), where P and the type
of x are type parameters with identical underlying types
(i.e., identical constraints), is valid. However, unless
the type of x and P are identical (which is covered with
the assignability rule), such a conversion is not valid
in general (consider the case where both type parameters
are different type parameters with constraint "any").

This change adjusts the rules to prohibit type parameters
in this case. The same reasoning applies and the analogue
change is made for pointer types.

The type checker already implements these updated rules.

Change-Id: Id90187900cb2820f6a0a0cf582cf26cdf8addbce
Reviewed-on: https://go-review.googlesource.com/c/go/+/371074
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agonet: refactor TestWriteToTimeout
Bryan C. Mills [Fri, 10 Dec 2021 19:13:52 +0000 (14:13 -0500)]
net: refactor TestWriteToTimeout

The test cases for this test had listed specific errors, but the
specific error values were ignored in favor of just calling
isDeadlineExceeded.

Moreover, ENOBUFS errors (which can legitimately occur in the test if
the network interface also happens to be saturated when the timeout
occurs) were not handled at all.

Now the test relies only on the timeout: we iterate until we have seen
two of the expected timeout errors, and if we see ENOBUFS instead of
"deadline exceeded" we back off to give the queues time to drain.

Fixes #49930

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

3 years agonet: create unix sockets in unique directories
Bryan C. Mills [Thu, 9 Dec 2021 16:55:20 +0000 (11:55 -0500)]
net: create unix sockets in unique directories

This change applies the same transformation as in CL 366774,
but to the net package.

testUnixAddr was using os.CreateTemp to obtain a unique socket path,
but then calling os.Remove on that path immediately. Since the
existence of the file is what guarantees its uniqueness, that could
occasionally result in testUnixAddr returning the same path for two
calls, causing the tests using those paths to fail — especially if
they are the same test or are run in parallel.

Instead, we now create a unique, short temp directory for each call,
and use a path within that directory for the socket address.

For #34611

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

3 years agonet: pass a testing.TB to newLocal* helpers
Bryan C. Mills [Thu, 9 Dec 2021 16:42:42 +0000 (11:42 -0500)]
net: pass a testing.TB to newLocal* helpers

Passing in an explicit testing.TB gives two benefits:

1. It allows the helper to fail the test itself, instead of returning
   an error to the caller. A non-nil error invariably fails the
   calling test, and none of these callers bother to add detail to the
   error when logging it anyway so returning the error just added
   noise to the test bodies.

2. It allows the helper to use t.Cleanup to perform any needed cleanup
   tasks, which will be used in CL 370695 to clean up temp directories
   used as namespaces for unix socket paths.

For #34611

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

3 years agocmd/asm,cmd/compile: fix tail call in leaf functions on PPC64
Paul E. Murphy [Fri, 10 Dec 2021 22:58:43 +0000 (16:58 -0600)]
cmd/asm,cmd/compile: fix tail call in leaf functions on PPC64

In some leaf functions using "RET foo(SB)", the jump may be incorrectly
translated into "JMP LR" instead of "JMP foo(SB)".

Such is the case when compiling the autogenerated function in k8s
k8s.io/kubernetes/pkg/kubelet/server/stats.(*resourceAnalyzer).GetPodVolumeStats.

Fixes #50048

Change-Id: Icdf65fcda6b3c5eb9d3ad5c7aad04add9419dffb
Reviewed-on: https://go-review.googlesource.com/c/go/+/371034
Run-TryBot: Paul Murphy <murp@ibm.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Trust: Paul Murphy <murp@ibm.com>

3 years agonet: don't check "invalid.invalid" lookup errors in TestLookupHostCancel
Bryan C. Mills [Fri, 3 Dec 2021 16:44:00 +0000 (11:44 -0500)]
net: don't check "invalid.invalid" lookup errors in TestLookupHostCancel

The exact error isn't actually relevant to the test,
and may depend on whether the Go or cgo resolver is used.

Also run the test in parallel, because it spends most of its time
sleeping in between lookups.

Fixes #38767
Fixes #43140

Change-Id: I2d64ffddf2eb114a69ed3242daa9a9e4a5679f67
Reviewed-on: https://go-review.googlesource.com/c/go/+/369037
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agonet: do not try to remove the LocalAddr of a unix socket
Bryan C. Mills [Thu, 9 Dec 2021 16:54:46 +0000 (11:54 -0500)]
net: do not try to remove the LocalAddr of a unix socket

TestUnixAndUnixpacketServer deferred a call to os.Remove on the local
address of a dialed unix domain socket, in an attempt to remove the
socket from the server. However, that call appears to be neither
necessary nor correct.

In this test, the file that needs to be unlinked is the one attached
to the listener — but the listener's Close method already does that
(see the Unlink call in  (*UnixListener).close), so there is no need
for the test itself to do the same.

Moreover, the local address is not something that is sensible to
delete — on Linux, it is empirically always the literal string "@" —
and the Addr returned by c.LocalAddr is not reliably non-nil on all
platforms (see #34611).

Since we don't need to do anything with the local address, we shouldn't.
At best, this is a benign Remove of a file that doesn't exist anyway;
at worst, it is a nil-panic.

Fixes #34611

Change-Id: Ie072b3388d884d60e819d1df210fa7d3e2eed124
Reviewed-on: https://go-review.googlesource.com/c/go/+/370695
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agonet: remove erroneous Dial check in TestListenerClose
Bryan C. Mills [Thu, 9 Dec 2021 22:00:51 +0000 (17:00 -0500)]
net: remove erroneous Dial check in TestListenerClose

TestListenerClose had been asserting that a Dial to the newly-closed
address always fails, on the assumption that the listener's address
and port would not be reused by some other listener that could then
accept the connection.

As far as I can tell, that assumption is not valid: the Dial after
Close may well connect to a Listener opened for some other test, or
even one opened by a completely different process running concurrently
on the same machine.

Fixes #38700

Change-Id: I925ed1b2ccb556135a2c5be0240d1789ed27d5fc
Reviewed-on: https://go-review.googlesource.com/c/go/+/370666
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agocmd/compile: fix identity case relating to 'any' and shape types
Dan Scales [Sun, 12 Dec 2021 19:08:59 +0000 (11:08 -0800)]
cmd/compile: fix identity case relating to 'any' and shape types

In identical(), we don't want any to match a shape empty-interface type
for the identStrict option, since IdenticalStrict() is specifically not
supposed to match a shape type with a non-shape type.

There is similar code in (*Type).cmp() (TINTER case), but I don't
believe that we want to disqualify shape types from matching any in this
case, since cmp() is used for back-end code, where we don't care about
shape types vs non-shape types.

The issue mainly comes about when 'any' is used as a type argument
(rather than 'interface{}'), but only with some complicated
circumstances, as shown by the test case. (Couldn't reproduce with
simpler test cases.)

Fixes #50109

Change-Id: I3f2f88be158f9ad09273237e1d346bc56aac099f
Reviewed-on: https://go-review.googlesource.com/c/go/+/371154
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Dan Scales <danscales@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
3 years agonet/netip: make Prefix.MarshalText format 4-in-6 IPs consistently
Matt Layher [Sun, 12 Dec 2021 15:53:17 +0000 (10:53 -0500)]
net/netip: make Prefix.MarshalText format 4-in-6 IPs consistently

Fixes #50115.

Change-Id: Iac76e5b486d3a2a784583345eaeb22c31cc4a36d
Reviewed-on: https://go-review.googlesource.com/c/go/+/371134
Trust: Matt Layher <mdlayher@gmail.com>
Run-TryBot: Matt Layher <mdlayher@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Trust: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agoos: document error returned by pending I/O operations on Close
Austin Clements [Sat, 11 Dec 2021 02:09:16 +0000 (21:09 -0500)]
os: document error returned by pending I/O operations on Close

Currently, File.Close only documents that "an" error will be returned
by pending I/O operations. Update the documentation to say that error
is specifically ErrClosed.

Change-Id: Ica817c9196ad6cb570c826789d37a4ff15a5d13d
Reviewed-on: https://go-review.googlesource.com/c/go/+/371015
Trust: Austin Clements <austin@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agoruntime: run gdb with a timeout for TestGdbBacktrace
Austin Clements [Thu, 9 Dec 2021 18:52:18 +0000 (13:52 -0500)]
runtime: run gdb with a timeout for TestGdbBacktrace

This sometimes times out and we don't have any useful output for
debugging it. Hopefully this will help.

For #37405.

Change-Id: I79074e6fbb9bd16a864c651109a0acbfc8aa6cef
Reviewed-on: https://go-review.googlesource.com/c/go/+/370703
Trust: Austin Clements <austin@google.com>
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agotestenv: kill subprocess if SIGQUIT doesn't do it
Austin Clements [Thu, 9 Dec 2021 17:51:29 +0000 (12:51 -0500)]
testenv: kill subprocess if SIGQUIT doesn't do it

This makes testenv.RunWithTimeout first attempt to SIGQUIT the
subprocess to get a useful Go traceback, but if that doesn't work, it
sends a SIGKILL instead to make sure we tear down the subprocess. This
is potentially important for non-Go subprocesses.

For #37405.

Change-Id: I9e7e118dc5769ec3f45288a71658733bff30c9cd
Reviewed-on: https://go-review.googlesource.com/c/go/+/370702
Trust: Austin Clements <austin@google.com>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agotestenv: abstract run-with-timeout into testenv
Austin Clements [Thu, 9 Dec 2021 17:25:04 +0000 (12:25 -0500)]
testenv: abstract run-with-timeout into testenv

This lifts the logic to run a subcommand with a timeout in a test from
the runtime's runTestProg into testenv. The implementation is
unchanged in this CL. We'll improve it in a future CL.

Currently, tests that run subcommands usually just timeout with no
useful output if the subcommand runs for too long. This is a step
toward improving this.

For #37405.

Change-Id: I2298770db516e216379c4c438e05d23cbbdda51d
Reviewed-on: https://go-review.googlesource.com/c/go/+/370701
Trust: Austin Clements <austin@google.com>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
3 years agonet/netip: make AddrPort.MarshalText format 4-in-6 IPs consistently
Brad Fitzpatrick [Sun, 12 Dec 2021 03:35:08 +0000 (19:35 -0800)]
net/netip: make AddrPort.MarshalText format 4-in-6 IPs consistently

Thanks again to @capnspacehook.

Fixes #50110

Change-Id: I1973bdea68eac9842b45f9524f62152e4f5342cf
Reviewed-on: https://go-review.googlesource.com/c/go/+/371114
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Matt Layher <mdlayher@gmail.com>
Trust: Matt Layher <mdlayher@gmail.com>
Trust: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agonet/netip: fix formatting of IPv4-in-6 address with zone
Brad Fitzpatrick [Sun, 12 Dec 2021 00:17:46 +0000 (16:17 -0800)]
net/netip: fix formatting of IPv4-in-6 address with zone

Weird, but don't drop the zone when stringifying.

Fixes #50111

Change-Id: I5fbccdfedcdc77a77ee6bafc8d82b8ec8ec7220c
Reviewed-on: https://go-review.googlesource.com/c/go/+/371094
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matt Layher <mdlayher@gmail.com>
Trust: Matt Layher <mdlayher@gmail.com>
Trust: Ian Lance Taylor <iant@golang.org>

3 years agodoc: document cmd/vet changes for 1.18 release
Tim King [Thu, 9 Dec 2021 19:06:25 +0000 (11:06 -0800)]
doc: document cmd/vet changes for 1.18 release

cmd/vet has several precision improvements for the checkers copylock, printf, sortslice, testinggoroutine, and tests. Adds a high level mention in the release notes and an example of string constant concatenation.

Updates #47694

Change-Id: I7a342a57ca3fd9e2f3e8ec99f7b647269798317f
Reviewed-on: https://go-review.googlesource.com/c/go/+/370734
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
Trust: Tim King <taking@google.com>
Run-TryBot: Tim King <taking@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agonet: ignore EADDRINUSE errors when dialing to IPv4 from IPv6 on FreeBSD
Bryan C. Mills [Fri, 3 Dec 2021 19:02:58 +0000 (14:02 -0500)]
net: ignore EADDRINUSE errors when dialing to IPv4 from IPv6 on FreeBSD

The failure mode in #34264 appears to match
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=210726.

That bug was supposed to have been fixed in FreeBSD 12, but we're
still observing failures specifically for the 6-to-4 case on FreeBSD
12.2. It is not clear to me whether FreeBSD 13.0 is also affected.

For #34264

Change-Id: Iba7c7fc57676ae628b13c0b8fe43ddf2251c3637
Reviewed-on: https://go-review.googlesource.com/c/go/+/369157
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
Trust: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 years agogo/types: remove TODO that is no longer relevant
Hossein Zolfi [Fri, 10 Dec 2021 09:09:57 +0000 (12:39 +0330)]
go/types: remove TODO that is no longer relevant

Change-Id: Ie897b7b9c0a61c837245642c608129108e28423e
Reviewed-on: https://go-review.googlesource.com/c/go/+/370582
Reviewed-by: Robert Findley <rfindley@google.com>
Trust: Robert Findley <rfindley@google.com>
Run-TryBot: Robert Findley <rfindley@google.com>
Trust: Nooras Saba‎ <saba@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>

3 years agocmd/compile: preserve 'any' type alias in unified IR
Matthew Dempsky [Wed, 8 Dec 2021 19:12:50 +0000 (11:12 -0800)]
cmd/compile: preserve 'any' type alias in unified IR

When exporting the "any" empty interface type for unified IR, write it
out as a reference to the "any" alias, rather than to the underlying
empty interface. This matches how "byte" and "rune" are handled.

Verified to fix the issue demonstrated in CL 369975.

Change-Id: Ic2844b0acc3b17c20b3a40aaf262f62ec653eb5a
Reviewed-on: https://go-review.googlesource.com/c/go/+/370374
Trust: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>