]> Cypherpunks repositories - gostls13.git/log
gostls13.git
6 years agosyscall: update check for UserNS support for CentOS 7.5+
EduRam [Tue, 17 Jul 2018 22:59:35 +0000 (22:59 +0000)]
syscall: update check for UserNS support for CentOS 7.5+

Fixes #26385

Change-Id: I5594564f42898a71d30531e5132bddb3a6915247
GitHub-Last-Rev: fbd7b38b0419e21ecd22fe802ede5c0ee3f14a9a
GitHub-Pull-Request: golang/go#26427
Reviewed-on: https://go-review.googlesource.com/124555
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agocmd/go: search test imports when matching -coverpkg
Ian Lance Taylor [Fri, 6 Jul 2018 22:22:56 +0000 (15:22 -0700)]
cmd/go: search test imports when matching -coverpkg

Fixes #25093

Change-Id: If283275e2b73621ade56d014e60c2d18199b366c
Reviewed-on: https://go-review.googlesource.com/122555
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
6 years agodoc: improve the garbage collection discussion
Rob Pike [Tue, 17 Jul 2018 09:57:24 +0000 (19:57 +1000)]
doc: improve the garbage collection discussion

Bring it up to date with recent terminology, mention new approaches
such as in Rust, and link to the new blog post.

Change-Id: I1d0b121e6f8347c3cf2c8ca0d8adc8285ce59ef1
Reviewed-on: https://go-review.googlesource.com/124475
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agodoc/go1.11: compiler and runtime release notes
Austin Clements [Tue, 17 Jul 2018 21:49:37 +0000 (17:49 -0400)]
doc/go1.11: compiler and runtime release notes

Change-Id: I487bdf0c828d28b2122bd93934dc5a9a5dbc6a00
Reviewed-on: https://go-review.googlesource.com/124517
Reviewed-by: Austin Clements <austin@google.com>
6 years agodoc/go1.11: fix some typos
Austin Clements [Tue, 17 Jul 2018 21:27:26 +0000 (17:27 -0400)]
doc/go1.11: fix some typos

Change-Id: I3c0cb9b56776d8cc78a96ef012385c31f9f0e146
Reviewed-on: https://go-review.googlesource.com/124516
Reviewed-by: Austin Clements <austin@google.com>
6 years agopath/filepath: make Walk example runnable in the playground
Mostyn Bramley-Moore [Wed, 4 Jul 2018 21:32:59 +0000 (23:32 +0200)]
path/filepath: make Walk example runnable in the playground

Relates to #9679

Change-Id: I68951f664d2a03812dae309c580c181869d8af21
Reviewed-on: https://go-review.googlesource.com/122237
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agodoc: minor go1.11 changes
Filippo Valsorda [Mon, 16 Jul 2018 22:14:58 +0000 (18:14 -0400)]
doc: minor go1.11 changes

CL 124135 follow-ups.

Change-Id: Ib7e2066bd2d18851561e03386709a1b42b50fcef
Reviewed-on: https://go-review.googlesource.com/124136
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Andrew Bonventre <andybons@golang.org>
6 years agocmd/go: run git log with --no-show-signature
Frank Schroeder [Sat, 14 Jul 2018 21:58:07 +0000 (21:58 +0000)]
cmd/go: run git log with --no-show-signature

Git timestamp parsing is broken when fetching modules if the
local git configuration has 'log.showsignature=true'.

Fixes #26388

Change-Id: I47f92381784072335a2a465de56092106c616108
GitHub-Last-Rev: 96f988c0a2dd39a5747ec4a7bad05e7e8ee0d384
GitHub-Pull-Request: golang/go#26389
Reviewed-on: https://go-review.googlesource.com/123958
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: Russ Cox <rsc@golang.org>
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agocmd/cgo: update JNI's jobject to uintptr check for newer Android NDKs
Steeve Morin [Tue, 17 Jul 2018 15:55:01 +0000 (15:55 +0000)]
cmd/cgo: update JNI's jobject to uintptr check for newer Android NDKs

In Android's NDK16, jobject is now declared as:
    #ifdef __cplusplus
    class _jobject {};
    typedef _jobject*       jobject;
    #else /* not __cplusplus */
    typedef void*           jobject;
    #endif

This makes the jobject to uintptr check fail because it expects the
following definition:
    struct _jobject;
    typedef struct _jobject *jobject;

Update the type check to handle that new type definition in both C and
C++ modes.

Fixes #26213

Change-Id: Ic36d4a5176526998d2d5e4e404f8943961141f7a
GitHub-Last-Rev: 42037c3c584579c2b3281c25372b830e864e7aec
GitHub-Pull-Request: golang/go#26221
Reviewed-on: https://go-review.googlesource.com/122217
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
6 years agodoc/go1.11: explain new vet typechecking behaviour in release notes
Alberto Donizetti [Thu, 28 Jun 2018 18:22:13 +0000 (20:22 +0200)]
doc/go1.11: explain new vet typechecking behaviour in release notes

Since Go1.10, go test runs vet on the tests before executing them.

