]> Cypherpunks.ru repositories - gostls13.git/log
gostls13.git
6 years ago.github: recommend 'go bug' when filing an issue
Josh Bleecher Snyder [Mon, 24 Jul 2017 16:54:13 +0000 (09:54 -0700)]
.github: recommend 'go bug' when filing an issue

It was released with 1.8, so it should be widely available.

Change-Id: I7dcf205009b528071ea63f99cb5da0db183df341
Reviewed-on: https://go-review.googlesource.com/50932
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years ago.github: add SUPPORT file
Josh Bleecher Snyder [Mon, 24 Jul 2017 15:18:06 +0000 (08:18 -0700)]
.github: add SUPPORT file

GitHub recently added support for a SUPPORT file:

https://github.com/blog/2400-support-file-support

This SUPPORT file is a very lightly edited copy
of the wiki entry on asking questions:

https://github.com/golang/go/wiki/Questions

Change-Id: Ic1eb74d985ea30862defb99750fb42da84e492de
Reviewed-on: https://go-review.googlesource.com/50930
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoencoding/json: ignore embedded fields of pointers to unexported non-structs
Joe Tsai [Fri, 21 Jul 2017 23:53:54 +0000 (16:53 -0700)]
encoding/json: ignore embedded fields of pointers to unexported non-structs

https://golang.org/cl/33773 fixes the JSON marshaler to avoid serializing
embedded fields on unexported types of non-struct types. However, Go allows
embedding pointer to types, so the check for whether the field is a non-struct
type must first dereference the pointer to get at the underlying type.

