- 03 Nov, 2016 11 commits
-
-
Russ Cox authored
The original go tool pprof (written in Perl) got this right. The Go rewrite never has, but should. Change-Id: Ie1fc571214c61b1b5654a0bc90e15eb889adf059 Reviewed-on: https://go-review.googlesource.com/32617 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
David Crawshaw authored
The exported symbol for a plugin can be the only reference to a type in a program. In particular, "var F func()" will have the type *func(), which is uncommon. Fixes #17140 Change-Id: Ide2104edbf087565f5377374057ae54e0c00c57e Reviewed-on: https://go-review.googlesource.com/29692 Run-TryBot: David Crawshaw <crawshaw@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
David du Colombier authored
Since Dial(":80") was implemented on Plan 9 (CL 32593), TestProtocolDialError is failing because dialing a port superior to 65535 is supported on Plan 9. This change disallows dialing and listening on ports superior to 65535. Fixes #17761. Change-Id: I95e8a163eeacf1ccd8ece7b650f16a0531c59709 Reviewed-on: https://go-review.googlesource.com/32594Reviewed-by: Russ Cox <rsc@golang.org>
-
David du Colombier authored
CL 32101 fixed Dial(":80") on Windows and added TestDialLocal, which was failing on Plan 9, because it wasn't implemented on Plan 9. This change implements Dial(":80") by connecting to 127.0.0.1 or ::1 (depending on network), so it works as documented. Fixes #17760. Change-Id: If0ff769299e09bebce11fc3708639c1d8c96c280 Reviewed-on: https://go-review.googlesource.com/32593Reviewed-by: Russ Cox <rsc@golang.org>
-
Josh Bleecher Snyder authored
Fixes #17755 Change-Id: I1ad1edc382b1312d992963054eb82648cb5112d2 Reviewed-on: https://go-review.googlesource.com/32588 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Ilya Tocar authored
Generate bswap+load/store for reading/writing big endian data. Helps encoding/binary. name old time/op new time/op delta ReadSlice1000Int32s-8 5.06µs ± 8% 4.58µs ± 8% -9.50% (p=0.000 n=10+10) ReadStruct-8 1.07µs ± 0% 1.05µs ± 0% -1.51% (p=0.000 n=9+10) ReadInts-8 367ns ± 0% 363ns ± 0% -1.15% (p=0.000 n=8+9) WriteInts-8 475ns ± 1% 469ns ± 0% -1.45% (p=0.000 n=10+10) WriteSlice1000Int32s-8 5.03µs ± 3% 4.50µs ± 3% -10.45% (p=0.000 n=9+9) PutUvarint32-8 17.2ns ± 0% 17.2ns ± 0% ~ (all samples are equal) PutUvarint64-8 46.7ns ± 0% 46.7ns ± 0% ~ (p=0.509 n=10+10) name old speed new speed delta ReadSlice1000Int32s-8 791MB/s ± 8% 875MB/s ± 8% +10.53% (p=0.000 n=10+10) ReadStruct-8 70.0MB/s ± 0% 71.1MB/s ± 0% +1.54% (p=0.000 n=9+10) ReadInts-8 81.6MB/s ± 0% 82.6MB/s ± 0% +1.21% (p=0.000 n=9+9) WriteInts-8 63.0MB/s ± 1% 63.9MB/s ± 0% +1.45% (p=0.000 n=10+10) WriteSlice1000Int32s-8 796MB/s ± 4% 888MB/s ± 3% +11.65% (p=0.000 n=9+9) PutUvarint32-8 233MB/s ± 0% 233MB/s ± 0% ~ (p=0.089 n=10+10) PutUvarint64-8 171MB/s ± 0% 171MB/s ± 0% ~ (p=0.137 n=10+9) Change-Id: Ia2dbdef92198eaa7e2af5443a8ed586d4b401ffb Reviewed-on: https://go-review.googlesource.com/32222 Run-TryBot: Ilya Tocar <ilya.tocar@intel.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Josh Bleecher Snyder authored
Follow-up to CL 32551. Change-Id: If68f9581a7f13e04796aaff2007c09f8ea2c3611 Reviewed-on: https://go-review.googlesource.com/32586 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Hiroshi Ioka authored
The old code cannot handle unexported fields, it panics. The new code returns error instead. Fixes #17462 Change-Id: I927fc46b21d60e86cb52e84c65f2122f9159b21d Reviewed-on: https://go-review.googlesource.com/31540 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Brad Fitzpatrick authored
Fixes #17754 Updates #9478 (details in here) Change-Id: Iae2c1ca05a18ed266b53b2594c22fc57fab33c5e Reviewed-on: https://go-review.googlesource.com/32587 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Josh Bleecher Snyder authored
TestAssembly takes 20s on my machine, which is too slow for normal operation. Marking as -short has its dangers (#17472), but hopefully we'll soon have a builder for that. All the SSA tests are hermetic and not time sensitive and can thus be run in parallel. Reduces the cmd/compile/internal/gc test time during all.bash on my laptop from 42s to 7s. Updates #17751 Change-Id: Idd876421db23b9fa3475e8a9b3355a5dc92a5a29 Reviewed-on: https://go-review.googlesource.com/32585 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Brad Fitzpatrick authored
Updates http2 to x/net/http2 git rev 569280fa for: http2: fix over-aggressive ignoring of frames while in "go away" mode https://golang.org/cl/32583 Fixes #17733 Change-Id: I4008d2e14ce89782ce7e18b441b1181f98623b9d Reviewed-on: https://go-review.googlesource.com/32584 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
- 02 Nov, 2016 19 commits
-
-
Robert Griesemer authored
Change-Id: I4b035b3539c98e5b1442d1009d457cbc199b42ee Reviewed-on: https://go-review.googlesource.com/32637Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Michael Munday authored
Adapted from the mips64 test case. Fixes #17745. Change-Id: I46f0900028adb936dcab2cdc701ea11d0a3cb95e Reviewed-on: https://go-review.googlesource.com/32611 Run-TryBot: Michael Munday <munday@ca.ibm.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Rob Pike <r@golang.org>
-
Keith Randall authored
when compiling f(a, b, c), we do something like: *(SP+0) = eval(a) *(SP+8) = eval(b) *(SP+16) = eval(c) call f If one of those evaluations is later determined to unconditionally panic (say eval(b) in this example), then the call is deadcode eliminated. But any previous argument write (*(SP+0)=... here) is still around. Becuase we only compute the size of the outarg area for calls which are still around at the end of optimization, the space needed for *(SP+0)=v is not accounted for and thus the outarg area may be too small. The fix is to make sure that we evaluate any potentially panicing operation before we write any of the args to the stack. It turns out that fix is pretty easy, as we already have such a mechanism available for function args. We just need to extend it to possibly panicing args as well. The resulting code (if b and c can panic, but a can't) is: tmpb = eval(b) *(SP+16) = eval(c) *(SP+0) = eval(a) *(SP+8) = tmpb call f This change tickled a bug in how we find the arguments for intrinsic calls, so that latent bug is fixed up as well. Update #16760. Change-Id: I0bf5edf370220f82bc036cf2085ecc24f356d166 Reviewed-on: https://go-review.googlesource.com/32551Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Keith Randall authored
The code to do the conversion is smaller than the call to the runtime. The 1-result asserts need to call panic if they fail, but that code is out of line. The only conversions left in the runtime are those which might allocate and those which might need to generate an itab. Given the following types: type E interface{} type I interface { foo() } type I2 iterface { foo(); bar() } type Big [10]int func (b Big) foo() { ... } This CL inlines the following conversions: was assertE2T var e E = ... b := i.(Big) was assertE2T2 var e E = ... b, ok := i.(Big) was assertI2T var i I = ... b := i.(Big) was assertI2T2 var i I = ... b, ok := i.(Big) was assertI2E var i I = ... e := i.(E) was assertI2E2 var i I = ... e, ok := i.(E) These are the remaining runtime calls: convT2E: var b Big = ... var e E = b convT2I: var b Big = ... var i I = b convI2I: var i2 I2 = ... var i I = i2 assertE2I: var e E = ... i := e.(I) assertE2I2: var e E = ... i, ok := e.(I) assertI2I: var i I = ... i2 := i.(I2) assertI2I2: var i I = ... i2, ok := i.(I2) Fixes #17405 Fixes #8422 Change-Id: Ida2367bf8ce3cd2c6bb599a1814f1d275afabe21 Reviewed-on: https://go-review.googlesource.com/32313 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
Keith Randall authored
We generate an OpKeepAlive for the idata portion of the interface for a runtime.KeepAlive call. But given such an op, we need to keep the entire containing variable alive, not just the range that was passed to the OpKeepAlive operation. Fixes #17710 Change-Id: I90de66ec8065e22fb09bcf9722999ddda289ae6e Reviewed-on: https://go-review.googlesource.com/32477 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
-
Brad Fitzpatrick authored
Update bundled x/net/http2 to x/net git rev 6c4ac8bd for: http2: fix Transport race sending RST_STREAM while reading DATA on cancels https://golang.org/cl/32571 http2: remove h2-14 ALPN proto https://golang.org/cl/32576 Fixes #16974 Change-Id: I6ff8493a13d2641499fedf33e8005004735352ff Reviewed-on: https://go-review.googlesource.com/32578 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Joe Tsai authored
The proper fix for the Writer is too involved to be done in time for Go 1.8. Instead, we do a localized fix that simply disables the prefix encoding logic. While this will prevent some legitimate uses of prefix, it will ensure that we don't keep outputting invalid GNU format files that have the prefix field populated. For headers with long filenames that could have used the prefix field, they will be promoted to use the PAX format, which ensures that we will still be able to encode all headers that we were able to do before. Updates #12594 Fixes #17630 Fixes #9683 Change-Id: Ia97b524ac69865390e2ae8bb0dfb664d40a05add Reviewed-on: https://go-review.googlesource.com/32234Reviewed-by: Russ Cox <rsc@golang.org> Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Munday authored
Test adapted from the mips64 test. Fixes #15454. Change-Id: If890c2d18a4a03a08faaa2e674edd7223af60290 Reviewed-on: https://go-review.googlesource.com/22472 Run-TryBot: Michael Munday <munday@ca.ibm.com> Reviewed-by: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
Instead of writing out the original object for each alias, ensure we export the original object before any aliases. This allows the aliases to simply refer back to the original object by qualified name. Fixes #17636. Change-Id: If80fa8c66b8fee8344a00b55d25a8aef22abd859 Reviewed-on: https://go-review.googlesource.com/32575 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org> Reviewed-by: Alan Donovan <adonovan@google.com>
-
Russ Cox authored
Windows sockets allow bind to 0.0.0.0:80 but not connect to it. To make Listen(":80") / Dial(":80") work as documented on Windows, connect to 127.0.0.1 or ::1 (depending on network) in place of 0.0.0.0. Fixes #6290. Change-Id: Ia27537067276871648546678fbe0f1b8478329fe Reviewed-on: https://go-review.googlesource.com/32101 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Mikio Hara <mikioh.mikioh@gmail.com>
-
Russ Cox authored
Currently, we don't have package testing to import package regexp directly, because then regexp can't have internal tests (or at least they become more difficult to write), for fear of an import cycle. The solution we've been using is for the generated test main package (pseudo-import path "testmain", package main) to import regexp and pass in a matchString function for use by testing when implementing the -run flags. This lets testing use regexp but without depending on regexp and creating unnecessary cycles. We want to add a few dependencies to runtime/pprof, notably regexp but also compress/gzip, without causing those packages to have to work hard to write internal tests. Restructure the (dare I say it) dependency injection of regexp.MatchString to be more general, and use it for the runtime/pprof functionality in addition to the regexp functionality. The new package testing/internal/testdeps is the root for the testing dependencies handled this way. Code using testing.MainStart will have to change from passing in a matchString implementation to passing in testdeps.TestDeps{}. Users of 'go test' don't do this, but other build systems that have recreated 'go test' (for example, Blaze/Bazel) may need to be updated. The new testdeps setup should make future updates unnecessary, but even so we keep the comment about MainStart not being subject to Go 1 compatibility. Change-Id: Iec821d2afde10c79f95f3b23de5e71b219f47b92 Reviewed-on: https://go-review.googlesource.com/32455Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Russ Cox authored
Make it easier to find lines and update the file. Change-Id: I9db78ffd7316fbc17c5488e178e23777756d8f47 Reviewed-on: https://go-review.googlesource.com/32454 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
CL 21870 moved the entire cmd/pprof/internal directory to cmd/internal/pprof for use by cmd/trace, but really cmd/trace only needed cmd/pprof/internal/profile, which became cmd/internal/pprof/profile, and then internal/pprof/profile. Move the rest back under cmd/pprof so that it is clear that no other code is reaching into the guts of cmd/pprof. Just like functions should not be exported unless necessary, internals should not be made visible to more code than necessary. Raúl Silvera noted after the commit of CL 21870 that only the profile package should have moved, but there was no followup fix (until now). Change-Id: I603f4dcb0616df1e5d5eb7372e6fccda57e05079 Reviewed-on: https://go-review.googlesource.com/32453 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Russ Cox authored
This allows both the runtime and the cmd/pprof code to use the package, just like we do for internal/trace. Change-Id: I7606977284e1def36c9647354c58e7c1e93dba6b Reviewed-on: https://go-review.googlesource.com/32452 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Michael Munday authored
Updates the s390x-specific files in these packages with the changes to the amd64-specific files made during the review of CL 31690. I'd like to keep these files in sync unless there is a reason to diverge. Change-Id: Id83e5ce11a45f877bdcc991d02b14416d1a2d8d2 Reviewed-on: https://go-review.googlesource.com/32574Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Jan Mercl authored
Change-Id: I436528a4f81634448a60b1183d1b65a3bf4f48c1 Reviewed-on: https://go-review.googlesource.com/32590Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
-
David Crawshaw authored
Change-Id: I174d7307bfdd8ec57bb4266dab8569fd2234abb4 Reviewed-on: https://go-review.googlesource.com/32610Reviewed-by: Austin Clements <austin@google.com> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ian Lance Taylor authored
SWIG generates cgo input files in the work directory. When those files are passed directly to cgo, cgo generates long file names that include the object directory (with slashes replaced by underscores). Instead, use cgo's new -srcdir option to give it short file names. When using both SWIG and cgo, copy the cgo files into the object directory first. Use a shorter object file name when compiling the C file generated by SWIG. Fixes #17070. Change-Id: Ic558603f1731636d9999f3130ad0224b24bd7dcb Reviewed-on: https://go-review.googlesource.com/32485 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Alex Brainman authored
Updates #13451 Change-Id: I2c3c66d9532c16e616c476e2afe31b3ddc0a8d79 Reviewed-on: https://go-review.googlesource.com/32371Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
-
- 01 Nov, 2016 10 commits
-
-
Brad Fitzpatrick authored
Automated update after manual classification using x/build/cmd/writenotes. Change-Id: Ie92f501d301c1e2245954439da197812c09c1684 Reviewed-on: https://go-review.googlesource.com/32570Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Ian Lance Taylor authored
In a function argument, we handle a typedef for a pointer specially, using the pointer type rather than the typedef, to permit the Go calls to match the laxer type conversions permitted in C. We record the typedef so that we use that type in the C code, in case it has a special attribute. However, using the typedef is wrong when using a pointer to a basic type, because the C code may sometimes use the typedef and sometimes not, and using the typedef in all cases will cause incorrect type errors on the Go side. Fortunately we only really need to use the typedef when pointing to a struct/union/class, and in such a case confusion is unlikely. Fixes #17723. Change-Id: Id2eaeb156faeaf2e8eb9cf0b8f95b44caf8cfbd2 Reviewed-on: https://go-review.googlesource.com/32536 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Matthew Dempsky authored
It's never set anywhere, and even if it was, it would just Fatalf. Change-Id: I84ade6d2068c623a8c85f84d8cdce38984996ddd Reviewed-on: https://go-review.googlesource.com/32489 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Robert Griesemer authored
Before aliases, and because we chose a simple export format for them, a package may now export the same object more than once if there are multiple exported aliases referring to that object. The go/importer made the assumption this couldn't happen. Adjust it. Fixes #17726. Change-Id: Ibb9fc669a8748200b45ad78934d7453e5a5aad82 Reviewed-on: https://go-review.googlesource.com/32538Reviewed-by: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Robert Griesemer <gri@golang.org>
-
Robert Griesemer authored
Fixes #17697. Change-Id: I3c47e139b09bde81566e29a1ac0ec8c58d55a34a Reviewed-on: https://go-review.googlesource.com/32539 Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ian Lance Taylor authored
Since SWIG uses cgo, when using SWIG with gccgo, the go tool will add a _cgo_flags file to the package archive, just as it does with cgo. We need to remove that file from the archive passed to the linker, just as we do with cgo. Change-Id: I5ef4fea92eec419f870fbf6f678691d15901ee6c Reviewed-on: https://go-review.googlesource.com/32535 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Michael Hudson-Doyle <michael.hudson@canonical.com>
-
Michael Hudson-Doyle authored
This feels a bit like a layering violation, but as the bug report shows it is sometimes necessary. Fixes #17642 Change-Id: I4ba060bb1ce73a527ce276e5a769c44692b50016 Reviewed-on: https://go-review.googlesource.com/32236 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
David Crawshaw authored
A plugin with no exported symbols is still potentially very useful. Its init functions are called on load, and it so it can have visible side effects. Fixes #17681 Change-Id: Icdca31f48e5ab13c99020a2ef724f3de47dcd74b Reviewed-on: https://go-review.googlesource.com/32437 Run-TryBot: David Crawshaw <crawshaw@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Robert Griesemer authored
When we lookup a qualified identifier, we need to unpack an alias. Do this in all places, not just one. Duh! Fixes #17716. For #17592. Change-Id: I58d57b17cc635d0408b370f109c719c16757fd8e Reviewed-on: https://go-review.googlesource.com/32534Reviewed-by: Alan Donovan <adonovan@google.com>
-
David Crawshaw authored
The runtime.typeEquals function is used during typelinksinit to determine the canonical set of *_type values to use throughout the runtime. As such, it is run against non-canonical *_type values, that is, types from modules that are duplicates of a type from another module that was loaded earlier in the program life. These non-canonical *_type values sometimes contain pointers. These pointers are pointing to position-independent data, and so they are set by ld.so using dynamic relocations when the module is loaded. As such, the pointer can point to the equivalent memory from a previous module. This means if typesEqual follows a pointer inside a *_type, it can end up at a piece of memory from another module. If it reads a typeOff or nameOff from that memory and attempts to resolve it against the non-canonical *_type from the later module, it will end up with a reference to junk memory. Instead, resolve against the pointer the offset was read from, so the data is valid. Fixes #17709. Should no longer matter after #17724 is resolved in a later Go. Change-Id: Ie88b151a3407d82ac030a97b5b6a19fc781901cb Reviewed-on: https://go-review.googlesource.com/32513 Run-TryBot: David Crawshaw <crawshaw@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-