1
0
mirror of https://github.com/golang/go synced 2024-11-17 03:04:44 -07:00
Commit Graph

40921 Commits

Author SHA1 Message Date
Damien Neil
0e54d28ff7 all: remove os.ErrTimeout
It is unclear whether the current definition of os.IsTimeout is
desirable or not. Drop ErrTimeout for now so we can consider adding it
(or some other error) in a future release with a corrected definition.

Fixes #33411

Change-Id: I8b880da7d22afc343a08339eb5f0efd1075ecafe
Reviewed-on: https://go-review.googlesource.com/c/go/+/188758
Reviewed-by: Russ Cox <rsc@golang.org>
Run-TryBot: Damien Neil <dneil@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-08-02 17:57:18 +00:00
Alberto Donizetti
2d1a1e0a2a doc: fix Block interface parameters order
The Effective Go document references the crypto/cipher Block
interface, but the parameters' names are swapped. This change
alignes them to the crypto definition, to avoid confusion.

Fixes #33432

Change-Id: I8b9aac4dc6af3eec968bbc8f3ee5366b99016fcc
Reviewed-on: https://go-review.googlesource.com/c/go/+/188797
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2019-08-02 17:51:34 +00:00
Baokun Lee
2d6ee6e89a os: enable the close-on-exec flag for openFdAt
There's a race here with fork/exec, enable the close-on-exec flag
for the new file descriptor.

Fixes #33405

Change-Id: If95bae97a52b7026a930bb3427e47bae3b0032ac
Reviewed-on: https://go-review.googlesource.com/c/go/+/188537
Run-TryBot: Baokun Lee <nototon@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2019-08-01 20:37:08 +00:00
Darren McCleary
e7c51cad71 net/http: fix a typo in spelling of MultiPartForm
Change-Id: I33a5313ef10e8c88d9c12507573b385fa0843afe
GitHub-Last-Rev: 844d435158
GitHub-Pull-Request: golang/go#33412
Reviewed-on: https://go-review.googlesource.com/c/go/+/188498
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
2019-08-01 20:35:26 +00:00
Emmanuel T Odeke
d6f6a46c07 doc/go1.13: add more release notes for net/http
Fixes #33396

Change-Id: Id975a23b8d6555a3f19ef283fccbbe122f10acfe
Reviewed-on: https://go-review.googlesource.com/c/go/+/188477
Reviewed-by: Andrew Bonventre <andybons@golang.org>
2019-08-01 20:32:27 +00:00
Damien Neil
ea8b0acdac all: remove os.ErrTemporary
As discussed in
https://github.com/golang/go/issues/32463#issuecomment-506833421
the classification of deadline-based timeouts as "temporary" errors is a
historical accident. I/O timeouts used to be duration-based, so they
really were temporary--retrying a timed-out operation could succeed. Now
that they're deadline-based, timeouts aren't temporary unless you reset
the deadline.

Drop ErrTemporary from Go 1.13, since its definition is wrong. We'll
consider putting it back in Go 1.14 with a clear definition and
deprecate net.OpError.Temporary.

Fixes #32463

Change-Id: I70cda664590d8872541e17409a5780da76920891
Reviewed-on: https://go-review.googlesource.com/c/go/+/188398
Reviewed-by: Jonathan Amsterdam <jba@google.com>
2019-08-01 15:39:45 +00:00
Keith Randall
8a317ebc0f cmd/compile: don't eliminate all registers when restricting to desired ones
We shouldn't mask to desired registers if we haven't masked out all the
forbidden registers yet.  In this path we haven't masked out the nospill
registers yet. If the resulting mask contains only nospill registers, then
allocReg fails.

This can only happen on resultNotInArgs-marked instructions, which exist
only on the ARM64, MIPS, MIPS64, and PPC64 ports.

Maybe there's a better way to handle resultNotInArgs instructions.
But for 1.13, this is a low-risk fix.

Fixes #33355

Change-Id: I1082f78f798d1371bde65c58cc265540480e4fa4
Reviewed-on: https://go-review.googlesource.com/c/go/+/188178
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
2019-08-01 02:15:18 +00:00
Ian Lance Taylor
407010ef0b cmd/go: only pass -fsplit-stack to gccgo if supported
Also add other gccgo options.

This ports CL 45695 and CL 48592 from the gofrontend repo to the gc repo.

CL 45695 (partial entry, other parts out of date and not ported):

    cmd/go: gccgo: consistent results

    Pass the -fdebug-prefix-map and -gno-record-gcc-switches compiler
    options to gccgo to generate consistent results.

CL 48592:

    cmd/go: use gccSupportsFlag for -fsplit-stack

    Don't assume that all (or only) 386/amd64 compilers support
    -fsplit-stack.

Fixes #33108

Change-Id: I61f9e5a67e4fb059f26750e97621d27afa566ec2
Reviewed-on: https://go-review.googlesource.com/c/go/+/187824
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
2019-07-31 23:53:23 +00:00
Eli Bendersky
e81b731592 encoding/json: clarify Marshal behavior for string keys of maps
This is a documentation-only change.