Furthermore, due to a edge-case in the behavior of StructField.PkgPath not
being a reliable indicator of whether the field is unexported (see #21122),
we use our own logic to determine whether the field is exported or not.

The logic in this CL may be simplified depending on what happens in #21122.

Fixes #21121
Updates #21122

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

6 years agosync: delete a sentence from the Map docs
Brad Fitzpatrick [Fri, 21 Jul 2017 17:32:32 +0000 (17:32 +0000)]
sync: delete a sentence from the Map docs

From Josh's comments on https://golang.org/cl/50310

Once I removed the "from the Go standard library" bit, the beginning
wasn't worth keeping. It also wasn't clear whether what it meant by
"cache contention". Processor caches, or user-level caches built with
sync.Map? It didn't seem worth clarifying and didn't convey any useful
information, so deleted.

Change-Id: Id1d76105a3081d0855f6a64540700932bb83d98e
Reviewed-on: https://go-review.googlesource.com/50632
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
6 years agonet/http: document that after Hijack, Request.Body is invalid
Brad Fitzpatrick [Fri, 21 Jul 2017 18:52:38 +0000 (18:52 +0000)]
net/http: document that after Hijack, Request.Body is invalid

We can make it panic with a more explicit and readable error message
during Go 1.10, but document it for now. This has always been the
case; it's not a new rule.

Updates #20933

Change-Id: I53c1fefb47a8f4aae0bb32fa742afa3a2ed20e8a
Reviewed-on: https://go-review.googlesource.com/50634
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
6 years agosync: update Map documentation with usage rule of thumb
Michael Stapelberg [Thu, 20 Jul 2017 15:16:36 +0000 (08:16 -0700)]
sync: update Map documentation with usage rule of thumb

As per bcmills’s lightning talk at GopherCon 2017:
https://github.com/gophercon/2017-talks/tree/master/lightningtalks/BryanCMills-AnOverviewOfSyncMap

Change-Id: I12dd0daa608af175d110298780f32c6dc5e1e0a0
Reviewed-on: https://go-review.googlesource.com/50310
Reviewed-by: Bryan Mills <bcmills@google.com>
6 years agodoc: minor fixes to the editor guide
Jaana Burcu Dogan [Fri, 21 Jul 2017 01:16:03 +0000 (18:16 -0700)]
doc: minor fixes to the editor guide

Change-Id: I8f6bcfab27251ef6962306d56e40d306ef85fe60
Reviewed-on: https://go-review.googlesource.com/50472
Reviewed-by: Rob Pike <r@golang.org>
6 years agoruntime: improve out-of-memory message when VirtualAlloc fails
Austin Clements [Tue, 18 Jul 2017 15:14:28 +0000 (11:14 -0400)]
runtime: improve out-of-memory message when VirtualAlloc fails

Fixes #19514.

Change-Id: I93600d5c3d11ecab5a47dd4cd55ed3aea05e221e
Reviewed-on: https://go-review.googlesource.com/49611
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agonet/http: improve signature of Redirect, NewRequest
Dmitri Shuralyov [Wed, 19 Jul 2017 04:41:13 +0000 (00:41 -0400)]
net/http: improve signature of Redirect, NewRequest

In CL https://golang.org/cl/4893043 (6 years ago), a new package named
"url" was created (it is currently known as "net/url"). During that
change, some identifier name collisions were introduced, and two
parameters in net/http were renamed to "urlStr".

Since that time, Go has continued to put high emphasis on the quality
and readability of the documentation. Sometimes, that means making small
sacrifices in the implementation details of a package to ensure that
the godoc reads better, since that's what the majority of users interact
with. See https://golang.org/s/style#named-result-parameters:

> Clarity of docs is always more important than saving a line or two
> in your function.

I think the "urlStr" parameter name is suboptimal for godoc purposes,
and just "url" would be better.

During the review of https://golang.org/cl/4893043, it was also noted
by @rsc that having to rename parameters named "url" was suboptimal:

> It's unfortunate that naming the package url means
> you can't have a parameter or variable named url.

However, at the time, the name of the url package was still being
decided, and uri was an alternative name under consideration.
The reason urlStr was chosen is because it was a lesser evil
compared to naming the url package uri instead:

> Let's not get hung up on URI vs. URL, but I'd like s/uri/urlStr/ even for just
> that the "i" in "uri" looks very similar to the "l" in "url" in many fonts.

> Please let's go with urlStr instead of uri.

Now that we have the Go 1 compatibility guarantee, the name of the
net/url package is fixed. However, it's possible to improve the
signature of Redirect, NewRequest functions in net/http package
for godoc purposes by creating a package global alias to url.Parse,
and renaming urlStr parameter to url in the exported funcs. This CL
does so.

Updates #21077.

Change-Id: Ibcc10e3825863a663e6ad91b6eb47b1862a299a6
Reviewed-on: https://go-review.googlesource.com/49930
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agocmd/go, cmd/link: if -no-pie doesn't work, try -nopie
Ian Lance Taylor [Tue, 18 Jul 2017 20:15:05 +0000 (13:15 -0700)]
cmd/go, cmd/link: if -no-pie doesn't work, try -nopie

GCC says -no-pie, clang says -nopie.

Fixes #21042

Change-Id: Iadc83ea7a48ea0debc5064c1ee8da4ebff752044
Reviewed-on: https://go-review.googlesource.com/49710
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agosync: release m.mu during (*RWMutexMap).Range callbacks in sync_test
Bryan C. Mills [Tue, 9 May 2017 20:12:57 +0000 (16:12 -0400)]
sync: release m.mu during (*RWMutexMap).Range callbacks in sync_test

The mainline sync.Map has allowed mutations within Range callbacks
since https://golang.org/cl/37342. The reference implementations need
to do the same.

This change integrates https://go-review.googlesource.com/c/42956/
from x/sync.

Change-Id: I6b58cf874bb31cd4f6fdb8bfa8278888ed617a5a
Reviewed-on: https://go-review.googlesource.com/42957
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agomisc/cgo/testsanitizers: add regression test for change 50251
Bryan C. Mills [Thu, 20 Jul 2017 17:47:57 +0000 (13:47 -0400)]
misc/cgo/testsanitizers: add regression test for change 50251

http://golang.org/cl/50251 fixed a regression under TSAN.
This change adds a minimal reproducer for the observed symptom.

Change-Id: Ib9ad01b458b7fdec14d6c2fe3c243f9c64b3dcf2
Reviewed-on: https://go-review.googlesource.com/50371
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agocmd/go: fix test when go source tree has POSIX ACL
Jess Frazelle [Thu, 20 Jul 2017 16:29:15 +0000 (12:29 -0400)]
cmd/go: fix test when go source tree has POSIX ACL

Fixes TestGoBuildUmask when the user has a POSIX ACL on the Go source tree.

Fixes #17909.

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

6 years agoruntime: use SIGKILL if SIGQUIT is blocked; skip tests that need SIGQUIT
Austin Clements [Thu, 20 Jul 2017 15:12:37 +0000 (11:12 -0400)]
runtime: use SIGKILL if SIGQUIT is blocked; skip tests that need SIGQUIT

The runtime tests may be invoked from a parent that has SIGQUIT
blocked. For example, Java invokes subprocesses this way. In this
situation, TestCrashDumpsAllThreads and TestPanicSystemstack will fail
because they depend on SIGQUIT to get tracebacks, and any subprocess
test that times out will fail to kill the subprocess.

Fix this by detecting if SIGQUIT is blocked and, if so, skipping tests
that depend on it and using SIGKILL to kill timed-out subprocesses.

Based on a fix by Carl Henrik Lunde in
https://golang.org/issue/19196#issuecomment-316145733

Fixes #19196.

Change-Id: Ia20bf15b96086487d0ef6b75239dcc260c21714c
Reviewed-on: https://go-review.googlesource.com/50330
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agoruntime: don't call libc sigaction function in forked child
Ian Lance Taylor [Thu, 20 Jul 2017 06:42:27 +0000 (23:42 -0700)]
runtime: don't call libc sigaction function in forked child

If we are using vfork, and if something (such as TSAN) is intercepting
the sigaction function, then we must call the system call, not the
libc function. Otherwise the intercepted sigaction call in the child
may trash the data structures in the parent.

Change-Id: Id9588bfeaa934f32c920bf829c5839be5cacf243
Reviewed-on: https://go-review.googlesource.com/50251
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
Reviewed-by: Austin Clements <austin@google.com>
6 years agoos: remove duplicate check from windows os.Stat
Johnny Luo [Thu, 20 Jul 2017 07:20:46 +0000 (17:20 +1000)]
os: remove duplicate check from windows os.Stat

Fixes #21075

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

6 years agonet/mail: Fix typo
yansal [Wed, 19 Jul 2017 21:04:36 +0000 (23:04 +0200)]
net/mail: Fix typo

Fixes #21089

Change-Id: Idd65c7185b3e19f33958eb165cb5b09c06db3d56
Reviewed-on: https://go-review.googlesource.com/50110
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agodoc: add an editor guide
Jaana Burcu Dogan [Wed, 14 Jun 2017 19:41:14 +0000 (12:41 -0700)]
doc: add an editor guide

The Go ecosystem provides many tools to make Go
development more productive and seamless. Document
the availability of the editor plugins and IDEs,
add an overview of feature support and screencasts.

Updates #20398.
Updates #20402.
Updates #20399.
Updates #20401.
Updates #20569.

Change-Id: I0c6cb48eb4e3848807aaad78390493e14f097916
Reviewed-on: https://go-review.googlesource.com/45772
Reviewed-by: Steve Francia <spf@golang.org>
6 years agoruntime: only trace mark assists that do work
Austin Clements [Wed, 19 Jul 2017 18:18:08 +0000 (14:18 -0400)]
runtime: only trace mark assists that do work

Currently we trace mark assists even if they're satisfied entirely by
stealing. This means even if background marking is keeping up with
allocation, we'll still emit a trace event every N bytes of
allocation. The event will be a few microseconds, if that, but they're
frequent enough that, when zoomed out in the trace view, it looks like
all of the time is spent in mark assists even if almost none is.

Change this so we only emit a trace event if the assist actually has
to do assisting. This makes the traces of these events far more
useful.

Change-Id: If4aed1c413b814341ef2fba61d2f10751d00451b
Reviewed-on: https://go-review.googlesource.com/50030
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Rick Hudson <rlh@golang.org>
6 years agocmd/compile: fix unaligned loads/stores to global variables on s390x
Michael Munday [Mon, 17 Jul 2017 11:07:28 +0000 (07:07 -0400)]
cmd/compile: fix unaligned loads/stores to global variables on s390x

Load/store-merging and move optimizations can result in unaligned
memory accesses. This is fine so long as the load/store instruction
used does not take a relative offset. In the SSA rules this means we
must not merge (MOVDaddr (SB)) ops into loads/stores unless we can
guarantee the alignment of the target.

Fixes #21048.

Change-Id: I70f13a62a148d5f0a56e704e8f76e36b4a4226d9
Reviewed-on: https://go-review.googlesource.com/49250
Run-TryBot: Michael Munday <mike.munday@ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
6 years agonet/http: fix parameter name in comment
Ian Lance Taylor [Tue, 18 Jul 2017 20:29:47 +0000 (13:29 -0700)]
net/http: fix parameter name in comment

Fixes #21077

Change-Id: Ic61d7313907f58ff4027fd2eee1ddb8c1656304d
Reviewed-on: https://go-review.googlesource.com/49712
Reviewed-by: Dmitri Shuralyov <shurcool@gmail.com>
6 years agoruntime: move tSweepTerm capture closer to STW
Austin Clements [Tue, 18 Jul 2017 15:21:15 +0000 (11:21 -0400)]
runtime: move tSweepTerm capture closer to STW

tSweepTerm and pauseStart are supposed to be when STW was triggered,
but right now they're captured a bit before STW. Move these down to
immediately before we trigger STW.

Fixes #19590.

Change-Id: Icd48a5c4d45c9b36187ff986e4f178b5064556c1
Reviewed-on: https://go-review.googlesource.com/49612
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoruntime: always use 2MB stacks on 64-bit Windows
Austin Clements [Mon, 17 Jul 2017 18:18:49 +0000 (14:18 -0400)]
runtime: always use 2MB stacks on 64-bit Windows

Currently, Windows stacks are either 128kB or 2MB depending on whether
the binary uses cgo. This is because we assume that Go system stacks
and the small amount of C code invoked by the standard library can
operate within smaller stacks, but general Windows C code assumes
larger stacks.

However, it's easy to call into arbitrary C code using the syscall
package on Windows without ever importing cgo into a binary. Such
binaries need larger system stacks even though they don't use cgo.

Fix this on 64-bit by increasing the system stack size to 2MB always.
This only costs address space, which is free enough on 64-bit to not
worry about. We keep (for now) the existing heuristic on 32-bit, where
address space comes at more of a premium.

Updates #20975.

Change-Id: Iaaaa9a2fcbadc825cddc797aaaea8d34ef8debf2
Reviewed-on: https://go-review.googlesource.com/49331
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
6 years agodatabase/sql: fix wrong method name in description
Alexey Palazhchenko [Tue, 18 Jul 2017 04:18:35 +0000 (07:18 +0300)]
database/sql: fix wrong method name in description

Change-Id: Ie6a88b70d7c45c59995ee2f57fb28f9a3cbb404d
Reviewed-on: https://go-review.googlesource.com/49470
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoA+C: final updates for Go 1.9
Brad Fitzpatrick [Mon, 17 Jul 2017 19:34:18 +0000 (19:34 +0000)]
A+C: final updates for Go 1.9

Add Adam Kisala (individual CLA)
Add Aditya Mukerjee (individual CLA)
Add Akhil Indurti (individual CLA)
Add André Carvalho (individual CLA)
Add Andy Walker (individual CLA)
Add Awn Umar (individual CLA)
Add Bastian Ike (individual CLA)
Add Brian Downs (individual CLA)
Add Cody Oss (individual CLA)
Add Costin Chirvasuta (corporate CLA for Google Inc.)
Add Dan Ballard (individual CLA)
Add Dong-hee Na (individual CLA)
Add Dylan Waits (individual CLA)
Add Evan Hicks (individual CLA)
Add Fannie Zhang (corporate CLA for ARM Ltd.)
Add Francisco Rojas (individual CLA)
Add Gabriel Nicolas Avellaneda (individual CLA)
Add Gabríel Arthúr Pétursson (individual CLA)
Add Greg Poirier (individual CLA)
Add Iccha Sethi (individual CLA)
Add Ivan Moscoso (individual CLA)
Add Jamie Kerr (individual CLA)
Add Joe Kyo (individual CLA)
Add Joey Geiger (individual CLA)
Add John R. Lenton (individual CLA)
Add Johnny Luo (individual CLA)
Add Josh Roppo (individual CLA)
Add Kate Manson (individual CLA)
Add Leo Rudberg (corporate CLA for Google Inc.)
Add Ma Peiqi (individual CLA)
Add Martynas Budriūnas (corporate CLA for Google Inc.)
Add Maryan Hratson (individual CLA)
Add Michael Edwards (individual CLA)
Add Michael Hendricks (individual CLA)
Add Pablo Santiago Blum de Aguiar (individual CLA)
Add Pat Moroney (individual CLA)
Add Shi Han Ng (individual CLA)
Add Steven Buss (corporate CLA for Google Inc.)
Add Suzy Mueller (corporate CLA for Google Inc.)
Add Taro Aoki (individual CLA)
Add Tim Heckman (individual CLA)
Add Tony Walker (individual CLA)
Add Yasha Bubnov (individual CLA)

Updates #12042

Change-Id: Iee063dd6c5a39de16907acfb5af87e81a05ab417
Reviewed-on: https://go-review.googlesource.com/49351
Reviewed-by: Andrew Bonventre <andybons@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agosyscall: update check for UserNS support for centos 7
Jess Frazelle [Mon, 17 Jul 2017 17:51:37 +0000 (13:51 -0400)]
syscall: update check for UserNS support for centos 7

Fixes #20796
Fixes #16283

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

6 years agocmd/compile: omit X:framepointer in compile version
Russ Cox [Mon, 17 Jul 2017 14:45:27 +0000 (10:45 -0400)]
cmd/compile: omit X:framepointer in compile version

Framepointer is the default now. Only print an X: list
if the settings are _not_ the default.

Before:

$ go tool compile -V
compile version devel +a5f30d9508 Sun Jul 16 14:43:48 2017 -0400 X:framepointer
$ go1.8 tool compile -V
compile version go1.8 X:framepointer
$

After:

$ go tool compile -V
compile version devel +a5f30d9508 Sun Jul 16 14:43:48 2017 -0400
$ go1.9 tool compile -V # imagined
compile version go1.9
$

Perpetuates #18317.

Change-Id: I981ba5c62be32e650a166fc9740703122595639b
Reviewed-on: https://go-review.googlesource.com/49252
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agostrconv: apply Brad's review comment
Russ Cox [Mon, 17 Jul 2017 15:12:20 +0000 (11:12 -0400)]
strconv: apply Brad's review comment

Missed in CL 49253 because I submitted from the Gerrit UI and
had not mailed the latest copy. Sigh.

Change-Id: I540f960278df43e2eaf1aac188eb124a1ff240dd
Reviewed-on: https://go-review.googlesource.com/49256
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
6 years agostrconv: fix initialization of atofRandomTests
Russ Cox [Mon, 17 Jul 2017 15:12:20 +0000 (11:12 -0400)]
strconv: fix initialization of atofRandomTests

The init func was using testing.Short, but that's not available
until after flag parsing. Found by CL 49251.

Change-Id: Ia7b871043375260873fa2c7e81e1d43c1c83d33f
Reviewed-on: https://go-review.googlesource.com/49253
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agotime: fix 400 years offset in comment
Alberto Donizetti [Mon, 17 Jul 2017 09:35:39 +0000 (11:35 +0200)]
time: fix 400 years offset in comment

Fixes #21043

Change-Id: I12db4f67ddee80500ff323f84e8fa34511650e63
Reviewed-on: https://go-review.googlesource.com/49230
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agodoc/go1.9: eliminate <code> spaces
Russ Cox [Thu, 6 Jul 2017 18:46:45 +0000 (14:46 -0400)]
doc/go1.9: eliminate <code> spaces

Per note at top of doc, we don't use fixed-width spaces
in fixed-width phrases like "go doc".

Also ASN.1 NULL is not code so it's not <code> at all.

Change-Id: I791e4e6030b8b8d42f4621d2f4bf32fef93cf343
Reviewed-on: https://go-review.googlesource.com/47693
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agodoc/go1.9: minor clarifications and grammar nits
Russ Cox [Thu, 6 Jul 2017 18:45:05 +0000 (14:45 -0400)]
doc/go1.9: minor clarifications and grammar nits

Change-Id: I55f50e45f8872f063c3b6c9e89261d14689e77ce
Reviewed-on: https://go-review.googlesource.com/47692
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agolog: adds a Logger Output method Example
gmarik [Sat, 15 Jul 2017 18:11:42 +0000 (12:11 -0600)]
log: adds a Logger Output method Example

Change-Id: Ia3e351169a4ebe6db5e5f37b668f23dc8c992c78
Reviewed-on: https://go-review.googlesource.com/48877
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 agobytes: add example for (*Buffer).Grow
Brian Downs [Sat, 15 Jul 2017 22:55:41 +0000 (16:55 -0600)]
bytes: add example for (*Buffer).Grow

Change-Id: I04849883dd2e1f6d083e9f57d2a8c1bd7d258953
Reviewed-on: https://go-review.googlesource.com/48878
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
6 years agoast: make ExampleCommentMap a runnable example
closs [Sat, 15 Jul 2017 22:07:30 +0000 (16:07 -0600)]
ast: make ExampleCommentMap a runnable example

Fixes #20450

Change-Id: I2256282a8880e99508e98fefedfb94a7cccacbcf
Reviewed-on: https://go-review.googlesource.com/48969
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
6 years agoio/ioutil: add example for ReadFile
Vitor De Mario [Sat, 15 Jul 2017 17:25:37 +0000 (11:25 -0600)]
io/ioutil: add example for ReadFile

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

6 years agosort: add example for Strings
Tony Walker [Sat, 15 Jul 2017 22:27:29 +0000 (22:27 +0000)]
sort: add example for Strings

Change-Id: I33f0e2362e85287b493d9279d43b760733e2abcb
Reviewed-on: https://go-review.googlesource.com/48831
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
6 years agomath/bits: add examples for leading zero methods
Dylan Waits [Sat, 15 Jul 2017 21:08:56 +0000 (15:08 -0600)]
math/bits: add examples for leading zero methods

Change-Id: Ib491d144387a7675af370f7b925fe6e62440d153
Reviewed-on: https://go-review.googlesource.com/48966
Run-TryBot: Kevin Burke <kev@inburke.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Kevin Burke <kev@inburke.com>
6 years agoos/exec: add example for Cmd.Run
André Carvalho [Sat, 15 Jul 2017 17:42:31 +0000 (14:42 -0300)]
os/exec: add example for Cmd.Run

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

6 years agoencoding/json: fix indentation in Decode stream example
Iccha Sethi [Sat, 15 Jul 2017 18:28:12 +0000 (13:28 -0500)]
encoding/json: fix indentation in Decode stream example

The existing example for Decoder.Decode (Stream) had excessive
indentation in the godoc interface for the const jsonStream,
making it hard to read. This fixes the indentation in the
example_test.go to improve the readability in godoc.

Helps #21026.

Change-Id: I16f56b82182da1dcc73cca44e535a7f5695e975d
Reviewed-on: https://go-review.googlesource.com/48910
Reviewed-by: Dmitri Shuralyov <shurcool@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoencoding/binary: add examples for ByteOrder functions
Ross Light [Sat, 15 Jul 2017 20:53:42 +0000 (14:53 -0600)]
encoding/binary: add examples for ByteOrder functions

Change-Id: Iec9a7bf61566ee08c4d15adb39d43c7a29c79122
Reviewed-on: https://go-review.googlesource.com/48962
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>

6 years agostrings: add a example for TrimFunc
Francisco Rojas [Sat, 15 Jul 2017 20:51:58 +0000 (14:51 -0600)]
strings: add a example for TrimFunc

Change-Id: I9c0c601ec5957475e949dcc4a8c2116724d01215
Reviewed-on: https://go-review.googlesource.com/48961
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>

6 years agoarchive/zip: remove an out of date TODO
Johnny Luo [Sat, 15 Jul 2017 17:58:00 +0000 (03:58 +1000)]
archive/zip: remove an out of date TODO

It had been implemented. Refer to https://golang.org/pkg/archive/zip/#FileHeader.Comment

Change-Id: I81572562c3111b58189baa3510b9ba688fe269c9
Reviewed-on: https://go-review.googlesource.com/48857
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agoregexp: example for MatchString function
Josh Roppo [Sat, 15 Jul 2017 20:40:22 +0000 (13:40 -0700)]
regexp: example for MatchString function

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

6 years agoruntime: fix duplicate "the"s
Daniel Morsing [Sat, 15 Jul 2017 20:53:44 +0000 (14:53 -0600)]
runtime: fix duplicate "the"s

kicking off contributing again with a classic

Change-Id: Ifb0aed8f1dc854f85751ce0495967a3c4315128d
Reviewed-on: https://go-review.googlesource.com/49016
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agotime: clarify documentation for Location.String
Pat Moroney [Sat, 15 Jul 2017 20:39:00 +0000 (14:39 -0600)]
time: clarify documentation for Location.String

Change-Id: I5c32a968303848304cbd6fe1e83bed0af11f6440
Reviewed-on: https://go-review.googlesource.com/48960
Reviewed-by: Caleb Spare <cespare@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agostrings: add a example for Compare func
Francisco Rojas [Sat, 15 Jul 2017 20:32:15 +0000 (14:32 -0600)]
strings: add a example for Compare func

Add a example for string.Compare that return the three possible results.

Change-Id: I103cf39327c1868fb249538d9e22b11865ba4b70
Reviewed-on: https://go-review.googlesource.com/49011
Reviewed-by: Heschi Kreinick <heschi@google.com>
6 years agoregexp: clarify example for 'FindString'
Ivan Moscoso [Sat, 15 Jul 2017 17:53:48 +0000 (11:53 -0600)]
regexp: clarify example for 'FindString'

Clarifying that FindString only provides left-most match

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

6 years agostrings: add example for IndexByte
Pablo Santiago Blum de Aguiar [Sat, 15 Jul 2017 18:13:45 +0000 (12:13 -0600)]
strings: add example for IndexByte

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

6 years agomath/rand: add concurrency warning to overview comment
Aditya Mukerjee [Sat, 15 Jul 2017 20:27:30 +0000 (16:27 -0400)]
math/rand: add concurrency warning to overview comment

Change-Id: I52efa7aa72a23256e5ca56470ffeba975ed8f739
Reviewed-on: https://go-review.googlesource.com/48760
Reviewed-by: Bryan Mills <bcmills@google.com>
6 years agostrings: add example for LastIndexAny
Evan Hicks [Sat, 15 Jul 2017 18:07:04 +0000 (12:07 -0600)]
strings: add example for LastIndexAny

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

6 years agomath: add a Sqrt example
Martynas Budriūnas [Sat, 15 Jul 2017 18:58:19 +0000 (12:58 -0600)]
math: add a Sqrt example

Change-Id: I259e25b9d0b069912053a250e9739e04fafca54d
Reviewed-on: https://go-review.googlesource.com/48892
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agostrconv: adds missing comment to neg flag, formats comment on trunc flag
Adam Kisala [Sat, 15 Jul 2017 18:27:56 +0000 (19:27 +0100)]
strconv: adds missing comment to neg flag, formats comment on trunc flag

Change-Id: Ibdd57489543d57a24d1e3c41210abd9fbc930b8f
Reviewed-on: https://go-review.googlesource.com/48867
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoio: Add example to io.Seeker's Seek() method.
Greg Poirier [Sat, 15 Jul 2017 18:03:33 +0000 (12:03 -0600)]
io: Add example to io.Seeker's Seek() method.

While there's an example for SectionReader.Seek, if someone is
seeking documentation specifically about Seeker.Seek, they may
not immediately find the SectionReader example. Offset and whence
may not be entirely intuitive to new developers either, so include
examples of both positive/negative offsets and SeekStart/SeekEnd.

Change-Id: I5b7442ccf683d9706e9261c11bc0ea31a1ac21d4
Reviewed-on: https://go-review.googlesource.com/48873
Reviewed-by: Kevin Burke <kev@inburke.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agocmd/compile: fix comment typo
Jamie Kerr [Sat, 15 Jul 2017 18:20:25 +0000 (12:20 -0600)]
cmd/compile: fix comment typo

Change-Id: If581bd4e9d9b4421e2ae20582c596fccb73d9aed
Reviewed-on: https://go-review.googlesource.com/48866
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agostrings: add example for ContainsRune
Kate Manson [Sat, 15 Jul 2017 18:07:55 +0000 (12:07 -0600)]
strings: add example for ContainsRune

Change-Id: I994f003c97a14d194df5f07dd217c0ff3b214741
Reviewed-on: https://go-review.googlesource.com/48874
Reviewed-by: Matt Layher <mdlayher@gmail.com>
Run-TryBot: Matt Layher <mdlayher@gmail.com>

6 years agoos: use Fstat instead of Stat in FileMode example
Taro Aoki [Sat, 1 Jul 2017 10:13:03 +0000 (19:13 +0900)]
os: use Fstat instead of Stat in FileMode example

The existing example for FileMode using Stat to get FileInfo.
But, Stat cannot get symlink info, it need to use Fstat instead.

Change-Id: I5cc38cd10caaa5912946abe2a2b90995a91ee10f
Reviewed-on: https://go-review.googlesource.com/47370
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>

6 years agocmd/dist: don't run moved_goroot test on android, iOS, Plan 9
Ian Lance Taylor [Sat, 15 Jul 2017 13:33:24 +0000 (06:33 -0700)]
cmd/dist: don't run moved_goroot test on android, iOS, Plan 9

Fails on iOS because CC_FOR_TARGET points to clangwrap.sh in the
original GOROOT. We could fix that but it doesn't seem worth it.

Fails on Android with "exec format error". I'm not sure why but I
doubt it is interesting.

Fails on Plan 9 because the original GOROOT is being preserved in some
unknown way. This is issue #21016.

Updates #21016

Change-Id: I4e7115d734fc7bf21e5a2ba18fb6ad0bfa31c735
Reviewed-on: https://go-review.googlesource.com/48650
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: David du Colombier <0intro@gmail.com>
Reviewed-by: Elias Naur <elias.naur@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agolog: fix comment
mapeiqi [Sat, 15 Jul 2017 04:15:35 +0000 (12:15 +0800)]
log: fix comment

I just want to experience the whole Gerrit Flow, so I make this simple commit
as my first commit to golang src repo.

Change-Id: Ie744573beac7a8b9361f898fac269c9d88010493
Reviewed-on: https://go-review.googlesource.com/48630
Reviewed-by: Ma Peiqi <mapeiqi2017@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoreflect: make StructOf panic for methods that don't work
Ian Lance Taylor [Wed, 28 Jun 2017 19:47:08 +0000 (12:47 -0700)]
reflect: make StructOf panic for methods that don't work

When StructOf is used with an anonymous field that has methods, and
that anonymous field is not the first field, the methods we generate
are incorrect because they do not offset to the field as required.
If we encounter that case, panic rather than doing the wrong thing.

Fixes #20824
Updates #15924

Change-Id: I3b0901ddbc6d58af5f7e84660b5e3085a431035d
Reviewed-on: https://go-review.googlesource.com/47035
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: clarify Handler panic behavior across HTTP versions
Brad Fitzpatrick [Fri, 14 Jul 2017 15:52:41 +0000 (15:52 +0000)]
net/http: clarify Handler panic behavior across HTTP versions

Updates #18997

Change-Id: Ib1961a4c26b42f99b98b255beb7e2a74b632e0c1
Reviewed-on: https://go-review.googlesource.com/48551
Reviewed-by: Joe Shaw <joe@joeshaw.org>
Reviewed-by: Tom Bergan <tombergan@google.com>
6 years agodoc/contribute: avoid using the word "change list".
Han-Wen Nienhuys [Fri, 14 Jul 2017 21:38:49 +0000 (15:38 -0600)]
doc/contribute: avoid using the word "change list".

Neither the Gerrit UI nor its docs use the term CL or changelist.

Change-Id: Ic19fddc660ec4f008f10fd207e4ac6349431ff5d
Reviewed-on: https://go-review.googlesource.com/48595
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agosyscall: skip TestUnshare on Linux upon permission error
Brad Fitzpatrick [Fri, 14 Jul 2017 19:02:05 +0000 (19:02 +0000)]
syscall: skip TestUnshare on Linux upon permission error

Fixes #17206

Change-Id: Id0ebc3a55ea1c5f52608decffee04c8398a8774b
Reviewed-on: https://go-review.googlesource.com/48571
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: update BuildContext.GOROOT and build.Tooldir with computed GOROOT
Ian Lance Taylor [Fri, 14 Jul 2017 15:22:30 +0000 (08:22 -0700)]
cmd/go: update BuildContext.GOROOT and build.Tooldir with computed GOROOT

This is necessary to make a relocated GOROOT work correctly.

Fixes #20997

Change-Id: I18624bd2e109721066cd9e4a887a12583ab79f5d
Reviewed-on: https://go-review.googlesource.com/48550
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agocrypto/x509: load all trusted certs on darwin (nocgo)
Nathaniel Caza [Tue, 14 Feb 2017 03:00:06 +0000 (21:00 -0600)]
crypto/x509: load all trusted certs on darwin (nocgo)

The current implementation ignores certificates that exist
in the login and System keychains.

This change adds the missing System and login keychain
files to the `/usr/bin/security` command in
`execSecurityRoots`. If the current user cannot be
obtained, the login keychain is ignored.

Refs #16532

Change-Id: I8594a6b8940c58df8a8015b274fa45c39e18862c
Reviewed-on: https://go-review.googlesource.com/36941
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agohtml/template: use the same escaper across multiple template executions
Samuel Tan [Wed, 5 Jul 2017 23:28:41 +0000 (16:28 -0700)]
html/template: use the same escaper across multiple template executions

The escaper contains information about which templates have already been
visited and escaped. This information is necessary to prevent templates
that have already been escaped from being over-escaped. However, since we
currently create a new escaper each time we execute a template, this
information does not persist across multiple template executions.

Fix this by saving an escaper in each template name space which is shared by
all templates in that name space.

While there, fix error message formatting for an escaping unit test.

Fixes #20842

Change-Id: Ie392c3e7ce0e0a9947bdf56c99e926e7c7db76e4
Reviewed-on: https://go-review.googlesource.com/47256
Reviewed-by: Mike Samuel <mikesamuel@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agocmd/compile: fix phi-function updates for preemptible loops
David Chase [Wed, 14 Jun 2017 21:28:28 +0000 (17:28 -0400)]
cmd/compile: fix phi-function updates for preemptible loops

Previous code failed to account for particular control flow
involving nested loops when updating phi function inputs.
Fix involves:
1) remove incorrect shortcut
2) generate a "better" order for children in dominator tree
3) note inner-loop updates and check before applying
   outer-loop updates.

