]> Cypherpunks repositories - gostls13.git/log
gostls13.git
2 years agosyscall: use unsafe.Slice instead of unsafeheader package
Tobias Klauser [Wed, 7 Sep 2022 07:51:35 +0000 (09:51 +0200)]
syscall: use unsafe.Slice instead of unsafeheader package

Change-Id: I9de5aafb36d05bdc90bbdba516367eb2b200a7e0
Reviewed-on: https://go-review.googlesource.com/c/go/+/428777
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
2 years agocmd/go/internal/modload: use atomic.Pointer for Requirements.graph
Abirdcfly [Wed, 7 Sep 2022 04:25:08 +0000 (04:25 +0000)]
cmd/go/internal/modload: use atomic.Pointer for Requirements.graph

Change-Id: Ie543e1b1df667cfaf3aafa4be727881461ee8b7d
GitHub-Last-Rev: ed993dbe2445c4797303138b62f6c7e26050dcd4
GitHub-Pull-Request: golang/go#54888
Reviewed-on: https://go-review.googlesource.com/c/go/+/428716
Auto-Submit: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2 years agogo/printer: reduce allocations to improve performance
Daniel Martí [Fri, 19 Aug 2022 11:00:01 +0000 (12:00 +0100)]
go/printer: reduce allocations to improve performance

First, we know that Go source files almost always weigh at least a few
kilobytes, so we can kickstart the output buffer to be a reasonable size
and reduce the initial number of incremental allocations and copies when
appending bytes or strings to output.

Second, in nodeSize we use a nested printer, but we don't actually need
its printed bytes - we only need to know how many bytes it prints.
For that reason, use a throwaway buffer: the part of our output buffer
between length and capacity, as we haven't used it yet.

Third, use a sync.Pool to reuse allocated printers.
The current API doesn't allow reusing printers,
and some programs like gofmt will print many files in sequence.

Those changes combined result in a modest reduction in allocations and
CPU usage. The benchmark uses testdata/parser.go, which has just over
two thousand lines of code, which is pretty standard size-wise.

We also split the Print benchmark to cover both a medium-sized ast.File
as well as a pretty small ast.Decl node. The latter is a somewhat common
scenario in gopls, which has code actions which alter small bits of the
AST and print them back out to rewrite only a few lines in a file.

name          old time/op    new time/op     delta
PrintFile-16    5.43ms ± 1%     4.85ms ± 3%  -10.68%  (p=0.000 n=9+10)
PrintDecl-16    19.1µs ± 0%     18.5µs ± 1%   -3.04%  (p=0.000 n=10+10)

name          old speed      new speed       delta
PrintFile-16  9.56MB/s ± 1%  10.69MB/s ± 3%  +11.81%  (p=0.000 n=8+10)
PrintDecl-16  1.67MB/s ± 0%   1.73MB/s ± 1%   +3.05%  (p=0.000 n=10+10)

name          old alloc/op   new alloc/op    delta
PrintFile-16     332kB ± 0%      107kB ± 2%  -67.87%  (p=0.000 n=10+10)
PrintDecl-16    3.92kB ± 0%     3.28kB ± 0%  -16.38%  (p=0.000 n=10+10)

name          old allocs/op  new allocs/op   delta
PrintFile-16     3.45k ± 0%      2.42k ± 0%  -29.90%  (p=0.000 n=10+10)
PrintDecl-16      56.0 ± 0%       46.0 ± 0%  -17.86%  (p=0.000 n=10+10)

Change-Id: I475a3babca77532b2d51888f49710f74763d81d2
Reviewed-on: https://go-review.googlesource.com/c/go/+/424924
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
2 years agointernal/syscall/windows: use unsafe.Slice instead of unsafeheader package
Tobias Klauser [Wed, 7 Sep 2022 15:23:03 +0000 (17:23 +0200)]
internal/syscall/windows: use unsafe.Slice instead of unsafeheader package

Follow CL 428777.

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

2 years agoall: transfer reflect.{SliceHeader, StringHeader} to unsafeheader.{Slice, String}
hopehook [Fri, 9 Sep 2022 00:48:34 +0000 (08:48 +0800)]
all: transfer reflect.{SliceHeader, StringHeader} to unsafeheader.{Slice, String}

After we deprecated reflect.{SliceHeader, StringHeader}, it is recommended
to use unsafe.{Slice, String} to replace its work. However, the compiler
and linker cannot be migrated for the time being.

As a temporary strategy, using the "internal/unsafeheader" package like
other code is the most suitable choice at present.

For #53003.

Change-Id: I69d0ef72e2d95caabd0706bbb247a719d225c758
Reviewed-on: https://go-review.googlesource.com/c/go/+/429755
Auto-Submit: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: hopehook <hopehook@golangcn.org>

2 years agoreflect: deprecate SliceHeader and StringHeader
hopehook [Fri, 9 Sep 2022 00:43:10 +0000 (08:43 +0800)]
reflect: deprecate SliceHeader and StringHeader

As discussed in CL 401434 there are substantial misuses of these in the
wild, and they are a potential source of unsafety even for code that
does not use them directly.

Since proposal #53003 has already been implemented, now is the right
time to deprecate reflect.{SliceHeader, StringHeader}.

For #53003.

Change-Id: I724cf46d4b22d2ed3cbf2b948e6aac5ee4bf0f6e
Reviewed-on: https://go-review.googlesource.com/c/go/+/428757
Run-TryBot: hopehook <hopehook@golangcn.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Matthew Dempsky <mdempsky@google.com>

2 years agocmd/asm/internal/asm: don't set testOut in testErrors
Ian Lance Taylor [Wed, 7 Sep 2022 00:24:23 +0000 (17:24 -0700)]
cmd/asm/internal/asm: don't set testOut in testErrors

It's set but the output is never used.

Change-Id: I36ecb9c5f087a85289529907ede9f9bfc295d739
Reviewed-on: https://go-review.googlesource.com/c/go/+/428637
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Benny Siegert <bsiegert@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Auto-Submit: Ian Lance Taylor <iant@golang.org>

2 years agostrconv: remove redundant type conversion
cui fliter [Wed, 7 Sep 2022 08:04:36 +0000 (08:04 +0000)]
strconv: remove redundant type conversion

Change-Id: I25c8e8b701d6489f360fea30d09090826276b950
GitHub-Last-Rev: c2c8319dd5fa2a53fe82b10ecbf45eb54b5d6a68
GitHub-Pull-Request: golang/go#54924
Reviewed-on: https://go-review.googlesource.com/c/go/+/428976
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: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
2 years agoos: fix wrong error msg from TestDoubleCloseError
Kir Kolyshkin [Wed, 7 Sep 2022 01:09:11 +0000 (18:09 -0700)]
os: fix wrong error msg from TestDoubleCloseError

