]> Cypherpunks.ru repositories - gostls13.git/log
gostls13.git
4 years ago[release-branch.go1.14] go1.14rc1 go1.14rc1
Carlos Amedee [Wed, 5 Feb 2020 15:02:15 +0000 (10:02 -0500)]
[release-branch.go1.14] go1.14rc1

Change-Id: I6afa01a5240e1852a0081d8e1452b0b305652180
Reviewed-on: https://go-review.googlesource.com/c/go/+/217838
Run-TryBot: Carlos Amedee <carlos@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
4 years ago[release-branch.go1.14] all: merge master into release-branch.go1.14
Carlos Amedee [Wed, 5 Feb 2020 14:42:17 +0000 (09:42 -0500)]
[release-branch.go1.14] all: merge master into release-branch.go1.14

a864cc7560 doc: rename HTML element IDs to avoid duplicates
fb93cd45a6 net: don't check LookupHost error in TestLookupNullByte
f770366f6d runtime: don't treat SIGURG as a bad signal
e3f2e9ac4e internal/bytealg: fix riscv64 offset names

Change-Id: I2ef0665dce7f1ade9b6c826cfd5c8eab041ff23f

4 years agodoc: rename HTML element IDs to avoid duplicates
Dmitri Shuralyov [Wed, 5 Feb 2020 10:23:42 +0000 (05:23 -0500)]
doc: rename HTML element IDs to avoid duplicates

These 3 release notes have had an element ID collision because both
the runtime changes and changes to the package "runtime" used the
same ID. Fix it by using a "pkg-" prefix for the runtime package.

Move the "runtime-again" ID from CL 129635 to a nearby <dt> element
so that existing links to https://golang.org/doc/go1.11#runtime-again
don't break.

Fixes #37036
Updates #36878

Change-Id: Ib68d93acfac802fd84c0a57485937e45dea2064a
Reviewed-on: https://go-review.googlesource.com/c/go/+/217797
Reviewed-by: Toshihiro Shiino <shiino.toshihiro@gmail.com>
Reviewed-by: Agniva De Sarker <agniva.quicksilver@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agonet: don't check LookupHost error in TestLookupNullByte
Dmitri Shuralyov [Wed, 5 Feb 2020 00:41:48 +0000 (19:41 -0500)]
net: don't check LookupHost error in TestLookupNullByte

net.LookupHost("foo\x00bar") may resolve successfully on some networks.
Reduce the scope of the test to check only that the call doesn't panic.

Also update the test comment to reference the relevant issue.

Fixes #37031
Updates #31597

Change-Id: If175deed8121625ef507598c6145e937ccffd89e
Reviewed-on: https://go-review.googlesource.com/c/go/+/217729
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

4 years agoruntime: don't treat SIGURG as a bad signal
Ian Lance Taylor [Mon, 3 Feb 2020 23:53:53 +0000 (15:53 -0800)]
runtime: don't treat SIGURG as a bad signal

It's possible for the scheduler to try to preempt a goroutine running
on a thread created by C code just as the goroutine returns from Go code
to C code. If that happens, the goroutine will have a nil g,
which would normally cause us to enter the badsignal code.
The badsignal code will allocate an M, reset the signal handler,
and raise the signal. This is all wasted work for SIGURG,
as the default behavior is for the kernel to ignore the signal.
It also means that there is a period of time when preemption requests
are ignored, because the signal handler is reset to the default.
And, finally, it triggers a bug on 386 OpenBSD 6.2. So stop doing it.
No test because there is no real change in behavior (other than on OpenBSD),
the new code is just more efficient

Fixes #36996

Change-Id: I8c1cb9bc09f5ef890cab567924417e2423fc71f6
Reviewed-on: https://go-review.googlesource.com/c/go/+/217617
Reviewed-by: Austin Clements <austin@google.com>
4 years agointernal/bytealg: fix riscv64 offset names
Josh Bleecher Snyder [Tue, 4 Feb 2020 22:53:46 +0000 (14:53 -0800)]
internal/bytealg: fix riscv64 offset names

Vet caught that these were incorrect.

Updates #37022

Change-Id: I7b5cd8032ea95eb8e0729f6a4f386aec613c71d8
Reviewed-on: https://go-review.googlesource.com/c/go/+/217777
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

4 years agodoc: remove paragraph break for upgrading to modules
Katie Hockman [Tue, 4 Feb 2020 17:48:20 +0000 (12:48 -0500)]
doc: remove paragraph break for upgrading to modules

Previously, the release notes broke up the sentences that modules
is now ready for production use and where to file issues for
migration problems into separate paragraphs. This made it look like
the migration paragraph was about upgrading to 1.14, not to modules,
and made the reading a bit confusing. Now the entire idea is in one
paragraph.

Change-Id: I10bddfb8aba5f5909ac6842f25e3e97d505835e6
Reviewed-on: https://go-review.googlesource.com/c/go/+/217720
Run-TryBot: Katie Hockman <katie@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
4 years agosyscall: Revert "release a js.Func object in fsCall"
Dmitri Shuralyov [Tue, 4 Feb 2020 18:07:23 +0000 (18:07 +0000)]
syscall: Revert "release a js.Func object in fsCall"

This reverts CL 217417 (commit 753d56d3642eb83848aa39e65982a9fc77e722d7).

This change was unintentionally submitted to master during the
Go 1.14 code freeze; it should be sent again for Go 1.15.

Change-Id: Ie790342f227ae3adfc5f9a90ce3abdc2c9be619b
Reviewed-on: https://go-review.googlesource.com/c/go/+/217721
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
4 years agodoc/go1.14: note that all changes to the standard library are minor
Dmitri Shuralyov [Tue, 4 Feb 2020 00:55:12 +0000 (19:55 -0500)]
doc/go1.14: note that all changes to the standard library are minor

Updates #36878

Change-Id: I1b83ff174a139734fae75f6e1e4caa9958222a18
Reviewed-on: https://go-review.googlesource.com/c/go/+/217640
Reviewed-by: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
4 years agodoc/go1.14: fix broken links
Toshihiro Shiino [Tue, 4 Feb 2020 12:23:03 +0000 (12:23 +0000)]
doc/go1.14: fix broken links

Fix broken links with missing /pkg and fix os/signal import path.

Change-Id: I4bf74c9f6e9b0e5fa96ca4d35c4ce404e07583b2
Reviewed-on: https://go-review.googlesource.com/c/go/+/217697
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
4 years agodoc/go1.14: remove TODO about Solaris port
Dmitri Shuralyov [Tue, 4 Feb 2020 15:24:20 +0000 (15:24 +0000)]
doc/go1.14: remove TODO about Solaris port

The solaris-amd64-oraclerel builder is passing for the main Go repo
(on tip and release branches for 1.13 and 1.12), and golang.org/x repos
(also on tip and release branches for 1.13 and 1.12).

The builder is still maintained as described at
https://golang.org/issue/15581#issuecomment-550368581.

Updates #36878
Updates #15581

Change-Id: Icc6f7529ca2e05bb34f09ce4363d9582e80829c6
Reviewed-on: https://go-review.googlesource.com/c/go/+/217738
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
4 years agodoc/go1.14: remove TODO about Illumos port
Dmitri Shuralyov [Tue, 4 Feb 2020 15:15:39 +0000 (15:15 +0000)]
doc/go1.14: remove TODO about Illumos port

There is an active builder that was added in CL 201597,
and it is passing on Go tip and release-branch.go1.13
(with one failure that appears to be flaky due to being
out of memory). It's also passing on all golang.org/x repos
on tip and release-branch.go1.13. It's not configured to
run on Go 1.12 release branches.

Updates #36878
Updates #15581

Change-Id: I4ed7fc62c11a09743832fca39bd61fa0cf6e7ded
Reviewed-on: https://go-review.googlesource.com/c/go/+/217737
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
4 years agodoc/go1.14: document encoding/asn1 support for BMPString
Dmitri Shuralyov [Tue, 4 Feb 2020 00:26:31 +0000 (19:26 -0500)]
doc/go1.14: document encoding/asn1 support for BMPString

Updates #36878