Fixes #28827

Change-Id: Ife9ab997809048784f35872b09905bc209a05eff
Reviewed-on: https://go-review.googlesource.com/c/go/+/188417
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2019-07-31 21:49:08 +00:00
Andrew Bonventre
fe8a866464 doc/go1.12: document change in syscall.Setrlimit behavior
Fixes #30401

Change-Id: I7b5035ffc7333c746d4e31563df26ff4f934dfc6
Reviewed-on: https://go-review.googlesource.com/c/go/+/188237
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Reviewed-by: Keith Randall <khr@golang.org>
2019-07-31 16:43:10 +00:00
Andrew Bonventre
8dddf7556e net/http: return nil from Header.Clone if the receiver is nil
Fixes #33141

Change-Id: I84a8b3496fc9396fd1c09ba9505697c34bdf7105
Reviewed-on: https://go-review.googlesource.com/c/go/+/188022
Run-TryBot: Andrew Bonventre <andybons@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
2019-07-31 16:15:56 +00:00
Robert Griesemer
39d4178735 spec: add an example of a trivially invalid interface
In preparation for the forthcoming spec changes for #6977.
While at it, modernize existing File example that dates
back all the way to commit 18c5b488a3.

Change-Id: Id10e4df0513e3de15bd58867222923eefa9473ea
Reviewed-on: https://go-review.googlesource.com/c/go/+/187978
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2019-07-31 05:45:43 +00:00
David Ndungu
1ad64fafc8 net/http: improve Request.Form and Request.PostForm documentation
Request.PostForm gets populated with form data for PATCH, POST, or PUT
http verbs.

Change-Id: I33065aa78a8470c4e9490aac830aa6f5963c61cb
Reviewed-on: https://go-review.googlesource.com/c/go/+/187821
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
2019-07-30 20:49:54 +00:00
Bryan C. Mills
5f8d8161e6 cmd/go/internal/cache: verify that timestamp is positive
An apparent typo caused us to re-check size instead.

Updates #29667

Change-Id: Icc1fb9cef1ba77b8490c8fbe6c343be06ff48d8d
Reviewed-on: https://go-review.googlesource.com/c/go/+/188020
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
2019-07-30 20:16:45 +00:00
Bryan C. Mills
2fc7574aab cmd/go/internal/cache: avoid ioutil.WriteFile for writing cache entries
ioutil.WriteFile always truncates the destination file to 0 before
writing, which is inappropriate for unsynchronized, idempotent,
fixed-size files such as the cache entry files here.

Instead, truncate the file only after writing it, so that a second
write will never (even temporarily!) remove the contents of a
preceding write.

Fixes #29667

Change-Id: I16a53ce79d8a23d23580511cb6abd062f54b65ef
Reviewed-on: https://go-review.googlesource.com/c/go/+/188157
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
2019-07-30 20:16:40 +00:00
Michael Knyszek
8c3040d768 runtime: call sysHugePage less often
Currently when we coalesce memory we make a sysHugePage call
(MADV_HUGEPAGE) to ensure freed and coalesced huge pages are treated as
such so the scavenger's assumptions about performance are more in line
with reality.

Unfortunately we do it way too often because we do it if there was any
change to the huge page count for the span we're coalescing into, not
taking into account that it could coalesce with its neighbors and not
actually create a new huge page.

This change makes it so that it only calls sysHugePage if the original
huge page counts between the span to be coalesced into and its neighbors
do not add up (i.e. a new huge page was created due to alignment). Calls
to sysHugePage will now happen much less frequently, as intended.

Updates #32828.

Change-Id: Ia175919cb79b730a658250425f97189e27d7fda3
Reviewed-on: https://go-review.googlesource.com/c/go/+/186926
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
2019-07-30 18:53:01 +00:00
Michael Anthony Knyszek
a41ebe6e25 runtime: add physHugePageShift
This change adds physHugePageShift which is defined such that
1 << physHugePageShift == physHugePageSize. The purpose of this variable
is to avoid doing expensive divisions in key functions, such as
(*mspan).hugePages.

This change also does a sweep of any place we might do a division or mod
operation with physHugePageSize and turns it into bit shifts and other
bitwise operations.

Finally, this change adds a check to mallocinit which ensures that
physHugePageSize is always a power of two. osinit might choose to ignore
non-powers-of-two for the value and replace it with zero, but mallocinit
will fail if it's not a power of two (or zero). It also derives
physHugePageShift from physHugePageSize.

This change helps improve the performance of most applications because
of how often (*mspan).hugePages is called.

Updates #32828.

Change-Id: I1a6db113d52d563f59ae8fd4f0e130858859e68f
Reviewed-on: https://go-review.googlesource.com/c/go/+/186598
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
2019-07-30 18:44:52 +00:00
Andrew Todd
fbb819ebc4 strings: clarify usage of Title and ToTitle
This is intended to help clear up confusion around the usage of the
Title and ToTitle functions. It includes a link to define title case
to distinguish it from upper case. It also includes an additional
example for the ToTitle function to showcase the difference in behavior
between it and the Title function.