When the type assertion fails, the test mistakenly prints the expected
(rather than the actual) type.

When the error string doesn't match, the text mistakenly prints the
original (rather than the converted) error (although there might not be
any difference in the output, the code looks wrong).

Fix both issues.

Change-Id: Ia7dd0632fc677f458fec25d899c46268a12f76e7
Reviewed-on: https://go-review.googlesource.com/c/go/+/428916
Run-TryBot: Ian Lance Taylor <iant@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: Michael Knyszek <mknyszek@google.com>
2 years agoos: use unsafe.{Slice,StringData} instead of unsafeheader package
Tobias Klauser [Wed, 7 Sep 2022 12:07:12 +0000 (14:07 +0200)]
os: use unsafe.{Slice,StringData} instead of unsafeheader package

Change-Id: I213b078effa4b7049c44498d651de5b938e5404b
Reviewed-on: https://go-review.googlesource.com/c/go/+/428779
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: hopehook <hopehook@golangcn.org>
Run-TryBot: hopehook <hopehook@golangcn.org>
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>

2 years agotime: optimize FixedZone by caching unnamed zones by the hour
Joe Tsai [Tue, 23 Aug 2022 01:19:24 +0000 (18:19 -0700)]
time: optimize FixedZone by caching unnamed zones by the hour

FixedZone is transitively called by Time.UnmarshalJSON or Time.UnmarshalText
for any RFC 3339 timestamp that is not in UTC.
This function is relatively slow since it allocates 3 times.

Given that RFC 3339 never has a zone name and most offsets are by the hour,
we can cache unnamed zones on hour offsets.
Caching a Location should be safe since it has no exported fields or methods
that can mutate the Location. It is functionally immutable.

The only way to observe that the Location was cached is either
by pointer comparison or by shallow copying the struct value.
Neither operation seems sensible to do with a *time.Location.

Performance:

name           old time/op  new time/op  delta
UnmarshalText  268ns ± 2%   182ns ± 1%  -32.01%  (p=0.000 n=10+10)

Change-Id: Iab5432f34bdbb485512bb8b5464e076c03fd106f
Reviewed-on: https://go-review.googlesource.com/c/go/+/425116
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Joseph Tsai <joetsai@digital-static.net>
Auto-Submit: Joseph Tsai <joetsai@digital-static.net>
Reviewed-by: Ian Lance Taylor <iant@google.com>
2 years agoall: use unsafe.{Slice, SliceData, String, StringData} to simplify code
hopehook [Wed, 7 Sep 2022 14:34:48 +0000 (22:34 +0800)]
all: use unsafe.{Slice, SliceData, String, StringData} to simplify code

Because most of these APIs are recently supported, we can only do some
advancement work as much as possible under the premise of compatibility.

For #54854.

Change-Id: Id15d11288bf23902570d54eaf2704a5264210b2e
Reviewed-on: https://go-review.googlesource.com/c/go/+/429115
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: hopehook <hopehook@golangcn.org>
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: Michael Knyszek <mknyszek@google.com>
2 years agospec: describe slice-to-array conversions
Robert Griesemer [Wed, 7 Sep 2022 21:32:22 +0000 (14:32 -0700)]
spec: describe slice-to-array conversions

For #46505.

Change-Id: I1a30fd895496befd16626afb48717ac837ed5778
Reviewed-on: https://go-review.googlesource.com/c/go/+/429315
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Robert Griesemer <gri@google.com>
2 years agoruntime: remove unused scanSize parameter to gcmarknewobject
Michael Anthony Knyszek [Wed, 7 Sep 2022 20:33:06 +0000 (20:33 +0000)]
runtime: remove unused scanSize parameter to gcmarknewobject

This was left over from the old pacer, and never removed when the old
pacer was removed in Go 1.19.

Change-Id: I79e5f0420c6100c66bd06129a68f5bbab7c1ea8f
Reviewed-on: https://go-review.googlesource.com/c/go/+/429256
Reviewed-by: Keith Randall <khr@google.com>
Run-TryBot: Michael Knyszek <mknyszek@google.com>
Auto-Submit: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
2 years agoruntime: use searchIdx in scavengeOne
Michael Anthony Knyszek [Wed, 7 Sep 2022 20:31:00 +0000 (20:31 +0000)]
runtime: use searchIdx in scavengeOne

This is an optimization that prevents N^2 behavior within a chunk, but
was accidentally skipped. There should be no functional change as a
result of this CL.

Fixes #54892.

Change-Id: I861967a2268699fdc3464bd41bc56618b5628e6b
Reviewed-on: https://go-review.googlesource.com/c/go/+/429255
Auto-Submit: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Michael Knyszek <mknyszek@google.com>

2 years agoruntime: make mheap.pagesInUse an atomic.Uintptr
Michael Anthony Knyszek [Wed, 7 Sep 2022 20:14:46 +0000 (20:14 +0000)]
runtime: make mheap.pagesInUse an atomic.Uintptr

This change fixes an old TODO that made it a uint64 because it would
make alignment within mheap more complicated. Now that we don't have to
worry about it since we're using atomic types as much as possible,
switch to using a Uintptr. This likely will improve performance a tiny
bit on 32-bit platforms, but really it's mostly cleanup.

Change-Id: Ie705799a111ccad977fc1f43de8b50cf611be303
Reviewed-on: https://go-review.googlesource.com/c/go/+/429221
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Auto-Submit: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Michael Knyszek <mknyszek@google.com>

2 years agoruntime: remove alignment padding in mheap and pageAlloc
Michael Anthony Knyszek [Wed, 7 Sep 2022 20:11:00 +0000 (20:11 +0000)]
runtime: remove alignment padding in mheap and pageAlloc

All subfields use atomic types to ensure alignment, so there's no more
need for these fields.

Change-Id: Iada4253f352a074073ce603f1f6b07cbd5b7c58a
Reviewed-on: https://go-review.googlesource.com/c/go/+/429220
Run-TryBot: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
2 years agoruntime: remove atomic store requirement on pageAlloc.chunks
Michael Anthony Knyszek [Wed, 7 Sep 2022 20:03:25 +0000 (20:03 +0000)]
runtime: remove atomic store requirement on pageAlloc.chunks

pageAlloc.chunks used to require an atomic store when growing the heap
because the scavenger would look at the list without locking the heap
lock. However, the scavenger doesn't do that anymore, and it looks like
nothing really does at all.

This change updates the comment and makes the store non-atomic.

Change-Id: Ib452d147861060f9f6e74e2d98ee111cf89ce8f5
Reviewed-on: https://go-review.googlesource.com/c/go/+/429219
Auto-Submit: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
2 years agogo/types, types2: implement slice-to-array conversions
Robert Griesemer [Wed, 7 Sep 2022 18:57:26 +0000 (11:57 -0700)]
go/types, types2: implement slice-to-array conversions