Change-Id: Ib3ea1ef21c4b8ada3d354a0022a19914c1311399
Reviewed-on: https://go-review.googlesource.com/c/go/+/217637
Reviewed-by: Carlos Amedee <carlos@golang.org>
4 years agodoc/go1.14: remove TODO about Dragonfly passing
Tobias Klauser [Sun, 2 Feb 2020 13:43:54 +0000 (14:43 +0100)]
doc/go1.14: remove TODO about Dragonfly passing

Both the Dragonfly release and tip builder have been passing for a
while. The net package's interface API is working on both builders since
CL 202317 which has been re-vendored in CL 202438.

Updates #34368
Updates #36878

Change-Id: I187178b3a59f2604187af453207fb4e24a56105c
Reviewed-on: https://go-review.googlesource.com/c/go/+/217358
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agodoc/go1.14: add missing slashes
Toshihiro Shiino [Tue, 4 Feb 2020 12:32:58 +0000 (12:32 +0000)]
doc/go1.14: add missing slashes

This saves a redirect and makes the document more consistent.

Change-Id: I67840f5dc05dffd8893a055618eb202b682a0ebc
Reviewed-on: https://go-review.googlesource.com/c/go/+/217698
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agodoc/go1.14: mention changes to debug/dwarf
Ian Lance Taylor [Fri, 31 Jan 2020 00:38:15 +0000 (16:38 -0800)]
doc/go1.14: mention changes to debug/dwarf

Updates #36878

Change-Id: Icfbf9074c731d64198b4760e1902bbd09fcc1349
Reviewed-on: https://go-review.googlesource.com/c/go/+/217067
Reviewed-by: Austin Clements <austin@google.com>
4 years agosyscall: release a js.Func object in fsCall
Hajime Hoshi [Sun, 2 Feb 2020 05:55:29 +0000 (14:55 +0900)]
syscall: release a js.Func object in fsCall

A js.Func object in fsCall was created for each call but never
released. This CL fixes this.

Change-Id: I2e2b504cbf4fb130b8cfe890a66d3a66aadf56a4
Reviewed-on: https://go-review.googlesource.com/c/go/+/217417
Run-TryBot: Hajime Hoshi <hajimehoshi@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Agniva De Sarker <agniva.quicksilver@gmail.com>
Reviewed-by: Richard Musiol <neelance@gmail.com>
4 years agostd,cmd: sync go.mod with new release branches
Filippo Valsorda [Fri, 31 Jan 2020 23:41:03 +0000 (15:41 -0800)]
std,cmd: sync go.mod with new release branches

    cd src
    go get golang.org/x/sys@release-branch.go1.14-std
    go mod tidy && go mod vendor
    cd cmd
    go get golang.org/x/sys@release-branch.go1.14-cmd
    go get golang.org/x/tools@release-branch.go1.14
    go mod tidy && go mod vendor

Fixes #36851

Change-Id: Ib0a78eec90c92515b6f421972102cc8e8d0c08a7
Reviewed-on: https://go-review.googlesource.com/c/go/+/217305
Run-TryBot: Filippo Valsorda <filippo@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agomath/big: simplify GCD docs
Filippo Valsorda [Fri, 31 Jan 2020 22:49:11 +0000 (14:49 -0800)]
math/big: simplify GCD docs

We don't usually document past behavior (like "As of Go 1.14 ...") and
in isolation the current docs made it sound like a and b could only be
negative or zero.

Change-Id: I0d3c2b8579a9c01159ce528a3128b1478e99042a
Reviewed-on: https://go-review.googlesource.com/c/go/+/217302
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agodoc/go1.14: fix math/big.(*Int).GCD notes
Filippo Valsorda [Fri, 31 Jan 2020 22:54:21 +0000 (14:54 -0800)]
doc/go1.14: fix math/big.(*Int).GCD notes

GCD is a method, not a function, so the link was broken.

Change-Id: Icbb09d39959e7c71a48987b15bb82febe12c3a19
Reviewed-on: https://go-review.googlesource.com/c/go/+/217303
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agonet/http/cgi: rename a test file to be less cute
Brad Fitzpatrick [Wed, 15 Jan 2020 18:08:10 +0000 (18:08 +0000)]
net/http/cgi: rename a test file to be less cute

My fault (from CL 4245070), sorry.

Change-Id: Ib95d3170dc326e74aa74c22421c4e44a8b00f577
Reviewed-on: https://go-review.googlesource.com/c/go/+/214920
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
4 years agodoc/go1.14: mention new method encoding/json.Decoder.InputOffset
Ian Lance Taylor [Fri, 31 Jan 2020 00:42:21 +0000 (16:42 -0800)]
doc/go1.14: mention new method encoding/json.Decoder.InputOffset

Updates #29688
Updates #36878

Change-Id: I230889ec3f1c183dc5adbc662a39a791c0488497
Reviewed-on: https://go-review.googlesource.com/c/go/+/217123
Reviewed-by: Alexander Rakoczy <alex@golang.org>
4 years agodoc/go1.14: add crypto/tls release notes
Filippo Valsorda [Tue, 28 Jan 2020 22:37:58 +0000 (14:37 -0800)]
doc/go1.14: add crypto/tls release notes

A few minor changes that didn't feel worth mentioning:

* CL 205059: support leaving Certificates/GetCertificate nil if
  GetConfigForClient is set
* CL 205059: send the unrecognized_name alert when there are no
  available certificates
* CL 205068: add correct names for CHACHA20_POLY1305 ciphersuite constants
* CL 204046: fix CreateCRL for Ed25519 CAs
* CL 205058: add CertificateRequestInfo.Version

Change-Id: Ie820fb0c6842e669edde031132c7cda5b09e7682
Reviewed-on: https://go-review.googlesource.com/c/go/+/216759
Run-TryBot: Filippo Valsorda <filippo@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agodoc/go1.14: move "Minor changes to the library" heading up
Dmitri Shuralyov [Fri, 31 Jan 2020 18:21:57 +0000 (13:21 -0500)]
doc/go1.14: move "Minor changes to the library" heading up

This heading was below the minor changes to the standard library.
It should be on top.

Many of the minor changes have been documented, so remove the broad
TODO comment. It is still a TODO to highlight more prominent changes
to the library, if there are any, under the "Core library" heading.

Updates #36878

Change-Id: If7fd9af9a933af917523e33fd2922c5f3c02c98b
Reviewed-on: https://go-review.googlesource.com/c/go/+/217277
Reviewed-by: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
4 years agodoc/go1.14: fix id attribute of Testing heading
Jean de Klerk [Thu, 30 Jan 2020 00:39:26 +0000 (17:39 -0700)]
doc/go1.14: fix id attribute of Testing heading

Some tweaks based on comments from CL 216917.

Change-Id: I538ea0dfa947b53d5c4a7135c1aec912b0357083
Reviewed-on: https://go-review.googlesource.com/c/go/+/217121
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
4 years agodoc/go1.14: mention new method strconv.NumError.Unwrap
Ian Lance Taylor [Fri, 31 Jan 2020 03:22:15 +0000 (19:22 -0800)]
doc/go1.14: mention new method strconv.NumError.Unwrap

Updates #30322
Updates #36878

Change-Id: I8b33eb6a8fb7c0ecf365940a1c3ae88dc807ebcd
Reviewed-on: https://go-review.googlesource.com/c/go/+/217132
Reviewed-by: Bryan C. Mills <bcmills@google.com>
4 years agodoc/go1.14: mention new field go/build.Context.Dir
Ian Lance Taylor [Fri, 31 Jan 2020 00:53:42 +0000 (16:53 -0800)]
doc/go1.14: mention new field go/build.Context.Dir

Updates #34860
Updates #36168
Updates #36878

Change-Id: I484d7fea5d77d6dcd451d4fdffe0c450eed73636
Reviewed-on: https://go-review.googlesource.com/c/go/+/217124
Reviewed-by: Bryan C. Mills <bcmills@google.com>
4 years agogo/types: unexport Checker.LookupFieldOrMethod
Robert Griesemer [Fri, 31 Jan 2020 04:13:02 +0000 (20:13 -0800)]
go/types: unexport Checker.LookupFieldOrMethod

