aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-07-18[release-branch.go1.7] go1.7rc2go1.7rc2Chris Broadfoot
Change-Id: I5473071f672f8352fbd3352e158d5be12823b58a Reviewed-on: https://go-review.googlesource.com/25017 Run-TryBot: Chris Broadfoot <cbro@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-07-18[release-branch.go1.7] net/http, net/http/cgi: fix for CGI + HTTP_PROXY ↵Brad Fitzpatrick
security issue Because, * The CGI spec defines that incoming request header "Foo: Bar" maps to environment variable HTTP_FOO == "Bar". (see RFC 3875 4.1.18) * The HTTP_PROXY environment variable is conventionally used to configure the HTTP proxy for HTTP clients (and is respected by default for Go's net/http.Client and Transport) That means Go programs running in a CGI environment (as a child process under a CGI host) are vulnerable to an incoming request containing "Proxy: attacker.com:1234", setting HTTP_PROXY, and changing where Go by default proxies all outbound HTTP requests. This is CVE-2016-5386, aka https://httpoxy.org/ Fixes #16405 Change-Id: I6f68ade85421b4807785799f6d98a8b077e871f0 Reviewed-on: https://go-review.googlesource.com/25010 Run-TryBot: Chris Broadfoot <cbro@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Chris Broadfoot <cbro@golang.org> Reviewed-on: https://go-review.googlesource.com/25013
2016-07-08[release-branch.go1.7] runtime: fix nanotime for macOS Sierrago1.7rc1Ian Lance Taylor
In the beta version of the macOS Sierra (10.12) release, the gettimeofday system call changed on x86. Previously it always returned the time in the AX/DX registers. Now, if AX is returned as 0, it means that the system call has stored the values into the memory pointed to by the first argument, just as the libc gettimeofday function does. The libc function handles both cases, and we need to do so as well. Fixes #16272. Change-Id: Ibe5ad50a2c5b125e92b5a4e787db4b5179f6b723 Reviewed-on: https://go-review.googlesource.com/24812 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-on: https://go-review.googlesource.com/24755 Reviewed-by: Chris Broadfoot <cbro@golang.org>
2016-07-08[release-branch.go1.7] go1.7rc1Chris Broadfoot
Change-Id: Ifbf1c13ce740428add68d68133c7f10876bad404 Reviewed-on: https://go-review.googlesource.com/24816 TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-07-08runtime: handle selects with duplicate channels in shrinkstackIan Lance Taylor
The shrinkstack code locks all the channels a goroutine is waiting for, but didn't handle the case of the same channel appearing in the list multiple times. This led to a deadlock. The channels are sorted so it's easy to avoid locking the same channel twice. Fixes #16286. Change-Id: Ie514805d0532f61c942e85af5b7b8ac405e2ff65 Reviewed-on: https://go-review.googlesource.com/24815 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
2016-07-07lib/time: update to IANA release 2016f (July 2016)Brad Fitzpatrick
Fixes #16273 Change-Id: I443e1f254fd683c4ff61beadae89c1c45ff5d972 Reviewed-on: https://go-review.googlesource.com/24744 Reviewed-by: Andrew Gerrand <adg@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Quentin Smith <quentin@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-07-07net/http: deflake TestClientRedirectContextBrad Fitzpatrick
The test was checking for 1 of 2 possible error values. But based on goroutine scheduling and the randomness of select statement receive cases, it was possible for a 3rd type of error to be returned. This modifies the code (not the test) to make that third type of error actually the second type of error, which is a nicer error message. The test is no longer flaky. The flake was very reproducible with a 5ms sleep before the select at the end of Transport.getConn. Thanks to Github user @jaredborner for debugging. Fixes #16049 Change-Id: I0d2a036c9555a8d2618b07bab01f28558d2b0b2c Reviewed-on: https://go-review.googlesource.com/24748 Reviewed-by: Andrew Gerrand <adg@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-07-07path/filepath: fix typo in commentIan Lance Taylor
Change-Id: I0c76e8deae49c1149647de421503c5175028b948 Reviewed-on: https://go-review.googlesource.com/24781 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-07-06path/filepath: document Clean behavior for each functionIan Lance Taylor
Document explicitly which functions Clean the result rather than documenting it in the package comment. Updates #10122. Fixes #16111. Change-Id: Ia589c7ee3936c9a6a758725ac7f143054d53e41e Reviewed-on: https://go-review.googlesource.com/24747 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-07-06cmd/compile, syscall: add //go:uintptrescapes comment, and use itIan Lance Taylor
This new comment can be used to declare that the uintptr arguments to a function may be converted from pointers, and that those pointers should be considered to escape. This is used for the Call methods in dll_windows.go that take uintptr arguments, because they call Syscall. We can't treat these functions as we do syscall.Syscall, because unlike Syscall they may cause the stack to grow. For Syscall we can assume that stack arguments can remain on the stack, but for these functions we need them to escape. Fixes #16035. Change-Id: Ia0e5b4068c04f8d303d95ab9ea394939f1f57454 Reviewed-on: https://go-review.googlesource.com/24551 Reviewed-by: David Chase <drchase@google.com> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-07-06encoding/xml: update docs to follow conventionSam Whited
Fixes #8833 Change-Id: I4523a1de112ed02371504e27882659bce8028a45 Reviewed-on: https://go-review.googlesource.com/24745 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-07-05encoding/gob: document Encode, EncodeValue nil pointer panicsEmmanuel Odeke
Fixes #16258. Docs for Encode and EncodeValue do not mention that nil pointers are not permitted hence we panic, because Gobs encode values yet nil pointers have no value to encode. It moves a comment that was internal to EncodeValue to the top level to make it clearer to users what to expect when they pass in nil pointers. Supplements test TestTopLevelNilPointer. Change-Id: Ie54f609fde4b791605960e088456047eb9aa8738 Reviewed-on: https://go-review.googlesource.com/24740 Reviewed-by: Andrew Gerrand <adg@golang.org> Run-TryBot: Andrew Gerrand <adg@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-07-04cmd/vet: remove copylock warning about result types and callsIan Lance Taylor
Don't issue a copylock warning about a result type; the function may return a composite literal with a zero value, which is OK. Don't issue a copylock warning about a function call on the RHS, or an indirection of a function call; the function may return a composite literal with a zero value, which is OK. Updates #16227. Change-Id: I94f0e066bbfbca5d4f8ba96106210083e36694a2 Reviewed-on: https://go-review.googlesource.com/24711 Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Rob Pike <r@golang.org>
2016-07-04syscall: fix missing use of use function in GetfsstatMikio Hara
Updates #13372. Change-Id: If383c14af14839a303425ba7b80b97e35ca9b698 Reviewed-on: https://go-review.googlesource.com/24750 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-07-03cmd/go: remove noVCSSuffix check for OpenStackMonty Taylor
The original intent of the code was to allow both with and without .git suffix for now to allow a transition period. The noVCSSuffix check was a copy pasta error. Fixes #15979. Change-Id: I3d39aba8d026b40fc445244d6d01d8bc1979d1e4 Reviewed-on: https://go-review.googlesource.com/24645 Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-07-02cmd/compile: mark live heap-allocated pparamout vars as needzeroIan Lance Taylor
If we don't mark them as needzero, we have a live pointer variable containing possible garbage, which will baffle the GC. Fixes #16249. Change-Id: I7c423ceaca199ddd46fc2c23e5965e7973f07584 Reviewed-on: https://go-review.googlesource.com/24715 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
2016-07-01cmd/compile: don't lose //go:nointerface pragma in export dataRobert Griesemer
Fixes #16243. Change-Id: I207d1e8aa48abe453a23c709ccf4f8e07368595b Reviewed-on: https://go-review.googlesource.com/24648 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-07-01cmd/compile: don't set line number to 0 when building SSACherry Zhang
The frontend may emit node with line number missing. In this case, use the parent line number. Instead of changing every call site of pushLine, do it in pushLine itself. Fixes #16214. Change-Id: I80390550b56e4d690fc770b01ff725b892ffd6dc Reviewed-on: https://go-review.googlesource.com/24641 Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Cherry Zhang <cherryyz@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-30net/http: update bundled http2Brad Fitzpatrick
Updates x/net/http2 to git rev b400c2e for https://golang.org/cl/24214, "http2: add additional blacklisted ciphersuites" Both TLS_RSA_WITH_AES_128_GCM_SHA256 & TLS_RSA_WITH_AES_256_GCM_SHA384 are now blacklisted, per http://httpwg.org/specs/rfc7540.html#BadCipherSuites Change-Id: I8b9a7f4dc3c152d0675e196523ddd36111744984 Reviewed-on: https://go-review.googlesource.com/24684 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-30cmd/vet: lostcancel: treat naked return as a use of named resultsAlan Donovan
+ test. Fixes #16230 Change-Id: Idac995437146a9df9e73f094d2a31abc25b1fa62 Reviewed-on: https://go-review.googlesource.com/24681 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-30all: be consistent about spelling of cancelationBrad Fitzpatrick
We had ~30 one way, and these four new occurrences the other way. Updates #11626 Change-Id: Ic6403dc4905874916ae292ff739d33482ed8e5bf Reviewed-on: https://go-review.googlesource.com/24683 Reviewed-by: Rob Pike <r@golang.org>
2016-06-30context: cancel the context in ExampleWithTimeout, with explanationAlan Donovan
Fixes #16230 Change-Id: Ibb10234a6c3ab8bd0cfd93c2ebe8cfa66f80f6b0 Reviewed-on: https://go-review.googlesource.com/24682 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-06-30runtime/internal/sys: implement Ctz and Bswap in assembly for 386Austin Clements
Ctz is a hot-spot in the Go 1.7 memory manager. In SSA it's implemented as an intrinsic that compiles to a few instructions, but on the old backend (all architectures other than amd64), it's implemented as a fairly complex Go function. As a result, switching to bitmap-based allocation was a significant hit to allocation-heavy workloads like BinaryTree17 on non-SSA platforms. For unknown reasons, this hit 386 particularly hard. We can regain a lot of the lost performance by implementing Ctz in assembly on the 386. This isn't as good as an intrinsic, since it still generates a function call and prevents useful inlining, but it's much better than the pure Go implementation: name old time/op new time/op delta BinaryTree17-12 3.59s ± 1% 3.06s ± 1% -14.74% (p=0.000 n=19+20) Fannkuch11-12 3.72s ± 1% 3.64s ± 1% -2.09% (p=0.000 n=17+19) FmtFprintfEmpty-12 52.3ns ± 3% 52.3ns ± 3% ~ (p=0.829 n=20+19) FmtFprintfString-12 156ns ± 1% 148ns ± 3% -5.20% (p=0.000 n=18+19) FmtFprintfInt-12 137ns ± 1% 136ns ± 1% -0.56% (p=0.000 n=19+13) FmtFprintfIntInt-12 227ns ± 2% 225ns ± 2% -0.93% (p=0.000 n=19+17) FmtFprintfPrefixedInt-12 210ns ± 1% 208ns ± 1% -0.91% (p=0.000 n=19+17) FmtFprintfFloat-12 375ns ± 1% 371ns ± 1% -1.06% (p=0.000 n=19+18) FmtManyArgs-12 995ns ± 2% 978ns ± 1% -1.63% (p=0.000 n=17+17) GobDecode-12 9.33ms ± 1% 9.19ms ± 0% -1.59% (p=0.000 n=20+17) GobEncode-12 7.73ms ± 1% 7.73ms ± 1% ~ (p=0.771 n=19+20) Gzip-12 375ms ± 1% 374ms ± 1% ~ (p=0.141 n=20+18) Gunzip-12 61.8ms ± 1% 61.8ms ± 1% ~ (p=0.602 n=20+20) HTTPClientServer-12 87.7µs ± 2% 86.9µs ± 3% -0.87% (p=0.024 n=19+20) JSONEncode-12 20.2ms ± 1% 20.4ms ± 0% +0.53% (p=0.000 n=18+19) JSONDecode-12 65.3ms ± 0% 65.4ms ± 1% ~ (p=0.385 n=16+19) Mandelbrot200-12 4.11ms ± 1% 4.12ms ± 0% +0.29% (p=0.020 n=19+19) GoParse-12 3.75ms ± 1% 3.61ms ± 2% -3.90% (p=0.000 n=20+20) RegexpMatchEasy0_32-12 104ns ± 0% 103ns ± 0% -0.96% (p=0.000 n=13+16) RegexpMatchEasy0_1K-12 805ns ± 1% 803ns ± 1% ~ (p=0.189 n=18+18) RegexpMatchEasy1_32-12 111ns ± 0% 111ns ± 3% ~ (p=1.000 n=14+19) RegexpMatchEasy1_1K-12 1.00µs ± 1% 1.00µs ± 1% +0.50% (p=0.003 n=19+19) RegexpMatchMedium_32-12 133ns ± 2% 133ns ± 2% ~ (p=0.218 n=20+20) RegexpMatchMedium_1K-12 41.2µs ± 1% 42.2µs ± 1% +2.52% (p=0.000 n=18+16) RegexpMatchHard_32-12 2.35µs ± 1% 2.38µs ± 1% +1.53% (p=0.000 n=18+18) RegexpMatchHard_1K-12 70.9µs ± 2% 72.0µs ± 1% +1.42% (p=0.000 n=19+17) Revcomp-12 1.06s ± 0% 1.05s ± 0% -1.36% (p=0.000 n=20+18) Template-12 86.2ms ± 1% 84.6ms ± 0% -1.89% (p=0.000 n=20+18) TimeParse-12 425ns ± 2% 428ns ± 1% +0.77% (p=0.000 n=18+19) TimeFormat-12 517ns ± 1% 519ns ± 1% +0.43% (p=0.001 n=20+19) [Geo mean] 74.3µs 73.5µs -1.05% Prior to this commit, BinaryTree17-12 on 386 was 33% slower than at the go1.6 tag. With this commit, it's 13% slower. On arm and arm64, BinaryTree17-12 is only ~5% slower than it was at go1.6. It may be worth implementing Ctz for them as well. I consider this change low risk, since the functions it replaces are simple, very well specified, and well tested. For #16117. Change-Id: Ic39d851d5aca91330134596effd2dab9689ba066 Reviewed-on: https://go-review.googlesource.com/24640 Reviewed-by: Rick Hudson <rlh@golang.org> Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-30os/exec: start checking for context cancelation in StartIan Lance Taylor
Previously we started checking for context cancelation in Wait, but that meant that when using StdoutPipe context cancelation never took effect. Fixes #16222. Change-Id: I89cd26d3499a6080bf1a07718ce38d825561899e Reviewed-on: https://go-review.googlesource.com/24650 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-30syscall: accept more variants of id output when testing as rootIan Lance Taylor
This should fix the report at #16224, and also fixes running the test as root on my Ubuntu Trusty system. Fixes #16224. Change-Id: I4e3b5527aa63366afb33a7e30efab088d34fb302 Reviewed-on: https://go-review.googlesource.com/24670 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-30net/http: update bundled http2Brad Fitzpatrick
Updates x/net/http2 to git rev 8e573f40 for https://golang.org/cl/24600, "http2: merge multiple GOAWAY frames' contents into error message" Fixes #14627 (more) Change-Id: I5231607c2c9e0d854ad6199ded43c59e59f62f52 Reviewed-on: https://go-review.googlesource.com/24612 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-29net/http: be consistent about spelling of HTTP/1.xBrad Fitzpatrick
There was only one use of "HTTP/1.n" compared to "HTTP/1.x": h2_bundle.go:// "Just as in HTTP/1.x, header field names are strings of ASCII httputil/dump.go:// DumpRequest returns the given request in its HTTP/1.x wire httputil/dump.go:// intact. HTTP/2 requests are dumped in HTTP/1.x form, not in their response.go:// Write writes r to w in the HTTP/1.x server response format, server.go: // Request.Body. For HTTP/1.x requests, handlers should read any server.go:// The default HTTP/1.x and HTTP/2 ResponseWriter implementations server.go:// The default ResponseWriter for HTTP/1.x connections supports server.go:// http1ServerSupportsRequest reports whether Go's HTTP/1.x server server.go: // about HTTP/1.x Handlers concurrently reading and writing, like server.go: // HTTP/1.x from here on. transport.go: return fmt.Errorf("net/http: HTTP/1.x transport connection broken: %v", err) Be consistent. Change-Id: I93c4c873e500f51af2b4762055e22f5487a625ac Reviewed-on: https://go-review.googlesource.com/24610 Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-06-29crypto/ecdsa: Update documentation for SignNick Harper
Change-Id: I2b7a81cb809d109f10d5f0db957c614f466d6bfd Reviewed-on: https://go-review.googlesource.com/24582 Reviewed-by: Adam Langley <agl@golang.org>
2016-06-29crypto/tls: Use the same buffer size in the client and server in the TLS ↵Tom Bergan
throughput benchmark I believe it's necessary to use a buffer size smaller than 64KB because (at least some versions of) Window using a TCP receive window less than 64KB. Currently the client and server use buffer sizes of 16KB and 32KB, respectively (the server uses io.Copy, which defaults to 32KB internally). Since the server has been using 32KB, it should be safe for the client to do so as well. Fixes #15899 Change-Id: I36d44b29f2a5022c03fc086213d3c1adf153e983 Reviewed-on: https://go-review.googlesource.com/24581 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-29runtime: fix race atomic operations on external memoryDmitry Vyukov
The assembly is broken: it does `MOVQ g(R12), R14` expecting that R12 contains tls address, but it does not do get_tls(R12) before. This magically works on linux: `MOVQ g(R12), R14` is compiled to `mov %fs:0xfffffffffffffff8,%r14` which does not use R12. But it crashes on windows. Add explicit `get_tls(R12)`. Fixes #16206 Change-Id: Ic1f21a6fef2473bcf9147de6646929781c9c1e98 Reviewed-on: https://go-review.googlesource.com/24590 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-29runtime: correct printing of blocked field in scheduler traceIan Lance Taylor
When the blocked field was first introduced back in https://golang.org/cl/61250043 the scheduler trace code incorrectly used m->blocked instead of mp->blocked. That has carried through the conversion to Go. This CL fixes it. Change-Id: Id81907b625221895aa5c85b9853f7c185efd8f4b Reviewed-on: https://go-review.googlesource.com/24571 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-06-29runtime: better error message for newosproc failureIan Lance Taylor
If creating a new thread fails with EAGAIN, point the user at ulimit. Fixes #15476. Change-Id: Ib36519614b5c72776ea7f218a0c62df1dd91a8ea Reviewed-on: https://go-review.googlesource.com/24570 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-06-29net/http: update bundled http2Brad Fitzpatrick
Updates x/net/http2 to git rev ef2e00e88 for https://golang.org/cl/24560, "http2: make Transport return server's GOAWAY error back to the user" Fixes #14627 Change-Id: I2bb123a3041e168db7c9446beef4ee47638f17ee Reviewed-on: https://go-review.googlesource.com/24561 Reviewed-by: Andrew Gerrand <adg@golang.org> Run-TryBot: Andrew Gerrand <adg@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-28cmd/vet: make checking example names in _test packages more robustKonstantin Shaposhnikov
Prior to this change package "foo" had to be installed in order to check example names in "foo_test" package. However by the time "foo_test" package is checked a parsed "foo" package has been already constructed. Use it to check example names. Also change TestDivergentPackagesExamples test to pass directory of the package to the vet tool as it is the most common way to invoke it. This requires changes to errchk to add support for grabbing source files from a directory. Fixes #16189 Change-Id: Ief103d07b024822282b86c24250835cc591793e8 Reviewed-on: https://go-review.googlesource.com/24488 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-28database/sql: deflake TestPendingConnsAfterErr and fix races, panicsBrad Fitzpatrick
TestPendingConnsAfterErr only cared that things didn't deadlock, so 5 seconds is a sufficient timer. We don't need 100 milliseconds. I was able to reproduce with a tiny (5 nanosecond) timeout value, instead of 100 milliseconds. In the process of testing with -race and a high -count= value, I noticed several data races and panics (sendings on a closed channel) which are also fixed in this change. Fixes #15684 Change-Id: Ib4605fcc0f296e658cb948352ed642b801cb578c Reviewed-on: https://go-review.googlesource.com/24550 Reviewed-by: Marko Tiikkaja <marko@joh.to> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-06-28cmd/go: restore support for git submodules and update docsAndrew Gerrand
Fixes #16165 Change-Id: Ic90e5873e0c8ee044f09543177192dcae1dcdbed Reviewed-on: https://go-review.googlesource.com/24531 Run-TryBot: Andrew Gerrand <adg@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-06-28strconv: clarify doc for Atoi return typeJustyn Temme
Change-Id: I47bd98509663d75b0d4dedbdb778e803d90053cf Reviewed-on: https://go-review.googlesource.com/24216 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-06-28net/http: conditionally configure HTTP/2 in Server.Serve(Listener)Brad Fitzpatrick
Don't configure HTTP/2 in http.Server.Serve(net.Listener) if the Server's TLSConfig is set and doesn't include the "h2" NextProto value. This avoids mutating a *tls.Config already in use if previously passed to tls.NewListener. Also document this. (it's come up a few times now) Fixes #15908 Change-Id: I283eed82fdb29a791f80d801aadd9f75db244de0 Reviewed-on: https://go-review.googlesource.com/24508 Reviewed-by: Andrew Gerrand <adg@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-06-28doc: update 1.7 release notes on Unicode upgradeMarcel van Lohuizen
Fixes #16201 Change-Id: I38c17859db78c2868905da24217e0ad47739c320 Reviewed-on: https://go-review.googlesource.com/24541 Run-TryBot: Marcel van Lohuizen <mpvl@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-06-28doc/go1.7.html: mention recent changes to Rand.ReadJoe Tsai
Updates #16124 Change-Id: Ib58f2bb37fd1559efc512a2e3cba976f09b939a0 Reviewed-on: https://go-review.googlesource.com/24520 Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-06-28unicode: upgrade to version 9.0.0Marcel van Lohuizen
Changes beyond generated tables: - Now supports aliases to handle deprecated property classes. - Some Mongolian letters are now modifiers. Other changes: - strconv: newly generated table to be in sync - regexp/syntax: updated maxFold Fixes #16191 Change-Id: I56bdf21ee2f775f2a82d0465b3772faf5c24cb61 Reviewed-on: https://go-review.googlesource.com/24496 Run-TryBot: Marcel van Lohuizen <mpvl@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-06-28reflect, runtime: optimize Name methodDavid Crawshaw
Several minor changes that remove a good chunk of the overhead added to the reflect Name method over the 1.7 cycle, as seen from the non-SSA architectures. In particular, there are ~20 fewer instructions in reflect.name.name on 386, and the method now qualifies for inlining. The simple JSON decoding benchmark on darwin/386: name old time/op new time/op delta CodeDecoder-8 49.2ms ± 0% 48.9ms ± 1% -0.77% (p=0.000 n=10+9) name old speed new speed delta CodeDecoder-8 39.4MB/s ± 0% 39.7MB/s ± 1% +0.77% (p=0.000 n=10+9) On darwin/amd64 the effect is less pronounced: name old time/op new time/op delta CodeDecoder-8 38.9ms ± 0% 38.7ms ± 1% -0.38% (p=0.005 n=10+10) name old speed new speed delta CodeDecoder-8 49.9MB/s ± 0% 50.1MB/s ± 1% +0.38% (p=0.006 n=10+10) Counterintuitively, I get much more useful benchmark data out of my MacBook Pro than a linux workstation with more expensive Intel chips. While the laptop has fewer cores and an active GUI, the single-threaded performance is significantly better (nearly 1.5x decoding throughput) so the differences are more pronounced. For #16117. Change-Id: I4e0cc1cc2d271d47d5127b1ee1ca926faf34cabf Reviewed-on: https://go-review.googlesource.com/24510 Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-06-28runtime/internal/atomic: Use power5 compatible instructions for ppc64Lynn Boger
This modifies a recent performance improvement to the And8 and Or8 atomic functions which required both ppc64le and ppc64 to use power8 instructions. Since then it was decided that ppc64 (BE) should work for power5 and later. This change uses instructions compatible with power5 for ppc64 and uses power8 for ppc64le. Fixes #16004 Change-Id: I623c75e8e6fd1fa063a53d250d86cdc9d0890dc7 Reviewed-on: https://go-review.googlesource.com/24181 Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Andrew Gerrand <adg@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-28net/http/pprof: remove comments pointing to gperftoolsRaul Silvera
The version of pprof in gperftools has been deprecated. No need to have a pointer to that version since go tool pprof is included with the Go distro. Change-Id: I6d769a68f64280f5db89ff6fbc67bfea9c8f1526 Reviewed-on: https://go-review.googlesource.com/24509 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-06-28encoding/gob: avoid allocating string for map keyDavid Crawshaw
On linux/386 compared to tip: name old time/op new time/op delta DecodeInterfaceSlice-40 1.23ms ± 1% 1.17ms ± 1% -4.93% (p=0.000 n=9+10) Recovers about half the performance regression from Go 1.6 on 386. For #16117. Change-Id: Ie8676d92a4da3e27ff21b91a98b3e13d16730ba1 Reviewed-on: https://go-review.googlesource.com/24468 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-27math/rand: fix io.Reader implementationDmitri Popov
Do not throw away the rest of Int63 value used for generation random bytes. Save it in Rand struct and re-use during the next Read call. Fixes #16124 Change-Id: Ic70bd80c3c3a6590e60ac615e8b3c2324589bea3 Reviewed-on: https://go-review.googlesource.com/24251 Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com> Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-27compress/flate: don't ignore dict in Reader.ResetVladimir Mihailenco
Fixes #16162. Change-Id: I6f4ae906630079ef5fc29ee5f70e2e3d1c962170 Reviewed-on: https://go-review.googlesource.com/24390 Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-06-27crypto/tls: don't copy Mutex or Once valuesIan Lance Taylor
This fixes some 40 warnings from go vet. Fixes #16134. Change-Id: Ib9fcba275fe692f027a2a07b581c8cf503b11087 Reviewed-on: https://go-review.googlesource.com/24287 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org>
2016-06-27net/http/httptest: show usage of httptest.NewRequest in exampleKonstantin Shaposhnikov
Change ExampleResponseRecorder to use httptest.NewRequest instead of http.NewRequest. This makes the example shorter and shows how to use one more function from the httptest package. Change-Id: I3d35869bd0a4daf1c7551b649428bb2f2a45eba2 Reviewed-on: https://go-review.googlesource.com/24480 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-06-27net/http: reject faux HTTP/0.9 and HTTP/2+ requestsBrad Fitzpatrick
Fixes #16197 Change-Id: Icaabacbb22bc18c52b9e04b47385ac5325fcccd1 Reviewed-on: https://go-review.googlesource.com/24505 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>