Fixes #20675.

Change-Id: I2fe21470604b5c259e777ad8b15de95f7706894d
Reviewed-on: https://go-review.googlesource.com/45791
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
6 years agointernal/poll: don't wait for unpollable files
Ian Lance Taylor [Thu, 13 Jul 2017 22:07:07 +0000 (15:07 -0700)]
internal/poll: don't wait for unpollable files

If we get an EAGAIN error on an unpollable file, don't try to wait for
it to be ready; just return EAGAIN.

It's possible that we should instead ensure that when Stdin is a pipe
in non-blocking mode, we wait for data to appear. For now take the
conservative approach of doing what we did in previous releases.

Based on https://golang.org/cl/47555 by Totoro W.

Fixes #20915

Change-Id: Icc9e97a5a877b0a3583ec056c35412d1afab62d1
Reviewed-on: https://go-review.googlesource.com/48490
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agodoc: add missing article
Kevin Burke [Thu, 13 Jul 2017 17:48:51 +0000 (11:48 -0600)]
doc: add missing article

Change-Id: I73fdc793bbc3ffe9ace1bfa78799f84c31630d61
Reviewed-on: https://go-review.googlesource.com/48391
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agodoc/go1.9: pprof profiles are now self-contained
Austin Clements [Wed, 12 Jul 2017 23:49:09 +0000 (17:49 -0600)]
doc/go1.9: pprof profiles are now self-contained

