Augusto Roman [Sat, 28 May 2016 23:59:28 +0000 (16:59 -0700)]
doc: correct release notes for non-string map keys in encoding/json
The original draft mentioned support for json.Marshaler, but that's
not the case. JSON supports only string keys (not arbitrary JSON)
so only encoding.TextMarshaller is supported.
Change-Id: I7788fc23ac357da88e92aa0ca17b513260840cee
Reviewed-on: https://go-review.googlesource.com/23529 Reviewed-by: Andrew Gerrand <adg@golang.org>
Joe Tsai [Sat, 28 May 2016 09:14:25 +0000 (02:14 -0700)]
io: use SeekStart, SeekCurrent, and SeekEnd in io.Seeker documentation
The documentation previously used C style enumerations: 0, 1, 2.
While this is pretty much universally correct, it does not help a user
become aware of the existence of the SeekStart, SeekCurrent, and SeekEnd
constants. Thus, we should use them in the documentation to direct people's
attention to them.
Updates #6885
Change-Id: I44b5e78d41601c68a0a1c96428c853df53981d52
Reviewed-on: https://go-review.googlesource.com/23551 Reviewed-by: Andrew Gerrand <adg@golang.org>
Document the following:
* That the algorithmic changes are still compliant with RFC 1951. I remember
people having questions regarding this issue, and it would be good to re-assure
them that it is still standards compliant.
* io.EOF can now be returned early (c27efce66bce7534dbb357ac1779bbc08395b267)
* Use the term "decompress" when referred to as an action. The term "uncompressed"
or "decompressed" are both valid as ways to represent the current state of the data.
Change-Id: Ie29ebce709357359e7c36d3e7f3d53b260eaadfa
Reviewed-on: https://go-review.googlesource.com/23552 Reviewed-by: Andrew Gerrand <adg@golang.org>
Keith Randall [Fri, 27 May 2016 21:07:37 +0000 (14:07 -0700)]
cmd/compile: SSA, don't let write barrier clobber return values
When we do *p = f(), we might need to copy the return value from
f to p with a write barrier. The write barrier itself is a call,
so we need to copy the return value of f to a temporary location
before we call the write barrier function. Otherwise, the call
itself (specifically, marshalling the args to typedmemmove) will
clobber the value we're trying to write.
Fixes #15854
Change-Id: I5703da87634d91a9884e3ec098d7b3af713462e7
Reviewed-on: https://go-review.googlesource.com/23522 Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Mikio Hara [Fri, 27 May 2016 08:35:45 +0000 (17:35 +0900)]
net/http/httptrace: fix nit in test
Change-Id: I6dc3666398b4cd7a7195bb9c0e321fa8b733fa15
Reviewed-on: https://go-review.googlesource.com/23502 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Mikio Hara [Fri, 27 May 2016 08:34:22 +0000 (17:34 +0900)]
runtime: skip TestGdbBacktrace on netbsd
Also adds missing copyright notice.
Updates #15603.
Change-Id: Icf4bb45ba5edec891491fe5f0039a8a25125d168
Reviewed-on: https://go-review.googlesource.com/23501 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Austin Clements [Fri, 27 May 2016 16:21:14 +0000 (12:21 -0400)]
runtime: always call stackfree on the system stack
Currently when the garbage collector frees stacks of dead goroutines
in markrootFreeGStacks, it calls stackfree on a regular user stack.
This is a problem, since stackfree manipulates the stack cache in the
per-P mcache, so if it grows the stack or gets preempted in the middle
of manipulating the stack cache (which are both possible since it's on
a user stack), it can easily corrupt the stack cache.
Fix this by calling markrootFreeGStacks on the system stack, so that
all calls to stackfree happen on the system stack. To prevent this bug
in the future, mark stack functions that manipulate the mcache as
go:systemstack.
Fixes #15853.
Change-Id: Ic0d1c181efb342f134285a152560c3a074f14a3d
Reviewed-on: https://go-review.googlesource.com/23511
Run-TryBot: Austin Clements <austin@google.com> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Russ Cox [Fri, 27 May 2016 13:50:06 +0000 (09:50 -0400)]
crypto/tls: adjust dynamic record sizes to grow arithmetically
The current code, introduced after Go 1.6 to improve latency on
low-bandwidth connections, sends 1 kB packets until 1 MB has been sent,
and then sends 16 kB packets (the maximum record size).
Unfortunately this decreases throughput for 1-16 MB responses by 20% or so.
Following discussion on #15713, change cutoff to 128 kB sent
and also grow the size allowed for successive packets:
1 kB, 2 kB, 3 kB, ..., 15 kB, 16 kB.
This fixes the throughput problems: the overhead is now closer to 2%.
I hope this still helps with latency but I don't have a great way to test it.
At the least, it's not worse than Go 1.6.
The small MB runs are bimodal in both cases, probably GC pauses.
But there's clearly no general slowdown anymore.
Fixes #15713.
Change-Id: I5fc44680ba71812d24baac142bceee0e23f2e382
Reviewed-on: https://go-review.googlesource.com/23487 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Russ Cox [Fri, 27 May 2016 16:15:04 +0000 (12:15 -0400)]
doc/go1.7.html: fix broken sentence
Change-Id: Ia540c890767dcb001d3b3b55d98d9517b13b21da
Reviewed-on: https://go-review.googlesource.com/23510 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Russ Cox [Fri, 27 May 2016 15:05:14 +0000 (11:05 -0400)]
net/http: change Transport.Dialer to Transport.DialContext
New in Go 1.7 so still possible to change.
This allows implementations not tied to *net.Dialer.
Fixes #15748.
Change-Id: I5fabbf13c7f1951c06587a4ccd120def488267ce
Reviewed-on: https://go-review.googlesource.com/23489 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Russ Cox [Wed, 25 May 2016 14:01:58 +0000 (10:01 -0400)]
cmd/compile: additional paranoia and checking in plive.go
The main check here is that liveness now crashes if it finds an instruction
using a variable that should be tracked but is not.
Comments and adjustments in nodarg to explain what's going on and
to remove the "-1" argument added a few months ago, plus a sketch
of a future simplification.
The need for n.Orig in the earlier CL seems to have been an intermediate
problem rather than fundamental: the new explanations in nodarg make
clear that nodarg is not causing the problem I thought, and in fact now
using n instead of n.Orig works fine in plive.go.
Dmitri Shuralyov [Thu, 26 May 2016 06:22:11 +0000 (23:22 -0700)]
cmd/go: fixup for parsing SCP-like addresses
This is a fixup change for commit 5cd294480364eb166751838a3df8f58649c214e1
that added parsing of SCP-like addresses. To get the expected output
from (*url.URL).String(), Path needs to be set, not RawPath.
Add a test for this, since it has already regressed multiple times.
Updates #11457.
Change-Id: I806f5abbd3cf65e5bdcef01aab872caa8a5b8891
Reviewed-on: https://go-review.googlesource.com/23447
Run-TryBot: Andrew Gerrand <adg@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
Russ Cox [Wed, 25 May 2016 14:29:50 +0000 (10:29 -0400)]
cmd/compile: eliminate PPARAMREF
As in the elimination of PHEAP|PPARAM in CL 23393,
this is something the front end can trivially take care of
and then not bother the back ends with.
It also eliminates some suspect (and only lightly exercised)
code paths in the back ends.
I don't have a smoking gun for this one but it seems
more clearly correct.
Russ Cox [Wed, 25 May 2016 05:33:24 +0000 (01:33 -0400)]
cmd/compile: fix liveness computation for heap-escaped parameters
The liveness computation of parameters generally was never
correct, but forcing all parameters to be live throughout the
function covered up that problem. The new SSA back end is
too clever: even though it currently keeps the parameter values live
throughout the function, it may find optimizations that mean
the current values are not written back to the original parameter
stack slots immediately or ever (for example if a parameter is set
to nil, SSA constant propagation may replace all later uses of the
parameter with a constant nil, eliminating the need to write the nil
value back to the stack slot), so the liveness code must now
track the actual operations on the stack slots, exposing these
problems.
One small problem in the handling of arguments is that nodarg
can return ONAME PPARAM nodes with adjusted offsets, so that
there are actually multiple *Node pointers for the same parameter
in the instruction stream. This might be possible to correct, but
not in this CL. For now, we fix this by using n.Orig instead of n
when considering PPARAM and PPARAMOUT nodes.
The major problem in the handling of arguments is general
confusion in the liveness code about the meaning of PPARAM|PHEAP
and PPARAMOUT|PHEAP nodes, especially as contrasted with PAUTO|PHEAP.
The difference between these two is that when a local variable "moves"
to the heap, it's really just allocated there to start with; in contrast,
when an argument moves to the heap, the actual data has to be copied
there from the stack at the beginning of the function, and when a
result "moves" to the heap the value in the heap has to be copied
back to the stack when the function returns
This general confusion is also present in the SSA back end.
The PHEAP bit worked decently when I first introduced it 7 years ago (!)
in 391425ae. The back end did nothing sophisticated, and in particular
there was no analysis at all: no escape analysis, no liveness analysis,
and certainly no SSA back end. But the complications caused in the
various downstream consumers suggest that this should be a detail
kept mainly in the front end.
This CL therefore eliminates both the PHEAP bit and even the idea of
"heap variables" from the back ends.
First, it replaces the PPARAM|PHEAP, PPARAMOUT|PHEAP, and PAUTO|PHEAP
variable classes with the single PAUTOHEAP, a pseudo-class indicating
a variable maintained on the heap and available by indirecting a
local variable kept on the stack (a plain PAUTO).
Second, walkexpr replaces all references to PAUTOHEAP variables
with indirections of the corresponding PAUTO variable.
The back ends and the liveness code now just see plain indirected
variables. This may actually produce better code, but the real goal
here is to eliminate these little-used and somewhat suspect code
paths in the back end analyses.
The OPARAM node type goes away too.
A followup CL will do the same to PPARAMREF. I'm not sure that
the back ends (SSA in particular) are handling those right either,
and with the framework established in this CL that change is trivial
and the result clearly more correct.
Ian Lance Taylor [Thu, 19 May 2016 01:42:25 +0000 (18:42 -0700)]
cmd/cgo: remove -O options when generating compiler errors
The cgo tool generates compiler errors to find out what kind of name it
is using. Turning on optimization can confuse that process by producing
new unexpected messages.
Fixes #14669.
Change-Id: Idc8e35fd259711ecc9638566b691c11d17140325
Reviewed-on: https://go-review.googlesource.com/23231
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
Keith Randall [Tue, 24 May 2016 21:09:02 +0000 (14:09 -0700)]
cmd/compile: testing harness for checking generated assembly
Add a test which compiles a function and checks the
generated assembly to make sure certain patterns are present.
This test allows us to do white box tests of the compiler
to make sure optimizations don't regress.
Added a few simple tests for now. More to come.
Change-Id: I4ab5ce5d95b9e04e7d0d9328ffae47b8d1f95e74
Reviewed-on: https://go-review.googlesource.com/23403 Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Quentin Smith [Thu, 26 May 2016 21:53:21 +0000 (17:53 -0400)]
encoding/json: improve Decode example
Decoding a JSON message does not touch unspecified or null fields;
always use a new underlying struct to prevent old field values from
sticking around.
Fixes: #14640
Change-Id: Ica78c208ce104e2cdee1d4e92bf58596ea5587c8
Reviewed-on: https://go-review.googlesource.com/23483 Reviewed-by: Andrew Gerrand <adg@golang.org>
domorder has some non-obvious useful properties
that we’re relying on in cse.
Document them and provide an argument that they hold.
While we’re here, do some minor renaming.
The argument is a re-working of a private email
exchange with Todd Neal and David Chase.
Russ Cox [Wed, 25 May 2016 18:37:43 +0000 (14:37 -0400)]
build: enable framepointer mode by default
This has a minor performance cost, but far less than is being gained by SSA.
As an experiment, enable it during the Go 1.7 beta.
Having frame pointers on by default makes Linux's perf, Intel VTune,
and other profilers much more useful, because it lets them gather a
stack trace efficiently on profiling events.
(It doesn't help us that much, since when we walk the stack we usually
need to look up PC-specific information as well.)
Austin Clements [Thu, 26 May 2016 00:56:56 +0000 (20:56 -0400)]
runtime: unwind BP in jmpdefer to match SP unwind
The irregular calling convention for defers currently incorrectly
manages the BP if frame pointers are enabled. Specifically, jmpdefer
manipulates the SP as if its own caller, deferreturn, had returned.
However, it does not manipulate the BP to match. As a result, when a
BP-based traceback happens during a deferred function call, it unwinds
to the function that performed the defer and then thinks that function
called itself in an infinite regress.
Fix this by making jmpdefer manipulate the BP as if deferreturn had
actually returned.
Austin Clements [Thu, 26 May 2016 02:59:19 +0000 (22:59 -0400)]
cmd/link/internal/ld: fix DWARF offsets with GOEXPERIMENT=framepointer
The offsets computed by the DWARF expressions for local variables
currently don't account for the extra stack slot used by the frame
pointer when GOEXPERIMENT=framepointer is enabled.
Fix this by adding the extra stack slot to the offset.
This fixes TestGdbPython with GOEXPERIMENT=framepointer.
Russ Cox [Thu, 26 May 2016 00:01:25 +0000 (20:01 -0400)]
runtime: make framepointer mode safe for Windows
A few other architectures have already defined a NOFRAME flag.
Use it to disable frame pointer code on a few very low-level functions
that must behave like Windows code.
Makes the failing os/signal test pass on a Windows gomote.
Russ Cox [Wed, 25 May 2016 18:54:21 +0000 (14:54 -0400)]
runtime: add library startup support for ppc64le
I have been running this patch inside Google against Go 1.6 for the last month.
The new tests will probably break the builders but let's see
exactly how they break.
Change-Id: Ia65cf7d3faecffeeb4b06e9b80875c0e57d86d9e
Reviewed-on: https://go-review.googlesource.com/23452 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Robert Griesemer [Wed, 25 May 2016 23:38:02 +0000 (16:38 -0700)]
cmd/compile: correctly import labels, gotos, and fallthroughs
The importer had several bugs with respect to labels and gotos:
- it didn't create a new ONAME node for label names (label dcl,
goto, continue, and break)
- it overwrote the symbol for gotos with the dclstack
- it didn't set the dclstack for labels
In the process changed export format slightly to always assume
a label name for labels and gotos, and never assume a label for
fallthroughs.
For fallthroughs and switch cases, now also set Xoffset like in
the parser. (Not setting it, i.e., using 0 was ok since this is
only used for verifying correct use of fallthroughs, which was
checked already. But it's an extra level of verification of the
import.)
Fixes #15838.
Change-Id: I3637f6314b8651c918df0c8cd70cd858c92bd483
Reviewed-on: https://go-review.googlesource.com/23445
Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Ian Lance Taylor [Thu, 19 May 2016 23:27:23 +0000 (16:27 -0700)]
cmd/cgo, runtime, runtime/cgo: TSAN support for malloc
Acquire and release the TSAN synchronization point when calling malloc,
just as we do when calling any other C function. If we don't do this,
TSAN will report false positive errors about races calling malloc and
free.
We used to have a special code path for malloc and free, going through
the runtime functions cmalloc and cfree. The special code path for cfree
was no longer used even before this CL. This CL stops using the special
code path for malloc, because there is no place along that path where we
could conditionally insert the TSAN synchronization. This CL removes
the support for the special code path for both functions.
Instead, cgo now automatically generates the malloc function as though
it were referenced as C.malloc. We need to automatically generate it
even if C.malloc is not called, even if malloc and size_t are not
declared, to support cgo-provided functions like C.CString.
Austin Clements [Tue, 24 May 2016 02:14:53 +0000 (22:14 -0400)]
runtime: pass gcWork to scanstack
Currently scanstack obtains its own gcWork from the P for the duration
of the stack scan and then, if called during mark termination,
disposes the gcWork.
However, this means that the number of workbufs allocated will be at
least the number of stacks scanned during mark termination, which may
be very high (especially during a STW GC). This happens because, in
steady state, each scanstack will obtain a fresh workbuf (either from
the empty list or by allocating it), fill it with the scan results,
and then dispose it to the full list. Nothing is consuming from the
full list during this (and hence nothing is recycling them to the
empty list), so the length of the full list by the time mark
termination starts draining it is at least the number of stacks
scanned.
Fix this by pushing the gcWork acquisition up the stack to either the
gcDrain that calls markroot that calls scanstack (which batches across
many stack scans and is the path taken during STW GC) or to newstack
(which is still a single scanstack call, but this is roughly bounded
by the number of Ps).
This fix reduces the workbuf allocation for the test program from
issue #15319 from 213 MB (roughly 2KB * 1e5 goroutines) to 10 MB.
Fixes #15319.
Note that there's potentially a similar issue in write barriers during
mark 2. Fixing that will be more difficult since there's no broader
non-preemptible context, but it should also be less of a problem since
the full list is being drained during mark 2.
Some overall improvements in the go1 benchmarks, plus the usual noise.
No significant change in the garbage benchmark (time/op or GC memory).
Change-Id: I3ce8d4016854d41860c5a9f05a54cda3de49f337
Reviewed-on: https://go-review.googlesource.com/23430 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Marcel van Lohuizen [Wed, 25 May 2016 09:19:17 +0000 (11:19 +0200)]
compress/flate: simplify using subtests and sub-benchmarks
This causes the large files to be loaded only once per benchmark.
This CL also serves as an example use case of sub(tests|-benchmarks).
This CL ensures that names are identical to the original
except for an added slashes. Things could be
simplified further if this restriction were dropped.
David Crawshaw [Tue, 24 May 2016 23:04:51 +0000 (19:04 -0400)]
reflect: remove type info for unexported methods
Also remove some of the now unnecessary corner case handling and
tests I've been adding recently for unexported method data.
For #15673
Change-Id: Ie0c7b03f2370bbe8508cdc5be765028f08000bd7
Reviewed-on: https://go-review.googlesource.com/23410 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Elias Naur [Wed, 25 May 2016 11:24:36 +0000 (13:24 +0200)]
cmd/link: fix ARM gold linker check
CL 23400 introduced a check to make sure the gold linker is used
on ARM host links. The check itself works, but the error checking
logic was reversed; fix it.
I manually verified that the check now correctly rejects host links
on my RPi2 running an ancient rasbian without the gold linker
installed.
Updates #15696
Change-Id: I927832620f0a60e91a71fdedf8cbd2550247b666
Reviewed-on: https://go-review.googlesource.com/23421
Run-TryBot: Elias Naur <elias.naur@gmail.com> Reviewed-by: David Crawshaw <crawshaw@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Elias Naur [Mon, 16 May 2016 13:51:07 +0000 (15:51 +0200)]
runtime,runtime/cgo: save callee-saved FP register on arm
Other GOARCHs already handle their callee-saved FP registers, but
arm was missing. Without this change, code using Cgo and floating
point code might fail in mysterious and hard to debug ways.
There are no floating point registers when GOARM=5, so skip the
registers when runtime.goarm < 6.
darwin/arm doesn't support GOARM=5, so the check is left out of
rt0_darwin_arm.s.
Fixes #14876
Change-Id: I6bcb90a76df3664d8ba1f33123a74b1eb2c9f8b2
Reviewed-on: https://go-review.googlesource.com/23140
Run-TryBot: Elias Naur <elias.naur@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Minux Ma <minux@golang.org>
Ian Lance Taylor [Tue, 24 May 2016 18:39:48 +0000 (11:39 -0700)]
encoding/csv: clarify that this package supports RFC 4180
The intent of this comment is to reduce the number of issues opened
against the package to add support for new kinds of CSV formats, such as
issues #3150, #8458, #12372, #12755.
Change-Id: I452c0b748e4ca9ebde3e6cea188bf7774372148e
Reviewed-on: https://go-review.googlesource.com/23401 Reviewed-by: Andrew Gerrand <adg@golang.org>
Austin Clements [Fri, 20 May 2016 18:57:55 +0000 (14:57 -0400)]
runtime: update SP when jumping stacks in traceback
When gentraceback starts on a system stack in sigprof, it is
configured to jump to the user stack when it reaches the end of the
system stack. Currently this updates the current frame's FP, but not
its SP. This is okay on non-LR machines (x86) because frame.sp is only
used to find defers, which the bottom-most frame of the user stack
will never have.
However, on LR machines, we use frame.sp to find the saved LR. We then
use to resolve the function of the next frame, which is used to
resolved the size of the next frame. Since we're not updating frame.sp
on a stack jump, we read the saved LR from the system stack instead of
the user stack and wind up resolving the wrong function and hence the
wrong frame size for the next frame.
This has had remarkably few ill effects (though the resulting profiles
must be wrong). We noticed it because of a bad interaction with stack
barriers. Specifically, once we get the next frame size wrong, we also
get the location of its LR wrong. If we happen to get a stack slot
that contains a stale stack barrier LR (for a stack barrier we already
hit) and hasn't been overwritten with something else as we re-grew the
stack, gentraceback will fail with a "found next stack barrier at ..."
error, pointing at the slot that it thinks is an LR, but isn't.
Jeff R. Allen [Tue, 24 May 2016 18:12:22 +0000 (00:12 +0600)]
doc: add notes on good commit messages
Explain Brad's algorithm for generating commit headlines.
Fixes #15700
Change-Id: Ic602f17629b3dd7675e2bb1ed119062c03353ee9
Reviewed-on: https://go-review.googlesource.com/23355 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Jeff R. Allen [Tue, 24 May 2016 17:00:06 +0000 (23:00 +0600)]
math/rand: Doc fix for how many bits Seed uses
Document the fact that the default Source uses only
the bottom 31 bits of the given seed.
Fixes #15788
Change-Id: If20d1ec44a55c793a4a0a388f84b9392c2102bd1
Reviewed-on: https://go-review.googlesource.com/23352 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Jeff R. Allen [Tue, 24 May 2016 17:46:11 +0000 (23:46 +0600)]
cmd/go: document testdata directory in "go help test"
Document the correct use of the testdata directory
where test writers might be expecting to find it.
It seems that alldocs.go was out of date, so it
has picked up some other changes with this commit.
Fixes #14715.
Change-Id: I0a22676bb7a64b2a61b56495f7ea38db889d8b37
Reviewed-on: https://go-review.googlesource.com/23353 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
David Crawshaw [Tue, 24 May 2016 17:40:02 +0000 (13:40 -0400)]
cmd/link: ensure -fuse-ld=gold uses gold
Fixes #15696
Change-Id: I134e918dc56f79a72a04aa54f415371884113d2a
Reviewed-on: https://go-review.googlesource.com/23400 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Russ Cox [Tue, 24 May 2016 13:42:33 +0000 (09:42 -0400)]
io: remove SizedReaderAt
It's not clear we want to enshrine an io interface in which Size cannot
return an error. Because this requires more thought before committing
to the API, remove from Go 1.7.
Russ Cox [Tue, 24 May 2016 06:52:31 +0000 (02:52 -0400)]
cmd/compile, go/types: omit needless word in error message
CL 21462 and CL 21463 made this message say explicitly that the problem
was a struct field in a map, but the word "directly" is unnecessary,
sounds wrong, and makes the error long.
Russ Cox [Mon, 23 May 2016 16:28:56 +0000 (12:28 -0400)]
encoding/json: rename Indent method to SetIndent
CL 21057 added this method during the Go 1.7 cycle
(so it is not yet released and still possible to revise).
This makes it clearer that the method is not doing something
(like func Indent does), but just changing a setting about doing
something later.
Also document that this is in some sense irreversible.
I think that's probably a mistake but the original CL discussion
claimed it as a feature, so I'll leave it alone.
For #6492.
Change-Id: If4415c869a9196501056c143811a308822d5a420
Reviewed-on: https://go-review.googlesource.com/23295 Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
Russ Cox [Mon, 23 May 2016 15:41:00 +0000 (11:41 -0400)]
encoding/json: change DisableHTMLEscaping to SetEscapeHTML
DisableHTMLEscaping is now SetEscapeHTML, allowing the escaping
to be toggled, not just disabled. This API is new for Go 1.7,
so there are no compatibility concerns (quite the opposite,
the point is to fix the API before we commit to it in Go 1.7).
Change-Id: I96b9f8f169a9c44995b8a157a626eb62d0b6dea7
Reviewed-on: https://go-review.googlesource.com/23293 Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
Russ Cox [Tue, 24 May 2016 00:40:52 +0000 (20:40 -0400)]
net: revise IP.String result for malformed IP address to add ? back
In earlier versions of Go the result was simply "?".
A change in this cycle made the result echo back the hex bytes
of the address, which is certainly useful, but now the result is
not clearly indicating an error. Put the "?" back, at the beginning
of the hex string, to make the invalidity of the string clearer.
Russ Cox [Mon, 23 May 2016 16:21:57 +0000 (12:21 -0400)]
encoding/json: additional tests and fixes for []typedByte encoding/decoding
CL 19725 changed the encoding of []typedByte to look for
typedByte.MarshalJSON and typedByte.MarshalText.
Previously it was handled like []byte, producing a base64 encoding of the underlying byte data.
CL 19725 forgot to look for (*typedByte).MarshalJSON and (*typedByte).MarshalText,
as the marshaling of other slices would. Add test and fix for those.
This CL also adds tests that the decoder can handle both the old and new encodings.
(This was true even in Go 1.6, which is the only reason we can consider this
not an incompatible change.)
For #13783.
Change-Id: I7cab8b6c0154a7f2d09335b7fa23173bcf856c37
Reviewed-on: https://go-review.googlesource.com/23294 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
Robert Griesemer [Sat, 21 May 2016 00:26:24 +0000 (17:26 -0700)]
go/types: don't drop type in n:1 var decl if one is given
In n:1 variable declarations (multiple lhs variables with single
multi-valued initialization expression) where also a variable
type is provided, make sure that that type is assigned to all
variables on the lhs before the init expression assignment is
checked. Otherwise, (some) variables are assumed to take the type
of the corresponding value of the multi-valued init expression.
Fixes #15755.
Change-Id: I969cb5a95c85e28dbb38abd7fa7df16ff5554c03
Reviewed-on: https://go-review.googlesource.com/23313 Reviewed-by: Alan Donovan <adonovan@google.com>
Kenny Grant [Sat, 21 May 2016 15:57:37 +0000 (16:57 +0100)]
time: run genzabbrs.go with new source data
The source xml data has changed, so running genzabbrs.go
regenerates a new time zone file in zoneinfo_abbrs_windows.go
which adds some zones and adjusts others.
Now set export ZONEINFO=$GOROOT/lib/time/zoneinfo.zip to use zoneinfo.zip in go tip.
Change-Id: I19f72359cc808094e5dcb420e480a00c6b2205d7
Reviewed-on: https://go-review.googlesource.com/23321 Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
Run-TryBot: Alex Brainman <alex.brainman@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
djherbis [Sat, 21 May 2016 20:25:47 +0000 (13:25 -0700)]
AUTHORS: correcting my last name Herbis -> Herbison
Change-Id: I91608b15e00c8eaf732db3a99a890d4ceeb41955
Reviewed-on: https://go-review.googlesource.com/23317 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Brad Fitzpatrick [Fri, 20 May 2016 23:28:56 +0000 (23:28 +0000)]
A+C: automated update (subrepos)
Add Abe Haskins (individual CLA)
Add Ahmy Yulrizka (individual CLA)
Add Akihiro Suda (individual CLA)
Add Alex Vaghin (corporate CLA for Google Inc.)
Add Arlo Breault (individual CLA)
Add Audrey Lim (individual CLA)
Add Benjamin Wester (corporate CLA for Square, Inc.)
Add Bryan Chan (corporate CLA for IBM)
Add Christy Perez (corporate CLA for IBM)
Add Colin Edwards (individual CLA)
Add David Brophy (individual CLA)
Add David Sansome (individual CLA)
Add Diwaker Gupta (individual CLA)
Add Doug Anderson (corporate CLA for Google Inc.)
Add Dustin Carlino (corporate CLA for Google Inc.)
Add Ernest Chiang (individual CLA)
Add Ethan Burns (corporate CLA for Google Inc.)
Add Gary Elliott (corporate CLA for Google Inc.)
Add Hallgrimur Gunnarsson (corporate CLA for Google Inc.)
Add Hironao OTSUBO (individual CLA)
Add Holden Huang (individual CLA)
Add Idora Shinatose (individual CLA)
Add Irieda Noboru (individual CLA)
Add Jeff Craig (corporate CLA for Google Inc.)
Add Joe Henke (individual CLA)
Add John Schnake (individual CLA)
Add Jonathan Amsterdam (corporate CLA for Google Inc.)
Add Kenji Kaneda (individual CLA)
Add Kenneth Shaw (individual CLA)
Add Mark Severson (individual CLA)
Add Martin Garton (individual CLA)
Add Mathias Leppich (individual CLA)
Add Maxwell Krohn (individual CLA)
Add Niall Sheridan (individual CLA)
Add Nick Patavalis (individual CLA)
Add Nick Petroni (individual CLA)
Add Omar Jarjur (corporate CLA for Google Inc.)
Add Özgür Kesim (individual CLA)
Add Peter Gonda (corporate CLA for Google Inc.)
Add Pierre Durand (individual CLA)
Add Quentin Smith (corporate CLA for Google Inc.)
Add Ricardo Padilha (individual CLA)
Add Riku Voipio (corporate CLA for Linaro Limited)
Add Roland Shoemaker (individual CLA)
Add Sam Hug (individual CLA)
Add Sam Whited (individual CLA)
Add Sami Commerot (corporate CLA for Google Inc.)
Add Scott Mansfield (corporate CLA for Netflix, Inc.)
Add Sean Harger (corporate CLA for Google Inc.)
Add Simon Jefford (individual CLA)
Add Sridhar Venkatakrishnan (individual CLA)
Add Tim Swast (corporate CLA for Google Inc.)
Add Timothy Studd (individual CLA)
Add Tipp Moseley (corporate CLA for Google Inc.)
Add Toby Burress (corporate CLA for Google Inc.)
Add Tzu-Jung Lee (corporate CLA for Currant)
Add Vadim Grek (individual CLA)
Add Xudong Zhang (individual CLA)
Updates #12042
Change-Id: I4119a8829119a2b8a9abbea9f52ceebb04878764
Reviewed-on: https://go-review.googlesource.com/23306 Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
Brad Fitzpatrick [Fri, 20 May 2016 21:52:59 +0000 (21:52 +0000)]
A+C: automated updates
Add Aiden Scandella (individual CLA)
Add Alessandro Arzilli (individual CLA)
Add Augusto Roman (individual CLA)
Add Brady Catherman (individual CLA)
Add Brady Sullivan (individual CLA)
Add Caio Marcelo de Oliveira Filho (corporate CLA for Intel Corporation)
Add Catalin Nicutar (corporate CLA for Google Inc.)
Add Cherry Zhang (corporate CLA for Google Inc.)
Add Chris Zou (corporate CLA for IBM)
Add Christopher Nelson (individual CLA)
Add Conrad Irwin (individual CLA)
Add Cuihtlauac ALVARADO (corporate CLA for Orange)
Add Daniel Speichert (individual CLA)
Add Datong Sun (individual CLA)
Add Denys Honsiorovskyi (individual CLA)
Add Derek Shockey (individual CLA)
Add Dmitriy Dudkin (individual CLA)
Add Dustin Herbis (individual CLA)
Add Frits van Bommel (individual CLA)
Add Harshavardhana (individual CLA)
Add Hitoshi Mitake (individual CLA)
Add James Bardin (individual CLA)
Add James Chacon (corporate CLA for Google Inc.)
Add Jamil Djadala (individual CLA)
Add Jess Frazelle (individual CLA)
Add Joe Sylve (individual CLA)
Add Johan Sageryd (individual CLA)
Add John Jeffery (individual CLA)
Add Julia Hansbrough (corporate CLA for Google Inc.)
Add Jure Ham (corporate CLA for Zemanta d.o.o.)
Add Kamal Aboul-Hosn (corporate CLA for Google Inc.)
Add Kevin Burke (individual CLA)
Add Kevin Kirsche (individual CLA)
Add Kevin Vu (individual CLA)
Add Lee Hinman (individual CLA)
Add Luan Santos (individual CLA)
Add Marc-Antoine Ruel (corporate CLA for Google Inc.)
Add Matt Robenolt (individual CLA)
Add Michael McConville (individual CLA)
Add Michael Munday (corporate CLA for IBM)
Add Michael Pratt (corporate CLA for Google Inc.)
Add Michel Lespinasse (corporate CLA for Google Inc.)
Add Mike Danese (corporate CLA for Google Inc.)
Add Mikhail Gusarov (individual CLA)
Add Monty Taylor (individual CLA)
Add Morten Siebuhr (individual CLA)
Add Muhammed Uluyol (individual CLA)
Add Niels Widger (individual CLA)
Add Niko Dziemba (individual CLA)
Add Olivier Poitrey (individual CLA)
Add Paul Wankadia (corporate CLA for Google Inc.)
Add Philip Hofer (individual CLA)
Add Prashant Varanasi (individual CLA)
Add Rhys Hiltner (corporate CLA for Amazon.com, Inc)
Add Richard Miller (individual CLA)
Add Scott Bell (individual CLA)
Add Shahar Kohanim (individual CLA)
Add Shinji Tanaka (individual CLA)
Add Suharsh Sivakumar (corporate CLA for Google Inc.)
Add Tal Shprecher (individual CLA)
Add Tilman Dilo (individual CLA)
Add Tim Ebringer (individual CLA)
Add Tom Bergan (corporate CLA for Google Inc.)
Add Vishvananda Ishaya (individual CLA)
Add Wedson Almeida Filho (corporate CLA for Google Inc.)
Add Zhongwei Yao (corporate CLA for ARM Ltd.)
Updates #12042
Change-Id: Ia118adc2eb38e5ffc8448de2d9dd3ca792ee7227
Reviewed-on: https://go-review.googlesource.com/23303 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Brad Fitzpatrick [Fri, 20 May 2016 22:43:14 +0000 (22:43 +0000)]
time: document that After uses memory until duration times out
Fixes #15698
Change-Id: I616fc06dcf04092bafdaf56fb1afba2a998a6d83
Reviewed-on: https://go-review.googlesource.com/23304 Reviewed-by: Ian Lance Taylor <iant@golang.org>