Implementation changes in go/types for #6977 required that internal
LookupFieldOrMethod calls had access to the current *Checker. In
order to make quick progress, I added a *Checker receiver to the
function LookupFieldOrMethod (thus making it a method), and added
a new function LookupFieldOrMethod. The plan was always to rename
that function (Checker.LookupFieldOrMethod) such that it wouldn't
be exported; with the obvious name being Checker.lookupFieldOrMethod.
But that name was already in use which is why I postponed the rename.
Eventually I forgot to clean it up. This CL fixes that with the
following renames:

Checker.lookupFieldOrMethod => Checker.rawLookupFieldOrMethod
Checker.LookupFieldOrMethod => Checker.lookupFieldOrMethod

Updates #6977.
Fixes #36916.

Change-Id: Icfafd0de9a19841ba5bd87142730fe7323204491
Reviewed-on: https://go-review.googlesource.com/c/go/+/217134
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agodoc/go1.14: mention new log.Lmsgprefix flag
Ian Lance Taylor [Fri, 31 Jan 2020 01:32:23 +0000 (17:32 -0800)]
doc/go1.14: mention new log.Lmsgprefix flag

Updates #32062
Updates #36878

Change-Id: I06c7c9a9d253177155a6d46d58231ce26e659757
Reviewed-on: https://go-review.googlesource.com/c/go/+/217126
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agodoc/go1.14: mime: .js files now text/javascript
Ian Lance Taylor [Fri, 31 Jan 2020 00:32:14 +0000 (16:32 -0800)]
doc/go1.14: mime: .js files now text/javascript

Updates #32351
Updates #36878

Change-Id: I19f87430f4344dcc6664d8dd1b8adfc67660f099
Reviewed-on: https://go-review.googlesource.com/c/go/+/217122
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agodoc/go1.14: mention new math/bits functions Rem, Rem32, Rem64
Ian Lance Taylor [Fri, 31 Jan 2020 02:50:50 +0000 (18:50 -0800)]
doc/go1.14: mention new math/bits functions Rem, Rem32, Rem64

Updates #28970
Updates #36878

Change-Id: I9676f50516dd5b32bd4e44be136fcb9f43776edd
Reviewed-on: https://go-review.googlesource.com/c/go/+/217127
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agodoc/go1.14: mention new method mime/multipart.(*Reader).NextRawPart
Ian Lance Taylor [Fri, 31 Jan 2020 02:55:11 +0000 (18:55 -0800)]
doc/go1.14: mention new method mime/multipart.(*Reader).NextRawPart

Updates #29090
Updates #36878

Change-Id: I63f0eb583285d5c12f591cb704097cdf6a67b64f
Reviewed-on: https://go-review.googlesource.com/c/go/+/217128
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agodoc/go1.14: mention update to Unicode 12
Ian Lance Taylor [Fri, 31 Jan 2020 03:25:25 +0000 (19:25 -0800)]
doc/go1.14: mention update to Unicode 12

Updates #36878

Change-Id: Ia8441de8a04fead1f76c72f662bcb877e2265c3e
Reviewed-on: https://go-review.googlesource.com/c/go/+/217133
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agodoc/go1.14: mention new field Transport.DialTLSContext
Ian Lance Taylor [Fri, 31 Jan 2020 03:10:53 +0000 (19:10 -0800)]
doc/go1.14: mention new field Transport.DialTLSContext

Updates #21526
Updates #36878

Change-Id: Ic3ae18d31eddb9df01241cbddcc3b7b750cfaa44
Reviewed-on: https://go-review.googlesource.com/c/go/+/217130
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agodoc/go1.14: mention net/http.Header.Values, net/textproto.MIMEHeader.Values
Ian Lance Taylor [Fri, 31 Jan 2020 03:03:39 +0000 (19:03 -0800)]
doc/go1.14: mention net/http.Header.Values, net/textproto.MIMEHeader.Values

These methods are new in Go 1.14.

Updates #34799
Updates #36878

Change-Id: I063f5cb4638d7e0716e6ce2a8c3fffced51bbd34
Reviewed-on: https://go-review.googlesource.com/c/go/+/217129
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agodoc/go1.14: mention new field net/http/httptest/Server.EnableHTTP2
Ian Lance Taylor [Fri, 31 Jan 2020 03:15:15 +0000 (19:15 -0800)]
doc/go1.14: mention new field net/http/httptest/Server.EnableHTTP2

Updates #34939
Updates #36878

Change-Id: Ifa9a17b5b16bfcfbfe1d113a2b66a63ea3a6b59c
Reviewed-on: https://go-review.googlesource.com/c/go/+/217131
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agodoc/go1.14: mention go/doc.NewFromFiles and associated new data fields
Ian Lance Taylor [Fri, 31 Jan 2020 01:06:31 +0000 (17:06 -0800)]
doc/go1.14: mention go/doc.NewFromFiles and associated new data fields

Updates #23864
Updates #36878

Change-Id: I6efdaafbe5207c625643f201a5931ad735941365
Reviewed-on: https://go-review.googlesource.com/c/go/+/217125
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
4 years agodoc: document new hash/maphash package
Keith Randall [Thu, 30 Jan 2020 18:49:12 +0000 (10:49 -0800)]
doc: document new hash/maphash package

Update #36878
Update #28322

Change-Id: I793c7c4dbdd23fdecd715500e90b7cc0cbe4cea5
Reviewed-on: https://go-review.googlesource.com/c/go/+/217099
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agocmd/go.mod: sync x/crypto with std
Filippo Valsorda [Thu, 30 Jan 2020 22:18:42 +0000 (14:18 -0800)]
cmd/go.mod: sync x/crypto with std

    go get golang.org/x/crypto@v0.0.0-20200128174031-69ecbb4d6d5d
    go mod vendor
    git checkout -- vendor/golang.org/x/sys/unix/asm_linux_riscv64.s \
        vendor/golang.org/x/tools/go/analysis/passes/asmdecl/asmdecl.go

Updates #36851

Change-Id: I95c0584ede599f600da927a04f135fe64a85037e
Reviewed-on: https://go-review.googlesource.com/c/go/+/217118
Run-TryBot: Filippo Valsorda <filippo@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

4 years agomath/big: update comment on Int.GCD
Robert Griesemer [Thu, 30 Jan 2020 20:26:20 +0000 (12:26 -0800)]
math/big: update comment on Int.GCD

Per the suggestion https://golang.org/cl/216200/2/doc/go1.14.html#423.

Updates #28878.

Change-Id: I654d2d114409624219a0041916f0a4030efc7573
Reviewed-on: https://go-review.googlesource.com/c/go/+/217104
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agodoc/go1.14: fix minor typo (update release notes)
Robert Griesemer [Thu, 30 Jan 2020 19:34:24 +0000 (11:34 -0800)]
doc/go1.14: fix minor typo (update release notes)

Follow-up on https://golang.org/cl/216200/2/doc/go1.14.html#423 .

Updates #36878.

Change-Id: I693a9eb05c6f1f42721a92fda46a4f3449defa24
Reviewed-on: https://go-review.googlesource.com/c/go/+/217100
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agodoc/go1.14: document overlapping interfaces change (update release notes)
Robert Griesemer [Thu, 30 Jan 2020 05:18:16 +0000 (21:18 -0800)]
doc/go1.14: document overlapping interfaces change (update release notes)

Updates #6977.
Updates #36878.

Change-Id: I40594be85ee0a0d4b35bacc90104568d2b8a4761
Reviewed-on: https://go-review.googlesource.com/c/go/+/216997
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agodoc/go1.14: edit "Go command" section, move zone CPU cap note
Jay Conrod [Wed, 29 Jan 2020 22:18:13 +0000 (17:18 -0500)]
doc/go1.14: edit "Go command" section, move zone CPU cap note

Minor edits to text on go command changes.

Also, moved a note about runtime respecting zone CPU caps from
Native Client section to Runtime section.