Fixes #33302

Change-Id: I44e62962fb04d0d22966a39eda3a2d16de7a2291
Reviewed-on: https://go-review.googlesource.com/c/go/+/187825
Reviewed-by: Rob Pike <r@golang.org>
2019-07-30 02:52:57 +00:00
Keith Randall
01d137262a runtime: use uintptr instead of int32 for counting to next heap profile sample
Overflow of the comparison caused very large (>=1<<32) allocations to
sometimes not get sampled at all. Use uintptr so the comparison will
never overflow.

Fixes #33342

Tested on the example in 33342. I don't want to check a test in that
needs that much memory, however.

Change-Id: I51fe77a9117affed8094da93c0bc5f445ac2d3d3
Reviewed-on: https://go-review.googlesource.com/c/go/+/188017
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
2019-07-29 21:07:49 +00:00
Jonathan Amsterdam
7b8234b48f go1.13.html: release note for %w
Also, reorder packages so the list is in alphabetical order.

Fixes #32914.

Change-Id: Ifa504cb7e48df31ba6dc0e5756148430b59fa139
Reviewed-on: https://go-review.googlesource.com/c/go/+/187797
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Reviewed-by: Andrew Bonventre <andybons@golang.org>
2019-07-29 20:29:54 +00:00
Filippo Valsorda
5235501c05 crypto/x509: add Ed25519 to ExampleParsePKIXPublicKey
ParsePKIXPublicKey gained Ed25519 support in CL 175478.

Change-Id: I11ffe0a62743292367b3adb103956e61bad57cc4
Reviewed-on: https://go-review.googlesource.com/c/go/+/183243
Reviewed-by: Katie Hockman <katie@golang.org>
2019-07-29 16:52:01 +00:00
Dominik Honnef
c4ca60313e all: change some function documentation to be more idiomatic
Change-Id: I932de9bb061a8ba3332ef03207983e8b98d6f1e5
Reviewed-on: https://go-review.googlesource.com/c/go/+/187918
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-07-28 18:09:57 +00:00
Daniel Martí
a25c2878c7 doc: use <code> for a few file paths that didn't
Spotted while seeing CL 187818 in master.

Change-Id: Ic3f42558f6833fc35580b2b2a15f2c5aba5713c0
Reviewed-on: https://go-review.googlesource.com/c/go/+/187822
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2019-07-27 23:29:18 +00:00
Giovanni Bajo
80f9d32438 doc: mention that GOPATH/bin should be in PATH
As noticed while mentoring at Gophercon, a common mistake for
beginners is that, after they install git-codereview, it's not
found by git because they haven't put GOPATH/bin in their
environment.

Change-Id: I885cee0f532a4069d1a17ea27365d54965ecca22
Reviewed-on: https://go-review.googlesource.com/c/go/+/187818
Reviewed-by: Katie Hockman <katie@golang.org>
2019-07-27 19:01:49 +00:00
Emmanuel T Odeke
919594830f os: document File's concurrent operation resource limits
Document that *os.File is subject to resource limits
for concurrent operations. We aren't documenting
a specific number of concurrent operations because that
number is OS/system dependent. This limit comes from:
    internal/poll/fd_mutex.go
where we use 20 bits to count locks.

Fixes #32544

Change-Id: I7d305d4aaba5b2dbc6f1ab8c447117fde5e31a66
Reviewed-on: https://go-review.googlesource.com/c/go/+/181841
Reviewed-by: Rob Pike <r@golang.org>
2019-07-23 23:42:43 +00:00
Jordi Martin
68e28998d7 cmd/go: keep "go help" in unknown topic suggestion
Fixed missing concatenation to build the suggested command.

Fixes #33153

Change-Id: I26c02f2966247aa07d1447b8ec1a2203046842dd
GitHub-Last-Rev: 9631abf1d0
GitHub-Pull-Request: golang/go#33245
Reviewed-on: https://go-review.googlesource.com/c/go/+/187217
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-07-23 20:39:43 +00:00
Than McIntosh
e8c7e639ea test: new testcase for gccgo compiler failure
Updates #33219

Change-Id: I1702d4c630bb891fcb8b59e775dd3f1673cd8640
Reviewed-on: https://go-review.googlesource.com/c/go/+/187057
Run-TryBot: Than McIntosh <thanm@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2019-07-23 12:39:03 +00:00
Ian Lance Taylor
707f3e8c61 cmd/go: mention GODEBUG in "go help environment"
Change-Id: Id2c07ccba7c514ec3a4bbd493edbc68ae5cd6250
Reviewed-on: https://go-review.googlesource.com/c/go/+/187157
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
2019-07-23 00:37:29 +00:00
Bryan C. Mills
b9df8df70f doc/go1.13: mention the effect of testing.Init on package initialization
Fixes #31859