Moreover, the vet tool typechecks the package under analysis with
go/types before running. In Go1.10, a typechecking failure just caused
a warning to be printed. In Go1.11, a typechecking failure will cause
vet to exit with a fatal error (see Issue #21287).

This means that starting with Go1.11, tests that don't typecheck will
fail immediately. This would not normally be an issue, since a test
that doesn't typecheck shouldn't even compile, and it should already
be broken.

Unfortunately, there's a bug in gc that makes it accept programs with
unused variables inside a closure (Issue #3059). This means that a
test with an unused variable inside a closure, that compiled and
passed in Go1.10, will fail in the typechecking step of vet starting
with Go1.11.

Explain this in the 1.11 release notes.

Fixes #26109

Change-Id: I970c1033ab6bc985d8c64bd24f56e854af155f96
Reviewed-on: https://go-review.googlesource.com/121455
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agoRevert "runtime: fix lldb test after DWARF compression"
Austin Clements [Tue, 17 Jul 2018 15:38:35 +0000 (11:38 -0400)]
Revert "runtime: fix lldb test after DWARF compression"

This reverts commit c99300229de4e69220790c71da14785dc52c3d68.

The original CL skipped the lldb test if it couldn't read compressed
DWARF, but lldb can never read compressed DWARF, so this effectively
disabled this test unconditionally.

The previous commit disabled DWARF compression for this test, so the
test now works on its own merits again. This CL reverts the change to
skip the test so we don't simply mask lldb failures.

Updates #25925.

Change-Id: I3e1c787b658257b542c3c70807065dde9cfe05ee
Reviewed-on: https://go-review.googlesource.com/124386
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoruntime: disable compressed DWARF for lldb test
Austin Clements [Tue, 17 Jul 2018 15:36:29 +0000 (11:36 -0400)]
runtime: disable compressed DWARF for lldb test

lldb doesn't support compressed DWARF, so right now we're just always
skipping the lldb test. This CL makes the test run again by disabling
compressed DWARF just for this test.

Updates #25925.

Change-Id: Ib9ddc442305fe6d37060d48f36bc4458b6fd8c86
Reviewed-on: https://go-review.googlesource.com/124385
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agocmd/compile: keep autos if their address reaches a control value
Michael Munday [Tue, 17 Jul 2018 07:39:30 +0000 (08:39 +0100)]
cmd/compile: keep autos if their address reaches a control value

Autos must be kept if their address reaches the control value of a
block. We didn't see this before because it is rare for an auto's
address to reach a control value without also reaching a phi or
being written to memory. We can probably optimize away the
comparisons that lead to this scenario since autos cannot alias
with pointers from elsewhere, however for now we take the
conservative approach and just ensure the auto is properly
initialised if its address reaches a control value.

Fixes #26407.

Change-Id: I02265793f010a9e001c3e1a5397c290c6769d4de
Reviewed-on: https://go-review.googlesource.com/124335
Reviewed-by: David Chase <drchase@google.com>
6 years agocmd/go: add new test script facility
Russ Cox [Thu, 12 Jul 2018 16:36:34 +0000 (12:36 -0400)]
cmd/go: add new test script facility

The original cmd/go tests were tiny shell scripts
written against a library of shell functions.
They were okay to write but difficult to run:
you couldn't select individual tests (with -run)
they didn't run on Windows, they were slow, and so on.

CL 10464 introduced go_test.go's testgo framework
and later CLs translated the test shell script over to
individual go tests. This let us run tests selectively,
run tests on Windows, run tests in parallel, isolate
different tests, and so on. It was a big advance.

The tests had always been awkward to write.
Here was the first test in test.bash:

TEST 'file:line in error messages'
# Test that error messages have file:line information at beginning of
# the line. Also test issue 4917: that the error is on stderr.
d=$(TMPDIR=/var/tmp mktemp -d -t testgoXXX)
fn=$d/err.go
echo "package main" > $fn
echo 'import "bar"' >> $fn
./testgo run $fn 2>$d/err.out || true
if ! grep -q "^$fn:" $d/err.out; then
echo "missing file:line in error message"
cat $d/err.out
ok=false
fi
rm -r $d

The final Go version of this test was:

func TestFileLineInErrorMessages(t *testing.T) {
tg := testgo(t)
defer tg.cleanup()
tg.parallel()
tg.tempFile("err.go", `package main; import "bar"`)
path := tg.path("err.go")
tg.runFail("run", path)
shortPath := path
if rel, err := filepath.Rel(tg.pwd(), path); err == nil && len(rel) < len(path) {
shortPath = rel
}
tg.grepStderr("^"+regexp.QuoteMeta(shortPath)+":", "missing file:line in error message")
}

It's better but still quite difficult to skim.

This CL introduces a new facility meant as a successor to the testgo
approach that brings back the style of writing tests as little scripts,
but they are now scripts in a built-for-purpose shell-like language,
not bash itself. In this new form, the test above is a single file,
testdata/script/fileline.txt:

# look for short, relative file:line in error message
! go run ../../gopath/x/y/z/err.go
stderr ^..[\\/]x[\\/]y[\\/]z[\\/]err.go:

-- ../x/y/z/err.go --
package main; import "bar"

The file is a txtar text archive (see CL 123359) in which the leading comment
is the test script and the files are the initial state of the temporary file
system where the script runs.

Each script runs as a subtest, so that they can still be selected individually.

The scripts are kept isolated from each other by default,
so all script subtests are treated as parallel tests, for the
testing package to run in parallel. Even for the 15 tests in
this CL, that cuts the time for TestScript from 5.5s to 2.5s.

The scripts do not have access to the cmd/go source directory,
nor to cmd/go/testdata, so they are prevented from creating temporary
files in those places or modifying existing ones. (Many existing tests
scribble in testdata, unfortunately, especially testdata/pkg when
they run builds with GOPATH=testdata.)

This CL introduces the script facility and converts 15 tests.
The txtar archive form will allow us to delete the large trees of trivial
files in testdata; a few are deleted in this CL.

See testdata/script/README for details and a larger conversion example.

As part of converting testdata/script/test_badtest.txt,
I discovered that 'go test' was incorrectly printing a FAIL line
to stderr (not stdout) in one corner case. This CL fixes that
to keep the test passing.

Future CLs will convert more tests.

Change-Id: I11aa9e18dd2d4c7dcd8e310dbdc6a1ea5f7e54c1
Reviewed-on: https://go-review.googlesource.com/123577
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agodoc: update Usage section of the FAQ
Rob Pike [Mon, 16 Jul 2018 10:32:05 +0000 (20:32 +1000)]
doc: update Usage section of the FAQ

This is close to a complete rewrite, as the content was pretty old.

The CL includes links to the Wiki for information about companies
using Go, a new section about IDEs and editors¹, and a restatement
of the foreign function interface story. It also modernizes and
expands a little on the use of Go inside Google.

¹ Ed is the standard editor.

Change-Id: I5e54aafa53d00d86297b2691960a376b40f6225b
Reviewed-on: https://go-review.googlesource.com/123922
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agodoc: rewrite run-on sentence in garbage collection discussion
Rob Pike [Mon, 16 Jul 2018 21:22:41 +0000 (07:22 +1000)]
doc: rewrite run-on sentence in garbage collection discussion

Change-Id: I60cb7010448757ca4c7a2973bee2277b3d5fc439
Reviewed-on: https://go-review.googlesource.com/124175
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agocmd/go: fix handling of vet.cfg with buggyInstall
Ian Lance Taylor [Tue, 17 Jul 2018 02:09:24 +0000 (19:09 -0700)]
cmd/go: fix handling of vet.cfg with buggyInstall

The vet action assumes that a.Deps[0] is the compilation action for
which vet information should be generated. However, when using
-linkshared, the action graph is built with a ModeBuggyInstall action
to install the shared library built from the compilation action.
Adjust the set up of the vet action accordingly. Also don't clean up
the working directory after completing the buggy install.

Updates #26400

Change-Id: Ia51f9f6b8cde5614a6f2e41b6207478951547770
Reviewed-on: https://go-review.googlesource.com/124275
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
6 years agocmd/go/internal/cache: squelch cache init warnings when $HOME is /
Zev Goldstein [Mon, 9 Jul 2018 02:31:28 +0000 (22:31 -0400)]
cmd/go/internal/cache: squelch cache init warnings when $HOME is /

Docker sets $HOME to / when running with a UID that doesn't exist within
the container.  This not  uncommon on CI servers.

Fixes #26280

Change-Id: Ic7ff62b41403fe6e7c0cef12814667ef73f6c954
Reviewed-on: https://go-review.googlesource.com/122487
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agohttp/internal: document final CRLF behavior on chunkedWriter
Eric Daniels [Tue, 17 Jul 2018 00:49:55 +0000 (00:49 +0000)]
http/internal: document final CRLF behavior on chunkedWriter

Change-Id: I0f76b40dbfda2d382c88aec377db1851c4ac7441

Change-Id: I0f76b40dbfda2d382c88aec377db1851c4ac7441
GitHub-Last-Rev: ab42559278d8cba9e025b431a459d117500a73da
GitHub-Pull-Request: golang/go#26410
Reviewed-on: https://go-review.googlesource.com/124255
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agocmd/go: handle relative temp dir
Russ Cox [Fri, 13 Jul 2018 19:55:50 +0000 (15:55 -0400)]
cmd/go: handle relative temp dir

Most programs seem to accept a relative temp dir, as weird as that might be.

Also, the meaning of relative is a little more fluid on Windows:
TMP=\temp is relative (to the current drive) but will work well enough.

Also, Windows GetTempPath automatically converts a relative
%TMP% into an absolute path, so we'd be imposing different
behavior for GOTMPDIR vs TMP.

It seems easier and more consistent to just impose the obvious
meaning than to add an error we can only implement some of
the time.

Originally got here because "cmd/go:" should be"go:" in error message,
but the error message is gone now.

Fixes #23264.

Change-Id: I3c3fb801cbd5e652364f1f62bb3881e9317e3581
Reviewed-on: https://go-review.googlesource.com/123876
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agocmd/internal/buildid: close ELF file after reading note
Ian Lance Taylor [Mon, 16 Jul 2018 23:17:27 +0000 (16:17 -0700)]
cmd/internal/buildid: close ELF file after reading note

Updates #26400

Change-Id: I1747d1f1018521cdfa4b3ed13412a944829967cf
Reviewed-on: https://go-review.googlesource.com/124235
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoarchive/zip: fix regression when writing directories
Joe Tsai [Mon, 16 Jul 2018 20:05:25 +0000 (13:05 -0700)]
archive/zip: fix regression when writing directories

Several adjustments:

1) When encoding the FileHeader for a directory, explicitly set all of the sizes
to zero regardless of their prior values. These values are currently populated
by FileInfoHeader as it calls os.FileInfo.Size regardless of whether the file is
a directory or not. We avoid fixing FileInfoHeader now as it is too late in the
release cycle (see #24082).

We silently adjust slightly wrong FileHeader fields as opposed to returning
an error because the CreateHeader method already does such mutations
(e.g., for UTF-8 detection, data descriptor, etc).

2) Have dirWriter.Write only return an error if some number of bytes are written.
Some code still call Write for both normal files and directories, but just pass
an empty []byte to Write for directories.

Change-Id: I85492a31356107fcf76dc89ceb00a28853754289
Reviewed-on: https://go-review.googlesource.com/124155
Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agodoc: populate and add go1.11 notes related to crypto
Filippo Valsorda [Mon, 16 Jul 2018 20:25:06 +0000 (16:25 -0400)]
doc: populate and add go1.11 notes related to crypto

Change-Id: I8163d06e5099d7ac39b04ccadf7f6533967db2f5
Reviewed-on: https://go-review.googlesource.com/124135
Reviewed-by: Andrew Bonventre <andybons@golang.org>
6 years agocrypto/x509: add GODEBUG option x509ignoreCN=1
Filippo Valsorda [Thu, 12 Jul 2018 23:19:45 +0000 (19:19 -0400)]
crypto/x509: add GODEBUG option x509ignoreCN=1

When x509ignoreCN=1 is present in GODEBUG, ignore the deprecated Common
Name field. This will let people test a behavior we might make the
default in the future, and lets a final class of certificates avoid the
NameConstraintsWithoutSANs error.

Updates #24151

Change-Id: I1c397aa1fa23777b9251c311d02558f9a5bdefc0
Reviewed-on: https://go-review.googlesource.com/123695
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Adam Langley <agl@golang.org>
6 years agocrypto/x509: ignore Common Name when it does not parse as a hostname
Filippo Valsorda [Wed, 11 Jul 2018 19:59:56 +0000 (15:59 -0400)]
crypto/x509: ignore Common Name when it does not parse as a hostname

The Common Name is used as a hostname when there are no Subject
Alternative Names, but it is not restricted by name constraints. To
protect against a name constraints bypass, we used to require SANs for
constrained chains. See the NameConstraintsWithoutSANs error.

This change ignores the CN when it does not look like a hostname, so we
can avoid returning NameConstraintsWithoutSANs.

This makes it possible to validate certificates with non-hostname CN
against chains that use name constraints to disallow all names, like the
Estonian IDs.

Updates #24151

Change-Id: I798d797990720a01ad9b5a13336756cc472ebf44
Reviewed-on: https://go-review.googlesource.com/123355
Reviewed-by: Adam Langley <agl@golang.org>
6 years agomisc/cgo: fix darwin test, again
Keith Randall [Mon, 16 Jul 2018 17:45:25 +0000 (10:45 -0700)]
misc/cgo: fix darwin test, again

TARGET_OS_OSX is the right macro, but it also was only introduced
in 1.12.  For 1.11 and earlier a reasonable substitution is
TARGET_OS_IPHONE == 0.

Update #24161
Update #26355

Change-Id: I5f43c463d14fada9ed1d83cc684c7ea05d94c5f3
Reviewed-on: https://go-review.googlesource.com/124075
Run-TryBot: Keith Randall <khr@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agodoc: move the go1.11 "all" section elsewhere, add os/signal.Ignored, GOMIPS64
Brad Fitzpatrick [Mon, 16 Jul 2018 18:37:13 +0000 (18:37 +0000)]
doc: move the go1.11 "all" section elsewhere, add os/signal.Ignored, GOMIPS64

Change-Id: Ice8f82a6288eeadfb8efd7628444166a447831da
Reviewed-on: https://go-review.googlesource.com/124096
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agodoc: add more to go1.11, sort, remove dups
Brad Fitzpatrick [Mon, 16 Jul 2018 18:22:26 +0000 (18:22 +0000)]
doc: add more to go1.11, sort, remove dups

Change-Id: I20a82f6b47cd3ab4ca22d222e6d8a2c59d57e2a4
Reviewed-on: https://go-review.googlesource.com/124095
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agodoc: flesh out go1.11 notes
Brad Fitzpatrick [Mon, 16 Jul 2018 17:05:59 +0000 (17:05 +0000)]
doc: flesh out go1.11 notes

Change-Id: I0152d3c1d980e271fbcdb9d5def094d3c837a4f4
Reviewed-on: https://go-review.googlesource.com/124055
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agodoc: add net/http additions to go1.11 notes
Brad Fitzpatrick [Mon, 16 Jul 2018 16:35:04 +0000 (16:35 +0000)]
doc: add net/http additions to go1.11 notes

Change-Id: Ib2da2b0ceb33867a41b0b9b7e4dcecb11f964b73
Reviewed-on: https://go-review.googlesource.com/124035
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agocmd/cgo: add note about bug writing C pointers to uninitialized C memory
Ian Lance Taylor [Thu, 12 Jul 2018 18:57:05 +0000 (11:57 -0700)]
cmd/cgo: add note about bug writing C pointers to uninitialized C memory

Describe the problem as a bug, since it is not implied by the rest of
the pointer passing rules, and it may be possible to fix it.

Updates #19928

Change-Id: I2d336e7336b2a215c0b8cf909a203201ef1b054e
Reviewed-on: https://go-review.googlesource.com/123658
Reviewed-by: Austin Clements <austin@google.com>
6 years agocmd/go: make TestNewReleaseRebuildsStalePackagesInGOPATH pass again
Ian Lance Taylor [Fri, 13 Jul 2018 16:57:17 +0000 (09:57 -0700)]
cmd/go: make TestNewReleaseRebuildsStalePackagesInGOPATH pass again

The test TestNewReleaseRebuildsStalePackagesInGOPATH is not run in
short mode, so people tend to not notice when it fails. It was failing
due to the build cache. Make it pass again by 1) changing it to modify
the package in a way visible to the compiler, so that the change is
not hidden by caching; 2) accepting "not installed but available in
build cache" as always being a valid reason for a stale package, as go
list does not try to figure out an underlying reason for why a package
is stale when it finds it in the build cache but not installed.

