- 08 Apr, 2015 7 commits
-
-
Shenghou Ma authored
Add test, and while we're at here, also add a test for ARM. Fixes #10343. Change-Id: Ic914df8233d4f1f495e2cc0743fbd37b7671bc91 Signed-off-by: Shenghou Ma <minux@golang.org> Reviewed-on: https://go-review.googlesource.com/8472Reviewed-by: Aram Hăvărneanu <aram@mgk.ro> Reviewed-by: Rob Pike <r@golang.org>
-
Robert Griesemer authored
Change-Id: I58de76c49de6e43befb30b2bf677934e7952b5ab Reviewed-on: https://go-review.googlesource.com/8610Reviewed-by: Rob Pike <r@golang.org>
-
Robert Griesemer authored
The old code checked out a specific version of go/types from the x/tools repo. With go/types being part of the std repo, this is not necessary anymore. Also, for the same reason, the api tool is now built like any other regular command. There's no need to build it for each run. Removed the respective +build tags. Change-Id: I5088e4867223d676957084c24651ec05452ac495 Reviewed-on: https://go-review.googlesource.com/8564Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Robert Griesemer authored
Temporary work-around so we can start using go/types in the std repo. Change-Id: I661465af791171b01cd23abf34dcb7eea6e26173 Reviewed-on: https://go-review.googlesource.com/8594Reviewed-by: Rob Pike <r@golang.org>
-
Robert Griesemer authored
This is a first step towards moving go/types from the tools repo into the std repo. The files were brought over via the added src/go/types.bash script for reproducability. The script can be removed once all dependencies on go/types have moved to the std repo go/types. The script moved packages as follows: - x/tools/go/types => go/types (type-checker) - x/tools/go/exact => go/exact (constants) - x/tools/go/gcimporter => go/types/internal/gcimporter The gcimporter is needed to be able to run tests. go/types should probably have some factory function to provide an appropriate importer. Some of the go/types tests fail for a handful of platforms (windows and nacl). In order to keep this change "clean" from manual changes, the next change will disable those tests for now so we can move forward. Change-Id: I448d8f7faa39ad2e04811911b699f7682627c224 Reviewed-on: https://go-review.googlesource.com/8530Reviewed-by: Rob Pike <r@golang.org>
-
Nigel Tao authored
Change-Id: I3621527c924a43724032f80a072505c60d929ab3 Reviewed-on: https://go-review.googlesource.com/8180Reviewed-by: Rob Pike <r@golang.org>
-
Alex Brainman authored
Fixes #9753 Change-Id: I6c641ed7ef4f687a108e7d937ab4b9c24d5baf5d Reviewed-on: https://go-review.googlesource.com/4940Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 07 Apr, 2015 24 commits
-
-
Robert Griesemer authored
Change-Id: Iff943d15e83e7db1f3c77f509a60e00ee2041d69 Reviewed-on: https://go-review.googlesource.com/8592Reviewed-by: Robert Griesemer <gri@golang.org>
-
Robert Griesemer authored
For very out-of-range floating-point constants (1e100000000), precise formatting of the offending value for error messages is not needed and potentially extremely slow. This change resurrects an adjusted variant of the original code which uses float64 formatting in the common case (in-range values), and a fast manual approximation for out-of-range values. Change-Id: I2f6e53040929b8bf924dac4bb27c4d811ede48e2 Reviewed-on: https://go-review.googlesource.com/8470Reviewed-by: Alan Donovan <adonovan@google.com>
-
Michael Hudson-Doyle authored
Adds $DOLLAR to doc.go Change-Id: Ia0ccdd9b5292010297ae95debab4acf50d3c4d9c Reviewed-on: https://go-review.googlesource.com/8600Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
ALTree authored
Fixed bug that caused Exp(x, y, m) ( i.e. x**y (mod m) ) to return x instead of x (mod m) when y == 1. See issue page on github for more details. Added test case Fixes #9826 Change-Id: Ibabb58275a20c4231c9474199b7f1c10e54241ce Reviewed-on: https://go-review.googlesource.com/8409Reviewed-by: Robert Griesemer <gri@golang.org>
-
Rob Pike authored
Fix the other places the slice length was being believed, and refactor the code to use a single function to unify the check. Fixes #10273. Change-Id: Ia62b25203fbe87c95d71a70ebc1db8d202eaa4a4 Reviewed-on: https://go-review.googlesource.com/8511Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Dave Cheney authored
Add OGETG to the list of ignored operations. We don't instrument the runtime package, but calls to runtime.getg can appear in other packages, for example, after inlining runtime.LockOSThread. Change-Id: I8d6e91f1f3c8fd1302b596bdead42d588c059911 Reviewed-on: https://go-review.googlesource.com/8553Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
-
Dave Cheney authored
Add special case for OGETG which should never be instrumented. Change-Id: I7d082abb8608537f82b03362b687baf2a1d809dc Reviewed-on: https://go-review.googlesource.com/8551Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
-
Russ Cox authored
This more closely restores what the old C runtime did. (In C, g was an 'extern register' with the same effective implementation as in this CL.) On a late 2012 MacBookPro10,2, best of 5 old vs best of 5 new: benchmark old ns/op new ns/op delta BenchmarkBinaryTree17 4981312777 4463426605 -10.40% BenchmarkFannkuch11 3046495712 3006819428 -1.30% BenchmarkFmtFprintfEmpty 89.3 79.8 -10.64% BenchmarkFmtFprintfString 284 262 -7.75% BenchmarkFmtFprintfInt 282 262 -7.09% BenchmarkFmtFprintfIntInt 480 448 -6.67% BenchmarkFmtFprintfPrefixedInt 382 358 -6.28% BenchmarkFmtFprintfFloat 529 486 -8.13% BenchmarkFmtManyArgs 1849 1773 -4.11% BenchmarkGobDecode 12835963 11794385 -8.11% BenchmarkGobEncode 10527170 10288422 -2.27% BenchmarkGzip 436109569 438422516 +0.53% BenchmarkGunzip 110121663 109843648 -0.25% BenchmarkHTTPClientServer 81930 85446 +4.29% BenchmarkJSONEncode 24638574 24280603 -1.45% BenchmarkJSONDecode 93022423 85753546 -7.81% BenchmarkMandelbrot200 4703899 4735407 +0.67% BenchmarkGoParse 5319853 5086843 -4.38% BenchmarkRegexpMatchEasy0_32 151 151 +0.00% BenchmarkRegexpMatchEasy0_1K 452 453 +0.22% BenchmarkRegexpMatchEasy1_32 131 132 +0.76% BenchmarkRegexpMatchEasy1_1K 761 722 -5.12% BenchmarkRegexpMatchMedium_32 228 224 -1.75% BenchmarkRegexpMatchMedium_1K 63751 64296 +0.85% BenchmarkRegexpMatchHard_32 3188 3238 +1.57% BenchmarkRegexpMatchHard_1K 95396 96756 +1.43% BenchmarkRevcomp 661587262 687107364 +3.86% BenchmarkTemplate 108312598 104008540 -3.97% BenchmarkTimeParse 453 459 +1.32% BenchmarkTimeFormat 475 441 -7.16% The garbage benchmark from the benchmarks subrepo gets 2.6% faster as well. Change-Id: I320aeda332db81012688b26ffab23f6581c59cfa Reviewed-on: https://go-review.googlesource.com/8460Reviewed-by: Rick Hudson <rlh@golang.org> Run-TryBot: Rick Hudson <rlh@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Mikio Hara authored
Using IPv6 link-local addresses to make connections between on-link nodes is useful for small distributed applications but it requires zone identifiers to distinguish a correct IP link. It's the same for transports using URI for destination discovery such as HTTP, WebSocket. This change allows Parse, ParseRequestURI functions and String method of URL to parse/return a literal IPv6 address followed by a zone identifier within a URI as described in RFC 6874. Fixes #6530. Change-Id: I2936ea65c1446994770cf2ee2c28a1c73faaa0ca Reviewed-on: https://go-review.googlesource.com/2431Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
kortschak authored
Change-Id: I6859bd9c9dba30fc5eeb9bbc1de90af67984944c Reviewed-on: https://go-review.googlesource.com/8526Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Mikio Hara authored
This change deflakes TestDialerDualStackFDLeak, TestDialerDualStack, TestResolve{TCP,UDP,IP}Addr by removing external dependencies. Fixes #8764. Change-Id: I5cca0a93776cf05652e0e6a4a4ff4af392ccb885 Reviewed-on: https://go-review.googlesource.com/8485Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Alex Brainman authored
This reverts commit 9fa9f966. The change has broken darwin and netbsd builders. It needs to be tested properly. Change-Id: Id9e2d30caa8764c362c9f33890015dfc1aae0dab Reviewed-on: https://go-review.googlesource.com/8527 Run-TryBot: Alex Brainman <alex.brainman@gmail.com> Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
-
Brad Fitzpatrick authored
Change-Id: Iace8941c947253b1141f4194c5d2010c420ec220 Reviewed-on: https://go-review.googlesource.com/8540Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Jiong Du authored
Bug Description: When reduce db.maxOpen via db.SetMaxOpenConns, the unnecssary connections won't been released until all other connections are free. Fixes #9453 Change-Id: I9afb2e4b184139b31029ae53d7f5fd1fdb8d8d7e Reviewed-on: https://go-review.googlesource.com/2200Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Alex Brainman authored
Change-Id: I5939524f75f8fbbd67bd54b7c9e4b8c162337e9d Reviewed-on: https://go-review.googlesource.com/8525 Run-TryBot: Alex Brainman <alex.brainman@gmail.com> Reviewed-by: Minux Ma <minux@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Alex Brainman authored
Update #4339. Change-Id: Ic1a7535562b8b824ba166777725f7ba5b9623d77 Reviewed-on: https://go-review.googlesource.com/8523 Run-TryBot: Minux Ma <minux@golang.org> Reviewed-by: Minux Ma <minux@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Mikio Hara authored
This change tries to stop various tester goroutines at the end of each scope for avoiding interference between test cases including benchmarks. Not yet finished completely but enough to land upcoming changes to Dial functions. The rest will be fixed later. Change-Id: Ic38b8681a3a2ddbcd69ba3696f24a61d418a0346 Reviewed-on: https://go-review.googlesource.com/8398Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Josh Bleecher Snyder authored
Convert Embedded, Method, and Colas to bools. I believe that this is the last of the Node fields that can be trivially converted to bools. No functional changes. Passes toolstash -cmp. Change-Id: I81962ee47866596341fc60d24d6959c20cd7fc1c Reviewed-on: https://go-review.googlesource.com/8440Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Mikio Hara authored
Change-Id: I1f2d4e3b0351a7a47c3a6073833a17dbc0c7b05c Reviewed-on: https://go-review.googlesource.com/8520Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
This change adds testHookLookIP to enable to inject DNS name to IP address mappings for Happ{y,yish,ier} Eyeballs dial testing. Change-Id: I8ac04a594e1e2bd77909528df0552889914a7790 Reviewed-on: https://go-review.googlesource.com/8399Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Michael Hudson-Doyle authored
Ian complained about these in a review and then submitted the change before I could fix them. Change-Id: I23d890db2f3648ed1003ed3d13e7247435b913e5 Reviewed-on: https://go-review.googlesource.com/8480Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Josh Bleecher Snyder authored
The tests in doc/progs appear to have been originally written for use with the old test driver. At some later point, they acquired their own test driver. Both ran tests in serial. This CL rewrites the current test driver in Go, runs tests concurrently, and cleans up historical artifacts from the old drivers. The primary motivation is to speed up all.bash. On my laptop, using tip, this CL reduces doc/progs test wall time from 26s to 7s. The savings will remain even when the compiler gets faster. Using Go 1.4, this CL reduces test wall time from 15s to 4s. Change-Id: Iae945a8490222beee76e8a2118a0d7956092f543 Reviewed-on: https://go-review.googlesource.com/8410Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Hudson-Doyle authored
A quick pass through link.go, mostly removing fields that are not used on the "creating a single object file" side of the fence. Change-Id: I35ba41378c2c418f7df2f2f88dce65bc64a1a45d Reviewed-on: https://go-review.googlesource.com/7672 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Matthew Dempsky authored
Bison includes suggestions about what tokens are expected in the current state when there's only four or fewer of them. For example: syntax error: unexpected literal 2.01, expecting semicolon or newline or } This CL adds the same functionality to cmd/yacc, which fully restores the previous error message behavior from Go 1.4. Updates #9968. Change-Id: I2c1a1677c6d829a829d812c05e8813aa8829d09c Reviewed-on: https://go-review.googlesource.com/8494 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
- 06 Apr, 2015 9 commits
-
-
Josh Bleecher Snyder authored
Change-Id: Idd42e0f5c6ed55be2e153ac83022439e5272c1a7 Reviewed-on: https://go-review.googlesource.com/8444Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
-
David Crawshaw authored
At the moment this function does nothing, runtime initialization is still done in android.c:init_go_runtime. Fixes #10358 Change-Id: I1d762383ba61efcbcf0bbc7c77895f5c1dbf8968 Reviewed-on: https://go-review.googlesource.com/8510Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
-
Rob Pike authored
decBuffer.Drop is called using data provided by the user, don't panic if it's bogus. Fixes #10272. Change-Id: I913ae9c3c45cef509f2b8eb02d1efa87fbd52afa Reviewed-on: https://go-review.googlesource.com/8496Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Austin Clements authored
When the gctrace GODEBUG option is enabled, it will now report three heap sizes: the heap size at the beginning of the GC cycle, the heap size at the end of the GC cycle before sweeping, and marked heap size, which is the amount of heap that will be retained until the next GC cycle. Change-Id: Ie13f8a6d5c609bc9cc47c7555960ab55b37b5f1c Reviewed-on: https://go-review.googlesource.com/8430Reviewed-by: Rick Hudson <rlh@golang.org>
-
Austin Clements authored
In the STW collector, next_gc was both the heap size to trigger GC at as well as the goal heap size. Early in the concurrent collector's development, next_gc was the goal heap size, but was also used as the heap size to trigger GC at. This meant we always overshot the goal because of allocation during concurrent GC. Currently, next_gc is still the goal heap size, but we trigger concurrent GC at 7/8*GOGC heap growth. This complicates shouldtriggergc, but was necessary because of the incremental maintenance of next_gc. Now we simply compute next_gc for the next cycle during mark termination. Hence, it's now easy to take the simpler route and redefine next_gc as the heap size at which the next GC triggers. We can directly compute this with the 7/8 backoff during mark termination and shouldtriggergc can simply test if the live heap size has grown over the next_gc trigger. This will also simplify later changes once we start setting next_gc in more sophisticated ways. Change-Id: I872be4ae06b4f7a0d7f7967360a054bd36b90eea Reviewed-on: https://go-review.googlesource.com/8420Reviewed-by: Russ Cox <rsc@golang.org>
-
Austin Clements authored
Currently there are two main consumers of memstats.heap_alloc: updatememstats (aka ReadMemStats) and shouldtriggergc. updatememstats recomputes heap_alloc from the ground up, so we don't need to keep heap_alloc up to date for it. shouldtriggergc wants to know how many bytes were marked by the previous GC plus how many bytes have been allocated since then, but this *isn't* what heap_alloc tracks. heap_alloc also includes objects that are not marked and haven't yet been swept. Introduce a new memstat called heap_live that actually tracks what shouldtriggergc wants to know and stop keeping heap_alloc up to date. Unlike heap_alloc, heap_live follows a simple sawtooth that drops during each mark termination and increases monotonically between GCs. heap_alloc, on the other hand, has much more complicated behavior: it may drop during sweep termination, slowly decreases from background sweeping between GCs, is roughly unaffected by allocation as long as there are unswept spans (because we sweep and allocate at the same rate), and may go up after background sweeping is done depending on the GC trigger. heap_live simplifies computing next_gc and using it to figure out when to trigger garbage collection. Currently, we guess next_gc at the end of a cycle and update it as we sweep and get a better idea of how much heap was marked. Now, since we're directly tracking how much heap is marked, we can directly compute next_gc. This also corrects bugs that could cause us to trigger GC early. Currently, in any case where sweep termination actually finds spans to sweep, heap_alloc is an overestimation of live heap, so we'll trigger GC too early. heap_live, on the other hand, is unaffected by sweeping. Change-Id: I1f96807b6ed60d4156e8173a8e68745ffc742388 Reviewed-on: https://go-review.googlesource.com/8389Reviewed-by: Russ Cox <rsc@golang.org>
-
Austin Clements authored
This tracks the number of heap bytes marked by a GC cycle. We'll use this information to precisely trigger the next GC cycle. Currently this aggregates the work counter in gcWork and dispose atomically aggregates this into a global work counter. dispose happens relatively infrequently, so the contention on the global counter should be low. If this turns out to be an issue, we can reduce the number of disposes, and if it's still a problem, we can switch to per-P counters. Change-Id: I1bc377cb2e802ef61c2968602b63146d52e7f5db Reviewed-on: https://go-review.googlesource.com/8388Reviewed-by: Russ Cox <rsc@golang.org>
-
Rob Pike authored
It referred to the wrong architecture. Fixes #10355. Change-Id: I5b9d31c9f04f3106b93f94fa68c848b2518b128e Reviewed-on: https://go-review.googlesource.com/8495Reviewed-by: Dave Cheney <dave@cheney.net>
-
Robert Griesemer authored
This fixes the formerly extremely slow conversion of floating-point constants with large exponents (e.g., "const c = 1e1000000000" could stall the machine). Change-Id: I36e02158e3334d32b18743ec0c259fec77baa74f Reviewed-on: https://go-review.googlesource.com/8466Reviewed-by: Alan Donovan <adonovan@google.com>
-