Shawn Walker-Salas [Wed, 28 Jun 2017 17:58:44 +0000 (10:58 -0700)]
syscall: fix Exec on solaris
The test added for issue #18146 exposed a long-existing bug in the
Solaris port; notably, that syscall.Exec uses RawSyscall -- which is not
actually functional for the Solaris port (intentionally) and only exists
as a placebo to satisfy build requirements.
Ibrahim AshShohail [Wed, 28 Jun 2017 17:09:15 +0000 (20:09 +0300)]
os: fix passing long paths to Chmod on Windows
os.Chmod returns an error when passed a long path (>=260) characters on
Windows. CL 32451 fixed most file functions in os. This change applies the
same fix to os.Chmod.
Kevin Burke [Tue, 27 Jun 2017 18:36:32 +0000 (11:36 -0700)]
time: show how to get midnight on the current day
A common task is trying to get today's date in the local time zone
with zero values for the hour, minute, second, and nanosecond fields.
I tried this recently and incorrectly used Truncate(24*time.Hour),
which truncates based on a UTC clock, and gave me 5pm Pacific time
instead of midnight Pacific.
I thought it would be helpful to show a "correct" way to do this.
Change-Id: I479e6b0cc56367068530981ca69882b34febf945
Reviewed-on: https://go-review.googlesource.com/46833 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Joe Tsai [Wed, 28 Jun 2017 00:30:39 +0000 (17:30 -0700)]
archive/tar: use best effort at writing USTAR header
Prior to this change, if the Writer needed to use the PAX format, it would
output a USTAR header with an empty name. This should be okay since the PAX
specification dictates that the PAX record for "path" should override the
semantic meaning of any of the old USTAR fields.
Unfortunately, the implementation of tar on OpenBSD 6.1 is too strict with
their handling of PAX files such that they check for the validity of this
bogus field even though the PAX header is present.
To allow Go's Writer output be parsible by OpenBSD's tar utility,
we write a best-effort (ASCII-only and truncated) version of the original
file name. Note that this still fails in some edge-cases (for example,
a Chinese filename containing all non-ASCII characters). OpenBSD should really
relax their checking, as you honestly can't always expect a sensible path
to be generated when USTAR cannot handle the original path.
Fixes #20707
Change-Id: Id7d77349023d2152d7291d582cd050b6681760e4
Reviewed-on: https://go-review.googlesource.com/46914
Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Hiroshi Ioka [Sun, 4 Jun 2017 03:11:19 +0000 (12:11 +0900)]
cmd/cgo: unwrap typedef-chains before type checking
clang can emit some dwarf.VoidType which are wrapped by multiple
dwarf.TypedefType. We need to unwrap those before further processing.
Fixes #20129
Change-Id: I671ce6aef2dc7b55f1a02aec5f9789ac1b369643
Reviewed-on: https://go-review.googlesource.com/44772 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Brad Fitzpatrick [Tue, 27 Jun 2017 22:17:21 +0000 (22:17 +0000)]
doc: mention testing/quick RNG seeding change in Go 1.9 notes
Also reword the testing/quick.Config field docs to conform to the
normal subject-first style. Without that style, godoc links
/pkg/testing/quick/#Config.Rand to the wrong line, since it doesn't
recognize the preceding comment as necessarily being attached.
Fixes #20809
Change-Id: I9aebbf763eed9b1ab1a153fa11850d88a65571c6
Reviewed-on: https://go-review.googlesource.com/46910 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Matthew Dempsky [Tue, 27 Jun 2017 19:58:32 +0000 (12:58 -0700)]
cmd/compile: suppress errors after "cannot assign to X"
If the LHS is unassignable, there's no point in trying to make sure
the RHS can be assigned to it or making sure they're realizable
types. This is consistent with go/types.
In particular, this prevents "1 = 2" from causing a panic when "1"
still ends up with the type "untyped int", which is not realizable.
Fixes #20813.
Change-Id: I4710bdaac2e375ef12ec29b888b8ac84fb640e56
Reviewed-on: https://go-review.googlesource.com/46835
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
Martin Garton [Tue, 27 Jun 2017 17:02:23 +0000 (18:02 +0100)]
bufio: make Reader.Peek invalidate Unreads
Since Reader.Peek potentially reads from the underlying io.Reader,
discarding previous buffers, UnreadRune and UnreadByte cannot
necessarily work. Change Peek to invalidate the unread buffers in all
cases (as allowed according to the documentation) and thus prevent
hiding bugs in the caller.
Fixes #18556
Change-Id: I8d836db7ce31c4aaecb4f61c24573b0332bbf30d
Reviewed-on: https://go-review.googlesource.com/46850 Reviewed-by: Robert Griesemer <gri@golang.org>
Dmitri Shuralyov [Mon, 26 Jun 2017 18:32:55 +0000 (14:32 -0400)]
crypto/x509: fix panic in TestEnvVars, improve style
This panic happens when the test fails due to the returned number of
certificates (r.certs) being less than expected by test case (tc.cns).
When i == len(r.certs) in the for loop, r.certs[i] will cause an index
out of range panic.
Also improve readability, consistency and style of the code. Use the
more common "got x, want y" pattern. See https://golang.org/s/style#useful-test-failures
for reference (and grep codebase for most common occurrences). Add a
comment, and remove blank line separating two blocks that are both
related to verifying that len(r.certs) == len(tc.cns). This should
help with readability.
Remove space after colon in call to t.Fatal, since it adds spaces
between its arguments.
Hana (Hyang-Ah) Kim [Fri, 28 Apr 2017 13:11:50 +0000 (09:11 -0400)]
net/http/pprof: mention mutex profile in doc
mutex profile requires explicit calls to
runtime.SetMutexProfileFraction to enable/disable
profiling (like block profile). It is worth
mentioning in the doc.
Brad Fitzpatrick [Mon, 26 Jun 2017 19:43:56 +0000 (19:43 +0000)]
doc: add FMA mention to Go 1.9 release notes
Fixes #20795
Updates #17895
Updates #20587
Change-Id: Iea375f3a6ffe3f51e3ffdae1fb3fd628b6b3316c
Reviewed-on: https://go-review.googlesource.com/46717 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Brad Fitzpatrick [Mon, 26 Jun 2017 19:07:24 +0000 (19:07 +0000)]
net/http/httputil: always deep copy the Request.Header map in ReverseProxy
We used to do it sometimes as an optimization, but the optimization is
flawed: in all non-contrived cases we need to deep clone the map
anyway. So do it always, which both simplifies the code but also fixes
the X-Forward-For value leaking to the caller's Request, as well as
modifications from the optional Director func.
Fixes #18327
Change-Id: I0c86d10c557254bf99fdd988227dcb15f968770b
Reviewed-on: https://go-review.googlesource.com/46716 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Austin Clements [Fri, 23 Jun 2017 21:54:39 +0000 (17:54 -0400)]
runtime: drain local runq when dedicated mark worker runs
When the dedicated mark worker runs, the scheduler won't run on that P
again until GC runs out of mark work. As a result, any goroutines in
that P's local run queue are stranded until another P steals them. In
a normally operating system this may take a long time, and in a 100%
busy system, the scheduler never attempts to steal from another P.
Fix this by draining the local run queue into the global run queue if
the dedicated mark worker has run for long enough. We don't do this
immediately upon scheduling the dedicated mark worker in order to
avoid destroying locality if the mark worker runs for a short time.
Instead, the scheduler delays draining the run queue until the mark
worker gets its first preemption request (and otherwise ignores the
preemption request).
Yasha Bubnov [Mon, 28 Nov 2016 20:16:16 +0000 (23:16 +0300)]
net/http/httptest: close client connections in separate goroutines
The existing implementation sequentially closes connection in the loop
and until the previous client connections is not closed the next one
would not be processed. Instead, the algorithm modified to spawn the
function that closes single connection in a standalone goroutine, thus
making at least a try to close it.
Ian Lance Taylor [Fri, 23 Jun 2017 14:08:56 +0000 (07:08 -0700)]
os: align siginfo argument to waitid
I have no test case for this, but there is one report on the mailing list
(https://groups.google.com/d/msg/golang-dev/sDg-t1_DPw0/-AJmLxgPBQAJ)
in which waitid running on MIPS returns EFAULT.
Change-Id: I79bde63c7427eefc1f2925d78d97cc9cf2fffde3
Reviewed-on: https://go-review.googlesource.com/46511
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Russ Cox [Fri, 23 Jun 2017 00:08:00 +0000 (20:08 -0400)]
cmd/go: fix TestExecutableGOROOT when GOROOT_FINAL is set
If GOROOT_FINAL was set during the build, the default GOROOT
will not be testGOROOT. Determine the default GOROOT by reading
the right source file instead of guessing. (GOROOT_FINAL may no
longer be set when the test is actually run.)
Also refactor a bit.
Fixes #20284.
Change-Id: I2274595a235bee10c3f3a5ffecf4bb976f4d9982
Reviewed-on: https://go-review.googlesource.com/46428
Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Russ Cox [Thu, 22 Jun 2017 20:52:26 +0000 (16:52 -0400)]
cmd/go: report possibly-relevant ignored symlinks during pattern match
We can't follow symlinks for fear of directory cycles and other problems,
but we can at least notice potentially-relevant symlinks that are being
ignored and report them.
Fixes #17662.
Change-Id: I1fce00bd5b80ea8df45dac8b61bfa08076ec5f4b
Reviewed-on: https://go-review.googlesource.com/46425
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
We already detect this collision when both imports are used
anywhere in a single program. Also detect it when they are in
different targets being processed together.
Fixes #20264.
Change-Id: I5d3c822aae136053fbcb5ed167e1d67f9b847a0f
Reviewed-on: https://go-review.googlesource.com/46424
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Mark Ryan [Fri, 23 Jun 2017 13:13:11 +0000 (14:13 +0100)]
encoding/ascii85: make bigtest big again
ascii85_test.go contains a variable called bigtest that is used as
test data for TestDecoderBuffering and TestEncoderBuffering. The
variable is initialised to a copy of the last element of the pairs
slice. When the variable was first added the last element of this
slice contained a sizable test case, 342 encoded characters. However,
https://golang.org/cl/5970078 added a new element to the end of the pairs
slice without updating bigtest. As the new element contained only 1 byte
of encoded data bigtest became very small test. This commit fixes the
problem by resetting bigtest to its original value and making its
initialisation independent of the layout of pairs. All the unit tests
still pass.
Russ Cox [Thu, 22 Jun 2017 19:49:42 +0000 (15:49 -0400)]
cmd/go: require -buildmode=c-shared to take one main package
The current behavior is to filter out the non-main packages silently,
which is confusing if there are only non-main packages.
Instead, report an error unless it's used with a single main package.
To be clear, I don't really know what I'm doing.
It might be that multiple main packages are allowed, or even
that we do want the filtering, but all.bash passes with this change,
so I am taking that as a sign that we don't need that extra flexibility.
Fixes #15082.
Change-Id: I984d0f444a01c0ee0c3cd6646a75527ea99a9ebe
Reviewed-on: https://go-review.googlesource.com/46421
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Mikio Hara [Tue, 6 Jun 2017 02:12:34 +0000 (11:12 +0900)]
net: update documentation on IP.IsUnspecified
Fixes #19344.
Change-Id: Ic6fc7485cb50bfae99fda69d0cd9c4ae434af4c3
Reviewed-on: https://go-review.googlesource.com/44910 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Mikio Hara [Tue, 6 Jun 2017 04:33:01 +0000 (13:33 +0900)]
net: update documentation on methods of IPConn
This change simplifies the documentation on methods of IPConn and adds
a reference to golang.org/x/net/ipv{4,6} packages to the documentation
on {Read,Write}MsgIP methods.
Change-Id: Ie07a853288940e0fef6a417ffc8d0c3d444c21cd
Reviewed-on: https://go-review.googlesource.com/44911
Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Mikio Hara [Tue, 6 Jun 2017 04:35:39 +0000 (13:35 +0900)]
net: update documentation on methods of UDPConn
This change simplifies the documentation on methods of UDPConn and
adds a reference to golang.org/x/net/{ipv4,ipv6} packages to the
documentation on {Read,Write}MsgUDP methods.
Change-Id: I425a8d81bc46b6579aa9f89faa4982bb86b40f24
Reviewed-on: https://go-review.googlesource.com/44912
Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Mikio Hara [Sun, 8 Jan 2017 08:29:26 +0000 (17:29 +0900)]
net: update documentation on JoinHostPort and SplitHostPort
This change adds a reference to the Dial to clarify the parameters and
return values.
Change-Id: I611b9a79f4033ef035acd7098aea5965905d9a4c
Reviewed-on: https://go-review.googlesource.com/34880 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Mikio Hara [Sun, 8 Jan 2017 08:28:01 +0000 (17:28 +0900)]
net: update documentation on Resolve{TCP,UDP,IP,Unix}Addr
This change clarifies the documentation on
Resolve{TCP,UDP,IP,Unix}Addr to avoid unnecessary confusion about how
the arguments are used to make end point addresses.
Also replaces "name" or "hostname" with "host name" when the term
implies the use of DNS.
Updates #17613.
Change-Id: Id6be87fe2e4666eecd5b92f18ad8b9a6c50a2bd6
Reviewed-on: https://go-review.googlesource.com/34879 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Mikio Hara [Sun, 8 Jan 2017 08:22:34 +0000 (17:22 +0900)]
net: update documentation on Listen{TCP,UDP,MulticastUDP,IP,Unix,Unixgram}
This change clarifies the documentation on
Listen{TCP,UDP,MulticastUDP,IP,Unix,Unixgram} to avoid unnecessary
confusion about how the arguments for the connection setup functions
are used to make connections.
Change-Id: Ie269453ef49ec2db893391dc3ed2f7b641c14249
Reviewed-on: https://go-review.googlesource.com/34878 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Mikio Hara [Sun, 8 Jan 2017 08:18:20 +0000 (17:18 +0900)]
net: update documentation on Dial{TCP,UDP,IP,Unix}
This change clarifies the documentation on Dial{TCP,UDP,IP,Unix} to
avoid unnecessary confusion about how the arguments for the connection
setup functions are used to make connections.
Change-Id: I2e378182948fbe221f6ae786ab55e77ae90c3f3b
Reviewed-on: https://go-review.googlesource.com/34877 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Mikio Hara [Sun, 8 Jan 2017 08:16:46 +0000 (17:16 +0900)]
net: update documentation on Listen and ListenPacket
This change clarifies the documentation on Listen and ListenPacket to
avoid unnecessary confusion about how the arguments for the connection
setup functions are used to make connections.
Also replaces "name" or "hostname" with "host name" when the term
implies the use of DNS.
Change-Id: I0bad2e143207666f2358d397fc076548ee6c3ae9
Reviewed-on: https://go-review.googlesource.com/34876 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Mikio Hara [Sun, 8 Jan 2017 08:15:54 +0000 (17:15 +0900)]
net: update documentation on Dial and its variants
This change clarifies the documentation on Dial and its variants to
avoid unnecessary confusion about how the arguments for the connection
setup functions are used to make connections.
Also replaces "name" or "hostname" with "host name" when the term
implies the use of DNS.
Change-Id: I6adb3f2ae04a3bf83b96016ed73d8e59926f3e8a
Reviewed-on: https://go-review.googlesource.com/34875 Reviewed-by: Ian Lance Taylor <iant@golang.org>
David Chase [Wed, 21 Jun 2017 21:19:24 +0000 (17:19 -0400)]
cmd/compile: make loop guard+rotate conditional on GOEXPERIMENT
Loops of the form "for i,e := range" needed to have their
condition rotated to the "bottom" for the preemptible loops
GOEXPERIMENT, but this caused a performance regression
because it degraded bounds check removal. For now, make
the loop rotation/guarding conditional on the experiment.
Fixes #20711.
Updates #10958.
Change-Id: Icfba14cb3b13a910c349df8f84838cf4d9d20cf6
Reviewed-on: https://go-review.googlesource.com/46410
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
John R. Lenton [Sat, 20 May 2017 16:22:36 +0000 (17:22 +0100)]
runtime, syscall: workaround for bug in Linux's execve
Linux's execve has (at the time of writing, and since v2.6.30) a bug when it ran
concurrently with clone, in that it would fail to set up some datastructures if
the thread count before and after some steps differed. This is described better
and in more detail by Colin King in Launchpad¹ and kernel² bugs. When a program
written in Go runtime.Exec's a setuid binary, this issue may cause the resulting
process to not have the expected uid. This patch works around the issue by using
a mutex to serialize exec and clone.
Change-Id: I126e87d1d9ce3be5ea4ec9c7ffe13f92e087903d
Reviewed-on: https://go-review.googlesource.com/43713 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Change-Id: I11e864eff9980dec8247c47e4c600f76602e7ada
Reviewed-on: https://go-review.googlesource.com/46092 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Brad Fitzpatrick [Mon, 19 Jun 2017 19:06:08 +0000 (19:06 +0000)]
A+C: updated update
I updated my tool to deal with Github-only contributors without Gerrit
accounts. The "dep" repo is the main source of these, although there
are a few others.
Add Alexander Kauer (individual CLA)
Add Anders Pearson (individual CLA)
Add Brad Whitaker (corporate CLA for Fastly, Inc.)
Add Daisuke Fujita (individual CLA)
Add Daniel Upton (individual CLA)
Add David Volquartz Lebech (individual CLA)
Add Emilien Kenler (individual CLA)
Add Fazal Majid (corporate CLA for Apsalar)
Add Gustav Westling (individual CLA)
Add Henry Chang (individual CLA)
Add Jianqiao Li (corporate CLA for Google Inc.)
Add Jin-wook Jeong (individual CLA)
Add Kaleb Elwert (individual CLA)
Add Kashav Madan (individual CLA)
Add Koki Ide (individual CLA)
Add Konstantin (individual CLA)
Add Kyle Jones (individual CLA)
Add Leon Klingele (individual CLA)
Add Martin Olsen (individual CLA)
Add Máximo Cuadros Ortiz (individual CLA)
Add Miguel Molina (individual CLA)
Add Nathaniel Cook (individual CLA)
Add Neil Lyons (individual CLA)
Add Nick Robinson (individual CLA)
Add Niranjan Godbole (individual CLA)
Add Oleg Bulatov (individual CLA)
Add Oliver Tonnhofer (individual CLA)
Add Paul Querna (individual CLA)
Add Peter Bourgon (individual CLA)
Add Quentin Renard (individual CLA)
Add Ray Tung (individual CLA)
Add Rob Phoenix (individual CLA)
Add Ryan Boehning (individual CLA)
Add Sakeven Jiang (individual CLA)
Add Stephen Searles (individual CLA)
Add Steven Wilkin (individual CLA)
Add Sunny (individual CLA)
Add Ted Kornish (individual CLA)
Add Victor Vrantchan (individual CLA)
Add Wander Lairson Costa (individual CLA)
Add Zakatell Kanda (individual CLA)
Updates #12042
Change-Id: I2e4828cce880965c77b374c1e115d0e437d108c7
Reviewed-on: https://go-review.googlesource.com/46090 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Austin Clements [Tue, 20 Jun 2017 19:59:02 +0000 (15:59 -0400)]
syscall: mark forkAndExecInChild1 noinline
This certainly won't get inlined right now, but in the spirit of
making this more robust, we have to disable inlining because inlining
would defeat the purpose of separating forkAndExecInChild1 into a
separate function.
Austin Clements [Tue, 20 Jun 2017 19:12:12 +0000 (15:12 -0400)]
syscall: use CLONE_VFORK safely
Currently, CLONE_VFORK is used without much regard to the stack. This
is dangerous, because anything the child does to the stack is visible
to the parent. For example, if the compiler were to reuse named stack
slots (which it currently doesn't do), it would be easy for the child
running in the same stack frame as the parent to corrupt local
variables that the parent then depended on. We're not sure of anything
specific going wrong in this code right now, but it is at best a
ticking time bomb.
CLONE_VFORK can only safely be used if we ensure the child does not
execute in any of the active stack frames of the parent. This commit
implements this by arranging for the parent to return immediately from
the frame the child will operate in, and for the child to never return
to the frame the parent will operate in.
Fixes #20732.
Change-Id: Iad5b4ddc2b994c082bd278bfd52ef53bd38c037f
Reviewed-on: https://go-review.googlesource.com/46173
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Russ Cox [Fri, 16 Jun 2017 18:46:24 +0000 (14:46 -0400)]
testing: harmonize handling of prefix-matched benchmarks
If you have BenchmarkX1 with sub-benchmark Y
and you have BenchmarkX2 with no sub-benchmarks,
then
go test -bench=X/Y
runs BenchmarkX1 once with b.N=1 (to find out about Y)
and then not again, because it has sub-benchmarks,
but arguably also because we're interested in Y.
In contrast, it runs BenchmarkX2 in full, even though clearly
that is not relevant to the match X/Y. We do have to run X2
once with b.N=1 to probe for having X2/Y, but we should not
run it with larger b.N.
Brad Fitzpatrick [Mon, 19 Jun 2017 22:59:56 +0000 (22:59 +0000)]
net/http: update bundled http2
Updates http2 to x/net/http2 git rev 3d7ac2a5d for:
http2: fix Server race
https://golang.org/cl/20704
Fixes #20704
Change-Id: I803288f94a8a462ad0960b0c29c2dfee27b9f1ae
Reviewed-on: https://go-review.googlesource.com/46093
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Tom Bergan <tombergan@google.com> Reviewed-by: Tom Bergan <tombergan@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Ian Lance Taylor [Thu, 15 Jun 2017 23:42:08 +0000 (16:42 -0700)]
runtime: add read/write mutex type
This is a runtime version of sync.RWMutex that can be used by code in
the runtime package. The type is not quite the same, in that the zero
value is not valid.
Robert Griesemer [Fri, 16 Jun 2017 21:48:38 +0000 (14:48 -0700)]
cmd/compile: permit Unicode spaces in (expanded) package paths
This doesn't change the existing restriction with disallows
spaces in import paths (as found in an import declaration).
It simply permits packages to be under a directory name that
may contain spaces.
Verified manually that it works. This could use a test, but the
change is trivial. We also can't use the existing test framework
(under test/) because the way those tests are run with test/run.go,
the mechanims for compiling a directory, even if it contains blanks
it its name, does't produce compiler paths with blanks
(the compilation is local).
Mark Ryan [Fri, 16 Jun 2017 10:34:28 +0000 (11:34 +0100)]
encoding: fix endless loop in TestDecoderBuffering
The ascii85, base32 and base64 packages all contain a test called
TestDecoderBuffering. Each of these tests contain a loop that ignores
the error returned from the Read method of their decoders. The result
being that the tests loop for ever if the decoders actually return an
error. This commit fixes the issue by terminating the loops if an error
occurs and failing the tests with a suitable error message.
Change-Id: Idb385673cf9f3f6f8befe4288b4be366ab0985fd
Reviewed-on: https://go-review.googlesource.com/46010 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Jed Denlea [Thu, 15 Jun 2017 22:53:09 +0000 (15:53 -0700)]
image/gif: fix writeImageBlock with SubImages
If an image has been cropped horizontally, writeImageBlock detects that
its width and Stride differ and acts accordingly.
However, if an image has been cropped vertically, trimming from the
bottom, the whole original image will be written in place. This results
in more data in the LZW stream than necessary, and many decoders
including image/gif's itself will fail to load.
Fixes #20692
Change-Id: Id332877e31bcf3729c89d8a50c1be0464028d82e
Reviewed-on: https://go-review.googlesource.com/45972
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
Run-TryBot: Nigel Tao <nigeltao@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Nigel Tao <nigeltao@golang.org>
Brad Fitzpatrick [Thu, 15 Jun 2017 23:18:14 +0000 (23:18 +0000)]
A+C: automated update
Add Adam Eijdenberg (individual CLA)
Add Agis Anastasopoulos (individual CLA)
Add Alexander Guz (individual CLA)
Add Alexander Kucherenko (individual CLA)
Add Alexander Polcyn (corporate CLA for Google Inc.)
Add Alexis Hildebrandt (individual CLA)
Add Alexis Hunt (corporate CLA for Google Inc.)
Add Andrew Jackura (corporate CLA for Google Inc.)
Add Anthony Voutas (individual CLA)
Add Antoine Martin (individual CLA)
Add Antonio Troina (individual CLA)
Add Bill Prin (corporate CLA for Google Inc.)
Add Brad Jones (corporate CLA for Google Inc.)
Add Chris Raynor (corporate CLA for Google Inc.)
Add Chris Roche (individual CLA)
Add Daker Fernandes Pinheiro (corporate CLA for Intel Corporation)
Add Dave MacFarlane (individual CLA)
Add Derek McGowan (individual CLA)
Add Di Xiao (corporate CLA for Google Inc.)
Add Doug Fawley (corporate CLA for Google Inc.)
Add Eric Chiang (individual CLA)
Add Eyal Posener (individual CLA)
Add Fabian Zaremba (individual CLA)
Add Fredrik Forsmo (individual CLA)
Add Hang Qian (individual CLA)
Add Hsin Tsao (corporate CLA for Google Inc.)
Add James Cowgill (individual CLA)
Add James Hartig (individual CLA)
Add James Myers (individual CLA)
Add Jason Chu (individual CLA)
Add Jay Conrod (corporate CLA for Google Inc.)
Add Jeff (Zhefu) Jiang (corporate CLA for Google Inc.)
Add Jeffrey H (individual CLA)
Add Jianing Yu (corporate CLA for Google Inc.)
Add Josh Deprez (individual CLA)
Add Julian Pastarmov (corporate CLA for Google Inc.)
Add Kai Trukenmüller (individual CLA)
Add Kim Yongbin (individual CLA)
Add Kodie Goodwin (individual CLA)
Add Lev Shamardin (individual CLA)
Add Lucas Bremgartner (individual CLA)
Add Ludi Rehak (individual CLA)
Add Lukasz Milewski (individual CLA)
Add Magnus Hiie (corporate CLA for Teleport Inc.)
Add Marko Mudrinic (individual CLA)
Add Martin Habbecke (corporate CLA for Google Inc.)
Add Martin Hoefling (individual CLA)
Add Martin Probst (individual CLA)
Add Masahiro Furudate (individual CLA)
Add Masahiro Wakame (individual CLA)
Add Masaki Yoshida (individual CLA)
Add Mathias Hall-Andersen (individual CLA)
Add Maxime de Roucy (individual CLA)
Add Nathan Humphreys (individual CLA)
Add Neuman Vong (individual CLA)
Add Pablo Lalloni (individual CLA)
Add Pavlo Sumkin (individual CLA)
Add Peter Morjan (individual CLA)
Add Piers (individual CLA)
Add Qiuxuan Zhu (individual CLA)
Add Richard Dingwall (individual CLA)
Add Rick Sayre (individual CLA)
Add Sascha Brawer (individual CLA)
Add Sergey Mishin (individual CLA)
Add Spencer Tung (corporate CLA for Google Inc.)
Add Steven Erenst (individual CLA)
Add Thomas Bouldin (corporate CLA for Google Inc.)
Add Tobias Klauser (individual CLA)
Add Tonis Tiigi (individual CLA)
Add Trung Nguyen (individual CLA)
Add Vikas Kedia (corporate CLA for Google Inc.)
Add Vladimir Varankin (individual CLA)
Add Yestin Sun (individual CLA)
Add acoshift (individual CLA)
Updates #12042
Change-Id: I5e3ba25f310fc89ae391e5abb308e137d56c9148
Reviewed-on: https://go-review.googlesource.com/45990 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Ian Lance Taylor [Thu, 15 Jun 2017 02:55:40 +0000 (19:55 -0700)]
net: handle spurious netpoll wakeups in connect
In some cases the netpoll code can cause a spurious wakeup. This is
normally harmless, as the woken up code simply retries the operation.
However, for connect, the test we were using to see whether the
connect had succeeded (setsockopt(SO_ERROR)) was not reliable in the
case of a spurious wakeup. Change to using a reliable test (getpeername).
On Darwin we used a different technique: a second call to connect;
change Darwin to use getpeername as well.
Return the result of getpeername to avoid having to call it twice.
Fixes #19289.
Change-Id: I119ec8e7a41f482f1e590d4c65a37f6103fa22d9
Reviewed-on: https://go-review.googlesource.com/45815
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Marko Mudrinic [Thu, 15 Jun 2017 17:15:47 +0000 (19:15 +0200)]
cmd/go: improve documentation on defaults for get
The existing docs states that, get looks for a branch or tag
that matches the locally installed version of Go.
First, this is only working for "go1", so it could be confusing.
Second, "If no such version exists it retrieves the most recent
version of the package". It's more the default branch, by git defaults,
rather than most recent version.
This should address the potential unclear parts.
Fixes #20320
Change-Id: Id7d727d88dc350c9902974b64fa28c3766f7e245
Reviewed-on: https://go-review.googlesource.com/45890 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Brad Fitzpatrick [Thu, 15 Jun 2017 19:32:36 +0000 (19:32 +0000)]
net/http: add a known goroutine, don't check goroutine leaks in benchmark mode
Change-Id: I8aa070f8093e80ba19f0546d7447caf847a2b388
Reviewed-on: https://go-review.googlesource.com/45912 Reviewed-by: Ian Lance Taylor <iant@golang.org>