Updates #24436

Change-Id: Iaeaa298f153451ec913a653dd4e6da79a33055bb
Reviewed-on: https://go-review.googlesource.com/123815
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
6 years agodoc/go1.11: update with latest output from x/build/cmd/relnote
Andrew Bonventre [Mon, 16 Jul 2018 14:22:18 +0000 (10:22 -0400)]
doc/go1.11: update with latest output from x/build/cmd/relnote

Change-Id: I4055ecc39b1b250cce7b32241f13dbc05567361f
Reviewed-on: https://go-review.googlesource.com/124015
Reviewed-by: Bryan C. Mills <bcmills@google.com>
6 years agoruntime/pprof: add a fake mapping when /proc/self/maps is unavailable
Hana (Hyang-Ah) Kim [Fri, 13 Jul 2018 20:11:24 +0000 (16:11 -0400)]
runtime/pprof: add a fake mapping when /proc/self/maps is unavailable

Profile's Mapping field is currently populated by reading /proc/self/maps.
On systems where /proc/self/maps is not available, the profile generated
by Go's runtime will not have any Mapping entry. Pprof command then adds
a fake entry and links all Location entries in the profile with the fake
entry to be used during symbolization.
https://github.com/google/pprof/blob/a8644067d5a3c9a6386e7c88fa4a3d9d37877ca3/internal/driver/fetch.go#L437

The fake entry is not enough to suppress the error or warning messages
pprof command produces. We need to tell pprof that Location entries are
symbolized already by Go runtime and pprof does not have to attempt to
perform further symbolization.

In #25743, we made Go runtime mark Mapping entries with HasFunctions=true
when all Location entries from the Mapping entries are successfully
symbolized. This change makes the Go runtime add a fake mapping entry,
otherwise the pprof command tool would add, and set the HasFunctions=true
following the same logic taken when the real mapping information is
available.

Updates #19790.
Fixes #26255. Tested pprof doesn't report the error message any more
for pure Go program.

Change-Id: Ib12b62e15073f5d6c80967e44b3e8709277c11bd
Reviewed-on: https://go-review.googlesource.com/123779
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agodoc: update Design and Types sections of the FAQ
Rob Pike [Sat, 14 Jul 2018 06:46:57 +0000 (16:46 +1000)]
doc: update Design and Types sections of the FAQ

Update #26107.

Change-Id: I8bfa5b01ce953c53f7fd7a866d0ece61ba04c618
Reviewed-on: https://go-review.googlesource.com/123919
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agodoc: update Values, Writing Code, and Pointers and Allocation sections of the FAQ
Rob Pike [Sat, 14 Jul 2018 04:52:31 +0000 (14:52 +1000)]
doc: update Values, Writing Code, and Pointers and Allocation sections of the FAQ