Change-Id: Ic21e59d7ffecb4b5676a841e7f3743203a82d266
Reviewed-on: https://go-review.googlesource.com/c/go/+/216878
Reviewed-by: Bryan C. Mills <bcmills@google.com>
4 years agodoc/go1.14.html: describe the runtime/pprof change
Hana Kim [Wed, 29 Jan 2020 22:09:28 +0000 (17:09 -0500)]
doc/go1.14.html: describe the runtime/pprof change

golang.org/cl/204636
golang.org/cl/205097

Updates #36874

Change-Id: I773868fd027e9cc2187f0a738900f0fcb7711635
Reviewed-on: https://go-review.googlesource.com/c/go/+/216877
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agodoc/go1.14: edit "Go command" section, adding note about go test -v streaming
Jean de Klerk [Wed, 29 Jan 2020 23:09:33 +0000 (16:09 -0700)]
doc/go1.14: edit "Go command" section, adding note about go test -v streaming

Change-Id: Ie88fe441521d60a4ba54ebb418860d0f71073387
Reviewed-on: https://go-review.googlesource.com/c/go/+/216917
Reviewed-by: Bryan C. Mills <bcmills@google.com>
4 years agogo/build: update TestImportDirNotExist to accept more detailed error strings
Bryan C. Mills [Wed, 29 Jan 2020 14:14:50 +0000 (09:14 -0500)]
go/build: update TestImportDirNotExist to accept more detailed error strings

In CL 203820, we switched go/build to use the caller's working
directory for the main module (rather than srcDir), so that go/build
resolution now respects the requirements and replacements of the main
module. When the passed-in srcDir is empty, as of that CL we use "go
list" instead of falling back to in-process (GOPATH-mode) path lookup.

Unfortunately, that broke go/build.TestImportDirNotExist when
GO111MODULE=on: the test was looking for the specific error message
produced by the in-process lookup.

This change relaxes the test to accept the error message produced by
"go list" when srcDir is empty.

Updates #34769
Updates #34860
Updates #35734
Fixes #36867

Change-Id: Id0f7814a4b7dabe8917216eb013bb4eaee283648
Reviewed-on: https://go-review.googlesource.com/c/go/+/216817
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
4 years agocmd/internal/obj/riscv,cmd/link: shorten the riscv64 call sequence
Joel Sing [Wed, 29 Jan 2020 09:14:18 +0000 (20:14 +1100)]
cmd/internal/obj/riscv,cmd/link: shorten the riscv64 call sequence

Now that the other dependent offset has been identified, we can remove the
unnecessary ADDI instruction from the riscv64 call sequence (reducing it
to AUIPC+JALR, rather than the previous AUIPC+ADDI+JALR).

Change-Id: I348c4efb686f9f71ed1dd1d25fb9142a41230b0d
Reviewed-on: https://go-review.googlesource.com/c/go/+/216798
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

4 years agocmd/compile,cmd/link: fix and re-enable open-coded defers on riscv64
Joel Sing [Wed, 29 Jan 2020 09:06:54 +0000 (20:06 +1100)]
cmd/compile,cmd/link: fix and re-enable open-coded defers on riscv64

The R_CALLRISCV relocation marker is on the JALR instruction, however the actual
relocation is currently two instructions previous for the AUIPC+ADDI sequence.
Adjust the platform dependent offset accordingly and re-enable open-coded defers.

Fixes #36786.

Change-Id: I71597c193c447930fbe94ce44b7355e89ae877bb
Reviewed-on: https://go-review.googlesource.com/c/go/+/216797
Run-TryBot: Joel Sing <joel@sing.id.au>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
4 years agodoc: add the change to json.Compact in the 1.14 changelog
Daniel Martí [Wed, 22 Jan 2020 12:20:02 +0000 (12:20 +0000)]
doc: add the change to json.Compact in the 1.14 changelog

Fixes #36690.

Change-Id: Id4234ab9467270d51f0411375b71ece7f41269b2
Reviewed-on: https://go-review.googlesource.com/c/go/+/215817
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
4 years agodoc/go1.14: document RISC-V support
Brad Fitzpatrick [Tue, 28 Jan 2020 21:40:08 +0000 (21:40 +0000)]
doc/go1.14: document RISC-V support

Fixes #36708
Updates #27532

Change-Id: I9e3bb92d15825e2c4a505e1aea41b2897f18e0ff
Reviewed-on: https://go-review.googlesource.com/c/go/+/216757
Reviewed-by: Joel Sing <joel@sing.id.au>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agonet/http: don't treat an alternate protocol as a known round tripper
Ian Lance Taylor [Tue, 28 Jan 2020 00:35:28 +0000 (16:35 -0800)]
net/http: don't treat an alternate protocol as a known round tripper

As of CL 175857, the client code checks for known round tripper
implementations, and uses simpler cancellation code when it finds one.
However, this code was not considering the case of a request that uses
a user-defined protocol, where the user-defined protocol was
registered with the transport to use a different round tripper.
The effect was that round trippers that worked with earlier
releases would not see the expected cancellation semantics with tip.

Fixes #36820

Change-Id: I60e75b5d0badcfb9fde9d73a966ba1d3f7aa42b1
Reviewed-on: https://go-review.googlesource.com/c/go/+/216618
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agocmd/dist: remove riscv64 from set of incomplete ports
Brad Fitzpatrick [Tue, 28 Jan 2020 22:57:18 +0000 (22:57 +0000)]
cmd/dist: remove riscv64 from set of incomplete ports

Fixes #27532
Fixes #36853
Updates #28944

Change-Id: I4d0f212deb361c941ce7e5999e237a951c89a296
Reviewed-on: https://go-review.googlesource.com/c/go/+/216758
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Joel Sing <joel@sing.id.au>
4 years agotest: disable the live test on riscv64
Joel Sing [Tue, 28 Jan 2020 18:30:19 +0000 (05:30 +1100)]
test: disable the live test on riscv64

This test expects that open-coded defers are enabled, which is not currently
the case on riscv64.

Updates issue #27532 and #36786.

Change-Id: I94bb558c5b0734b4cfe5ae12873be81026009bcf
Reviewed-on: https://go-review.googlesource.com/c/go/+/216777
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

4 years agoruntime: ensure that searchAddr always refers to inUse memory
Michael Anthony Knyszek [Tue, 28 Jan 2020 19:59:19 +0000 (19:59 +0000)]
runtime: ensure that searchAddr always refers to inUse memory

This change formalizes an assumption made by the page allocator, which
is that (*pageAlloc).searchAddr should never refer to memory that is not
represented by (*pageAlloc).inUse. The portion of address space covered
by (*pageAlloc).inUse reflects the parts of the summary arrays which are
guaranteed to mapped, and so looking at any summary which is not
reflected there may cause a segfault.

In fact, this can happen today. This change thus also removes a
micro-optimization which is the only case which may cause
(*pageAlloc).searchAddr to point outside of any region covered by
(*pageAlloc).inUse, and adds a test verifying that the current segfault
can no longer occur.

Change-Id: I98b534f0ffba8656d3bd6d782f6fc22549ddf1c2
Reviewed-on: https://go-review.googlesource.com/c/go/+/216697
Run-TryBot: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
4 years agosrc/go.mod: import x/crypto/cryptobyte security fix for 32-bit archs
Dmitri Shuralyov [Tue, 28 Jan 2020 18:20:57 +0000 (13:20 -0500)]
src/go.mod: import x/crypto/cryptobyte security fix for 32-bit archs

cryptobyte: fix panic due to malformed ASN.1 inputs on 32-bit archs

When int is 32 bits wide (on 32-bit architectures like 386 and arm), an
overflow could occur, causing a panic, due to malformed ASN.1 being
passed to any of the ASN1 methods of String.

Tested on linux/386 and darwin/amd64.

This fixes CVE-2020-7919 and was found thanks to the Project Wycheproof
test vectors.

Change-Id: I8c9696a8bfad1b40ec877cd740dba3467d66ab54
Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/645211
Reviewed-by: Katie Hockman <katiehockman@google.com>
Reviewed-by: Adam Langley <agl@google.com>
Reviewed-on: https://go-review.googlesource.com/c/crypto/+/216677
Run-TryBot: Katie Hockman <katie@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Filippo Valsorda <filippo@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