Change-Id: I228ed93f9466d1a22f8796964f5d2f056ab9b62f
Reviewed-on: https://go-review.googlesource.com/c/go/+/186818
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Caleb Spare <cespare@gmail.com>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
2019-07-22 21:43:31 +00:00
Bryan C. Mills
5e21032b3d Revert "cmd/go: move automatic testing.Init call into generated test code"
This reverts CL 176098.

Reason for revert: added complexity, but did not completely fix the
underlying problem. A complete solution would not be worth the
complexity, and as a partial solution this is probably not worth the
complexity either.

Updates #31859

Change-Id: Ifd34c292fd1b811c60afe3c339e5edd3f37190c8
Reviewed-on: https://go-review.googlesource.com/c/go/+/186817
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Caleb Spare <cespare@gmail.com>
2019-07-22 21:42:51 +00:00
Jay Conrod
f518a96e00 cmd/go: document go get @upgrade behavior in release notes
Fixes #33149

Change-Id: If9ff24fea6d087b4047a9f6e50f99f449f9b1c52
Reviewed-on: https://go-review.googlesource.com/c/go/+/186618
Run-TryBot: Jay Conrod <jayconrod@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
2019-07-19 20:08:48 +00:00
Austin Clements
5b15510d96 runtime: align allocations harder in GODEBUG=sbrk=1 mode
Currently, GODEBUG=sbrk=1 mode aligns allocations by their type's
alignment. You would think this would be the right thing to do, but
because 64-bit fields are only 4-byte aligned right now (see #599),
this can cause a 64-bit field of an allocated object to be 4-byte
aligned, but not 8-byte aligned. If there is an atomic access to that
unaligned 64-bit field, it will crash.

This doesn't happen in normal allocation mode because the
size-segregated allocation and the current size classes will cause any
types larger than 8 bytes to be 8 byte aligned.

We fix this by making sbrk=1 mode use alignment based on the type's
size rather than its declared alignment. This matches how the tiny
allocator aligns allocations.

This was tested with

  GOARCH=386 GODEBUG=sbrk=1 go test sync/atomic

This crashes with an unaligned access before this change, and passes
with this change.

This should be reverted when/if we fix #599.

Fixes #33159.

Change-Id: Ifc52c72c6b99c5d370476685271baa43ad907565
Reviewed-on: https://go-review.googlesource.com/c/go/+/186919
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-07-19 15:04:08 +00:00
Allen Li
ba3149612f time: clarify when draining a Timer's channel is needed
Updates #27169

Change-Id: I22a6194c06529ba70b1ec648e3188c191224e321
GitHub-Last-Rev: 457b2a61a8
GitHub-Pull-Request: golang/go#32996
Reviewed-on: https://go-review.googlesource.com/c/go/+/185245
Reviewed-by: Rob Pike <r@golang.org>
2019-07-18 20:43:28 +00:00
Bryan C. Mills
52fdd624a4 cmd/go/internal/mvs: in Req, omit versions implied by older-than-selected versions already in the graph
Fixes #31248

Change-Id: Ia54f2098c3b85549681198a487a31e8ce8fc59eb
Reviewed-on: https://go-review.googlesource.com/c/go/+/186557
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
2019-07-18 19:43:01 +00:00
Bryan C. Mills
a005f998cd cmd/go/internal/mvs: retain modules required by older versions
Fixes #29773
Updates #31248

Change-Id: Ic1923119c8cf3a60c586df1b270c3af0c9095f29
Reviewed-on: https://go-review.googlesource.com/c/go/+/186537
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
2019-07-18 19:42:57 +00:00
Bryan C. Mills
4a2d3d0687 cmd/go: in module mode, populate PackagePublic.Root with the module root
'go test' uses the Root field to determine the set of files that
invalidate test results, and there is no other sensible meaning of
“root” for code within a module.

Fixes #29111

Change-Id: Icf1be90a26d22665613e42cb968087b63c36e74c
Reviewed-on: https://go-review.googlesource.com/c/go/+/154100
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
2019-07-18 19:06:47 +00:00
Bryan C. Mills
5ba15db77f cmd/go: suppress errors with '@upgrade' when the latest version is replaced
Fixes #33154

Change-Id: I5a249a77843a8bd438006af0fa1d8b4429ee25f4
Reviewed-on: https://go-review.googlesource.com/c/go/+/186617
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
2019-07-18 18:40:37 +00:00
Than McIntosh
34778e58b3 test: new testcase for gccgo bug
Updates #33158.

Change-Id: Id87eb00ddcb104ba8e7a0d2f6cf324a77a84f4a9
Reviewed-on: https://go-review.googlesource.com/c/go/+/186717
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-07-18 17:24:59 +00:00
Than McIntosh
196e67f95b test: new testcase for gccgo bug
Updates #33020

Change-Id: I82554ef20ea35e0087fd9ecd9548c2dfeacdc617
Reviewed-on: https://go-review.googlesource.com/c/go/+/186697
Run-TryBot: Than McIntosh <thanm@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2019-07-18 11:34:23 +00:00
Jay Conrod
4814e7d591 cmd/go: include GOEXPERIMENT flags in tool id for cache key
The go command invokes each tool with -V=full to discover its version
to compute a tool id. For release versions (that don't include the
word "devel"), the go command only used the third word in
the output (e.g., "go1.13"), ignoring any toolchain experiments that
followed. With this change, the go command will use whole version line
in the tool id for release versions.

Also, when -V=full is set and there are non-default experiments,
experiments are no longer printed twice.

Fixes #33091

Change-Id: I19b96f939c7e2fbc5d8befe3659156ee4b58daef
Reviewed-on: https://go-review.googlesource.com/c/go/+/186200
Run-TryBot: Jay Conrod <jayconrod@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
2019-07-17 22:57:03 +00:00
Joe Tsai
f93234ad62 net/http/httputil: fix regression in ReverseProxy.ServeHTTP
In Go1.12 and below, the logic in ReverseProxy.ServeHTTP would always
allocate request.Header even if it were not present in the incoming request.
CL 174324 added http.Request.Clone and re-factors ReverseProxy.ServeHTTP
to use the new Clone method. However, the new Clone logic is not equivalent
to the former logic. We preserve former semantics by explicitly allocating
the Header map if nil.

Fixes #33142

Change-Id: I356f94a915dd9779584ce3fe31e56e5474b9ad37
Reviewed-on: https://go-review.googlesource.com/c/go/+/186437
Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Andrew Bonventre <andybons@golang.org>
2019-07-17 21:52:45 +00:00
Alberto Donizetti
5bc46cb712 doc/go1.13: remove 1.12 reference from 1.13 release notes
While it's true that CL 168479 was also backported to 1.12, this is
irrelevant for the Go1.13 release notes.

Change-Id: I044be69f8f2bc005f58a0d63db05129add15f674
Reviewed-on: https://go-review.googlesource.com/c/go/+/186138
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2019-07-17 17:34:32 +00:00
Dmitri Shuralyov
b5df14c309 CONTRIBUTORS: first round of updates for Go 1.13
This update has been automatically generated using the updatecontrib
command:

	cd gotip
	go run golang.org/x/build/cmd/updatecontrib

With minor manual changes to canonicalize letter case for a few names.

Actions taken (relative to CONTRIBUTORS at origin/master):

	Added Ahsun Ahmed <ahmed.ahsun@gmail.com>
	Added Al Cutter <al@google.com>
	Added Alex Tokarev <aleksator@gmail.com>
	Added Alexander Lourier <aml@rulezz.ru>
	Added Alexander Rakoczy <alex@golang.org>
	Added Andrei Matei <andrei@cockroachlabs.com>
	Added Andrei Vagin <avagin@google.com>
	Added Andrew Z Allen <me@andrewzallen.com>
	Added Aofei Sheng <aofei@aofeisheng.com>
	Added Arash Bina <arash@arash.io>
	Added Benjamin Peterson <benjamin@python.org>
	Added Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
	Added Brandon Ryan <bjryan19@gmail.com>
	Added Bryan Heden <b.heden@gmail.com>
	Added Carlos Eduardo <me@carlosedp.com>
	Added Carrie Bynon <cbynon@gmail.com>
	Added Chris Marchesi <chrism@vancluevertech.com>
	Added Colin Arnott <colin@urandom.co.uk>
	Added Daniel Cormier <danielc@knowbe4.com>
	Added Daniel Langner <s8572327@gmail.com>
	Added Daniel Lublin <daniel@lublin.se>
	Added Darren Grant <darren.e.grant@gmail.com>
	Added Derek Phan <derekphan94@gmail.com>
	Added Dmitri Goutnik <dgoutnik@gmail.com>
	Added Dmitry Mottl <dmitry.mottl@gmail.com>
	Added Eli Bendersky <eliben@google.com>
	Added Evan Digby <evandigby@gmail.com>
	Added Fedor Korotkiy <dartslon@gmail.com>
	Added Felix Bünemann <Felix.Buenemann@gmail.com>
	Added Francesco Renzi <rentziass@gmail.com>
	Added Gabriel Guzman <gabe.guzman@gmail.com>
	Added Gabriel Nelle <tehsphinx@web.de>
	Added Gernot Vormayr <gvormayr@gmail.com>
	Added GitHub User ZZMarquis (7624583) <zhonglingjian3821@163.com>
	Added GitHub User alkesh26 (1019076) <alkesh26@gmail.com>
	Added GitHub User bakape (7851952) <bakape@gmail.com>
	Added GitHub User frennkie (6499251) <mail@rhab.de>
	Added GitHub User hengwu0 (41297446) <41297446+hengwu0@users.noreply.github.com>
	Added GitHub User kazyshr (30496953) <kazyshr0301@gmail.com>
	Added GitHub User linguohua (3434367) <lghchinaidea@gmail.com>
	Added GitHub User micnncim (21333876) <micnncim@gmail.com>
	Added Gordon Tyler <gordon@doxxx.net>
	Added Greg Thelen <gthelen@google.com>
	Added Haosdent Huang <haosdent@gmail.com>
	Added Hasan Ozgan <hasan@ozgan.net>
	Added Henry Wong <liushuai.wang@elastic.co>
	Added Horst Rutter <hhrutter@gmail.com>
	Added Ivan Osadchiy <ivan.osadchii@gmail.com>
	Added JT Olio <hello@jtolio.com>
	Added Jacob Blain Christen <dweomer5@gmail.com>
	Added Jacob Walker <jacobwalker0814@gmail.com>
	Added James Nugent <james@jen20.com>
	Added Jannis Andrija Schnitzer <jannis@schnitzer.im>
	Added Jean-François Bustarret <jf@bustarret.com>
	Added Jeremy Jay <jeremy@pbnjay.com>
	Added Jeroen Simonetti <jeroen@simonetti.nl>
	Added Jingnan Si <jingnan.si@gmail.com>
	Added Jinkun Zhang <franksnolf@gmail.com>
	Added John Moore <johnkenneth.moore@gmail.com>
	Added John Weldon <johnweldon4@gmail.com>
	Added Jonathon Lacher <jonathon.lacher@gmail.com>
	Added Jordan Liggitt <liggitt@google.com>
	Added Joshua M. Clulow <josh.clulow@joyent.com>
	Added Juraj Sukop <sukop@users.noreply.github.com>
	Added Justin Li <git@justinli.net>
	Added Kai Dong <dokia2357@gmail.com>
	Added Kenichi Tsunokawa <kenichi.tsunokawa@gmail.com>
	Added Kenta Mori <zoncoen@gmail.com>
	Added Ketan Parmar <ketanbparmar@gmail.com>
	Added Kirill Motkov <Motkov.Kirill@gmail.com>
	Added Kshitij Saraogi <kshitijsaraogi@gmail.com>
	Added Leonardo Comelli <leonardo.comelli@gmail.com>
	Added Lorenz Nickel <mail@lorenznickel.de>
	Added Luka Zitnik <luka.zitnik@gmail.com>
	Added Luke Champine <luke.champine@gmail.com>
	Added Madhu Rajanna <madhupr007@gmail.com>
	Added Marat Khabibullin <marat.khabibullin@jetbrains.com>
	Added Mark Villacampa <m@markvillacampa.com>
	Added Max Semenik <maxsem.wiki@gmail.com>
	Added Maxim Eryomenko <moeryomenko@gmail.com>
	Added Michael Cook <code@mdcook.net>
	Added Michael Vogt <mvo@ubuntu.com>
	Added Mickael KERJEAN <mickael.kerjean@gmail.com>
	Added Mickey Reiss <mickeyreiss@gmail.com>
	Added Mihai Moldovan <ionic@ionic.de>
	Added Mirko Hansen <baaazen@gmail.com>
	Added Muir Manders <muir@mnd.rs>
	Added Mykhailo Lesyk <mikhail@lesyk.org>
	Added Nick Anthony <Liberatys@outlook.com>
	Added Nikita Kryuchkov <nkryuchkov10@gmail.com>
	Added Nir Soffer <nirsof@gmail.com>
	Added Norman B. Lancaster <qbradq@gmail.com>
	Added Patrick Barker <barkerp@vmware.com>
	Added Patrik Lundin <patrik@sigterm.se>
	Added Petr Jediný <petr.jediny@gmail.com>
	Added Robert Ayrapetyan <robert.ayrapetyan@gmail.com>
	Added Robert van Gent <rvangent@google.com>
	Added Rohan Verma <rohanverma2004@gmail.com>
	Added Romain Baugue <romain.baugue@elwinar.com>
	Added Sad Pencil <qh06@qq.com>
	Added Segev Finer <segev208@gmail.com>
	Added Sergey Dobrodey <sergey.dobrodey@synesis.ru>
	Added Sergey Yanykin <syanykin@ozon.ru>
	Added Shawn Elliott <selliott@microsoft.com>
	Added Shengjing Zhu <zsj950618@gmail.com>
	Added Shubham Sharma <shubham.sha12@gmail.com>
	Added Stephan Zuercher <zuercher@gmail.com>
	Added Steve Mynott <steve.mynott@gmail.com>
	Added Tai Le <letientai299@gmail.com>
	Added Todd Kulesza <tkulesza@google.com>
	Added Tom Anthony <git@tomanthony.co.uk>
	Added Tooru Takahashi <tooru.takahashi134@gmail.com>
	Added Udalov Max <re.udalov@gmail.com>
	Added Valentin Vidic <vvidic@valentin-vidic.from.hr>
	Added Vivek Sekhar <vsekhar@google.com>
	Added WEI Xikai <xykwei@gmail.com>
	Added Wenlei (Frank) He <wlhe@google.com>
	Added Wenzel Lowe <lowewenzel@gmail.com>
	Added Yang Tian <linuxty@gmail.com>
	Added Yasser Abdolmaleki <yasser@yasser.ca>
	Added Zach Jones <zachj1@gmail.com>
	Added adarsh ravichandran <adarshravichandran91@gmail.com>
	Added berkant ipek <41230766+0xbkt@users.noreply.github.com>
	Added karthik nayak <karthik.188@gmail.com>
	Added marius a. eriksen <marius@grailbio.com>
	Added Максадбек Ахмедов <a.maksadbek@gmail.com>
	Used GitHub User ZZMarquis (7624583) form for ZZMarquis <zhonglingjian3821@163.com> https://github.com/golang/go/commit/b00ef3b865 [go]
	Used GitHub User alkesh26 (1019076) form for alkesh26 <alkesh26@gmail.com> https://github.com/golang/go/commit/c7f69a2897 [go]
	Used GitHub User bakape (7851952) form for bakape <bakape@gmail.com> https://github.com/golang/go/commit/27e444d5e6 [go]
	Used GitHub User frennkie (6499251) form for frennkie <mail@rhab.de> https://github.com/golang/go/commit/ee46250e06 [go]
	Used GitHub User hengwu0 (41297446) form for hengwu0 <41297446+hengwu0@users.noreply.github.com> https://github.com/golang/go/commit/95d4e6158b [go]
	Used GitHub User kazyshr (30496953) form for kazyshr <kazyshr0301@gmail.com> https://github.com/golang/tools/commit/0fdf0c73 [tools]
	Used GitHub User linguohua (3434367) form for linguohua <lghchinaidea@gmail.com> https://github.com/golang/tools/commit/97de5656 [tools]
	Used GitHub User micnncim (21333876) form for micnncim <micnncim@gmail.com> https://github.com/golang/tools/commit/15d5d381 [tools]
	Used GitHub name "Akhil Indurti" for smasher164 <aindurti@gmail.com> https://github.com/golang/go/commit/5ca44dc403 [build go]
	Used GitHub name "Carlos Eduardo" for CarlosEDP <me@carlosedp.com> https://github.com/golang/net/commit/018c4d4 [net]
	Used GitHub name "Ivan Markin" for nogoegst <nogoegst@users.noreply.github.com> https://github.com/golang/go/commit/a1addf15df [go]
	Used GitHub name "Jean-François Bustarret" for jfbus <jf@bustarret.com> https://github.com/golang/go/commit/825ff1e317 [go]
	Used GitHub name "Jinkun Zhang" for smileeye <franksnolf@gmail.com> https://github.com/golang/go/commit/607493bed6 [go]
	Used GitHub name "John Moore" for guitarbum722 <johnkenneth.moore@gmail.com> https://github.com/golang/go/commit/44c9354c5a [go]
	Used GitHub name "Keiji Yoshida" for yosssi <yoshida.keiji.84@gmail.com> https://github.com/golang/lint/commit/ac6833c [lint]
	Used GitHub name "Kenta Mori" for zoncoen <zoncoen@gmail.com> https://github.com/golang/net/commit/fe579d4 [net]
	Used GitHub name "Kirill Motkov" for Motkov.Kirill <Motkov.Kirill@gmail.com> https://github.com/golang/go/commit/0ff0df8be3 [go]
	Used GitHub name "Luke Champine" for lukechampine <luke.champine@gmail.com> https://github.com/golang/go/commit/9d40fadb1c [crypto go]
	Used GitHub name "Michalis Kargakis" for kargakis <mkargaki@redhat.com> https://github.com/golang/go/commit/e243d242d7 [go]
	Used GitHub name "Nick Anthony" for Liberatys <Liberatys@outlook.com> https://github.com/golang/go/commit/62ddf7d0c5 [go]
	Used GitHub name "Robert Ayrapetyan" for rayrapetyan <robert.ayrapetyan@gmail.com> https://github.com/golang/sys/commit/bf70e46 [sys]
	Used GitHub name "Robin Eklind" for mewmew <rnd0x00@gmail.com> https://github.com/golang/go/commit/b8620afb8d [blog go proposal.git]
	Used GitHub name "Sergey Dobrodey" for sergeydobrodey <sergey.dobrodey@synesis.ru> https://github.com/golang/net/commit/e869164 [net]
	Used GitHub name "Tai Le" for Tai <letientai299@gmail.com> https://github.com/golang/build/commit/1b388d2 [build tools]
	Used GitHub name "WEI Xikai" for ShiKaiWi <xykwei@gmail.com> https://github.com/golang/go/commit/518ee55d78 [go]
	Used GitHub name "Yang Tian" for taoyuanyuan <linuxty@gmail.com> https://github.com/golang/go/commit/5eeb372418 [go]
	Used GitHub name "Zach Jones" for zdjones <zachj1@gmail.com> https://github.com/golang/go/commit/c178389604 [go]

Updates #12042

Change-Id: Ic220d997a0dc3bf4109ab964cbb6a25ea5c0c9da
Reviewed-on: https://go-review.googlesource.com/c/go/+/186397
Reviewed-by: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2019-07-17 12:57:52 +00:00
Jay Conrod
0cadf40f4c cmd/go: tweak wording of module path mismatch error message
Changes "was loaded as" to "was required as". This is slightly more
precise, since it hints at a requirement edge in the module version
graph.

Updates #28489

Change-Id: I636268c33f1ea9858c214fe275f271538186ed6d
Reviewed-on: https://go-review.googlesource.com/c/go/+/186377
Run-TryBot: Jay Conrod <jayconrod@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
2019-07-16 22:31:35 +00:00
Cherry Zhang
2bcbe6a4b6 runtime: add a test for getg with thread switch
With gccgo, if we generate getg inlined, the backend may cache
the address of the TLS variable, which will become invalid after
a thread switch.

Currently there is no known bug for this. But if we didn't
implement this carefully, we may get subtle bugs. This CL adds a
test that will fail loudly if this is wrong. (See also
https://go.googlesource.com/gofrontend/+/refs/heads/master/libgo/runtime/proc.c#333
and an incorrect attempt CL 185337.)

Note: at least on Linux/AMD64, even with an incorrect
implementation, this only fails if the test is compiled with
-fPIC, which is not the default setting for gccgo test suite. So
some manual work is needed. Maybe we could extend the test suite
to run the runtime test with more settings (e.g. PIC and static).

Change-Id: I459a3b4c31f09b9785c0eca19b7756f80e8ef54c
Reviewed-on: https://go-review.googlesource.com/c/go/+/186357
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2019-07-16 20:53:01 +00:00
Bryan C. Mills
6bf2767cc8 cmd/go: tighten the check for pseudo-version base tags
Do not allow a pseudo-version derived from a canonical tag to refer to
the same revision as the tag itself. It's unnecessary (because
canonical tags already have a total ordering) and confusing (the
pseudo-version appears to come after the tag, but actually refers to
the exact same revision).