Significant surgery done to the Versioning section, bringing it closer to
modern thinking.

Also add a question about constants.

Update #26107.

Change-Id: Icf70b7228503c6baaeab0b95ee3e6bee921575aa
Reviewed-on: https://go-review.googlesource.com/123918
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agodoc: update Implementation and Performance sections of the FAQ
Rob Pike [Sat, 14 Jul 2018 04:06:28 +0000 (14:06 +1000)]
doc: update Implementation and Performance sections of the FAQ

Changes are mostly about making more about now than about the past,
changing some verb tenses, and mentioning gollvm (which should
be pronounced "gollum" if you ask me).

Update #26107

Change-Id: I6c14f42b9fc2684259d4ba8bc149d7ec9bb83d15
Reviewed-on: https://go-review.googlesource.com/123917
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agodoc: rearrange the description of GOMAXPROCS
Rob Pike [Thu, 12 Jul 2018 23:08:13 +0000 (09:08 +1000)]
doc: rearrange the description of GOMAXPROCS

The old text was written when it was only 1 by default, which
changed a long time ago.

Also add a note that GOMAXPROCS does not limit the total
number of threads.

Change-Id: I104ccd7266d11335320a4d7f5671fb09ed641f88
Reviewed-on: https://go-review.googlesource.com/123916
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agomisc/cgo: fix test on iOS
Keith Randall [Sun, 15 Jul 2018 00:18:45 +0000 (17:18 -0700)]
misc/cgo: fix test on iOS

The test in CL 123715 doesn't work on iOS, it needs to use a different
version scheme to determine whether SecKeyAlgorithm and friends exist.
Restrict the old version test to OSX only.

The same problem occurs on iOS: the functions tested don't exist before
iOS 10.  But we don't have builders below iOS 10, so it isn't a big issue.
If we ever get older builders, or someone wants to run all.bash on an
old iOS, they'll need to figure out the right incantation.

Update #24161
Update #26355

Change-Id: Ia3ace86b00486dc172ed00c0c6d668a95565bff7
Reviewed-on: https://go-review.googlesource.com/123959
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agocmd/vet,sync: check lock values more precisely
Dan Kortschak [Sun, 1 Jul 2018 00:03:55 +0000 (09:33 +0930)]
cmd/vet,sync: check lock values more precisely

Fixes #26165

Change-Id: I1f3bd193af9b6f8461c736330952b6e50d3e00d9
Reviewed-on: https://go-review.googlesource.com/121876
Reviewed-by: Alan Donovan <adonovan@google.com>
Run-TryBot: Rob Pike <r@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agonet/http: don't cancel Request.Context on pipelined Server requests
Brad Fitzpatrick [Fri, 13 Jul 2018 19:31:35 +0000 (19:31 +0000)]
net/http: don't cancel Request.Context on pipelined Server requests

See big comment in code.

Fixes #23921

Change-Id: I2dbd1acc2e9da07a71f9e0640aafe0c59a335627
Reviewed-on: https://go-review.googlesource.com/123875
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agoos/exec: document ExtraFiles is not supported on windows
Adam Shannon [Fri, 13 Jul 2018 18:44:51 +0000 (13:44 -0500)]
os/exec: document ExtraFiles is not supported on windows

Fixes #26182

Change-Id: I1181e191f4742f166c9b67a6f41332a237cf0ede
Reviewed-on: https://go-review.googlesource.com/123855
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agocmd/go: fix module replace flag parsed bug
Baokun Lee [Fri, 13 Jul 2018 20:17:19 +0000 (04:17 +0800)]
cmd/go: fix module replace flag parsed bug

In CL 122404, we change -replace syntax from => to =.
And we also need to change this and the tests.

Fixes golang/go#26373.

Change-Id: I2d4e85e10c1578540cc7673b93d849270940d776
Reviewed-on: https://go-review.googlesource.com/123778
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Run-TryBot: Bryan C. Mills <bcmills@google.com>

6 years agocmd/go: remove windows Skip in test that wasn't removed
Brad Fitzpatrick [Fri, 13 Jul 2018 20:56:46 +0000 (20:56 +0000)]
cmd/go: remove windows Skip in test that wasn't removed

Was supposed to be removed from CL 123757

Change-Id: I74405adab58be103f8e4a0c2405567f480a0e622
Reviewed-on: https://go-review.googlesource.com/123895
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
6 years agocmd/go: fix TestModFindModulePath on Windows
Russ Cox [Fri, 13 Jul 2018 20:38:24 +0000 (16:38 -0400)]
cmd/go: fix TestModFindModulePath on Windows

The os.RemoveAll(tg.tempdir) was not a good idea.

Change-Id: I6f78cff887044186649cbf3ee04a58abdbcb71e2
Reviewed-on: https://go-review.googlesource.com/123757
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
6 years agoregexp: reword Match documentation to be more like Find
Russ Cox [Fri, 13 Jul 2018 14:28:56 +0000 (10:28 -0400)]
regexp: reword Match documentation to be more like Find

Before:

  // Find returns a slice holding the text of the leftmost match in b of the regular expression.

  // Match checks whether a textual regular expression matches a byte slice.

After:

  // Match reports whether the byte slice b contains any match of the regular expression re.

The use of different wording for Find and Match always makes me think
that Match required the entire string to match while Find clearly allows
a substring to match.

This CL makes the Match wording correspond more closely to Find,
to try to avoid that confusion.

Change-Id: I97fb82d5080d3246ee5cf52abf28d2a2296a5039
Reviewed-on: https://go-review.googlesource.com/123736
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agocmd/link: eliminate a couple of unused DWARF attrs
Than McIntosh [Wed, 11 Jul 2018 16:30:05 +0000 (12:30 -0400)]
cmd/link: eliminate a couple of unused DWARF attrs

The linker's DWARF generation occasionally computes and attaches an
attribute X to a type even though the type's abbrev doesn't have the
specified attr. For example, the DW_TAG_subroutine_type abbrev entry
has no type attribute, but a type attr is given to it (wasting
memory). Similarly there are some places where a byte size attr is
added to a DIE whose abbrev lacks that attr. This patch trims away a
few of these not-needed attrs, saving some very tiny amount of memory.

Updates #26186

Change-Id: I69e853df468ac54b07772a614b4106d7c4dae01d
Reviewed-on: https://go-review.googlesource.com/123296
Reviewed-by: Heschi Kreinick <heschi@google.com>
Run-TryBot: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agoruntime: check tgkill error in Debug tests
Ian Lance Taylor [Wed, 11 Jul 2018 04:07:55 +0000 (21:07 -0700)]
runtime: check tgkill error in Debug tests

Updates #25519

Change-Id: Ibcdf948fd38d8d02d467b62213566ec0d7ce0d6a
Reviewed-on: https://go-review.googlesource.com/123180
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
6 years agohttp/http/httputil: add ReverseProxy.ErrorHandler
Julien Salleyron [Mon, 13 Nov 2017 22:32:07 +0000 (23:32 +0100)]
http/http/httputil: add ReverseProxy.ErrorHandler

This permits specifying an ErrorHandler to customize the RoundTrip
error handling if the backend fails to return a response.

Fixes #22700
Fixes #21255

Change-Id: I8879f0956e2472a07f584660afa10105ef23bf11
Reviewed-on: https://go-review.googlesource.com/77410
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agocmd/go: call flag.Parse to properly initialize test environment variables
Jakub Čajka [Fri, 13 Jul 2018 13:23:12 +0000 (15:23 +0200)]
cmd/go: call flag.Parse to properly initialize test environment variables

Executing tests in src/cmd/go/internal/modfetch/codehost/git_test.go in enviroment
witout outside connectivity in to the internet results in tests failure:

2018/07/13 14:31:14 git clone --mirror https://vcs-test.golang.org/git/gitrepo1 /tmp/gitrepo-test-996701800/gitrepo2 in : exit status 128:
        Cloning into bare repository '/tmp/gitrepo-test-996701800/gitrepo2'...
        fatal: unable to access 'https://vcs-test.golang.org/git/gitrepo1/': Could not resolve host: vcs-test.golang.org