Change-Id: If9f64fbb78009921e8773124e4e5eb8a871095a5
Reviewed-on: https://go-review.googlesource.com/48192
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Michael Matloob <matloob@golang.org>
6 years agotesting: roll back CL 44352 (show in-progress tests upon SIGINT)
Ian Lance Taylor [Thu, 13 Jul 2017 15:10:43 +0000 (08:10 -0700)]
testing: roll back CL 44352 (show in-progress tests upon SIGINT)

CL 44352 changed the behavior of SIGINT, which can break tests that
themselves use SIGINT.  I think we can only implement this if the
testing package has a way to know whether the code under test is using
SIGINT, but os/signal does not provide an API for that.  Roll back for
1.9 and think about this again for 1.10.

Updates #19397

Change-Id: I021c314db2b9d0a80d0088b120a6ade685459990
Reviewed-on: https://go-review.googlesource.com/48370
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoruntime: don't call t.Parallel in TestCgoSignalDeadlock
Ian Lance Taylor [Thu, 13 Jul 2017 03:51:15 +0000 (20:51 -0700)]
runtime: don't call t.Parallel in TestCgoSignalDeadlock

It seems that when too much other code is running on the system,
the testprogcgo code can overrun its timeouts.

Updates #18598.

Not marking the issue as fixed until it doesn't recur for some time.

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