x/crypto/cryptobyte is used in crypto/x509 for parsing certificates.
Malformed certificates might cause a panic during parsing on 32-bit
architectures (like arm and 386).

Change-Id: I840feb54eba880dbb96780ef7adcade073c4c4e3
Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/647741
Reviewed-by: Katie Hockman <katiehockman@google.com>
Reviewed-on: https://go-review.googlesource.com/c/go/+/216680
Reviewed-by: Katie Hockman <katie@golang.org>
4 years agocmd/compile: disable open-coded defers on riscv64
Joel Sing [Sun, 26 Jan 2020 22:32:52 +0000 (09:32 +1100)]
cmd/compile: disable open-coded defers on riscv64

Open-coded defers are currently broken on riscv64 - disable them for the
time being. All of the standard package tests now pass on linux/riscv64.

Updates issue #27532 and #36786

Change-Id: I20fc25ce91dfad48be32409ba5c64ca9a6acef1d
Reviewed-on: https://go-review.googlesource.com/c/go/+/216517
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Dan Scales <danscales@google.com>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

4 years agocmd/internal/obj/riscv: use signed immediates for U-instructions
Joel Sing [Wed, 22 Jan 2020 16:38:31 +0000 (03:38 +1100)]
cmd/internal/obj/riscv: use signed immediates for U-instructions

On RISCV64, the U-instructions (AUIPC and LUI) take 20 bits, append 12 bits
of zeros and sign extend to 64-bits. As such, the 20 bit immediate value is
signed not unsigned.

Updates #27532

Change-Id: I725215a1dc500106dbfdc0a4425f3c0b2a6f411e
Reviewed-on: https://go-review.googlesource.com/c/go/+/216257
Reviewed-by: Cherry Zhang <cherryyz@google.com>
4 years agocmd/compile/internal/ssa/gen: avoid importing internal riscv64 packages
Joel Sing [Mon, 27 Jan 2020 12:55:30 +0000 (23:55 +1100)]
cmd/compile/internal/ssa/gen: avoid importing internal riscv64 packages

Duplicate the register definitions and names to avoid importing the
cmd/internal/obj/riscv64 package. This makes it possible to build compiler rules
with a stable Go tool chain.

Fixes #36663

Change-Id: I09116a97bb037ca1bc00073306a82bb88862b1e9
Reviewed-on: https://go-review.googlesource.com/c/go/+/216518
Reviewed-by: Cherry Zhang <cherryyz@google.com>
4 years agodoc/go1.14: remove TODO from Tools section of release notes
Jay Conrod [Mon, 27 Jan 2020 20:37:11 +0000 (15:37 -0500)]
doc/go1.14: remove TODO from Tools section of release notes

Change-Id: I682193eb06b55eb3e9392146579f57a928c728d0
Reviewed-on: https://go-review.googlesource.com/c/go/+/216598
Reviewed-by: Bryan C. Mills <bcmills@google.com>
4 years agodoc/go1.14: go command behavior with GO111MODULE=on outside modules
Jay Conrod [Mon, 27 Jan 2020 20:29:29 +0000 (15:29 -0500)]
doc/go1.14: go command behavior with GO111MODULE=on outside modules

Hopefully this won't affect many people, but it's a substantial change
in behavior for a specific case, so it's probably worth mentioning.

Updates #32027

Change-Id: I61cd50e93d0199e94b011cc90150e072b6bb10ca
Reviewed-on: https://go-review.googlesource.com/c/go/+/216597
Run-TryBot: Jay Conrod <jayconrod@google.com>
Reviewed-by: Michael Matloob <matloob@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

4 years agocmd/compile: on PPC64, fold offset into some loads/stores only when offset is 4-aligned
Cherry Zhang [Fri, 24 Jan 2020 19:11:04 +0000 (14:11 -0500)]
cmd/compile: on PPC64, fold offset into some loads/stores only when offset is 4-aligned

On PPC64, MOVWload, MOVDload, and MOVDstore are assembled to a
"DS from" instruction which requiers the offset is a multiple of
4. Only fold offset to such instructions if it is a multiple of 4.

Fixes #36723.

"GOARCH=ppc64 GOOS=linux go build -gcflags=all=-d=ssa/check/on std cmd"
passes now.

Change-Id: I67f2a6ac02f0d33d470f68ff54936c289a4c765b
Reviewed-on: https://go-review.googlesource.com/c/go/+/216379
Reviewed-by: Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
4 years agodoc/go1.14: note that module support is ready for production use
Bryan C. Mills [Fri, 24 Jan 2020 15:26:24 +0000 (10:26 -0500)]
doc/go1.14: note that module support is ready for production use

The public proxy and checksum database launched with Go 1.13 have been
running smoothly, pkg.go.dev is serving module-aware documentation,
and in 1.14 we have improved the vendoring workflow and finished
Subversion support to reach parity with GOPATH mode for users of those
features, updated documentation (including the “How to Write Go Code”
intro document) and published blog posts describing common modes of
usage, and improved the migration path for existing v2+ modules by
making version resolution less aggressive about "+incompatible" major
versions.

We (always) have more fit-and-finish work to do, but at this point we
believe that module mode will provide a better user experience than
GOPATH mode for most users, including in production use.

Change-Id: I897e0a43e3aebe4c90553c414337a46bfc9c2bef
Reviewed-on: https://go-review.googlesource.com/c/go/+/216317
Reviewed-by: Jay Conrod <jayconrod@google.com>
Reviewed-by: Katie Hockman <katie@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
4 years agodoc/go1.14: document the new GOINSECURE variable
Bryan C. Mills [Fri, 24 Jan 2020 19:57:41 +0000 (14:57 -0500)]
doc/go1.14: document the new GOINSECURE variable

Fixes #36746

Change-Id: Iab9eaceb743ee52c82e7645216a671362189a021
Reviewed-on: https://go-review.googlesource.com/c/go/+/216380
Reviewed-by: witchard <ben.witchard@gmail.com>
Reviewed-by: Russ Cox <rsc@golang.org>
4 years agostrconv: stop describing Unicode graphic characters as non-ASCII
Ian Lance Taylor [Sun, 26 Jan 2020 16:12:58 +0000 (08:12 -0800)]
strconv: stop describing Unicode graphic characters as non-ASCII

Fixes #36778

Change-Id: I3c4ce100fc219bda0ff1d7a086c2309ed695691d
Reviewed-on: https://go-review.googlesource.com/c/go/+/216478
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
4 years agocmd/vendor: provide riscv64 support in tools/go/analysis/passes/asmdecl
Joel Sing [Fri, 24 Jan 2020 15:55:01 +0000 (02:55 +1100)]
cmd/vendor: provide riscv64 support in tools/go/analysis/passes/asmdecl

Manually add riscv64 support.

Currently being added via https://go-review.googlesource.com/c/tools/+/216337.

Updates #27532

Change-Id: I0e1f7c0eeca4e85ae588f427eff818bb7946a851
Reviewed-on: https://go-review.googlesource.com/c/go/+/216262
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agovendor: provide golang.org/x/sys/cpu/cpu_riscv64.go
Joel Sing [Fri, 24 Jan 2020 15:39:59 +0000 (02:39 +1100)]
vendor: provide golang.org/x/sys/cpu/cpu_riscv64.go

Manually provide golang.org/x/sys/cpu/cpu_riscv64.go until such time
as this code can be updated, post release.

This already exists in x/sys/cpu via:

  https://go-review.googlesource.com/c/sys/+/206860

Update #27532

Change-Id: I57d598ef737642f9c3aa7b280c6c680477ae7633
Reviewed-on: https://go-review.googlesource.com/c/go/+/216261
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agotest: adjust tests for riscv64
Joel Sing [Fri, 24 Jan 2020 16:10:04 +0000 (03:10 +1100)]
test: adjust tests for riscv64

This disables some tests that are unsupported on riscv64 and adds support
for risc64 to test/nosplit.

Updates #27532, #36739 and #36765