For #46505.

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

2 years agodatabase: convert Tx.done to atomic type
cuiweixie [Sat, 27 Aug 2022 03:38:32 +0000 (11:38 +0800)]
database: convert Tx.done to atomic type

Change-Id: I9ec725009376f5865adedca6c159b14140dde097
Reviewed-on: https://go-review.googlesource.com/c/go/+/426086
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
Reviewed-by: Daniel Theophanes <kardianos@gmail.com>
Run-TryBot: Daniel Theophanes <kardianos@gmail.com>

2 years agoruntime: use atomic types in mspanset.go for alignment and type safety
Michael Anthony Knyszek [Wed, 7 Sep 2022 19:58:34 +0000 (19:58 +0000)]
runtime: use atomic types in mspanset.go for alignment and type safety

Right now, span sets use a lot of unsafe.Pointer and naked atomics
operations. This change modifies it to use atomic types everywhere and
wraps any atomic.UnsafePointer in a type to improve type safety.

This change should functionally be a no-op.

Change-Id: I32e6c460faaf6ec41ab1163158f6da7938eef3de
Reviewed-on: https://go-review.googlesource.com/c/go/+/429218
Reviewed-by: Keith Randall <khr@golang.org>
Auto-Submit: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agocmd/compile/internal: merge rules in PPC64.rules
Lynn Boger [Tue, 30 Aug 2022 20:51:57 +0000 (15:51 -0500)]
cmd/compile/internal: merge rules in PPC64.rules

This uses rulegen syntax which allows similar rules
to be combined, saving lines in the rules file.
The Lsh16x32 rule had an incorrect value and that was
fixed.

Change-Id: I637410e39d8554825076aca5ac24083ce05ab186
Reviewed-on: https://go-review.googlesource.com/c/go/+/429035
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Auto-Submit: Keith Randall <khr@golang.org>
Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2 years agoruntime/pprof: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 11:04:44 +0000 (19:04 +0800)]
runtime/pprof: use strings.Builder

Change-Id: I0407d96e2ba1376cc33fe91b52b6a8d7e81f59ae
Reviewed-on: https://go-review.googlesource.com/c/go/+/428277
Auto-Submit: 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@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2 years agocmd/trace: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 12:14:47 +0000 (20:14 +0800)]
cmd/trace: use strings.Builder

Change-Id: I690dc517c08be4cd66439baad8b91f16622ff0d2
Reviewed-on: https://go-review.googlesource.com/c/go/+/428292
Reviewed-by: Michael Pratt <mpratt@google.com>
Run-TryBot: Michael Pratt <mpratt@google.com>
Auto-Submit: Michael Pratt <mpratt@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agocmd/pack: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 12:11:11 +0000 (20:11 +0800)]
cmd/pack: use strings.Builder

Change-Id: I1c9f91e983fb26b3e46c65513a4f14508774e543
Reviewed-on: https://go-review.googlesource.com/c/go/+/428291
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: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agocmd/link: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 12:09:40 +0000 (20:09 +0800)]
cmd/link: use strings.Builder

Change-Id: I5780c3f26302fd5cf21e4a1f0bc1777abb658c82
Reviewed-on: https://go-review.googlesource.com/c/go/+/428290
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>

2 years agocmd/fix: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 12:08:30 +0000 (20:08 +0800)]
cmd/fix: use strings.Builder

Change-Id: I761766e147202970f82ce804dbaf5d491508995c
Reviewed-on: https://go-review.googlesource.com/c/go/+/428289
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2 years agocmd/dist: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 12:05:52 +0000 (20:05 +0800)]
cmd/dist: use strings.Builder

Change-Id: I56bd5d6b1333a96339340e5af5e6470cc7fb11a2
Reviewed-on: https://go-review.googlesource.com/c/go/+/428287
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: Michael Knyszek <mknyszek@google.com>
2 years agocmd/cover: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 12:03:05 +0000 (20:03 +0800)]
cmd/cover: use strings.Builder

Change-Id: Ifb51cb4ed98a93742ce4b221137a0ad73b939b06
Reviewed-on: https://go-review.googlesource.com/c/go/+/428286
Run-TryBot: Ian Lance Taylor <iant@google.com>
Run-TryBot: Than McIntosh <thanm@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agocmd/cgo: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 12:01:19 +0000 (20:01 +0800)]
cmd/cgo: use strings.Builder

Change-Id: I427776e5b2d9c7279932548c86c8faded0eed041
Reviewed-on: https://go-review.googlesource.com/c/go/+/428285
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: xie cui <523516579@qq.com>

2 years agocmd/asm: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 11:55:43 +0000 (19:55 +0800)]
cmd/asm: use strings.Builder

Change-Id: I2ec419f475f9c5d5ef1d4557cb5862a55a699d9c
Reviewed-on: https://go-review.googlesource.com/c/go/+/428284
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: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agocmd/api: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 11:51:27 +0000 (19:51 +0800)]
cmd/api: use strings.Builder

Change-Id: I4e05b892373713365f60258f64b3de94382ad983
Reviewed-on: https://go-review.googlesource.com/c/go/+/428283
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>

2 years agodebug/elf: define additional PPC64 ELFv2 relocations
Paul E. Murphy [Mon, 8 Aug 2022 20:58:04 +0000 (15:58 -0500)]
debug/elf: define additional PPC64 ELFv2 relocations

The PPC64 ELFv2 supplement version 1.5 defines a handful of
new relocation types, similarly some were not added.

Fixes #54345

Change-Id: Id39b29d404298fca4a10ccf1e96b5964dc452c9e
Reviewed-on: https://go-review.googlesource.com/c/go/+/425555
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agoruntime/race: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 11:07:30 +0000 (19:07 +0800)]
runtime/race: use strings.Builder

Change-Id: I644f696d00b5bce448e0a00835b3162f5203f346
Reviewed-on: https://go-review.googlesource.com/c/go/+/428278
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2 years agotext/template: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 11:19:27 +0000 (19:19 +0800)]
text/template: use strings.Builder

Change-Id: I559986b5408d3967c58c9abc6e8f4b04b25496a6
Reviewed-on: https://go-review.googlesource.com/c/go/+/428280
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Run-TryBot: Ian Lance Taylor <iant@google.com>

2 years agointernal: convert calls to atomic type
cui fliter [Sun, 4 Sep 2022 14:55:00 +0000 (14:55 +0000)]
internal: convert calls to atomic type

For #53821