6 years agosyscall: use correct go binary in test
Brad Fitzpatrick [Wed, 12 Jul 2017 21:31:30 +0000 (21:31 +0000)]
syscall: use correct go binary in test

Usually this test is skipped (on builders and when not root), so
people are unlikely to see this error.

Updates #19296

Change-Id: I3acb81260034dad8776c305f83d7cbac4b718e75
Reviewed-on: https://go-review.googlesource.com/48191
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: note the StripPrefix change in Go 1.9 release notes
Brad Fitzpatrick [Wed, 12 Jul 2017 19:40:39 +0000 (19:40 +0000)]
doc: note the StripPrefix change in Go 1.9 release notes

Fixes #20948

Change-Id: I222bf101a5c1bdc5cbb0970949070c4b58b9b83b
Reviewed-on: https://go-review.googlesource.com/48190
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agoruntime: pass CLONE_SYSVSEM to clone
Austin Clements [Wed, 12 Jul 2017 16:12:50 +0000 (10:12 -0600)]
runtime: pass CLONE_SYSVSEM to clone

SysV semaphore undo lists should be shared by threads, just like
several other resources listed in cloneFlags. Currently we don't do
this, but it probably doesn't affect anything because 1) probably
nobody uses SysV semaphores from Go and 2) Go-created threads never
exit until the process does. Beyond being the right thing to do,
user-level QEMU requires this flag because it depends on glibc to
create new threads and glibc uses this flag.