FAIL    cmd/go/internal/modfetch/codehost       0.307s

Fixes #26007

Change-Id: Ia39d8b3215c920dad6c0c58ffabb0b2ab39bb55c
Reviewed-on: https://go-review.googlesource.com/123735
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agonet/http: correct use of byte slice in js syscall
Johan Brandhorst [Thu, 12 Jul 2018 16:32:02 +0000 (16:32 +0000)]
net/http: correct use of byte slice in js syscall

syscall/js does not allow []byte to be used in direct inputs to
its JavaScript manipulation methods since
https://github.com/golang/go/commit/bafe466a9537d8ea5ac5767504628803302ebb12.
Unfortunately, this use of a byte slice was missed, so any
uses of the WASM Roundtripper with a body will panic.
This ensures the byte slice is appropriately converted
before being passed to syscall.

Fixes #26349

Change-Id: I83847645d71ce310c1eee3decddbac990fae166b
GitHub-Last-Rev: 3914bda2ff457deba4b76182a48d26ce8948b4cb
GitHub-Pull-Request: golang/go#26350
Reviewed-on: https://go-review.googlesource.com/123537
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
Reviewed-by: Richard Musiol <neelance@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agocmd/go/internal/modload: more aggressive symlink analysis in FindModulePath
Dmitry Doroginin [Fri, 13 Jul 2018 12:31:01 +0000 (12:31 +0000)]
cmd/go/internal/modload: more aggressive symlink analysis in FindModulePath

Fixes golang/go#26217.

Change-Id: I0c456047ee31aa78b72acc413446651ca8c3882a
GitHub-Last-Rev: b700554d883b43b57c6619e31a5f8fcb22b1d71f
GitHub-Pull-Request: golang/vgo#5
Reviewed-on: https://go-review.googlesource.com/123755
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
6 years agonet/url: don't escape sub-delims in fragment
Kunpei Sakai [Fri, 8 Sep 2017 15:39:20 +0000 (00:39 +0900)]
net/url: don't escape sub-delims in fragment

According to RFC-3986, the sub-delims chars should not be escaped in
fragment.
So this change fixes current behavior a bit.

Fixes #19917

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

6 years agomisc/cgo/test: fix issue 24161 test for 1.11 and earlier
Keith Randall [Thu, 12 Jul 2018 23:51:27 +0000 (16:51 -0700)]
misc/cgo/test: fix issue 24161 test for 1.11 and earlier

The test uses functions from C that were introduced in OSX 1.12.
Include stubs for those functions when compiling for 1.11 and earlier.
This test really a compile-time test, it doesn't matter much what the
executed code actually does.
Use a nasty #define hack to work around the fact that cgo doesn't
support static global variables.

Update #24161
Fixes #26355

Change-Id: Icf6f7bc9b6b36cacc81d5d0e033a2ebaff7e0298
Reviewed-on: https://go-review.googlesource.com/123715
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agodoc: update Concurrency, Functions and Methods, and Control Flow sections
Rob Pike [Thu, 12 Jul 2018 05:57:56 +0000 (15:57 +1000)]
doc: update Concurrency, Functions and Methods, and Control Flow sections

Many parts of the FAQ are dusty and need cleaning up.
This is the first of a series of changes to bring it up to date.
Since it was first written at the time of release, some of the
ideas and background have changed, and some historical
remarks are largely irrelevant now.

Update #26107.

Change-Id: I1f36df7d8ecc8a1a033d5ac4fa1edeece25ed6b4
Reviewed-on: https://go-review.googlesource.com/123496
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agogo/types: record type information after detecting error
Rebecca Stambler [Thu, 12 Jul 2018 16:52:18 +0000 (12:52 -0400)]
go/types: record type information after detecting error

The existing implementation stops recording type information once it
encounters an error. This results in missing type information that is
needed by various tools. This change handles a few commonly encountered
cases by continuing to check subtrees after errors. Also, add tests for
cases where the package fails to type-check.

Updates #22467

Change-Id: I1bb48d4cb8ae5548dca63bdd785ea2f69329e92b
Reviewed-on: https://go-review.googlesource.com/123578
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
6 years agonet/http: update bundled http2
Brad Fitzpatrick [Thu, 12 Jul 2018 19:12:38 +0000 (19:12 +0000)]
net/http: update bundled http2

Updates bundled x/net/http2 to git rev d0887baf81f4 for:

    http2: ignore unknown 1xx responses like HTTP/1
    https://golang.org/cl/123615

    http2: fix bug in earlier CL 123615
    https://golang.org/cl/123675

Also along for the ride, but without any effect:

    http2: export a field of an internal type for use by net/http
    https://golang.org/cl/123656

Fixes #26189
Updates #17739

Change-Id: I1955d844d74113efbcbbdaa7d7a7faebb2225b45
Reviewed-on: https://go-review.googlesource.com/123676
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agocmd/go: fix tests from x/vgo repo
Russ Cox [Thu, 12 Jul 2018 17:52:14 +0000 (13:52 -0400)]
cmd/go: fix tests from x/vgo repo

This CL fixes up tests from the x/vgo repo that are failing
on some of the builders.
It will be submitted together with CL 123576.

Change-Id: I6bec81a93ad4f7116e8edc8c15beafa25747530c
Reviewed-on: https://go-review.googlesource.com/123580
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agocmd/go: merge module support from x/vgo repo
Russ Cox [Thu, 12 Jul 2018 03:55:39 +0000 (23:55 -0400)]
cmd/go: merge module support from x/vgo repo

This CL corresponds to CL 123361, the final manual CL in that repo,
making this the final manual sync.

All future commits will happen in this repo (the main Go repo),
and we'll update x/vgo automatically with a fixed patch+script.

Change-Id: I572243309c1809727604fd704705a23c30e85d1a
Reviewed-on: https://go-review.googlesource.com/123576
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
6 years agonet/http: make Transport.CloseIdleConnections close non-bundled http2.Transport
Brad Fitzpatrick [Thu, 12 Jul 2018 18:47:31 +0000 (18:47 +0000)]
net/http: make Transport.CloseIdleConnections close non-bundled http2.Transport

Previously Transport.CloseIdleConnections only closed the HTTP/2
Transport's idle connections if the HTTP/2 transport was configured
automatically via the bundled copy (in h2_bundle.go).

This makes it also work if the user called http2.ConfigureTransport
themselves using golang.org/x/net/http2 instead of the bundled copy.

No tests because we have no current way to run such cross-repo tests,
at least in any efficient or non-flaky way.

Tested by hand that:

    package main

    import (
        "net/http"

        "golang.org/x/net/http2"
    )

    func main() {
        tr := &http.Transport{}
        http2.ConfigureTransport(tr)
        tr.CloseIdleConnections()
    }

... now works and calls the x/net/http2.Transport.CloseIdleConnections
code. (I threw in a print statement locally)

Fixes #22891 once CL 123656 is also in.

Change-Id: Id697fd3e7877c3a988bc3c3368b88940ba56cfd0
Reviewed-on: https://go-review.googlesource.com/123657
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agocmd/cgo: fix cgo bad typedefs
Keith Randall [Tue, 10 Jul 2018 20:47:15 +0000 (13:47 -0700)]
cmd/cgo: fix cgo bad typedefs

Two fixes:

1) Typedefs of the bad typedefs should also not be rewritten to the
   underlying type.  They shouldn't just be uintptr, though, they should
   retain the C naming structure.  For example, in C:

   typedef const __CFString * CFStringRef;
   typedef CFStringRef SecKeyAlgorithm;

   we want the Go:

   type _Ctype_CFStringRef uintptr
   type _Ctype_SecKeyAlgorithm = _Ctype_CFStringRef

2) We need more types than just function arguments/return values.
   At least we need types of global variables, so when we see a reference to:

   extern const SecKeyAlgorithm kSecKeyAlgorithmECDSASignatureDigestX962SHA1;

   we know that we need to investigate the type SecKeyAlgorithm.
   Might as well just find every typedef and check the badness of all of them.
   This requires looping until a fixed point of known types is reached.
   Usually it takes just 2 iterations, sometimes 3.

Fixes #24161