Change-Id: Iee8ccea714726bbb6a4b384887bb107c29b823a9
GitHub-Last-Rev: 119aad36245800115ea85b9748e61d7c75f20344
GitHub-Pull-Request: golang/go#54862
Reviewed-on: https://go-review.googlesource.com/c/go/+/428335
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Bryan Mills <bcmills@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Keith Randall <khr@google.com>
2 years agocmd/asm: improve argument to obj.Prog assignment on PPC64
Paul E. Murphy [Thu, 1 Sep 2022 14:23:49 +0000 (09:23 -0500)]
cmd/asm: improve argument to obj.Prog assignment on PPC64

These can be simplified with the knowledge of how arguments are
assigned to obj.Prog objects on PPC64. If the argument is not
a register type, the Reg argument (a2 in optab) of obj.Prog is
not used, and those arguments are placed into RestArgs (a3, a4, a5
in optab).

This relaxes the special case handling enforced by IsPPC64RLD and
IsPPC64ISEL. Instead, arguments are assigned as noted above, and
incorrect usage of such opcodes is checked by optab rules, not by
the assembler front-end.

Likewise, add support for handling 6 argument opcodes, these do
not exist today, but will be added with ISA 3.1 (Power10).

Finally, to maintain backwards compatibility, some 4-arg opcodes
whose middle arguments are a register and immediate, could swap
these arguments and generate identical machine code. This likely
wasn't intended, but is possible. These are explicitly fixed up
in the backend, and the asm tests are extended to check these.

Change-Id: I5f8190212427dfe8e6f062185bfefb5fa4fd0e75
Reviewed-on: https://go-review.googlesource.com/c/go/+/427516
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Paul Murphy <murp@ibm.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com>
2 years agocmd/asm,cmd/internal/obj/ppc64: recognize ppc64 ISA 3.1 MMA registers
Paul E. Murphy [Tue, 10 Aug 2021 14:59:00 +0000 (09:59 -0500)]
cmd/asm,cmd/internal/obj/ppc64: recognize ppc64 ISA 3.1 MMA registers

Allow the assembler frontend to match MMA register arguments added by
ISA 3.1. The prefix "A" (for accumulator) is chosen to identify them.

Updates #44549

Change-Id: I363e7d1103aee19d7966829d2079c3d876621efc
Reviewed-on: https://go-review.googlesource.com/c/go/+/419534
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Paul Murphy <murp@ibm.com>
Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2 years agocmd/compile: Add shiftIsBounded check for logic shifts of arm64
ruinan [Fri, 1 Jul 2022 06:25:12 +0000 (06:25 +0000)]
cmd/compile: Add shiftIsBounded check for logic shifts of arm64

This CL adds shiftIsBounded checks for the Lsh* and Rsh* rules in arm64.
There is no need to check the shift value again with CMP + CSEL when the
shift value is valid.

Change-Id: I54620de64f02a1b5a11089add237248ae2de01b4
Reviewed-on: https://go-review.googlesource.com/c/go/+/417714
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
2 years agoos/exec: skip TestFindExecutableVsNoexec if mount failed
Kir Kolyshkin [Wed, 7 Sep 2022 17:30:46 +0000 (10:30 -0700)]
os/exec: skip TestFindExecutableVsNoexec if mount failed

Apparently, some testing environments do not allow root to mount tmpfs
(due to e.g. AppArmor profile disallowing mount(2) syscall).

Always skip the test if the mount has failed.

Fixes the test issue introduced by CL 414824.

Change-Id: Ic565d2e6f277f2926d85a351be7df2498ffba656
Reviewed-on: https://go-review.googlesource.com/c/go/+/429175
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Bryan Mills <bcmills@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2 years agocmd/compile/internal/noder: fix type switch case vars package
Matthew Dempsky [Wed, 7 Sep 2022 02:30:30 +0000 (19:30 -0700)]
cmd/compile/internal/noder: fix type switch case vars package

When naming case variables, the unified frontend was using
typecheck.Lookup, which uses the current package, rather than
localIdent, which uses the package the variable was originally
declared in. When inlining across package boundaries, this could cause
the case variables to be associated with the wrong package.

In practice, I don't believe this has any negative consequences, but
it's inconsistent and triggered an ICE in typecheck.ClosureType, which
expected all captured variables to be declared in the same package.

Easy fix is to ensure case variables are declared in the correct
package by using localIdent.

Fixes #54912.

Change-Id: I7a429c708ad95723f46a67872cb0cf0c53a6a0d6
Reviewed-on: https://go-review.googlesource.com/c/go/+/428918
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Benny Siegert <bsiegert@gmail.com>
2 years agotest: add failing test case for inlined type switches
Matthew Dempsky [Wed, 7 Sep 2022 02:28:11 +0000 (19:28 -0700)]
test: add failing test case for inlined type switches

The unified frontend ICEs when inlining a function that contains a
function literal, which captures both a type switch case variable and
another variable.

Updates #54912.

Change-Id: I0e16d371ed5df48a70823beb0bf12110a5a17266
Reviewed-on: https://go-review.googlesource.com/c/go/+/428917
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2 years agotest: fix typo in escape_unsafe.go
Matthew Dempsky [Wed, 7 Sep 2022 09:04:13 +0000 (02:04 -0700)]
test: fix typo in escape_unsafe.go

The toStringData test was meant to test reflect.StringHeader, not
reflect.SliceHeader. It's not supported to convert *string to
*reflect.SliceHeader anyway.

Change-Id: Iaa4912eafd241886c6337bd7607cdf2412a15ead
Reviewed-on: https://go-review.googlesource.com/c/go/+/428995
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2 years agoreflect: fix stale Value.kind documentation
Joe Tsai [Wed, 24 Aug 2022 02:27:49 +0000 (19:27 -0700)]
reflect: fix stale Value.kind documentation

The lowests fives bits are the kind, and the next five bits are attributes,
not the other way around.

Change-Id: I5e1d13b195b766e99f66bb1227cc7f84e85dc49d
Reviewed-on: https://go-review.googlesource.com/c/go/+/425185
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: Keith Randall <khr@golang.org>
Auto-Submit: Keith Randall <khr@golang.org>

2 years agodebug/gosym: rename nameoff to nameOff to match runtime
Michael Pratt [Tue, 6 Sep 2022 22:02:13 +0000 (18:02 -0400)]
debug/gosym: rename nameoff to nameOff to match runtime

Change-Id: Id33526e56bb25bc06746355f95045c5ef3c795c1
Reviewed-on: https://go-review.googlesource.com/c/go/+/428660
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
Auto-Submit: Michael Pratt <mpratt@google.com>

2 years agocmd/link/internal/ld: update _func names to match runtime
Michael Pratt [Tue, 6 Sep 2022 22:00:35 +0000 (18:00 -0400)]
cmd/link/internal/ld: update _func names to match runtime

