- 11 Nov, 2016 29 commits
-
-
Quentin Smith authored
pkg-config 0.24 adds support for quoting and escaping whitespace; distros like CentOS 6 are still shipping pkg-config 0.23. Skip the test there since there's no way to get whitespace into the pkg-config output. Fixes #17846. Change-Id: Ie4ea17e9b709372a20178b539498929754bcd51f Reviewed-on: https://go-review.googlesource.com/33027 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Russ Cox <rsc@golang.org>
-
Brad Fitzpatrick authored
Fixes #17720 Change-Id: Ib95c230deef3934db729856c17908f8e5a1e2b7f Reviewed-on: https://go-review.googlesource.com/33145 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Ian Lance Taylor <iant@golang.org> Reviewed-by:
Rob Pike <r@golang.org>
-
Rhys Hiltner authored
When a Go program crashes with GOTRACEBACK=crash, the OS creates a core dump. Include the text-formatted output of some of the cause of that crash in the core dump. Output printed by the runtime before crashing is maintained in a circular buffer to allow access to messages that may be printed immediately before calling runtime.throw. The stack traces printed by the runtime as it crashes are not stored. The information required to recreate them should be included in the core file. Updates #16893 There are no tests covering the generation of core dumps; this change has not added any. This adds (reentrant) locking to runtime.gwrite, which may have an undesired performance impact. Change-Id: Ia2463be3c12429354d290bdec5f3c8d565d1a2c3 Reviewed-on: https://go-review.googlesource.com/32013 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Russ Cox <rsc@golang.org>
-
Brad Fitzpatrick authored
Users can implement the smtp.Auth interface and return zero bytes in the "toServer []byte" return value from the Auth.Start method. People apparently do this to implement the SMTP "LOGIN" method. But we were then sending "AUTH LOGIN \r\n" to the server, which some servers apparently choke on. So, trim it when the toServer value is empty. Fixes #17794 Change-Id: I83662dba9e0f61b1c5000396c096cf7110f78361 Reviewed-on: https://go-review.googlesource.com/33143 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Ian Lance Taylor <iant@golang.org>
-
Russ Cox authored
I don't have any way to test or reproduce this problem, but the current code is clearly wrong for Windows. Make it better. As I said on #17165: But the borrowing of M's and the profiling of M's by the CPU profiler seem not synchronized enough. This code implements the CPU profiler on Windows: func profileloop1(param uintptr) uint32 { stdcall2(_SetThreadPriority, currentThread, _THREAD_PRIORITY_HIGHEST) for { stdcall2(_WaitForSingleObject, profiletimer, _INFINITE) first := (*m)(atomic.Loadp(unsafe.Pointer(&allm))) for mp := first; mp != nil; mp = mp.alllink { thread := atomic.Loaduintptr(&mp.thread) // Do not profile threads blocked on Notes, // this includes idle worker threads, // idle timer thread, idle heap scavenger, etc. if thread == 0 || mp.profilehz == 0 || mp.blocked { continue } stdcall1(_SuspendThread, thread) if mp.profilehz != 0 && !mp.blocked { profilem(mp) } stdcall1(_ResumeThread, thread) } } } func profilem(mp *m) { var r *context rbuf := make([]byte, unsafe.Sizeof(*r)+15) tls := &mp.tls[0] gp := *((**g)(unsafe.Pointer(tls))) // align Context to 16 bytes r = (*context)(unsafe.Pointer((uintptr(unsafe.Pointer(&rbuf[15]))) &^ 15)) r.contextflags = _CONTEXT_CONTROL stdcall2(_GetThreadContext, mp.thread, uintptr(unsafe.Pointer(r))) sigprof(r.ip(), r.sp(), 0, gp, mp) } func sigprof(pc, sp, lr uintptr, gp *g, mp *m) { if prof.hz == 0 { return } // Profiling runs concurrently with GC, so it must not allocate. mp.mallocing++ ... lots of code ... mp.mallocing-- } A borrowed M may migrate between threads. Between the atomic.Loaduintptr(&mp.thread) and the SuspendThread, mp may have moved to a new thread, so that it's in active use. In particular it might be calling malloc, as in the crash stack trace. If so, the mp.mallocing++ in sigprof would provoke the crash. Those lines are trying to guard against allocation during sigprof. But on Windows, mp is the thread being traced, not the current thread. Those lines should really be using getg().m.mallocing, which is the same on Unix but not on Windows. With that change, it's possible the race on the actual thread is not a problem: the traceback would get confused and eventually return an error, but that's fine. The code expects that possibility. Fixes #17165. Change-Id: If6619731910d65ca4b1a6e7de761fa2518ef339e Reviewed-on: https://go-review.googlesource.com/33132 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by:
Ian Lance Taylor <iant@golang.org>
-
Bill O'Farrell authored
Note, most math functions are structured to use stubs, so that they can be accelerated with assembly on any platform. Sinh, cosh, and tanh were not structued with stubs, so this CL does that. This set of routines was chosen as likely to produce good speedups with assembly on any platform. Technique used was minimax polynomial approximation using tables of polynomial coefficients, with argument range reduction. A table of scaling factors was also used for cosh and log10. before after speedup BenchmarkCos 22.1 ns/op 6.79 ns/op 3.25x BenchmarkCosh 125 ns/op 11.7 ns/op 10.68x BenchmarkLog10 48.4 ns/op 12.5 ns/op 3.87x BenchmarkSin 22.2 ns/op 6.55 ns/op 3.39x BenchmarkSinh 125 ns/op 14.2 ns/op 8.80x BenchmarkTanh 65.0 ns/op 15.1 ns/op 4.30x Accuracy was tested against a high precision reference function to determine maximum error. Approximately 4,000,000 points were tested for each function, producing the following result. Note: ulperr is error in "units in the last place" max ulperr sin 1.43 (returns NaN beyond +-2^50) cos 1.79 (returns NaN beyond +-2^50) cosh 1.05 sinh 3.02 tanh 3.69 log10 1.75 Also includes a set of tests to test non-vector functions even when SIMD is enabled Change-Id: Icb45f14d00864ee19ed973d209c3af21e4df4edc Reviewed-on: https://go-review.googlesource.com/32352 Run-TryBot: Michael Munday <munday@ca.ibm.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Michael Munday <munday@ca.ibm.com>
-
Brad Fitzpatrick authored
If the Server's Shutdown (or SetKeepAlivesEnabled) method was called while a connection was in a Handler, but after the headers had been written, the connection was not later closed. Fixes #9478 Updates #17754 (reverts that workaround) Change-Id: I65324ab8217373fbb38e12e2b8bffd0a91806072 Reviewed-on: https://go-review.googlesource.com/33141Reviewed-by:
Ian Lance Taylor <iant@golang.org>
-
Russ Cox authored
CL 31462 made it possible to operate directly on reflect.Values instead of always forcing a round trip to interface{} and back. The round trip was losing addressability, which hurt users. The round trip was also losing "interface-ness", which helped users. That is, using reflect.ValueOf(v.Interface()) instead of v was doing an implicit indirect any time v was itself an interface{} value: the result was the reflect.Value for the underlying concrete value contained in the interface, not the interface itself. CL 31462 eliminated some "unnecessary" reflect.Value round trips in order to preserve addressability, but in doing so it lost this implicit indirection. This CL adds the indirection back. It may help to compare the changes in this CL against funcs.go from CL 31462: https://go-review.googlesource.com/#/c/31462/4/src/text/template/funcs.go Everywhere CL 31462 changed 'v := reflect.ValueOf(x)' to 'v := x', this CL changes 'v := x' to 'v := indirectInterface(x)'. Fixes #17714. Change-Id: I67cec4eb41fed1d56e1c19f12b0abbd0e59d35a2 Reviewed-on: https://go-review.googlesource.com/33139 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by:
Rob Pike <r@golang.org>
-
Russ Cox authored
Fixes #17600. Change-Id: I7aa0eb0dd959da031b6039b51f07db668d4fb468 Reviewed-on: https://go-review.googlesource.com/33131 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by:
Ian Gudger <igudger@google.com> Reviewed-by:
Ian Lance Taylor <iant@golang.org>
-
Kenny Grant authored
Fixes #12745 Change-Id: Iebb7c97cb5b68dc080644d796a6ca1c120d41b26 Reviewed-on: https://go-review.googlesource.com/27950Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Brad Fitzpatrick authored
TestInterruptWithPanic_h2 was added yesterday in https://golang.org/cl/33099 and https://golang.org/cl/33103 Deflake it. The http2 server sends an error before logging. Rather than reorder the http2 code to log before writing the RSTStream frame, just loop for a bit waiting for the condition we're expecting. This goes from 2 in 500 flakes for me to unreproducible. Change-Id: I062866a5977f50c820965aaf83882ddd7bf98f91 Reviewed-on: https://go-review.googlesource.com/33140 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Russ Cox <rsc@golang.org>
-
Russ Cox authored
The restrictions were already being applied to the IP addresses received from the host resolver. Apply the same restrictions to literal IP addresses not passed to the host resolver. For example, ResolveTCPAddr("tcp4", "[2001:db8::1]:http") used to succeed and now does not (that's not an IPv4 address). Perhaps a bit surprisingly, ResolveTCPAddr("tcp4", "[::ffff:127.0.0.1]:http") succeeds, behaving identically to ResolveTCPAddr("tcp4", "127.0.0.1:http"), and ResolveTCPAddr("tcp6", "[::ffff:127.0.0.1]:http") fails, behaving identically to ResolveTCPAddr("tcp6", "127.0.0.1:http"). Even so, it seems right to match (by reusing) the existing filtering as applied to addresses resolved by the host C library. If anyone can make a strong argument for changing the filtering of IPv4-inside-IPv6 addresses, the fix can be applied to all the code paths in a separate CL. Fixes #14037. Change-Id: I690dfdcbe93d730e11e00ea387fa7484cd524341 Reviewed-on: https://go-review.googlesource.com/32100 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
All the existing CPU profiler tests already parse the profile. That should be sufficient indication that profiles can be parsed. Fixes #17853. Change-Id: Ie8a190e2ae4eef125c8eb0d4e8b7adac420abbdb Reviewed-on: https://go-review.googlesource.com/33136 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-
Michael Matloob authored
rsc's change golang.org/cl/32455 added a mechanism that allows pprof to depend on gzip without introducing an import cycle. This obsoletes the need for the gzip0 package, which was created solely to remove the need for that dependency. Change-Id: Ifa3b98faac9b251f909b84b4da54742046c4e3ad Reviewed-on: https://go-review.googlesource.com/33137Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-
Kevin Burke authored
Fix spelling of "original" and "occurred" in new gofmt docs. The same misspelling of "occurred" was also present in crypto/tls, I fixed it there as well. Change-Id: I67b4f1c09bd1a2eb1844207d5514f08a9f525ff9 Reviewed-on: https://go-review.googlesource.com/33138Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-
Josh Bleecher Snyder authored
cmd/vet/all still doesn't run for mips/mipsle, because the rest of the toolchain doesn't yet fully support it. Change-Id: I1a86b0edddbdcd5f43e752208508d99da7aabbb3 Reviewed-on: https://go-review.googlesource.com/33134 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Rob Pike <r@golang.org>
-
Josh Bleecher Snyder authored
Fixes these complaints from vet: cmd/compile/internal/gc/noder.go:32: cmd/compile/internal/syntax.Error composite literal uses unkeyed fields cmd/compile/internal/gc/noder.go:1035: cmd/compile/internal/syntax.Error composite literal uses unkeyed fields cmd/compile/internal/gc/noder.go:1051: cmd/compile/internal/syntax.Error composite literal uses unkeyed fields cmd/compile/internal/syntax/parser_test.go:182: possible formatting directive in Error call net/http/client_test.go:1334: possible formatting directive in Fatal call Change-Id: I5f90ec30f3c106c7e66c92e2b6f8d3b4874fec66 Reviewed-on: https://go-review.googlesource.com/33133 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-
Keegan Carruthers-Smith authored
Fixes #17788 Change-Id: I2f8a11321dc8f10bebbc8df90ba00ec65b9ee0fa Reviewed-on: https://go-review.googlesource.com/32790Reviewed-by:
Russ Cox <rsc@golang.org>
-
Richard Gibson authored
The 255-octet limit applies to wire format, not presentation format. Fixes #17549 Change-Id: I2b5181c53fba32fea60178e0d8df9114aa992b55 Reviewed-on: https://go-review.googlesource.com/31722 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Russ Cox <rsc@golang.org>
-
Emmanuel Odeke authored
Fixes #16042. Change-Id: I0a28aa004246b7b0ffaaab457e077ad9035363c2 Reviewed-on: https://go-review.googlesource.com/31932Reviewed-by:
Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Hiroshi Ioka authored
Some commands generate binary outputs which are not human readable. In interactive mode, there are no use-cases for such outputs. Instead, the new code writes it to the temporary file on the $CWD and shows the file name. So the user can use any program to display the file outside interactive shell. Fixes #17465 Change-Id: I5c479db26017607f7a28eafbff2385533e5c584e Reviewed-on: https://go-review.googlesource.com/31123Reviewed-by:
Russ Cox <rsc@golang.org>
-
Ian Lance Taylor authored
It will just cause confusion later as the go tool will say "warning: GOPATH set to GOROOT (%s) has no effect". Better to just leave GOPATH unset and get that warning instead. Change-Id: I78ff9e87fdf4bb0460f4f6d6ee76e1becaa3e7b0 Reviewed-on: https://go-review.googlesource.com/33105 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Russ Cox <rsc@golang.org>
-
David Crawshaw authored
Change-Id: I94e0f3e4bccd44a67934ddb4d5fc7da57bb8ac9f Reviewed-on: https://go-review.googlesource.com/33112Reviewed-by:
Russ Cox <rsc@golang.org> Reviewed-by:
Rob Pike <r@golang.org>
-
Ian Lance Taylor authored
On some systems the external linker defaults to PIE. On some systems DT_TEXTREL does not work correctly. When both are true we have a bad situation: any Go program built with the default buildmode (exe) that uses external linking will fail to run. Fix this by passing -no-pie to the external linker, if the option is supported. Fixes #17847. Change-Id: I9b5ff97825d8b7f494f96d29c4c04f72b53dbf4e Reviewed-on: https://go-review.googlesource.com/33106 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
David Crawshaw <crawshaw@golang.org>
-
Brad Fitzpatrick authored
Fixes #16412 Change-Id: Idc65d2a62414a9b1573e6bd9f8601b52985b5dea Reviewed-on: https://go-review.googlesource.com/33110Reviewed-by:
Ian Lance Taylor <iant@golang.org>
-
Ian Lance Taylor authored
The cgo tool used to simply ignore C type qualifiers. To avoid problems when a C function expected a qualifier that was not present, cgo emitted a cast to void* around all pointer arguments. Unfortunately, that broke code that contains both a function declaration and a macro, when the macro required the argument to have the right type. To fix this problem, don't ignore qualifiers. They are easy enough to handle for the limited set of cases that matter for cgo, in which we don't care about array or function types. Fixes #17537. Change-Id: Ie2988d21db6ee016a3e99b07f53cfb0f1243a020 Reviewed-on: https://go-review.googlesource.com/33097 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Russ Cox <rsc@golang.org>
-
Francesc Campoy authored
Whenever GOPATH is not defined in the environment, use $HOME/go as its default value. For Windows systems use %USERPROFILE%/go and $home/go for plan9. The choice of these environment variables is based on what Docker currently does. The os/user package is not used to avoid having a cgo dependency. Updates #17262. Documentation changes forthcoming. Change-Id: I6368fbfbc5afda99d6e64c35c1980076fcf45344 Reviewed-on: https://go-review.googlesource.com/32019 TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Russ Cox <rsc@golang.org>
-
Robert Griesemer authored
Also: - update performance improvements for CL 31275. Change-Id: I2f2ec0a42b248643e76df8654e11bf0b01a5d030 Reviewed-on: https://go-review.googlesource.com/33114Reviewed-by:
Robert Griesemer <gri@golang.org>
-
David Crawshaw authored
CL 32355 switched from using the output file as a plugin prefix to the full package path. The linker dead code analysis was not updated. Updates #17821 Change-Id: I13fc45e0264b425d28524ec54c829e2c3e895b0b Reviewed-on: https://go-review.googlesource.com/32916Reviewed-by:
Ian Lance Taylor <iant@golang.org>
-
- 10 Nov, 2016 11 commits
-
-
Ian Lance Taylor authored
Fixes the build when CGO_ENABLED=0. Change-Id: I7f3c67d61e156e69536558fda0a0a4b429b82bbd Reviewed-on: https://go-review.googlesource.com/33104 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Robert Griesemer authored
This reverts the changes from https://golang.org/cl/33018: Instead of writing the result of gofmt to a tmp file and then rename that to the original (which doesn't preserve the original file's perm bits, uid, gid, and possibly other properties because it is hard to do in a platform-independent way - see #17869), use the original code that simply overwrites the processed file if gofmt was able to create a backup first. Upon success, the backup is removed, otherwise it remains. Fixes #17873. For #8984. Change-Id: Ifcf2bf1f84f730e6060f3517d63b45eb16215ae1 Reviewed-on: https://go-review.googlesource.com/33098 Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Brad Fitzpatrick authored
Updates http2 to x/net/http2 git rev 0e2717d for: http2: conditionally log stacks from panics in Server Handlers like net/http https://golang.org/cl/33102 Fixes #17790 Change-Id: Idd3f0c65540398d41b412a33f1d80de3f7f31409 Reviewed-on: https://go-review.googlesource.com/33103Reviewed-by:
Joe Tsai <thebrokentoaster@gmail.com>
-
Brad Fitzpatrick authored
This test was only enabled by default today so it hasn't been hardened by build.golang.org. Welcome to the ring, TestClientTimeout. Change-Id: I1967f6c825699f13f6c659dc14d3c3c22b965272 Reviewed-on: https://go-review.googlesource.com/33101Reviewed-by:
Ian Lance Taylor <iant@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
-
Brad Fitzpatrick authored
The old Transport example ended up disabling HTTP/2. Use a better example. Fixes #17051 Fixes #17296 Change-Id: I6feca168744131916e8bf56c829b4d4b50e304ee Reviewed-on: https://go-review.googlesource.com/33094Reviewed-by:
Ian Lance Taylor <iant@golang.org>
-
Brad Fitzpatrick authored
Updates http2 to x/net/http2 git rev 9ef22118 for: http2: fix CloseNotify data race https://golang.org/cl/33013 http2: don't overflow stream IDs in server push https://golang.org/cl/32488 http2: disable server push on receiving a GOAWAY https://golang.org/cl/32887 http2: fix state tracking for pushed streams https://golang.org/cl/32755 Change-Id: Ie7d675857423c102c9ec164d3c943093c749c7cf Reviewed-on: https://go-review.googlesource.com/33100Reviewed-by:
Tom Bergan <tombergan@google.com> Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Brad Fitzpatrick authored
Add an explicit way for Handlers to abort their response to the client and also not spam their error log with stack traces. panic(nil) also worked in the past (for http1 at least), so continue to make that work (and test it). But ErrAbortHandler is more explicit. Updates #17790 (needs http2 updates also) Change-Id: Ib1456905b27e2ae8cf04c0983dc73e314a4a751e Reviewed-on: https://go-review.googlesource.com/33099 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by:
Joe Tsai <thebrokentoaster@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Brad Fitzpatrick authored
Fixes #17721 Change-Id: I19fd81c9909a22b01a4dc9c75f3f0e069c8608ca Reviewed-on: https://go-review.googlesource.com/33095Reviewed-by:
Ian Lance Taylor <iant@golang.org>
-
Ian Lance Taylor authored
https://docs.oracle.com/cd/E53394_01/html/E54813/chapter6-54839.html#OSLLGchapter6-24: "For 64–bit SPARC Elf64_Rela structures, the r_info field is further broken down into an 8–bit type identifier and a 24–bit type dependent data field. For the existing relocation types, the data field is zero. New relocation types, however, might make use of the data bits. #define ELF64_R_TYPE_ID(info) (((Elf64_Xword)(info)<<56)>>56) " No test for this because the only test would be an invalid object file. Change-Id: I5052ca3bfaf0759e920f9a24a16fd97543b24486 Reviewed-on: https://go-review.googlesource.com/33091Reviewed-by:
Michael Hudson-Doyle <michael.hudson@canonical.com>
-
Brad Fitzpatrick authored
Clean up & document the ProtocolError gunk. Fixes #17558 Change-Id: I5e54c25257907c9cac7433f7a5bdfb176e8c3eee Reviewed-on: https://go-review.googlesource.com/33096Reviewed-by:
Ian Lance Taylor <iant@golang.org>
-
Ian Lance Taylor authored
Interestingly, this only became a problem when CL 32850 marked TestImportMain as parallel. Before that, "x" was overwritten and remove in a later test, TestGoBuildOutput. The latter test is not marked as parallel, so now it is run first. It is rather fragile for two tests to compete over the same filename, but this change is correct regardless. Change-Id: I1db7929c0bc20a2fd0cc6a02999bef2dca9e0cc0 Reviewed-on: https://go-review.googlesource.com/33092 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by:
Brad Fitzpatrick <bradfitz@golang.org>
-