Change-Id: I32ca7e48eb4d4133c6242e91d1879636f5224ea9
Reviewed-on: https://go-review.googlesource.com/123177
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agocmd/compile: handle degenerate write barrier case
Keith Randall [Thu, 12 Jul 2018 18:44:05 +0000 (11:44 -0700)]
cmd/compile: handle degenerate write barrier case

If both branches of a write barrier test go to the same block,
then there's no unsafe points.

This can only happen if the resulting memory state is somehow dead,
which can only occur in degenerate cases, like infinite loops. No
point in cleaning up the useless branch in these situations.

Fixes #26024.

Change-Id: I93a7df9fdf2fc94c6c4b1fe61180dc4fd4a0871f
Reviewed-on: https://go-review.googlesource.com/123655
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agocmd/compile: add LocalAddr that takes SP,mem operands
David Chase [Tue, 3 Jul 2018 15:34:38 +0000 (11:34 -0400)]
cmd/compile: add LocalAddr that takes SP,mem operands

Lack of a well-defined order between VarDef and related
address operations sometimes causes problems with store order
and write barrier transformations; glitches in the order are
made irreparable (by later optimizations) if the two parts of
the glitch straddle a split in the original block caused by
insertion of a write barrier diamond.

Fix this by creating a LocalAddr for addresses of locals
(what VarDef matters for) that takes a memory input to
help make the order explicit.  Addr is modified to only
be legal for SB operand, so there is no overlap between
Addr and LocalAddr uses (there may be some downstream
cleanup from this).

Changes to generic.rules and rewrite.go ensure that codegen
tests continue to pass; CSE of LocalAddr is impaired, not
quite sure of the cost.

Fixes #26105.

Change-Id: Id4192b4440aa4e9d7ba54a465c456df9b530b515
Reviewed-on: https://go-review.googlesource.com/122483
Run-TryBot: David Chase <drchase@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
6 years agocmd/go: delete TestGoBuildDashA*
Russ Cox [Thu, 12 Jul 2018 04:16:00 +0000 (00:16 -0400)]
cmd/go: delete TestGoBuildDashA*

The behavior of -a no longer changes depending on which kind
of branch of Go you are using (the new build cache fixed all that).
These tests are not doing anything useful (and failing).

Change-Id: I1c65120a3e05286e888951d61bca4a903e2c1158
Reviewed-on: https://go-review.googlesource.com/123575
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agosyscall: convert Windows AddrinfoW.Addr from uintptr to syscall.Pointer
Brad Fitzpatrick [Wed, 11 Jul 2018 23:25:38 +0000 (23:25 +0000)]
syscall: convert Windows AddrinfoW.Addr from uintptr to syscall.Pointer

API compatibility violation, but it wasn't safe before and people
should be using golang.org/x/sys/windows instead.

Fixes #24820

Change-Id: I3b43493f56b3116924b9d848a294899279f314fd
Reviewed-on: https://go-review.googlesource.com/123455
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agoruntime: fix reference to funcdata.go in comment
Xia Bin [Thu, 12 Jul 2018 10:34:34 +0000 (18:34 +0800)]
runtime: fix reference to funcdata.go in comment

Change-Id: I6c8699cd71b41cf8d178a0af3a745a19dcf60905
Reviewed-on: https://go-review.googlesource.com/123536
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agotime: fix typo in Truncate example
Keith Rarick [Thu, 12 Jul 2018 06:08:21 +0000 (23:08 -0700)]
time: fix typo in Truncate example

The existing example code uses variable name d, but
prints t in its output. It's needlessly confusing.

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

6 years agonet/http: update bundled http2
Brad Fitzpatrick [Thu, 12 Jul 2018 05:02:36 +0000 (05:02 +0000)]
net/http: update bundled http2

Updates bundled x/net/http2 to git rev cffdcf67 for:

    http2: use GetBody unconditionally on Transport retry, when available
    https://golang.org/cl/123476

    http2: a closed stream cannot receive data
    https://golang.org/cl/111676

Updates #25009
Updates #25023

Change-Id: I84f50cc50c0fa5a3c34f0037a9cb1ef468e5f0d9
Reviewed-on: https://go-review.googlesource.com/123515
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agodoc: ArgsSizeUnknown it's defined in cmd/internal/objabi now
Xia Bin [Thu, 12 Jul 2018 06:35:39 +0000 (14:35 +0800)]
doc: ArgsSizeUnknown it's defined in cmd/internal/objabi now

Change-Id: I877c82788f3edbcb0b334b42049c1a06f36a6477
Reviewed-on: https://go-review.googlesource.com/123517
Reviewed-by: Rob Pike <r@golang.org>
6 years agotest: add test of valid code that gccgo failed to compile
Ian Lance Taylor [Thu, 12 Jul 2018 00:33:01 +0000 (17:33 -0700)]
test: add test of valid code that gccgo failed to compile

Updates #26340

Change-Id: I3bc7cd544ea77df660bbda7de99a009b63d5be1b
Reviewed-on: https://go-review.googlesource.com/123477
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agonet/http: add tests to validate that Client.Timeout closes connections
Brad Fitzpatrick [Wed, 11 Jul 2018 22:55:16 +0000 (22:55 +0000)]
net/http: add tests to validate that Client.Timeout closes connections

For #23399

Change-Id: I9bc7c21fda6bfa89af2e7656e5c85aa9edd4f29e
Reviewed-on: https://go-review.googlesource.com/123435
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agodoc: clarify a sentence about *_js.go
Rob Pike [Thu, 12 Jul 2018 01:37:17 +0000 (11:37 +1000)]
doc: clarify a sentence about *_js.go

Change "have to" to "need to" for clarity and to avoid a
peculiar English idiom.

Change-Id: Iec2b1f841d0353dd7925f8f934fe82d4ed059d7d
Reviewed-on: https://go-review.googlesource.com/123495
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agocmd/compile: fix ICE due to missing inline function body
Matthew Dempsky [Wed, 11 Jul 2018 23:43:51 +0000 (16:43 -0700)]
cmd/compile: fix ICE due to missing inline function body

For golang.org/cl/74110, I forgot that you can use range-based for
loops to extract key values from a map value.

This wasn't a problem for the binary format importer, because it was
more tolerant about missing inline function bodies. However, the
indexed importer is more particular about this.

We could potentially just make it more lenient like the binary
importer, but tweaking the logic here is easy enough and seems like
the preferable solution.

Fixes #26341.

Change-Id: I54564dcd0be60ea393f8a0f6954b7d3d61e96ee5
Reviewed-on: https://go-review.googlesource.com/123475
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
6 years agocmd/dist: enable build cache always
Russ Cox [Wed, 11 Jul 2018 18:31:17 +0000 (14:31 -0400)]
cmd/dist: enable build cache always

GOCACHE=off is not a reliable signal of user intent.

At startup the go command fills in an empty GOCACHE with the effective setting.
If $HOME is set, then GOCACHE ends up somewhere in $HOME/.cache.
But if $HOME is unset, then the go command sets GOCACHE=off explicitly.

That environment is used for invoking "go tool dist".

So if the machine has no $HOME, then go tool dist ends up with the cache
disabled even though the user was not trying to disable the cache.
This affects the linux-ppc64le builder, which appears to be unique
among builders in not having $HOME set. So that builder is running
with no build cache.

Now that there is a cmd/go test that needs the cache to be on,
the linux-ppc64le builder is failing.

In the next release we intend to force the use of the build cache
always. This CL is not doing that: it's only forcing the use of the
build cache during all.bash, which won't affect the majority of
our users (they run pre-build binary releases).

If this is a problem we can roll it back and fix the linux-ppc64le
builders some other way.

While we're here, print a few more useful variables in 'go tool dist env'
and sort the output.

Change-Id: I66548aa8990d0794cbc0f2069b739ab1834898dd
Reviewed-on: https://go-review.googlesource.com/123297
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agodoc: mention that *_js.go files are now ignored and treated like a GOOS
Brad Fitzpatrick [Wed, 11 Jul 2018 21:30:09 +0000 (21:30 +0000)]
doc: mention that *_js.go files are now ignored and treated like a GOOS

Fixes #26329