Change-Id: I4a47f676c0e533f7612fc3eb1b5dd8039f72782f
Reviewed-on: https://go-review.googlesource.com/c/go/+/428659
Reviewed-by: Cherry Mui <cherryyz@google.com>
Auto-Submit: Michael Pratt <mpratt@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>

2 years ago.github: update issue label for pkgsite-removal
Sean Liao [Sun, 5 Jun 2022 17:28:51 +0000 (18:28 +0100)]
.github: update issue label for pkgsite-removal

Change-Id: Ie90013077068b8e61bd651f2e686b06b6dad9fc4
Reviewed-on: https://go-review.googlesource.com/c/go/+/410454
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Auto-Submit: Jamal Carvalho <jamal@golang.org>
Reviewed-by: Jamal Carvalho <jamal@golang.org>
Run-TryBot: Jamal Carvalho <jamal@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agoruntime: rename _func.entryoff to entryOff
Michael Pratt [Tue, 6 Sep 2022 22:03:30 +0000 (18:03 -0400)]
runtime: rename _func.entryoff to entryOff

To match _func.nameOff.

Change-Id: I75e71cadaa0f7ca8844d1b49950673797b227074
Reviewed-on: https://go-review.googlesource.com/c/go/+/428658
Run-TryBot: Michael Pratt <mpratt@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Michael Pratt <mpratt@google.com>

2 years agocmd/vet: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 12:16:04 +0000 (20:16 +0800)]
cmd/vet: use strings.Builder

Change-Id: I583e167dac033037e82e55a9ae6c6f0c47a34c7f
Reviewed-on: https://go-review.googlesource.com/c/go/+/428293
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Tim King <taking@google.com>
Run-TryBot: Tim King <taking@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
2 years agoruntime: rename _func.nameoff and friends to nameOff
Michael Pratt [Tue, 6 Sep 2022 21:57:07 +0000 (17:57 -0400)]
runtime: rename _func.nameoff and friends to nameOff

Switch to the more Go-style name to match inlinedCall.nameOff.

Change-Id: I2115b27af8309e1ead7d61ecc65fe4fc966030f7
Reviewed-on: https://go-review.googlesource.com/c/go/+/428657
Run-TryBot: Michael Pratt <mpratt@google.com>
Auto-Submit: Michael Pratt <mpratt@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
2 years agoruntime: rename inlinedCall.func_ to inlinedCall.nameOff
Michael Pratt [Fri, 2 Sep 2022 20:59:07 +0000 (16:59 -0400)]
runtime: rename inlinedCall.func_ to inlinedCall.nameOff

The meaning of this field is unchanged, this CL simply gives it a more
descriptive name, as func_ makes it sound like a reference to the _func.

Change-Id: I70e54f34bede7636ce4d7b9dd0f7557308f02143
Reviewed-on: https://go-review.googlesource.com/c/go/+/427961
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Michael Pratt <mpratt@google.com>
Reviewed-by: Austin Clements <austin@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agodatabase/sql: simplify retry logic when the connection is bad
Jinzhu [Mon, 5 Sep 2022 09:02:11 +0000 (09:02 +0000)]
database/sql: simplify retry logic when the connection is bad

Simplify retry logic when got bad connection

Change-Id: I92494c6c020576ec01bc4868334ee920ded7aa57
GitHub-Last-Rev: 7499b0c9419a31c9adce6d5096a1924aa3612f1d
GitHub-Pull-Request: golang/go#54043
Reviewed-on: https://go-review.googlesource.com/c/go/+/419182
Reviewed-by: Daniel Theophanes <kardianos@gmail.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Benny Siegert <bsiegert@gmail.com>
Run-TryBot: hopehook <hopehook@golangcn.org>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agoos: fix wrong error msg from TestReadClosed
Kir Kolyshkin [Wed, 7 Sep 2022 00:48:26 +0000 (17:48 -0700)]
os: fix wrong error msg from TestReadClosed

If test would fail, the error message will have wrong error and its
type, because e is used after the failed type assertion.

To fix, use the original err.

While at it,
 - combine the checks for error type and value into one statement;
 - use the standard "got ..., want ..." format.

Fixes: 212d2f82e050 ("os: add ErrClosed, return for use of closed File")
Change-Id: I862a96607b461ab89cce6bed2443b28aa2c16468
Reviewed-on: https://go-review.googlesource.com/c/go/+/428915
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: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>

2 years agotest: add regression test for issue 54911
Cuong Manh Le [Wed, 7 Sep 2022 03:20:57 +0000 (10:20 +0700)]
test: add regression test for issue 54911

It was fixed by CL 422196, and have been already worked in unified IR.

Fixes #54911

Change-Id: Ie69044a64b296f6961e667e7661d8c4d1a24d84e
Reviewed-on: https://go-review.googlesource.com/c/go/+/428758
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2 years agogo/parser: use strings.Builder
cui fliter [Wed, 7 Sep 2022 04:06:46 +0000 (04:06 +0000)]
go/parser: use strings.Builder

Change-Id: Ic8078543eb80470505a3cc2da8ea9fb8fb1369aa
GitHub-Last-Rev: 7b358c685aec10afcdb98eb7de703e8e46ff0ecf
GitHub-Pull-Request: golang/go#54919
Reviewed-on: https://go-review.googlesource.com/c/go/+/428922
Reviewed-by: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
Run-TryBot: Robert Griesemer <gri@google.com>
Auto-Submit: Robert Griesemer <gri@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agoreflect: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 10:48:51 +0000 (18:48 +0800)]
reflect: use strings.Builder

Change-Id: Ie100a2a6f272b84fa2da6ac7b64452985242d788
Reviewed-on: https://go-review.googlesource.com/c/go/+/428275
Reviewed-by: Ian Lance Taylor <iant@google.com>
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: Michael Knyszek <mknyszek@google.com>
2 years agonet/textproto: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 10:43:28 +0000 (18:43 +0800)]
net/textproto: use strings.Builder

Change-Id: I2ed993a804dd830b9ff445c467eb224b7aaa3401
Reviewed-on: https://go-review.googlesource.com/c/go/+/428273
Reviewed-by: Michael Knyszek <mknyszek@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>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agoRevert "sync: convert Once.done to atomic type"
Ian Lance Taylor [Wed, 7 Sep 2022 01:14:31 +0000 (01:14 +0000)]
Revert "sync: convert Once.done to atomic type"

This reverts commit CL 427140.

Reason for revert: Comments say that done should be the first field.

Change-Id: Id131da064146b44e1182289546aeb877867e63cc
Reviewed-on: https://go-review.googlesource.com/c/go/+/428638
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: 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>

2 years agotesting: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 11:18:50 +0000 (19:18 +0800)]
testing: use strings.Builder