Fixes #20763.

Change-Id: I1d1dafec53ed87e0f4d4d432b945e8e68bb72dcd
Reviewed-on: https://go-review.googlesource.com/48170
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agodoc: soften the NetBSD warning now that a unverified fix is being released
Brad Fitzpatrick [Mon, 10 Jul 2017 17:56:29 +0000 (17:56 +0000)]
doc: soften the NetBSD warning now that a unverified fix is being released

To-be-released NetBSD 7.1.1 reportedly fixes the kernel panic that was
affecting our builders and is being released because of Go's warning.

So, soften our warning.

7.1.1 might work, but I can't get a builder up and running to verify
yet as it appears that Anita either doesn't support it yet, or the
NetBSD CDN doesn't have the files yet.

Change-Id: Ifaafc566879a6afdf1174e545ad10e240da427e8
Reviewed-on: https://go-review.googlesource.com/47970
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agoruntime: make TestStackGrowth a serial test
Austin Clements [Tue, 11 Jul 2017 13:26:01 +0000 (09:26 -0400)]
runtime: make TestStackGrowth a serial test

TestStackGrowth is currently a parallel test. However, it depends on a
20 second timeout, which is already dubious in a parallel test, and
became really problematic on slow builders when runtime.GC switched to
triggering concurrent GC instead of STW GC. Before that change, the
test spent much of its time in STW GC, so it wasn't *really* parallel.
After that change, it was competing with all of the other parallel
tests and GC likely started taking ~4 times longer. On most builders
the whole test runs in well under a second, but on the slow builders
that was enough to push it over the 20 second timeout.

Fix this by making the test serial.

Updates #19381 (probably fixes it, but we'll have to wait and see).

Change-Id: I21af7cf543ab07f1ec1c930bfcb355b0df75672d
Reviewed-on: https://go-review.googlesource.com/48110
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Elias Naur <elias.naur@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agosync/atomic: clarify 64-bit alignment bug
Austin Clements [Tue, 11 Jul 2017 15:03:36 +0000 (11:03 -0400)]
sync/atomic: clarify 64-bit alignment bug

Local variables can also be relied on the be 64-bit aligned, since
they will be escaped to the heap if used with any atomic operations.

Also, allocated arrays are also aligned, just like structs and slices.

Fixes #18955.

Change-Id: I8a1897f6ff78922c8bfcf20d6eb4bcb17a70ba2d
Reviewed-on: https://go-review.googlesource.com/48112
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoruntime: simplify description of FuncForPC behavior in case of inlining
Costin Chirvasuta [Fri, 7 Jul 2017 20:26:45 +0000 (21:26 +0100)]
runtime: simplify description of FuncForPC behavior in case of inlining

The current description refers to the outermost "frame" which can be
misleading. A user reading it can think it means a stack frame.

Change-Id: Ie2c7cb4b4db8f41572df206478ce3b46a0245a5d
Reviewed-on: https://go-review.googlesource.com/47850
Reviewed-by: Austin Clements <austin@google.com>
6 years agocmd/compile: fix lexical scope of escaped variables
Alessandro Arzilli [Sun, 9 Jul 2017 15:03:45 +0000 (17:03 +0200)]
cmd/compile: fix lexical scope of escaped variables

When a local variable is moved to the heap the declaration position
should be preserved so that later on we can assign it to the correct
DW_TAG_lexical_block.

Fixes #20959