Change-Id: Id87fd106e69d3d9682653eb753b1de616adeed2b
Reviewed-on: https://go-review.googlesource.com/123416
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agotime: add clarification to Timer.Stop documentation
Caleb Martinez [Wed, 11 Jul 2018 13:40:14 +0000 (13:40 +0000)]
time: add clarification to Timer.Stop documentation

Fixes #26220

Change-Id: I05703912be594d985ad3ccb3a9757ae21ec738ab
GitHub-Last-Rev: e4649847e015e573ee169c7d6db29b9437841afd
GitHub-Pull-Request: golang/go#26293
Reviewed-on: https://go-review.googlesource.com/122715
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agodoc: update the minimum support Windows version
Brad Fitzpatrick [Wed, 11 Jul 2018 21:14:42 +0000 (21:14 +0000)]
doc: update the minimum support Windows version

Also, remove some test code that was trying to work on XP and fix up
some comments referencing XP.

Fixes #26191
Updates #23380

Change-Id: I0b7319fe1954afddb22d396e5ec91d8c960268d8
Reviewed-on: https://go-review.googlesource.com/123415
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agoruntime: don't say "different packages" if they may not be different
Ian Lance Taylor [Wed, 11 Jul 2018 20:51:39 +0000 (13:51 -0700)]
runtime: don't say "different packages" if they may not be different

Fix the panic message produced for an interface conversion error to
only say "types from different packages" if they are definitely from
different packges. If they may be from the same package, say "types
from different scopes."

Updates #18911
Fixes #26094

Change-Id: I0cea50ba31007d88e70c067b4680009ede69bab9
Reviewed-on: https://go-review.googlesource.com/123395
Reviewed-by: Austin Clements <austin@google.com>
6 years agocmd/link: use BestSpeed for DWARF compression
Austin Clements [Wed, 11 Jul 2018 20:13:04 +0000 (16:13 -0400)]
cmd/link: use BestSpeed for DWARF compression

DWARF compression accounts for roughly 30% of the linker's time. This
CL switches from DefaultCompression to BestSpeed, which virtually
eliminates this time. This roughly halves the overhead of handling
DWARF in the linker:

name \ time/op         nodwarf     dwarf        dwarf-speed
BuildCmdGoAll          10.0s ±11%   10.6s ± 5%   10.8s ± 5%
             nodwarf                  +6.41%       +8.03%
               dwarf                                 ~
LinkCmdGo              626ms ± 5%  1096ms ± 2%   860ms ± 2%
             nodwarf                 +75.17%      +37.36%
               dwarf                              -21.59%

Previously, enabling DWARF had a 75% overhead in link time for cmd/go.
This change reduces this overhead to 37% (a 22% reduction).

The effect on binary size is minimal compared to DefaultCompression,
and still substantially better than no compression:

             cmd/go bytes
nodwarf      10106953
dwarf        12159049 nodwarf+20%
dwarf-speed  12408905 nodwarf+23%
dwarf-nozlib 17766473 nodwarf+76%

Updates #26318.

Change-Id: I33bb7caa038a2753c29104501663daf4839e7054
Reviewed-on: https://go-review.googlesource.com/123356
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
6 years agoruntime: document philosophy behind runtime atomic usage
Austin Clements [Wed, 11 Jul 2018 13:02:46 +0000 (09:02 -0400)]
runtime: document philosophy behind runtime atomic usage

Based on Dmitry Vyukov's comments in CL 65210.

Change-Id: I5dce7286b0d180cd43cad3aaf70f537fafcda588
Reviewed-on: https://go-review.googlesource.com/123275
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Rick Hudson <rlh@golang.org>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
6 years agonet/http: fix rare Transport leak, remove incorrect defensive logic
Brad Fitzpatrick [Wed, 11 Jul 2018 17:35:13 +0000 (17:35 +0000)]
net/http: fix rare Transport leak, remove incorrect defensive logic

Remove some incorrect code that was present after since I added
support for idle timeouts in CL 22670.

This code actually caused a bug (a rare goroutine leak) rather than
prevent a bogus connection reuse.