Change-Id: Ied8a3019f1e21c0e74c798d2b1b279a606a38554
Reviewed-on: https://go-review.googlesource.com/c/go/+/428279
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2 years agoruntime: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 10:53:24 +0000 (18:53 +0800)]
runtime: use strings.Builder

Change-Id: I9274d36ca983fdf59088b71a97b139ea262370dd
Reviewed-on: https://go-review.googlesource.com/c/go/+/428276
Run-TryBot: Michael Pratt <mpratt@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
2 years agoos: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 10:45:00 +0000 (18:45 +0800)]
os: use strings.Builder

Change-Id: I610509aa35c345ff7fbb1fc94bf177ffbe934731
Reviewed-on: https://go-review.googlesource.com/c/go/+/428274
Reviewed-by: Ian Lance Taylor <iant@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>
Reviewed-by: Benny Siegert <bsiegert@gmail.com>
2 years agonet/smtp: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 10:41:58 +0000 (18:41 +0800)]
net/smtp: use strings.Builder

Change-Id: I0d1195fcb4eceb12c4be3190b05a82079dc496a3
Reviewed-on: https://go-review.googlesource.com/c/go/+/428272
Reviewed-by: Benny Siegert <bsiegert@gmail.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agounicode/utf8: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 11:20:31 +0000 (19:20 +0800)]
unicode/utf8: use strings.Builder

Change-Id: I88b55f61eccb5764cac2a9397fd99a62f8735a9a
Reviewed-on: https://go-review.googlesource.com/c/go/+/428281
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Benny Siegert <bsiegert@gmail.com>
2 years agocmd/compile: remove redundant SEQZ/SNEZ on riscv64
Joel Sing [Sat, 27 Aug 2022 20:11:43 +0000 (06:11 +1000)]
cmd/compile: remove redundant SEQZ/SNEZ on riscv64

In particular, (SEQZ (SNEZ x)) can arise from (Not (IsNonNil x)).

Change-Id: Ie249cd1934d71087e0f774cf8f6c937ceeed7ad5
Reviewed-on: https://go-review.googlesource.com/c/go/+/428215
Run-TryBot: Joel Sing <joel@sing.id.au>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Wayne Zuo <wdvxdr@golangcn.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2 years agocmd/compile: avoid zero extension after properly typed atomic operation on riscv64
Joel Sing [Mon, 29 Aug 2022 20:32:09 +0000 (06:32 +1000)]
cmd/compile: avoid zero extension after properly typed atomic operation on riscv64

LoweredAtomicLoad8 is implemented using MOVBU, hence it is already zero
extended. LoweredAtomicCas32 and LoweredAtomicCas64 return a properly
typed boolean.

Change-Id: Ie0acbaa19403d59c7e5f76d060cc13ee51eb7834
Reviewed-on: https://go-review.googlesource.com/c/go/+/428214
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Joel Sing <joel@sing.id.au>

2 years agocmd/compile: improve Slicemask on riscv64
Joel Sing [Mon, 29 Aug 2022 10:36:51 +0000 (20:36 +1000)]
cmd/compile: improve Slicemask on riscv64

Implement Slicemask the same way every other architecture does - negate
then arithmetic right shift. This sets or clears the sign bit, before
extending it to the entire register.

Removes around 2,500 instructions from the Go binary on linux/riscv64.

Change-Id: I4d675b826e7eb23fe2b1e6e46b95dcd49ab49733
Reviewed-on: https://go-review.googlesource.com/c/go/+/426354
Reviewed-by: Meng Zhuo <mzh@golangcn.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Joel Sing <joel@sing.id.au>
Reviewed-by: Wayne Zuo <wdvxdr@golangcn.org>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agosyscall: simplify code using unsafe.Slice
cuiweixie [Sat, 3 Sep 2022 10:18:30 +0000 (18:18 +0800)]
syscall: simplify code using unsafe.Slice

Updates #54854

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

2 years agoruntime: simplify code using unsafe.{Slice,String}
cuiweixie [Sat, 3 Sep 2022 06:29:35 +0000 (14:29 +0800)]
runtime: simplify code using unsafe.{Slice,String}

Updates #54854

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

2 years agostrings: simplify code using unsafe.StringData
cuiweixie [Sat, 3 Sep 2022 06:35:41 +0000 (14:35 +0800)]
strings: simplify code using unsafe.StringData

Updates #54854

Change-Id: I93396dc92bd2decba895f2d059e1aeffcd22312c
Reviewed-on: https://go-review.googlesource.com/c/go/+/428158
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
2 years agointernal/fuzz: simplify code using unsafe.{SliceData,Slice}
cuiweixie [Sat, 3 Sep 2022 06:28:35 +0000 (14:28 +0800)]
internal/fuzz: simplify code using unsafe.{SliceData,Slice}

Updates #54854

Change-Id: If70b11c0fc920b7214fcff249da9e3c4ac1de991
Reviewed-on: https://go-review.googlesource.com/c/go/+/428156
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>

2 years agobytes: simplify code using unsafe.SliceData
cuiweixie [Sat, 3 Sep 2022 06:20:20 +0000 (14:20 +0800)]
bytes: simplify code using unsafe.SliceData

Updates #54854

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

2 years agocmd/compile/internal/ssagen: use strings.Builder
cuiweixie [Mon, 5 Sep 2022 07:05:27 +0000 (15:05 +0800)]
cmd/compile/internal/ssagen: use strings.Builder

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

2 years agocmd/compile/internal/ssa: use strings.Builder
cuiweixie [Mon, 5 Sep 2022 07:03:02 +0000 (15:03 +0800)]
cmd/compile/internal/ssa: use strings.Builder

Change-Id: Ieb15b54d36f18d1fbccbafe5451a4758df797718
Reviewed-on: https://go-review.googlesource.com/c/go/+/428359
Run-TryBot: Robert Griesemer <gri@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Robert Griesemer <gri@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>

2 years agocmd/compile/internal/pkginit: use strings.Builder
cuiweixie [Mon, 5 Sep 2022 06:57:40 +0000 (14:57 +0800)]
cmd/compile/internal/pkginit: use strings.Builder

Change-Id: If675277e17b97500100e46ec6fe471260131bafc
Reviewed-on: https://go-review.googlesource.com/c/go/+/428358
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Run-TryBot: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
2 years agocmd/compile/internal/ir: use strings.Builder
cuiweixie [Mon, 5 Sep 2022 06:56:27 +0000 (14:56 +0800)]
cmd/compile/internal/ir: use strings.Builder

Change-Id: I24fb36a0591782c07f26c3289265aa41a643666d
Reviewed-on: https://go-review.googlesource.com/c/go/+/428357
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Robert Griesemer <gri@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>
Run-TryBot: Robert Griesemer <gri@google.com>