Change-Id: I0a57797a05bc80236709fc240c0a0efb0ee0d16b
Reviewed-on: https://go-review.googlesource.com/c/go/+/216263
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agocmd/go: disable link syso test on linux/riscv64
Joel Sing [Fri, 24 Jan 2020 15:24:02 +0000 (02:24 +1100)]
cmd/go: disable link syso test on linux/riscv64

This test requires support for external linking, which does not currently
exist on linux/riscv64.

Updates #27532 and #36739

Change-Id: Ia0cdf69f1830b995f2882b47d1bc0be82c4b3039
Reviewed-on: https://go-review.googlesource.com/c/go/+/216259
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agocmd/objdump: disable unsupported tests on riscv64
Joel Sing [Fri, 24 Jan 2020 15:21:28 +0000 (02:21 +1100)]
cmd/objdump: disable unsupported tests on riscv64

Updates #27532, #36738 and #36739.

Change-Id: If10031c6fd2c8ec2aa8c37f7edb148d8f26f8697
Reviewed-on: https://go-review.googlesource.com/c/go/+/216258
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agocmd/vendor: cherry pick asm_linux_riscv64.s for x/sys/unix
Joel Sing [Fri, 24 Jan 2020 15:32:52 +0000 (02:32 +1100)]
cmd/vendor: cherry pick asm_linux_riscv64.s for x/sys/unix

Manually cherry pick asm_linux_riscv64.s from x/sys/unix rev 4c3a92842,
as needed for the linux/riscv64 port.

Normally this would be a vendor update, however this is significantly
more risky at this point in time - a full update can be done post release.

Updates #27532

Change-Id: I03bb191bc44dcd24b9a29243957b88d7a9091852
Reviewed-on: https://go-review.googlesource.com/c/go/+/216260
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agodoc/go1.14: mention math/big.GCD argument change
Brian Kessler [Fri, 24 Jan 2020 06:12:41 +0000 (23:12 -0700)]
doc/go1.14: mention math/big.GCD argument change

Change-Id: Ib3b5f64471e7b9794b15a97ba86ba001f2c7d2ae
Reviewed-on: https://go-review.googlesource.com/c/go/+/216200
Reviewed-by: Robert Griesemer <gri@golang.org>
4 years agoRevert "runtime: don't hold worldsema across mark phase"
Michael Knyszek [Fri, 24 Jan 2020 16:51:11 +0000 (16:51 +0000)]
Revert "runtime: don't hold worldsema across mark phase"

This reverts commit 7b294cdd8df0a9523010f6ffc80c59e64578f34b, CL 182657.

Reason for revert: This change may be causing latency problems
for applications which call ReadMemStats, because it may cause
all goroutines to stop until the GC completes.

https://golang.org/cl/215157 fixes this problem, but it's too
late in the cycle to land that.

Updates #19812.

Change-Id: Iaa26f4dec9b06b9db2a771a44e45f58d0aa8f26d
Reviewed-on: https://go-review.googlesource.com/c/go/+/216358
Run-TryBot: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
4 years agoRevert "runtime: release worldsema before Gosched in STW GC mode"
Michael Knyszek [Fri, 24 Jan 2020 16:50:53 +0000 (16:50 +0000)]
Revert "runtime: release worldsema before Gosched in STW GC mode"

This reverts commit 05511a5c0ae238325c10b0e4e44c3f66f928e4cf, CL 208379.

Reason for revert: So that we can cleanly revert
https://golang.org/cl/182657.

Change-Id: I4fdf4f864a093db7866b3306f0f8f856b9f4d684
Reviewed-on: https://go-review.googlesource.com/c/go/+/216357
Run-TryBot: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
4 years agocmd/link: ensure cgo cflags do not leak into dwarf tests
Carlos Amedee [Thu, 23 Jan 2020 21:05:29 +0000 (16:05 -0500)]
cmd/link: ensure cgo cflags do not leak into dwarf tests

Running the dwarf tests with CGO_CFLAGS set
with certain values would cause the test to fail. all.bash
would fail when CGO_CFLAGS was set to '-mmacosx-version-min=10.10'
because the --macosx-version-min flag is incompatible with some dwarf
tests. The change guards against using an unintended flag in the unit test.

Updates #35459

Change-Id: Idc9b354aba44fdab424cb0081a4b3ea7a6d0f8e3
Reviewed-on: https://go-review.googlesource.com/c/go/+/216177
Run-TryBot: Carlos Amedee <carlos@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agoruntime: update deltimer comments
Draven [Fri, 24 Jan 2020 10:56:15 +0000 (10:56 +0000)]
runtime: update deltimer comments

Change-Id: I5f4c21bf650b9825ebd98330ac9faa7371a562be
GitHub-Last-Rev: 4a2e9aabe91935001300619b6f58c67f05e9f3c7
GitHub-Pull-Request: golang/go#36728
Reviewed-on: https://go-review.googlesource.com/c/go/+/216223
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agoRevert "runtime: speed up receive on empty closed channel"
Alexander Rakoczy [Thu, 23 Jan 2020 22:56:39 +0000 (22:56 +0000)]
Revert "runtime: speed up receive on empty closed channel"

This reverts CL 181543 (git e1446d9cee91af263af15efe8291644b590bb9ff)

Reason for revert: Caused a regression in the race detector.

Updates #32529
Fixes #36714

Change-Id: Ifefe6784f86ea72f414a89f131c239e9c9fd74eb
Reviewed-on: https://go-review.googlesource.com/c/go/+/216158
Run-TryBot: Alexander Rakoczy <alex@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Reviewed-by: Austin Clements <austin@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agocmd/go: fix cgo test when min macOS version is set
Jay Conrod [Fri, 24 Jan 2020 16:25:52 +0000 (08:25 -0800)]
cmd/go: fix cgo test when min macOS version is set

Regression tests for #24161 use a macro to conditionally compile some
stub definitions. The macro tests that the minimum macOS version is
less than 10.12.

We get duplicate definitions when building this test with
CGO_CFLAGS=-mmacosx-version-min=10.x where 10.x < 10.12. With this
change, we use a different macro, __MAC_OS_X_VERSION_MAX_ALLOWED__,
which tests the SDK version instead of the minimum macOS version. This
checks whether these definitions are present in headers.

After this change, 'go tool dist test cgo_test' should pass with
CGO_FLAGS=-mmacosx-version-min=10.10.

Updates #35459

Change-Id: I88d63601c94b0369c73c38d216a2d41ba7d4e579
Reviewed-on: https://go-review.googlesource.com/c/go/+/216243
Run-TryBot: Jay Conrod <jayconrod@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

4 years agotext/template/parse: remove redundant return
Ariel Mashraki [Thu, 23 Jan 2020 21:00:29 +0000 (23:00 +0200)]
text/template/parse: remove redundant return

Change the `itemChar` clause to be like all other clauses
that don't return a different state function than the default.

Change-Id: I56c863a7d699c1264b24b42ef23138ec47eaacd8
Reviewed-on: https://go-review.googlesource.com/c/go/+/216117
Reviewed-by: Rob Pike <r@golang.org>
Run-TryBot: Rob Pike <r@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

4 years agocrypto/x509: mitigate CVE-2020-0601 verification bypass on Windows
Filippo Valsorda [Tue, 21 Jan 2020 19:45:15 +0000 (14:45 -0500)]
crypto/x509: mitigate CVE-2020-0601 verification bypass on Windows

An attacker can trick the Windows system verifier to use a poisoned set
of elliptic curve parameters for a trusted root, allowing it to generate
spoofed signatures. When this happens, the returned chain will present
the unmodified original root, so the actual signatures won't verify (as
they are invalid for the correct parameters). Simply double check them
as a safety measure and mitigation.

Windows users should still install the system security patch ASAP.

This is the same mitigation adopted by Chromium:

https://chromium-review.googlesource.com/c/chromium/src/+/1994434