The t.idleMu mutex already protects most the invariants, including an
explicit Stop call. There's only one Stop call on that timer, and it's
guarded by t.idleMu. What idleMu doesn't protect against is the timer
firing on its own. But we don't need code to protect against that case
because the goroutine that is created via AfterFunc when the timer
fires already checks the invariants:

  // closeConnIfStillIdle closes the connection if it's still sitting idle.
  // This is what's called by the persistConn's idleTimer, and is run in its
  // own goroutine.
  func (pc *persistConn) closeConnIfStillIdle() {
     t := pc.t
     t.idleMu.Lock()
     defer t.idleMu.Unlock()
     if _, ok := t.idleLRU.m[pc]; !ok {
       // Not idle.
       return
     }

(note the "Not idle." part).

Tested by hand with the repro code from #25621. No more leaks.

Fixes #25621

Change-Id: Idf011a4cb1fcd01f55a5a6269e4c0ee5f4446786
Reviewed-on: https://go-review.googlesource.com/123315
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agotest: add test case that failed with gccgo
Ian Lance Taylor [Wed, 11 Jul 2018 17:51:13 +0000 (10:51 -0700)]
test: add test case that failed with gccgo

Updates #26335

Change-Id: Ibfb1e232a0c66fa699842c8908ae5ff0f5d2177d
Reviewed-on: https://go-review.googlesource.com/123316
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agoruntime: correct new thread stack for openbsd MAP_STACK
Joel Sing [Mon, 9 Jul 2018 18:54:37 +0000 (04:54 +1000)]
runtime: correct new thread stack for openbsd MAP_STACK

OpenBSD 6.4 will require the stack pointer to be pointing at an area that is
marked as MAP_STACK when entering and exiting syscalls. Adjust the stack pointer
used for a new thread such that it points within the stack, not at the top of
it (i.e. outside).

Fixes #26142

Change-Id: I905bd8e5be3dfc325392e7ac490fb56a7c71b3aa
Reviewed-on: https://go-review.googlesource.com/122735
Reviewed-by: Austin Clements <austin@google.com>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agomisc/wasm: free up memory on exit
Richard Musiol [Thu, 5 Jul 2018 13:32:31 +0000 (15:32 +0200)]
misc/wasm: free up memory on exit

Private fields of the Go class are not used any more after the program
has exited. Delete them to allow JavaScript's garbage collection to
clean up the WebAssembly instance.

Updates #26193.

Change-Id: I349784a49eaad0c22ceedd4f859df97132775537
Reviewed-on: https://go-review.googlesource.com/122296
Run-TryBot: Richard Musiol <neelance@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Paul Jolly <paul@myitcv.org.uk>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agocmd/pprof: disable readline UI support for TERM=dumb
Hana (Hyang-Ah) Kim [Tue, 10 Jul 2018 04:44:21 +0000 (00:44 -0400)]
cmd/pprof: disable readline UI support for TERM=dumb

In general, dumb terminal indicates terminal with limited capability.
It may provide no support for special character sequences, e.g., no
handling of ANSI escape sequences. Its input/output handling behavior
may deviate from what's described in termios or terminfo. E.g., in
the shell in emacs, even after successfully setting the terminal to
raw mode, the terminal behaves as if it's still operating in canonical
mode since emacs is doing input processing first.

Readline support can be broken in various ways in dumb terminal mode,
so we want to disable readline or advanced UI features. The easiest
way to detect dumb terminal is to check the environment variable "TERM".

Fixes #26254

Change-Id: I6b652eb555bc03b84405aae08b0b25d111fbb8b0
Reviewed-on: https://go-review.googlesource.com/122879
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agointernal/poll: don't take read lock in SetBlocking
Ian Lance Taylor [Tue, 10 Jul 2018 23:44:56 +0000 (16:44 -0700)]
internal/poll: don't take read lock in SetBlocking

Taking a read lock in SetBlocking could cause SetBlocking to block
waiting for a Read in another goroutine to complete. Since SetBlocking
is called by os.(*File).Fd, that could lead to deadlock if the
goroutine calling Fd is going to use it to unblock the Read.
Use an atomic store instead.

Updates #24481

Change-Id: I79413328e06ddf28b6d5b8af7a0e29d5b4e1e6ff
Reviewed-on: https://go-review.googlesource.com/123176
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agoos: clarify that Close cancels pending I/O
Ian Lance Taylor [Tue, 10 Jul 2018 13:47:44 +0000 (06:47 -0700)]
os: clarify that Close cancels pending I/O

Change-Id: I6be6818d951a999f916c2266a6753a5ce5144ee7
Reviewed-on: https://go-review.googlesource.com/122955
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
6 years agoruntime/cgo: Add initial NetBSD Thread Sanitizer support
Kamil Rytarowski [Sat, 30 Jun 2018 23:29:41 +0000 (23:29 +0000)]
runtime/cgo: Add initial NetBSD Thread Sanitizer support

Recognize NetBSD in:
 - go/internal/work/init.go
 - race.bash
 - runtime/race/race.go

Add __ps_strings symbol in runtime/cgo/netbsd.go as this is
used internally in the TSan library for NetBSD and used for
ReExec().

Tested on NetBSD/amd64 v. 8.99.12.

Around 98% tests are passing for the ./race.bash target.

Updates #19273

Change-Id: Ic0e48d2fb159a7868aab5e17156eeaca1225e513
GitHub-Last-Rev: d6e082707b9b18df1fe63f723666f4d2eb5e6cfe
GitHub-Pull-Request: golang/go#24322
Reviewed-on: https://go-review.googlesource.com/99835
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agonet/http: clarify when it's allowed to reuse a Request
Brad Fitzpatrick [Mon, 9 Jul 2018 22:05:34 +0000 (22:05 +0000)]
net/http: clarify when it's allowed to reuse a Request

Fixes #21780

Change-Id: Ic6fb6a536fff800a05be2d25309f72092604a785
Reviewed-on: https://go-review.googlesource.com/122817
Reviewed-by: Andrew Bonventre <andybons@golang.org>
6 years agotest: add order of evaluation test case that gccgo got wrong
Ian Lance Taylor [Tue, 10 Jul 2018 20:25:46 +0000 (13:25 -0700)]
test: add order of evaluation test case that gccgo got wrong

Updates #23188

Change-Id: Idc5567546d1c4c592f997a4cebbbf483b85331e0
Reviewed-on: https://go-review.googlesource.com/123115
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agodoc/go1.11: mention import path restriction
Russ Cox [Tue, 10 Jul 2018 21:14:14 +0000 (17:14 -0400)]
doc/go1.11: mention import path restriction

Change-Id: I18a6915614a317adb4da710a01268b574300f0e0
Reviewed-on: https://go-review.googlesource.com/123096
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
6 years agocmd/compile: call objabi.PathToPrefix when emitting abstract fn
Than McIntosh [Tue, 10 Jul 2018 16:23:31 +0000 (12:23 -0400)]
cmd/compile: call objabi.PathToPrefix when emitting abstract fn

When generating an abstract function DIE, call objabi.PathToPrefix on
the import path so as to be consistent with how the linker handles
import paths. This is intended to resolve another problem with DWARF
inline info generation in which there are multiple inconsistent
versions of an abstract function DIE for a function whose package path
is rewritten/canonicalized by objabi.PathToPrefix.

Fixes #26237

Change-Id: I4b64c090ae43a1ad87f47587a1a71f19bc5fc8e8
Reviewed-on: https://go-review.googlesource.com/123036
Run-TryBot: Than McIntosh <thanm@google.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agointernal/bytealg: specify argmaps for exported functions
Keith Randall [Mon, 9 Jul 2018 18:09:42 +0000 (11:09 -0700)]
internal/bytealg: specify argmaps for exported functions

Functions exported on behalf of other packages need to have their
argument stack maps specified explicitly.  They don't get an implicit
map because they are not in the local package, and if they get defer'd
they need argument maps.

Fixes #24419

Change-Id: I35b7d8b4a03d4770ba88699e1007cb3fcb5397a9
Reviewed-on: https://go-review.googlesource.com/122676
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
6 years agogo/types: ignore artificial cycles introduced via method declarations
Robert Griesemer [Fri, 29 Jun 2018 21:46:57 +0000 (14:46 -0700)]
go/types: ignore artificial cycles introduced via method declarations

At the moment, method declarations are type-checked together with
they receiver base types. This is a known problem (to be fixed early
for Go 1.12) but with the new cycle detection algorithm now also
introduced artifical type cycles.

This change pushes a special marker on the cycle path in those cases
so that these cycles can be ignored.

Fixes #26124.

Change-Id: I64da4ccc32d4ae293da48880c892154a1c6ac3fe
Reviewed-on: https://go-review.googlesource.com/121757
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
6 years agocmd/go, cmd/cgo: only set TERM=dumb when running the compiler
Ian Lance Taylor [Tue, 10 Jul 2018 14:19:17 +0000 (07:19 -0700)]
cmd/go, cmd/cgo: only set TERM=dumb when running the compiler

The clang compiler on some terminals will issue colored error
messages, which can confuse tools like cgo. To avoid this we used to
set TERM=dumb for all programs started by the go tool. However, that
confuses the pprof tool, which doesn't know whether to support fancy
editing and colors itself.

Instead, change the go tool and the cgo tool to set TERM=dumb where it
matters--when invoking the C compiler--rather than in all cases.

Updates #26254

Change-Id: I95174f961ac269a50a83f5f9d268219043cba968
Reviewed-on: https://go-review.googlesource.com/122975
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agotest/codegen: add more test cases for arm64
Ben Shi [Sun, 8 Jul 2018 10:02:47 +0000 (10:02 +0000)]
test/codegen: add more test cases for arm64

More test cases of combined load for arm64.

Change-Id: I7a9f4dcec6930f161cbded1f47dbf7fcef1db4f1
Reviewed-on: https://go-review.googlesource.com/122582
Run-TryBot: Ben Shi <powerman1st@163.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
6 years agocmd/go: add ImportMap to go list package struct
Russ Cox [Tue, 10 Jul 2018 03:00:35 +0000 (23:00 -0400)]
cmd/go: add ImportMap to go list package struct

Also populate Imports for test main with go list -test.

Update comment in internal/load/test.go about
p.Imports, p.Internal.RawImports, and p.Imports
being perfectly aligned. The first two are,
but the third is not, as evidenced by CL 111175.

Since p.Imports is not aligned, don't assume that anymore.

Fixes #25949.

Change-Id: Icbfbc881bc01d1e195a759648fbd1c978ddbc161
Reviewed-on: https://go-review.googlesource.com/122878
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
6 years agogo/types: correctly compute cycle length
Robert Griesemer [Fri, 29 Jun 2018 21:11:46 +0000 (14:11 -0700)]
go/types: correctly compute cycle length

The existing algorithm assumed that the length of a cycle was simply
the number of elements in the cycle slice starting at the start object.
However, we use a special "indir" indirection object to indicate
pointer and other indirections that break the inline placement of
types in composite types. These indirection objects don't exist as
true named type objects, so don't count them anymore.

This removes an unnecessary cycle error in one of the existing tests
(testdata/issues.src:100).

Also:
- added more tracing support (only active if tracing is enabled)
- better documentation in parts
- r/check.typ/check.typExpr/ in a few of places where we don't
  need to record a type indirection

Found while investigating #26124.

Change-Id: I45341743225d979a72af3fbecfa05012b32fab67
Reviewed-on: https://go-review.googlesource.com/121755
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
6 years agoruntime/trace: comment newlines to restore correct doc summary
Alberto Donizetti [Tue, 10 Jul 2018 08:02:02 +0000 (10:02 +0200)]
runtime/trace: comment newlines to restore correct doc summary

Fixes #26309

Change-Id: I0e0b61b885817e514aa46e299b00833f16e98b2a
Reviewed-on: https://go-review.googlesource.com/122898
Reviewed-by: Айнар Гарипов <gugl.zadolbal@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agonet/http: update bundled http2
Michael Fraenkel [Tue, 10 Jul 2018 03:24:18 +0000 (23:24 -0400)]
net/http: update bundled http2

Updates http2 to x/net/http2 git rev 292b43b for:

    http2: reject incoming HEADERS in Server on half-closed streams
    https://golang.org/cl/111677

Updates #25023

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