2 years agocrypto/x509/internal/macos: simplify code using unsafe.{SliceData,StringData}
cuiweixie [Sat, 3 Sep 2022 06:18:13 +0000 (14:18 +0800)]
crypto/x509/internal/macos: simplify code using unsafe.{SliceData,StringData}

Updates #54854

Change-Id: I8a64a1176cbe16489e1fd21c66a7abc7d8b8e9b3
Reviewed-on: https://go-review.googlesource.com/c/go/+/428154
Run-TryBot: Bryan Mills <bcmills@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>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>

2 years agonet: fix a typo in BenchmarkSendFile
Andy Pan [Tue, 6 Sep 2022 17:16:14 +0000 (01:16 +0800)]
net: fix a typo in BenchmarkSendFile

Change-Id: Ic463bd6d52e7d1d50d2dbd2122b4d514e0b4af60
Reviewed-on: https://go-review.googlesource.com/c/go/+/428755
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Auto-Submit: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Andy Pan <panjf2000@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agonet/rpc/jsonrpc: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 10:39:48 +0000 (18:39 +0800)]
net/rpc/jsonrpc: use strings.Builder

Change-Id: I251f734adbaf83aa03e3f4f37add4e116f5af093
Reviewed-on: https://go-review.googlesource.com/c/go/+/428271
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>

2 years agoos/exec: LookPath: use eaccess for exec check on linux
Kir Kolyshkin [Tue, 28 Jun 2022 22:40:29 +0000 (15:40 -0700)]
os/exec: LookPath: use eaccess for exec check on linux

Having an executable bit set for a binary is not enough for it to be
executable -- there might be more checks in the kernel. For example,
binaries on a filesystem mounted with "noexec" flag couldn't be
executed. There might be other scenarios involving ACLs, SELinux,
file capabilities, and so on.

As a result, LookPath might either find a non-executable (while going
over $PATH elements), or return a false positive that the argument
provided is an executable.

One possible fix would be to perform the check by using access(2)
syscall with X_OK flag.

Now, since access(2) uses real (rather than effective) uid and gid,
when used by a setuid or setgid binary, it checks permissions of the
(real) user who started the binary, rather than the actual effective
permissions. Therefore, using access with X_OK won't work as expected
for setuid/setgid binaries.

To fix this, modern platforms added ways to check against effective uid
and gid, with the most common being the faccessat(2) call with the
AT_EACCESS flag, as described by POSIX.1-2008 (in Linux, only
faccessat2(2) supports flags such as AT_EACCESS). Let's use it, and fall
back to checking permission bits if faccessat is not available.

Wrap the logic into unix.Eaccess, which is currently only implemented on
Linux. While many other OSes (Free/Net/OpenBSD, AIX, Solaris/Illumos, and
Darwin) do implement faccessat(2) with AT_EACCESS, it is not wired in
syscall package (except for AIX), so these platforms are left out for now.
In the future, eaccess can be implemented for these OSes, too.

Alas, a call to unix.Eaccess is not enough since we have to filter out
directories, so use both stat and Eaccess.

One minor change introduced by this commit is that LookPath and Command
now returns "is a directory" error when the argument contains a slash
and is a directory.  This is similar to what e.g. bash does on Linux:

$ bash -c /etc
bash: line 1: /etc: Is a directory

Add a test case, which, unfortunately, requires root, is specific to
Linux, and needs a relatively new kernel (supporting faccessat2).  Other
platforms either have different semantics for tmpfs with noexec, or have
different ways to set up a binary which has x bit set but nevertheless
could not be executed.

Change-Id: If49b6ef6bf4dd23b2c32bebec8832d83e511a4bb
Reviewed-on: https://go-review.googlesource.com/c/go/+/414824
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: Bryan Mills <bcmills@google.com>
2 years agonet/http: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 10:30:29 +0000 (18:30 +0800)]
net/http: use strings.Builder

Change-Id: I754edcf21e003a3f4037fb2c5d8d06f2cd5f2fa3
Reviewed-on: https://go-review.googlesource.com/c/go/+/428267
Auto-Submit: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Run-TryBot: xie cui <523516579@qq.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Damien Neil <dneil@google.com>
2 years agonet: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 10:17:40 +0000 (18:17 +0800)]
net: use strings.Builder

Change-Id: I3861a73d6b9d1d454c42bec50099b916bf30f1cd
Reviewed-on: https://go-review.googlesource.com/c/go/+/428266
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
Run-TryBot: xie cui <523516579@qq.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Damien Neil <dneil@google.com>
2 years agoall: update vendored golang.org/x/net
Damien Neil [Tue, 6 Sep 2022 16:58:29 +0000 (09:58 -0700)]
all: update vendored golang.org/x/net

Pull in security fix:

    f3363e06e7 http2: handle server errors after sending GOAWAY

Fixes CVE-2022-27664
Fixes golang/go#54658

Change-Id: Ie1f58a8d769c7fd75c67d202c611a3abfd7dbb35
Reviewed-on: https://go-review.googlesource.com/c/go/+/428717
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Damien Neil <dneil@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Damien Neil <dneil@google.com>

2 years agocmd/link,runtime: remove unused fields from inlinedCall
Michael Pratt [Fri, 2 Sep 2022 20:50:41 +0000 (16:50 -0400)]
cmd/link,runtime: remove unused fields from inlinedCall

The parent, file, and line fields are no longer used now that we have
parentPc to find the parent and NOPs in the parent to attach file/line
pcdata to.

Removing these fields reduces the binary size of cmd/go on linux-amd64
by 1.1%.

Fixes #54849.

Change-Id: If58f08622736b2b322288608776f8bedf0c3fd17
Reviewed-on: https://go-review.googlesource.com/c/go/+/427960
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Michael Pratt <mpratt@google.com>
Auto-Submit: Michael Pratt <mpratt@google.com>
Reviewed-by: Austin Clements <austin@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agocmd/compile: do not devirtualize defer/go calls
Cuong Manh Le [Tue, 6 Sep 2022 05:54:54 +0000 (12:54 +0700)]
cmd/compile: do not devirtualize defer/go calls

For defer/go calls, the function/method value are evaluated immediately.
So after devirtualizing, it may trigger a panic when implicitly deref
a nil pointer receiver, causing the program behaves unexpectedly.

It's safer to not devirtualizing defer/go calls at all.

Fixes #52072

Change-Id: I562c2860e3e577b36387dc0a12ae5077bc0766bf
Reviewed-on: https://go-review.googlesource.com/c/go/+/428495
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>

2 years agocmd/compile: gofmt comments
zhangyunhao [Tue, 6 Sep 2022 10:39:52 +0000 (18:39 +0800)]
cmd/compile: gofmt comments