Change-Id: I2c734f6fb2cb51d906c7fd77034318ffeeb3e146
Reviewed-on: https://go-review.googlesource.com/c/go/+/215905
Run-TryBot: Filippo Valsorda <filippo@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ryan Sleevi <sleevi@google.com>
Reviewed-by: Katie Hockman <katie@golang.org>
4 years agocmd/link: ensure cgo cflags do not leak into tvOS test
Carlos Amedee [Wed, 22 Jan 2020 20:30:52 +0000 (15:30 -0500)]
cmd/link: ensure cgo cflags do not leak into tvOS test

Running the 'TestBuildForTvOS' test with CGO_CFLAGS set
with certain values would cause the test to fail. all.bash
would fail when CGO_CFLAGS was set to '-mmacosx-version-min=10.10'
because the --macosx-version-min flag is incompatible with tvOS.
The change guards against using an unintended flag in the unit test.

Updates #35459

Change-Id: Ifc43f3ebfb23d37aabeaac2ea9efae5b877991bf
Reviewed-on: https://go-review.googlesource.com/c/go/+/215957
Run-TryBot: Carlos Amedee <carlos@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
4 years agotime: document how Parse handles two-digit years
Kirill Tatchihin [Thu, 23 Jan 2020 16:14:40 +0000 (16:14 +0000)]
time: document how Parse handles two-digit years

Fixes #36549

Change-Id: Ia803330fc046d5807bbefd67acb419cb81640a13
GitHub-Last-Rev: bd354319083bf80c250e1915f2be6860d2f7d14b
GitHub-Pull-Request: golang/go#36584
Reviewed-on: https://go-review.googlesource.com/c/go/+/214980
Reviewed-by: Rob Pike <r@golang.org>
4 years agocmd/go: add a control case to the mod_vendor_trimpath test
Bryan C. Mills [Thu, 23 Jan 2020 17:51:26 +0000 (12:51 -0500)]
cmd/go: add a control case to the mod_vendor_trimpath test

In reviewing CL 215940, it took me a while to find the control
condition for the test, which was located in build_cache_trimpath.txt.

We could consolidate the two tests, but since they check for
regressions of separate issues (with separate root-causes), I think it
makes sense to keep them separate.

However, I would like the control condition to be present in the same
source file, so that we'll be more likely to update both cases if the
behavior of one of them is changed.

Updates #36566

Change-Id: Ic588f1dfb7977dd78d1d5ef61b9841e22bad82e6
Reviewed-on: https://go-review.googlesource.com/c/go/+/216018
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
4 years agocmd/go: make Script/test_regexps less flaky under load
Daniel Martí [Tue, 21 Jan 2020 10:21:17 +0000 (10:21 +0000)]
cmd/go: make Script/test_regexps less flaky under load

With the command below, I was able to reproduce failures within the
first 50 or so runs:

go test -c -o test && stress -p 32 ./test -test.run Script/test_regexp

When printing the full failure output, we'd see:

BenchmarkX
    BenchmarkX: x_test.go:13: LOG: X running N=1
BenchmarkX/Y
    BenchmarkX/Y: x_test.go:15: LOG: Y running N=1
    BenchmarkX/Y: x_test.go:15: LOG: Y running N=100
    BenchmarkX/Y: x_test.go:15: LOG: Y running N=10000
    BenchmarkX/Y: x_test.go:15: LOG: Y running N=1000000
    BenchmarkX/Y: x_test.go:15: LOG: Y running N=100000000
    BenchmarkX/Y: x_test.go:15: LOG: Y running N=1000000000
BenchmarkX/Y          1000000000          0.000050 ns/op
    BenchmarkX/Y: x_test.go:15: LOG: Y running N=1
    BenchmarkX/Y: x_test.go:15: LOG: Y running N=30
    BenchmarkX/Y: x_test.go:15: LOG: Y running N=1207
    BenchmarkX/Y: x_test.go:15: LOG: Y running N=120700
    BenchmarkX/Y: x_test.go:15: LOG: Y running N=12070000
    BenchmarkX/Y: x_test.go:15: LOG: Y running N=1000000000
BenchmarkX/Y          1000000000          0.000715 ns/op

In other words, the N values aren't required to be exact. It seems like
they are cut short if the machine is under stress. That's the exact
scenario we reproduce above, since I used -p=32 on my laptop with only 4
real CPU cores.

First, don't require each line to be present. Instead, use patterns
that span multiple lines, so that we can just match the first and last
N= lines.

Second, don't require the last N= lines to be exact; simply require
them to have a reasonably large number of digits.

Fixes #36664.

Change-Id: I7a9818f1a07099fa6482a26da2ac5cbea0f8ab30
Reviewed-on: https://go-review.googlesource.com/c/go/+/215578
Run-TryBot: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>

4 years agocmd/go: unify trimpath logic for -mod=vendor, -mod=mod
Jay Conrod [Wed, 22 Jan 2020 23:46:11 +0000 (15:46 -0800)]
cmd/go: unify trimpath logic for -mod=vendor, -mod=mod

If a package has a module with a version, the package's directory is
replaced with the module path and version, followed by the package's
path within the module.

This is a follow up to CL 214945. We no longer check whether the
module has a directory (with -mod=vendor, it does not).

Updates #36566

Change-Id: I5bc952b13bc7b4659f58ee555bd6c6a087eb7792
Reviewed-on: https://go-review.googlesource.com/c/go/+/215940
Run-TryBot: Jay Conrod <jayconrod@google.com>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
4 years agoruntime: add missing code for linux/riscv64
Joel Sing [Wed, 22 Jan 2020 16:42:07 +0000 (03:42 +1100)]
runtime: add missing code for linux/riscv64

Makes linux/riscv64 runtime buildable.

Updates #27532

Change-Id: I91bcadaaecb8ff3ffd70fcb437b2b6e4bbe11eda
Reviewed-on: https://go-review.googlesource.com/c/go/+/215839
Run-TryBot: Joel Sing <joel@sing.id.au>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
4 years agocmd/internal/obj/riscv: restore the ADDI instruction in jalrToSym
Joel Sing [Wed, 22 Jan 2020 16:31:49 +0000 (03:31 +1100)]
cmd/internal/obj/riscv: restore the ADDI instruction in jalrToSym

While this instruction is not needed for the relocation (the lower immediate
can be patched directly into the JALR instruction), other code currently
depends on the jump sequence being 12 bytes (or three instructions) long.
Put the ADDI instruction back until these can be found and fixed.

Updates #27532

Change-Id: Idb73d716be8eb2eb796591b30f1ec4dc104f2bf8
Reviewed-on: https://go-review.googlesource.com/c/go/+/215840
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

4 years agocmd/internal/obj/riscv: add missing instructions to the ternary expansion list
Joel Sing [Wed, 22 Jan 2020 16:33:54 +0000 (03:33 +1100)]
cmd/internal/obj/riscv: add missing instructions to the ternary expansion list

Updates #27532

Change-Id: I5beb7941c204755948350b181c713b046bc4f1f1
Reviewed-on: https://go-review.googlesource.com/c/go/+/215841
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

4 years agocmd/dist: print error if GOROOT is inside a module
Jay Conrod [Wed, 22 Jan 2020 23:30:03 +0000 (15:30 -0800)]
cmd/dist: print error if GOROOT is inside a module

Fixes #36701

Change-Id: I22738235e7a7ee06bc5d748213aab523aad8cf12
Reviewed-on: https://go-review.googlesource.com/c/go/+/215939
Run-TryBot: Jay Conrod <jayconrod@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Marwan Sulaiman <marwan.sameer@gmail.com>
4 years agoRevert "net/http: support gzip, x-gzip Transfer-Encodings"
Filippo Valsorda [Wed, 22 Jan 2020 01:06:37 +0000 (01:06 +0000)]
Revert "net/http: support gzip, x-gzip Transfer-Encodings"

This reverts commit e6c12c3d0296251f1d5a96ebde811dbfd4a914fe.

Reason for revert: the assumption that a T-E of "gzip" implies
"chunked" seems incorrect. The RFC does state that one "MUST apply
chunked as the final transfer coding" but that should be interpreted to
mean that a "chunked" encoding must be listed as the last one, not that
one should be assumed to be there if not. This is confirmed by the
alternative option to chunking on the server side being to "terminate
the message by closing the connection".