Updates #32879
Updates #27173

Change-Id: I02befedbe89c8819bdd93e470783ce63fc813193
Reviewed-on: https://go-review.googlesource.com/c/go/+/184720
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
2019-07-16 15:37:25 +00:00
Jay Conrod
0da58d076a cmd/go: clarify error text for module path mismatch
This error occurs when a module is loaded with one name (for example,
github.com/golang/lint) but declares a different path in its go.mod
(golang.org/x/lint). The current text "unexpected module path" is
confusing. It doesn't explain why the path was unexpected, and it's
not clear what was expected.

With this change, the error text includes the module and version
containing the go.mod file with the error, the declared module path,
and the loaded module path. The paths are vertically aligned so
differences are visually obvious. As with other module version errors,
the shortest chain of requirements is printed.

This change supercedes CL 158477.

Fixes #28489

Change-Id: Ieb07d00bcae182376d7be6aad111c84fbf784354
Reviewed-on: https://go-review.googlesource.com/c/go/+/185985
Run-TryBot: Jay Conrod <jayconrod@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
2019-07-16 15:01:16 +00:00
Filippo Valsorda
a6a7b148f8 crypto/tls: deprecate SSLv3 support
Updates #32716

Change-Id: Ia0c03918e8f2da4d9824c49c6d4cfca1b0787b0a
Reviewed-on: https://go-review.googlesource.com/c/go/+/184102
Reviewed-by: Andrew Bonventre <andybons@golang.org>
2019-07-15 23:00:52 +00:00
Ian Lance Taylor
37b194a422 cmd/link: put shlib ".type" functions in internal ABI
These functions are compiler generated, and as such are only available
in the internal ABI. Doing this avoids generating an alias symbol.
Doing that avoids confusion between unmangled and mangled type symbols.

Fixes #30768

Change-Id: I197a5ba6403aac11989ffa951dbe35bd0506de91
Reviewed-on: https://go-review.googlesource.com/c/go/+/186077
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
2019-07-15 22:54:39 +00:00
Bryan C. Mills
24a6ca09d0 cmd/go/internal/modfetch: always check for a go.mod file when fetching from version control
If the module path declared in the go.mod file does not match the path
we are trying to resolve, a build using that module is doomed to fail.
Since we know that the module path does not match in the underlying
repo, we also know that the requested module does not exist at the
requested version.

Therefore, we should reject that version in Stat with a “not exist”
error — sooner rather than later — so that modload.Query will continue
to check other candidate paths (for example, with a major-version
suffix added or removed).

Fixes #33099

Change-Id: I43c980f78ed75fa6ace90f237cc3aad46c22d83a
Reviewed-on: https://go-review.googlesource.com/c/go/+/186237
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
2019-07-15 21:51:12 +00:00