Change-Id: I3700ef53c68ccd506d0633f11374ad88a52b2898
Reviewed-on: https://go-review.googlesource.com/47852
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
6 years agocmd/link: skip R_ADDR relocs in .rela.plt for internal PIE
Michael Pratt [Sat, 8 Jul 2017 23:47:16 +0000 (16:47 -0700)]
cmd/link: skip R_ADDR relocs in .rela.plt for internal PIE

ld.addpltsym adds an R_X86_64_JMP_SLOT dynamic relocation to .rela.plt
and uses Addaddrplus to reference the GOT in Elf64_Rela.r_offset.

Addaddrplus results in an R_ADDR relocation, which here we transform
into an R_X86_64_64 dynamic relocation. This is wrong for several
reasons:

1. .rela.plt is not a writable, relro section. It is mapped read-only,
   causing the dynamic linker to segfault when it tried to handle the
   relocation. This was the immediate cause of internal PIE cgo
   crashes.

2. Relocations targetting other reloc sections are, as far as I can
   tell, undefined behavior in the ELF spec and are unlikely to be a
   good idea.

3. Even if the relocation did work, it isn't what we want. The
   relocation, if successfully handled, would have put an absolute
   address as the JMP_SLOT offset, but it should be the offset from the
   beginning of the binary, just like any other relocation. What we want
   is a statically resolved R_ADDR relocation, just as is used below for
   the R_X86_64_64 relocation.

Skipping the .rela.plt allows reloc() to handle these R_ADDR
relocations.

With this CL, internal PIE cgo binaries work.

Updates #18968

Change-Id: Ie74e6fe249e88150baa0e340b1cb128cf7f28673
Reviewed-on: https://go-review.googlesource.com/47837
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agotest: deflake chan/select3.go
Josh Bleecher Snyder [Fri, 7 Jul 2017 23:09:20 +0000 (13:09 -1000)]
test: deflake chan/select3.go

On a slow or distracted machine, 0.1s is sometimes
not long enough for a non-blocking function call to complete.
This causes rare test flakes.
They can be easily reproduced by reducing the wait time to (say) 100ns.

For non-blocking functions, increase the window from 100ms to 10s.
Using different windows for block and non-blocking functions,
allows us to reduce the time for blocking functions.
The risk here is false negatives, but that risk is low;
this test is run repeatedly on many fast machines,
for which 10ms is ample time.
This reduces the time required to run the test by a factor of 10,
from ~1s to ~100ms.

Fixes #20299

Change-Id: Ice9a641a66c6c101d738a2ebe1bcb144ae3c9916
Reviewed-on: https://go-review.googlesource.com/47812
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agoruntime: use next timer to decide whether to relax
Austin Clements [Fri, 7 Jul 2017 18:58:55 +0000 (14:58 -0400)]
runtime: use next timer to decide whether to relax

Currently, sysmon waits 60 ms during idle before relaxing. This is
primarily to avoid reducing the precision of short-duration timers. Of
course, if there are no short-duration timers, this wastes 60 ms
running the timer at high resolution.

Improve this by instead inspecting the time until the next timer fires
and relaxing the timer resolution immediately if the next timer won't
fire for a while.

Updates #20937.

Change-Id: If4ad0a565b65a9b3e8c4cdc2eff1486968c79f24
Reviewed-on: https://go-review.googlesource.com/47833
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoruntime: delay before osRelaxing
Austin Clements [Fri, 7 Jul 2017 16:03:22 +0000 (12:03 -0400)]
runtime: delay before osRelaxing

Currently, sysmon relaxes the Windows timer resolution as soon as the
Go process becomes idle. However, if it's going idle because of a
short sleep (< 15.6 ms), this can turn that short sleep into a long
sleep (15.6 ms).

To address this, wait for 60 ms of idleness before relaxing the timer
resolution. It would be better to check the time until the next wakeup
and relax immediately if it makes sense, but there's currently no
interaction between sysmon and the timer subsystem, so adding this
simple delay is a much simpler and safer change for late in the
release cycle.

Fixes #20937.

Change-Id: I817db24c3bdfa06dba04b7bc197cfd554363c379
Reviewed-on: https://go-review.googlesource.com/47832
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoRevert "cmd/dist: disable plugin test on linux-arm with GOARM=5"
Austin Clements [Fri, 7 Jul 2017 19:49:33 +0000 (19:49 +0000)]
Revert "cmd/dist: disable plugin test on linux-arm with GOARM=5"

This reverts commit 168eb9cf3395583541224af0227c19ddb13e35be.

CL 47831 fixes the issue with plugins on ARMv5, so we can re-enable the test.

Updates #19674.

Change-Id: Idcb29f93ffb0460413f1fab5bb82fa2605795038
Reviewed-on: https://go-review.googlesource.com/47834
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoruntime: save r11 in ARM addmoduledata
Austin Clements [Fri, 7 Jul 2017 18:59:35 +0000 (14:59 -0400)]
runtime: save r11 in ARM addmoduledata

R11 is callee-save in the C ABI, but the temporary register in the Go
ABI. Currently it's being clobbered by runtime.addmoduledata, which
has to follow the C ABI. The observed effect of this was that
dl_open_worker was returning to a bad PC because after it failed to
restore its SP because it was using R11 as a frame pointer.

Fix this by saving R11 around addmoduledata.

Fixes #19674.

Change-Id: Iaacbcc76809a3aa536e9897770831dcbcb6c8245
Reviewed-on: https://go-review.googlesource.com/47831
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
6 years agodoc/go1.9: DWARF lexical scopes are only with -N -l
Austin Clements [Fri, 7 Jul 2017 15:12:22 +0000 (11:12 -0400)]
doc/go1.9: DWARF lexical scopes are only with -N -l

Change-Id: If1c602176e0bea66924983eab8edd5e450228b68
Reviewed-on: https://go-review.googlesource.com/47792
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agodoc/go1.9: discuss runtime.Callers
Austin Clements [Thu, 6 Jul 2017 18:27:25 +0000 (14:27 -0400)]
doc/go1.9: discuss runtime.Callers

A lot of code that uses runtime.Callers makes assumptions about the
result that are not true today under gccgo and will not be true in the
future in gc. This adds a section to the release notes discussing how
to correctly use runtime.Callers.

Change-Id: I96b7c7ef183cee2061442fc3501fceceefa54c09
Reviewed-on: https://go-review.googlesource.com/47691
Reviewed-by: Russ Cox <rsc@golang.org>
6 years agoruntime: document FuncForPC behavior with inlining
Austin Clements [Thu, 6 Jul 2017 16:36:25 +0000 (12:36 -0400)]
runtime: document FuncForPC behavior with inlining

Change-Id: I1c02aa4f7131ae984fda66b32e8a993c0a40b8f4
Reviewed-on: https://go-review.googlesource.com/47690
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
6 years agodoc: note that Go 1.9 is last release to support FreeBSD 9.3
Brad Fitzpatrick [Fri, 7 Jul 2017 03:45:50 +0000 (03:45 +0000)]
doc: note that Go 1.9 is last release to support FreeBSD 9.3

Fixes #20930