The issue seems confirmed by the fact that the code in the body of
#29162 fails with the following error:

    net/http: HTTP/1.x transport connection broken: http: failed to gunzip body: unexpected EOF

This late in the cycle, revert rather than fix, also because we don't
apparently have tests for the correct behavior.

Change-Id: I920ec928754cd8e96a06fb7ff8a53316c0f959e5
Reviewed-on: https://go-review.googlesource.com/c/go/+/215757
Run-TryBot: Filippo Valsorda <filippo@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Katie Hockman <katie@golang.org>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
4 years agoruntime: document special memmove requirements
Austin Clements [Mon, 6 Jan 2020 16:10:26 +0000 (11:10 -0500)]
runtime: document special memmove requirements

Unlike C's memmove, Go's memmove must be careful to do indivisible
writes of pointer values because it may be racing with the garbage
collector reading the heap.

We've had various bugs related to this over the years (#36101, #13160,
 #12552). Indeed, memmove is a great target for optimization and it's
easy to forget the special requirements of Go's memmove.

The CL documents these (currently unwritten!) requirements. We're also
adding a test that should hopefully keep everyone honest going
forward, though it's hard to be sure we're hitting all cases of
memmove.

Change-Id: I2f59f8d8d6fb42d2f10006b55d605b5efd8ddc24
Reviewed-on: https://go-review.googlesource.com/c/go/+/213418
Reviewed-by: Cherry Zhang <cherryyz@google.com>
4 years agoruntime: don't skip checkTimers if we would clear deleted timers
Ian Lance Taylor [Wed, 22 Jan 2020 00:50:56 +0000 (16:50 -0800)]
runtime: don't skip checkTimers if we would clear deleted timers

The timers code used to have a problem: if code started and stopped a
lot of timers, as would happen with, for example, lots of calls to
context.WithTimeout, then it would steadily use memory holding timers
that had stopped but not been removed from the timer heap.
That problem was fixed by CL 214299, which would remove all deleted
timers whenever they got to be more than 1/4 of the total number of
timers on the heap.

The timers code had a different problem: if there were some idle P's,
the running P's would have lock contention trying to steal their timers.
That problem was fixed by CL 214185, which only acquired the timer lock
if the next timer was ready to run or there were some timers to adjust.

Unfortunately, CL 214185 partially undid 214299, in that we could now
accumulate an increasing number of deleted timers while there were no
timers ready to run. This CL restores the 214299 behavior, by checking
whether there are lots of deleted timers without acquiring the lock.

This is a performance issue to consider for the 1.14 release.

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

4 years agocmd/dist: mark cgo as disabled on linux/riscv64
Joel Sing [Wed, 22 Jan 2020 16:46:00 +0000 (03:46 +1100)]
cmd/dist: mark cgo as disabled on linux/riscv64

cgo is not currently supported on this platform.

Updates #27532 and #36641

Change-Id: I4b35f887e869ebc5c156dd754b1c79897a8c5800
Reviewed-on: https://go-review.googlesource.com/c/go/+/215838
Reviewed-by: Cherry Zhang <cherryyz@google.com>
4 years agocmd/dist: detect gohostarch on riscv64 hosts
Joel Sing [Wed, 22 Jan 2020 16:30:14 +0000 (03:30 +1100)]
cmd/dist: detect gohostarch on riscv64 hosts

Updates #27532

Change-Id: I66c194499bb7b831b569c66d0736fa7205eedd80
Reviewed-on: https://go-review.googlesource.com/c/go/+/215837
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agocmd/internal/obj/riscv: implement prologue and epilogue
Joel Sing [Sun, 3 Nov 2019 17:32:32 +0000 (04:32 +1100)]
cmd/internal/obj/riscv: implement prologue and epilogue

Based on riscv-go port.

Updates #27532

Change-Id: If552225552bf8d27c29b08de31146dd34986a3a1
Reviewed-on: https://go-review.googlesource.com/c/go/+/204630
Run-TryBot: Joel Sing <joel@sing.id.au>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
4 years agocmd/go: add -d flag to mod_get_test
Jay Conrod [Tue, 21 Jan 2020 22:50:36 +0000 (14:50 -0800)]
cmd/go: add -d flag to mod_get_test

'go get all' was run in this test without -d. This caused some std
packages to be reinstalled if the test is run in a slightly different
configuration than make.bash was run. run.bash would fail in some
situations because of this. Nothing in the cmd/go tests should modify
installed std or cmd packages.

Updates #35459

Change-Id: Idd259a27d55502923b7fc54f361a77f0ac11eea2
Reviewed-on: https://go-review.googlesource.com/c/go/+/215721
Run-TryBot: Jay Conrod <jayconrod@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Michael Matloob <matloob@golang.org>
4 years agocmd/internal/obj/riscv: populate DWARF register mapping for riscv64
Joel Sing [Sat, 18 Jan 2020 15:19:06 +0000 (02:19 +1100)]
cmd/internal/obj/riscv: populate DWARF register mapping for riscv64

Updates #27532

Change-Id: If147242c45d5c2d5cdc5b0428db32eeec13a958a
Reviewed-on: https://go-review.googlesource.com/c/go/+/215377
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

4 years agocmd/internal/obj/riscv: correctly split immediates for FLW/FLD/FSW/FSD
Joel Sing [Thu, 16 Jan 2020 15:51:40 +0000 (02:51 +1100)]
cmd/internal/obj/riscv: correctly split immediates for FLW/FLD/FSW/FSD

The FLW/FLD/FSW/FSD instructions can have immediates that exceed 12-bits and
therefore cannot be encoded in the RISCV instruction. Handle these as we do
for other load/store instructions. Also add test coverage for all load/store
instructions with large immediates.

Fixes compilation issue reported by Carlos Eduardo de Paula.

Updates #27532

Change-Id: Ifa62f19493b3acaba5a90ac31d2df209a3afea81
Reviewed-on: https://go-review.googlesource.com/c/go/+/215037
Reviewed-by: Carlos Eduardo de Paula <me@carlosedp.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

4 years agonet/http/httputil: add docs about X-Forwarded-For in ReverseProxy
Kévin Dunglas [Tue, 21 Jan 2020 21:48:41 +0000 (21:48 +0000)]
net/http/httputil: add docs about X-Forwarded-For in ReverseProxy

ReverseProxy automatically sets the X-Forwarded-For header, if the request
already contains a X-Forwarded-For header, the value of the client IP is
appended to the existing header value.
This behavior isn't documented anywhere, and can lead to IP spoofing
security issues is the client is untrusted (the most common situation).
This PR documents this behavior.

For future versions, I proposed #36678 that implements a more secure
default behavior and adds support for other forwarded headers.

Change-Id: Ief14f5063caebfccb87714f54cffa927c714e5fd
GitHub-Last-Rev: fd0bd29a181861ffdb1106b42f59f9489999ccb3
GitHub-Pull-Request: golang/go#36672
Reviewed-on: https://go-review.googlesource.com/c/go/+/215617
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
4 years agoruntime: fix wrong offset when calling ppc64x nanotime syscall
Carlos Eduardo Seo [Fri, 17 Jan 2020 20:59:59 +0000 (17:59 -0300)]
runtime: fix wrong offset when calling ppc64x nanotime syscall

There is a wrong offset when getting the results of a clock_gettime
syscall. Although the syscall will never be called in native ppc64x,
QEMU doesn't implement VDSO, so it will return wrong values.

Fixes #36592

Change-Id: Icf838075228dcdd62cf2c1279aa983e5993d66ee
Reviewed-on: https://go-review.googlesource.com/c/go/+/215397
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
4 years agotest: disable test for #36516 when cgo is not enabled
Tobias Klauser [Sun, 19 Jan 2020 19:05:15 +0000 (20:05 +0100)]
test: disable test for #36516 when cgo is not enabled

CL 214679 added a -race test which shouldn't be run when cgo is not
enabled.

Fixes the nocgo builder.

Change-Id: Iceddf802c4ef6c0de2c3a968e86342303d2d27d8
Reviewed-on: https://go-review.googlesource.com/c/go/+/215477
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>