Change-Id: I79634efbd8d0189afdfe22e147d63c889e8047ba
Reviewed-on: https://go-review.googlesource.com/c/go/+/427964
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Wayne Zuo <wdvxdr@golangcn.org>
Reviewed-by: Wayne Zuo <wdvxdr@golangcn.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2 years agonet/http: clarify proxy selection from environment
Sean Liao [Tue, 6 Sep 2022 17:22:44 +0000 (18:22 +0100)]
net/http: clarify proxy selection from environment

For #40909
Fixes #54890

Change-Id: I00218bc1606eedb6194a3a7b81fd4d3f75325280
Reviewed-on: https://go-review.googlesource.com/c/go/+/428775
Reviewed-by: Damien Neil <dneil@google.com>
Run-TryBot: Damien Neil <dneil@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Damien Neil <dneil@google.com>

2 years agocmd/compile/internal/syntax: use strings.Builder
cuiweixie [Mon, 5 Sep 2022 07:06:38 +0000 (15:06 +0800)]
cmd/compile/internal/syntax: use strings.Builder

Change-Id: Ic18d12b3d1c2f4819f2656371537df797e9970ef
Reviewed-on: https://go-review.googlesource.com/c/go/+/428361
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Robert Griesemer <gri@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2 years agonet/http: using strings.Builder
cuiweixie [Fri, 2 Sep 2022 23:14:29 +0000 (07:14 +0800)]
net/http: using strings.Builder

Change-Id: I5d4c89a8d87a8697d038bf91b17d7ffc847a49c7
Reviewed-on: https://go-review.googlesource.com/c/go/+/428137
Reviewed-by: Robert Griesemer <gri@google.com>
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: xie cui <523516579@qq.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agogo/doc: using strings.Builder
cuiweixie [Fri, 2 Sep 2022 23:09:54 +0000 (07:09 +0800)]
go/doc: using strings.Builder

Change-Id: I9658c37a548a386c57d83dc13d5e9925a9c13211
Reviewed-on: https://go-review.googlesource.com/c/go/+/428140
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
Run-TryBot: xie cui <523516579@qq.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
2 years agogo/ast: using strings.Builder
cuiweixie [Fri, 2 Sep 2022 23:06:19 +0000 (07:06 +0800)]
go/ast: using strings.Builder

Change-Id: I05ebaf4e11b5b6ca7d9bbb0b2241def7773b11cc
Reviewed-on: https://go-review.googlesource.com/c/go/+/428138
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
Run-TryBot: xie cui <523516579@qq.com>

2 years agoall: make sure *Pointer[T]'s methods are inlined as intended
Cuong Manh Le [Mon, 5 Sep 2022 12:07:02 +0000 (19:07 +0700)]
all: make sure *Pointer[T]'s methods are inlined as intended

Updates #50860

Change-Id: I65bced707e50364b16edf4b087c541cf19bb1778
Reviewed-on: https://go-review.googlesource.com/c/go/+/428362
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>

2 years agointernal/poll, internal/syscall/unix, net: enable writev on solaris
Tobias Klauser [Mon, 5 Sep 2022 13:38:18 +0000 (15:38 +0200)]
internal/poll, internal/syscall/unix, net: enable writev on solaris

The writev syscall is available since at least Solaris 11.3.

Reuse the existing illumos writev wrapper on solaris to implement
internal/poll.writev for net.(*netFD).writeBuffers.

Change-Id: I23adc3bb4637740c72bfb61bfa9697b432dfe3db
Reviewed-on: https://go-review.googlesource.com/c/go/+/427714
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
2 years agomime: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 10:10:07 +0000 (18:10 +0800)]
mime: use strings.Builder

Change-Id: I2756fab046154a2df49435ba1978a32176de830a
Reviewed-on: https://go-review.googlesource.com/c/go/+/428265
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: xie cui <523516579@qq.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@google.com>
2 years agonet/http/cgi: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 10:32:05 +0000 (18:32 +0800)]
net/http/cgi: use strings.Builder

Change-Id: Ie5a8ae104970237e6e33e75cae807c436bcd08e9
Reviewed-on: https://go-review.googlesource.com/c/go/+/428268
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agonet/http/httptrace: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 10:36:22 +0000 (18:36 +0800)]
net/http/httptrace: use strings.Builder

Change-Id: I407d11b43349cd78b709deb7b0e774bd93922caa
Reviewed-on: https://go-review.googlesource.com/c/go/+/428269
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agonet/http/httputil: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 10:37:30 +0000 (18:37 +0800)]
net/http/httputil: use strings.Builder

Change-Id: Ifb51413894791154489bd1d4f529088958212c62
Reviewed-on: https://go-review.googlesource.com/c/go/+/428270
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: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
2 years agocmd/doc: use strings.Builder
cuiweixie [Sun, 4 Sep 2022 12:07:22 +0000 (20:07 +0800)]
cmd/doc: use strings.Builder

Change-Id: Ib33d1f1c2e9aed0cb9e00bd699c4ae4a2df5dfca
Reviewed-on: https://go-review.googlesource.com/c/go/+/428288
Run-TryBot: Rob Pike <r@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Rob Pike <r@golang.org>
Auto-Submit: Rob Pike <r@golang.org>
Reviewed-by: Damien Neil <dneil@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agoruntime: remove unused parameter on runOpenDeferFrame
Daniel Martí [Wed, 31 Aug 2022 10:27:52 +0000 (11:27 +0100)]
runtime: remove unused parameter on runOpenDeferFrame

Found via unparam.

Change-Id: I21126405beaf0be84e14ac165ecb68aeb0c9c823
Reviewed-on: https://go-review.googlesource.com/c/go/+/427014
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: hopehook <hopehook@golangcn.org>
2 years agonet/http: make triv.go example less insecure
Damien Neil [Sun, 4 Sep 2022 02:51:48 +0000 (19:51 -0700)]
net/http: make triv.go example less insecure

The triv.go example serves the entire contents of $HOME by default.
That seems bad, let's not do that.

Also change it to listen on localhost only.

Change-Id: I8f1b7bd6b7d737852273e2ba82deabc4a2d11f6b
Reviewed-on: https://go-review.googlesource.com/c/go/+/428237
Run-TryBot: Damien Neil <dneil@google.com>
Reviewed-by: Tatiana Bradley <tatiana@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>

2 years agonet: mark withTCPConnPair as test helper
Tobias Klauser [Mon, 5 Sep 2022 13:38:57 +0000 (15:38 +0200)]
net: mark withTCPConnPair as test helper

Noticed while analyzing test failures on go.dev/cl/427714 that were
pointing to withTCPConnPair instead of the failing tests.

Change-Id: Ie2366962c2253e0c2a6546d3b7f43a96390bc7bb
Reviewed-on: https://go-review.googlesource.com/c/go/+/428456
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>