Change-Id: I4a59de0556cffeae9af2eaa41609601e086211b2
Reviewed-on: https://go-review.googlesource.com/47731
Reviewed-by: Rob Pike <r@golang.org>
6 years agocmd/doc: print Go syntax when printing struct.field docs
Brad Fitzpatrick [Thu, 6 Jul 2017 20:02:26 +0000 (20:02 +0000)]
cmd/doc: print Go syntax when printing struct.field docs

Fixes #20928

Change-Id: I7f7aafb8ff4b5deb50c286a9ae81c34ee85e56a9
Reviewed-on: https://go-review.googlesource.com/47730
Reviewed-by: Rob Pike <r@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

6 years agoencoding/base32: make NoPadding Encoding's DecodedLen return exact size
Gustav Westling [Thu, 6 Jul 2017 18:30:26 +0000 (20:30 +0200)]
encoding/base32: make NoPadding Encoding's DecodedLen return exact size

CL 47341 added support for decoding non-padded messages. But DecodedLen
still returned a multiple of 5 for messages without a padding, even
though it is possible to calculate the len exactly when using NoPadding.

This change makes DecodedLen return the exact number of bytes that
will be written. A change to the decoding logic is also made so that it
can handle this case.

DecodedLen now has the same behaviour as DecodedLen in encoding/base64.

Fixes #20854

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

6 years agoos/exec: clarify Cmd.Wait documentation a bit more explicitly
Brad Fitzpatrick [Thu, 6 Jul 2017 17:56:21 +0000 (17:56 +0000)]
os/exec: clarify Cmd.Wait documentation a bit more explicitly

It already implied that Cmd.Wait is more than os.Process.Wait, but say
so explicitly.

See https://github.com/golang/go/issues/18874#issuecomment-309921486

Updates #18874

Change-Id: Iaa46defd776ae0be817d9f4466a99ac78cfd672b
Reviewed-on: https://go-review.googlesource.com/47650
Reviewed-by: Russ Cox <rsc@golang.org>
6 years agoencoding/base32: support custom and disabled padding when decoding
Gustav Westling [Sun, 2 Jul 2017 11:27:47 +0000 (13:27 +0200)]
encoding/base32: support custom and disabled padding when decoding

CL 38634 added support for custom (and disabled) padding characters
when encoding, but didn't update the decoding paths. This adds
decoding support.

Fixes #20854

Change-Id: I9fb1a0aaebb27f1204c9f726a780d5784eb71024
Reviewed-on: https://go-review.googlesource.com/47341
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoruntime: prevent descheduling while holding rwmutex read lock
Austin Clements [Thu, 6 Jul 2017 15:55:39 +0000 (11:55 -0400)]
runtime: prevent descheduling while holding rwmutex read lock

Currently only the rwmutex write lock prevents descheduling. The read
lock does not. This leads to the following situation:

1. A reader acquires the lock and gets descheduled.

2. GOMAXPROCS writers attempt to acquire the lock (or at least one
writer does, followed by readers). This blocks all of the Ps.

3. There is no 3. The descheduled reader never gets to run again
because there are no Ps, so it never releases the lock and the system
deadlocks.

Fix this by preventing descheduling while holding the read lock. This
requires also rewriting TestParallelRWMutexReaders to always create
enough GOMAXPROCS and to use non-blocking operations for
synchronization.

Fixes #20903.

Change-Id: Ibd460663a7e5a555be5490e13b2eaaa295fac39f
Reviewed-on: https://go-review.googlesource.com/47632
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
6 years agonet: clarify the length limit for service name
Mikio Hara [Wed, 14 Dec 2016 21:19:49 +0000 (06:19 +0900)]
net: clarify the length limit for service name

Change-Id: If5495f66d175bdacebd599abf1e064d2343669c2
Reviewed-on: https://go-review.googlesource.com/34430
Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agonet: don't return IPv4 unspecified addr for Resolve*Addr of [::] or [::]:n
Brad Fitzpatrick [Thu, 6 Jul 2017 05:00:21 +0000 (22:00 -0700)]
net: don't return IPv4 unspecified addr for Resolve*Addr of [::] or [::]:n

ResolveTCPAddr, ResolveUDPAddr, and ResolveIPAddr return at most one
address. When given a name like "golang.org" to resolve that might
have more than 1 address, the net package has historically preferred
IPv4 addresses, with the assumption that many users don't yet have
IPv6 connectivity and randomly selecting between an IPv4 address and
an IPv6 address at runtime wouldn't be a good experience for IPv4-only
users.

In CL 45088 (78cf0e56) I modified the resolution of the
unspecified/empty address to internally resolve to both IPv6 "::" and
0.0.0.0 to fix issue #18806.

That code has 3 other callers I hadn't considered, though: the
Resolve*Addr functions. Since they preferred IPv4, any Resolve*Addr of
"[::]:port" or "::" (for ResolveIPAddr) would internally resolve both
"::" and 0.0.0.0 and then prefer 0.0.0.0, even though the user was
looking up an IPv6 literal.

Add tests and fix it, not by undoing the fix to #18806 but by
selecting the preference function for Resolve*Addr more explicitly: we
still prefer IPv4, but if the address being looked up was an IPv6
literal, prefer IPv6.

The tests are skipped on machines without IPv6.

Fixes #20911

Change-Id: Ib7036cc43182ae4118cd1390c254e17c04a251a3
Reviewed-on: https://go-review.googlesource.com/47554
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
6 years agodoc: complete remaining Go 1.9 documentation TODOs
Brad Fitzpatrick [Thu, 6 Jul 2017 00:22:31 +0000 (00:22 +0000)]
doc: complete remaining Go 1.9 documentation TODOs

Updates #20587

Change-Id: Ie4846f90611390eebf037ffafaed5ddd273565e4
Reviewed-on: https://go-review.googlesource.com/47551
Reviewed-by: Rob Pike <r@golang.org>
6 years agocmd/go: fix docs for -timeout
Russ Cox [Thu, 6 Jul 2017 04:14:15 +0000 (00:14 -0400)]
cmd/go: fix docs for -timeout

The text before CL 45816 was:

-timeout t
If a test runs longer than t, panic.
The default is 10 minutes (10m).

CL 45816 was supposed to be about clarifying test vs test binary,
and it did add the clarification of referring to "duration d",
but it also introduced incorrect text about timeout 0.

The new text in this CL preserves the good change and
eliminates the incorrect one:

-timeout d
If a test binary runs longer than duration d, panic.
The default is 10 minutes (10m).

For #14780.

Change-Id: I4f79d6e48ed9295bc9f34a36aa90d3b03b40d7f5
Reviewed-on: https://go-review.googlesource.com/47571
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
6 years agoreflect: match MakeMapWithSize docs about initial capacity with spec
Emmanuel Odeke [Wed, 21 Jun 2017 06:35:18 +0000 (00:35 -0600)]
reflect: match MakeMapWithSize docs about initial capacity with spec

Following the spec clarification in CL 40393, copy that text
to reflect docs to state that the initial capacity of MakeMapWithSize
is a hint/approximate.

Fixes #19903

Change-Id: I6b3315b8183cafaa61fbb2839a4e42b76fd71544
Reviewed-on: https://go-review.googlesource.com/46270
Reviewed-by: Robert Griesemer <gri@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>