- 24 Feb, 2015 8 commits
-
-
Adam Langley authored
RFC 6125 now specifies that wildcards are only allowed for the leftmost label in a pattern: https://tools.ietf.org/html/rfc6125#section-6.4.3. This change updates Go to match the behaviour of major browsers in this respect. Fixes #9834. Change-Id: I37c10a35177133624568f2e0cf2767533926b04a Reviewed-on: https://go-review.googlesource.com/5691Reviewed-by: Andrew Gerrand <adg@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Adam Langley authored
Some servers which misunderstood the point of the CertificateRequest message send huge reply records. These records are large enough that they were considered “insane” by the TLS code and rejected. This change removes the sanity test for record lengths. Although the maxCiphertext test still remains, just above, which (roughly) enforces the 16KB protocol limit on record sizes: https://tools.ietf.org/html/rfc5246#section-6.2.1 Fixes #8928. Change-Id: Idf89a2561b1947325b7ddc2613dc2da638d7d1c9 Reviewed-on: https://go-review.googlesource.com/5690Reviewed-by: Andrew Gerrand <adg@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Adam Langley authored
There was a missing continue that caused certificates with critical certificate-policy extensions to be rejected. Additionally, that code structure in general was prone to exactly that bug so I changed it around to hopefully be more robust in the future. Fixes #9964. Change-Id: I58fc6ef3a84c1bd292a35b8b700f44ef312ec1c1 Reviewed-on: https://go-review.googlesource.com/5670Reviewed-by: Andrew Gerrand <adg@golang.org>
-
Robert Griesemer authored
Change-Id: I7bf7154e2d8d779fdf7f1d2bb561a06ad174f3b0 Reviewed-on: https://go-review.googlesource.com/4883Reviewed-by: Alan Donovan <adonovan@google.com>
-
David Crawshaw authored
iOS devices can only run tests serially. Change-Id: I3f4e7abddf812a186895d9d5138999c8bded698f Reviewed-on: https://go-review.googlesource.com/5751Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
-
Dmitry Vyukov authored
Currently sync.Mutex is fully cooperative. That is, once contention is discovered, the goroutine calls into scheduler. This is suboptimal as the resource can become free soon after (especially if critical sections are short). Server software usually runs at ~~50% CPU utilization, that is, switching to other goroutines is not necessary profitable. This change adds limited active spinning to sync.Mutex if: 1. running on a multicore machine and 2. GOMAXPROCS>1 and 3. there is at least one other running P and 4. local runq is empty. As opposed to runtime mutex we don't do passive spinning, because there can be work on global runq on on other Ps. benchmark old ns/op new ns/op delta BenchmarkMutexNoSpin 1271 1272 +0.08% BenchmarkMutexNoSpin-2 702 683 -2.71% BenchmarkMutexNoSpin-4 377 372 -1.33% BenchmarkMutexNoSpin-8 197 190 -3.55% BenchmarkMutexNoSpin-16 131 122 -6.87% BenchmarkMutexNoSpin-32 170 164 -3.53% BenchmarkMutexSpin 4724 4728 +0.08% BenchmarkMutexSpin-2 2501 2491 -0.40% BenchmarkMutexSpin-4 1330 1325 -0.38% BenchmarkMutexSpin-8 684 684 +0.00% BenchmarkMutexSpin-16 414 372 -10.14% BenchmarkMutexSpin-32 559 469 -16.10% BenchmarkMutex 19.1 19.1 +0.00% BenchmarkMutex-2 81.6 54.3 -33.46% BenchmarkMutex-4 143 100 -30.07% BenchmarkMutex-8 154 156 +1.30% BenchmarkMutex-16 140 159 +13.57% BenchmarkMutex-32 141 163 +15.60% BenchmarkMutexSlack 33.3 31.2 -6.31% BenchmarkMutexSlack-2 122 97.7 -19.92% BenchmarkMutexSlack-4 168 158 -5.95% BenchmarkMutexSlack-8 152 158 +3.95% BenchmarkMutexSlack-16 140 159 +13.57% BenchmarkMutexSlack-32 146 162 +10.96% BenchmarkMutexWork 154 154 +0.00% BenchmarkMutexWork-2 89.2 89.9 +0.78% BenchmarkMutexWork-4 139 86.1 -38.06% BenchmarkMutexWork-8 177 162 -8.47% BenchmarkMutexWork-16 170 173 +1.76% BenchmarkMutexWork-32 176 176 +0.00% BenchmarkMutexWorkSlack 160 160 +0.00% BenchmarkMutexWorkSlack-2 103 99.1 -3.79% BenchmarkMutexWorkSlack-4 155 148 -4.52% BenchmarkMutexWorkSlack-8 176 170 -3.41% BenchmarkMutexWorkSlack-16 170 173 +1.76% BenchmarkMutexWorkSlack-32 175 176 +0.57% "No work" benchmarks are not very interesting (BenchmarkMutex and BenchmarkMutexSlack), as they are absolutely not realistic. Fixes #8889 Change-Id: I6f14f42af1fa48f73a776fdd11f0af6dd2bb428b Reviewed-on: https://go-review.googlesource.com/5430Reviewed-by: Rick Hudson <rlh@golang.org> Run-TryBot: Dmitry Vyukov <dvyukov@google.com>
-
Mikio Hara authored
The change 2096 removed unwanted allocations and a few noises in test using AllocsPerRun. Now it's safe to enable this canary test on netpoll hotpaths. Change-Id: Icdbee813d81c1410a48ea9960d46447042976905 Reviewed-on: https://go-review.googlesource.com/5713Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
-
Adam Langley authored
This check is expensive and adversely impacts startup times for some servers with several, large RSA keys. It was nice to have, but it's not really going to stop a targetted attack and was never designed to – hopefully people's private keys aren't attacker controlled! Overall I think the feeling is that people would rather have the CPU time back. Fixes #6626. Change-Id: I0143a58c9f22381116d4ca2a3bbba0d28575f3e5 Reviewed-on: https://go-review.googlesource.com/5641Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Adam Langley <agl@golang.org>
-
- 23 Feb, 2015 30 commits
-
-
Charlie Dorian authored
Fixes #9919 Change-Id: Ib443c762f727d4986ca7f8a404362f92b0e91aff Reviewed-on: https://go-review.googlesource.com/5553Reviewed-by: Minux Ma <minux@golang.org>
-
Russ Cox authored
This change deletes the C implementations of the Go compiler and assembler from the master branch. The Go implementations are a bit slower right now, due mainly to garbage generated by taking addresses of stack variables all over the place (it was C code, after all). That will be cleaned up (mechanically) over the next week or so, and things will get faster. Change-Id: I66b2b3477aec8835f9960d0798f5752dcd98d08f
-
Austin Clements authored
The slow path of heapBitsForObjects somewhat subtly assumes that the pointer will not point to the first word of the object and will round the pointer wrong if this assumption is violated. This assumption is safe because the fast path should always take care of this case, but there's no benefit to making this assumption, it makes the code more difficult to experiment with than necessary, and it's trivial to eliminate. Change-Id: Iedd336f7d529a27d3abeb83e77dfb32a285ea73a Reviewed-on: https://go-review.googlesource.com/5636Reviewed-by: Russ Cox <rsc@golang.org>
-
Russ Cox authored
May fix windows build. Change-Id: Ic4e32a4478caf758da6b02bc9126ddacb0fc07e0 Reviewed-on: https://go-review.googlesource.com/5650 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Russ Cox authored
Ran rsc.io/grind rev 6f0e601 on the source files. The cleanups move var declarations as close to the use as possible, splitting disjoint uses of the var into separate variables. They also remove dead code (especially in func sudoaddable), which helps with the var moving. There's more cleanup to come, but this alone cuts the time spent compiling html/template on my 2013 MacBook Pro from 3.1 seconds to 2.3 seconds. Change-Id: I4de499f47b1dd47a560c310bbcde6b08d425cfd6 Reviewed-on: https://go-review.googlesource.com/5637Reviewed-by: Rob Pike <r@golang.org>
-
Robert Griesemer authored
Fixes #9939. Change-Id: I9d60722b648fbc00650115da539a7466c6c86552 Reviewed-on: https://go-review.googlesource.com/5640Reviewed-by: Alan Donovan <adonovan@google.com>
-
Shenghou Ma authored
It's using debug mode of pprof.writeBlock, so the output actually goes through text/tabwriter. It is possible that tabwriter expands each tab into multiple tabs in certain cases. For example, this output has been observed on the new arm64 port: 10073805 1 @ 0x1088ec 0xd1b8c 0xd0628 0xb68c0 0x867f4 # 0x1088ec sync.(*Cond).Wait+0xfc /home/minux/go.git/src/sync/cond.go:63 # 0xd1b8c runtime/pprof_test.blockCond+0x22c /home/minux/go.git/src/runtime/pprof/pprof_test.go:454 # 0xd0628 runtime/pprof_test.TestBlockProfile+0x1b8 /home/minux/go.git/src/runtime/pprof/pprof_test.go:359 # 0xb68c0 testing.tRunner+0x140 /home/minux/go.git/src/testing/testing.go:447 10069965 1 @ 0x14008 0xd1390 0xd0628 0xb68c0 0x867f4 # 0x14008 runtime.chansend1+0x48 /home/minux/go.git/src/runtime/chan.go:76 # 0xd1390 runtime/pprof_test.blockChanSend+0x100 /home/minux/go.git/src/runtime/pprof/pprof_test.go:396 # 0xd0628 runtime/pprof_test.TestBlockProfile+0x1b8 /home/minux/go.git/src/runtime/pprof/pprof_test.go:359 # 0xb68c0 testing.tRunner+0x140 /home/minux/go.git/src/testing/testing.go:447 10069706 1 @ 0x108e0c 0xd193c 0xd0628 0xb68c0 0x867f4 # 0x108e0c sync.(*Mutex).Lock+0x19c /home/minux/go.git/src/sync/mutex.go:67 # 0xd193c runtime/pprof_test.blockMutex+0xbc /home/minux/go.git/src/runtime/pprof/pprof_test.go:441 # 0xd0628 runtime/pprof_test.TestBlockProfile+0x1b8 /home/minux/go.git/src/runtime/pprof/pprof_test.go:359 # 0xb68c0 testing.tRunner+0x140 /home/minux/go.git/src/testing/testing.go:447 Change-Id: I3bef778c5fe01a894cfdc526fdc5fecb873b8ade Signed-off-by: Shenghou Ma <minux@golang.org> Reviewed-on: https://go-review.googlesource.com/5554Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
-
Charles Dorian authored
Old 45.3 ns/op, new 19.9 ns/op. Change-Id: If2a201981dcc259846631ecbc694c401e0a80287 Reviewed-on: https://go-review.googlesource.com/5260Reviewed-by: Russ Cox <rsc@golang.org>
-
Russ Cox authored
Change-Id: I58e00a39cf63df07813d21453f91e68eef6a413c Reviewed-on: https://go-review.googlesource.com/5635Reviewed-by: Rob Pike <r@golang.org>
-
Russ Cox authored
Also stop building objwriter, which was only used by them. Change-Id: Ia2353abd9426026a81a263cb46a72dd39c360ce4 Reviewed-on: https://go-review.googlesource.com/5634Reviewed-by: Rob Pike <r@golang.org>
-
Russ Cox authored
Convert using rsc.io/c2go rev a97ff47. Notable changes: - %% in format string now correctly preserved - reintroduce "signal handler" to hide internal faults after errors have been printed Change-Id: Ic5a94f1c3a8015a9054e21c8969b52d964a36c45 Reviewed-on: https://go-review.googlesource.com/5633Reviewed-by: Rob Pike <r@golang.org>
-
Russ Cox authored
These don't work with the new compiler, because the new compiler doesn't have the custom syntax errors that I built for the old compiler. It will, just not yet. (Issue #9968.) Change-Id: I658f7dab2c7f855340a501f9ae4479c097b28cd3 Reviewed-on: https://go-review.googlesource.com/5632Reviewed-by: Rob Pike <r@golang.org>
-
Rob Pike authored
Change-Id: I40839c2d1c0c105a5ba9aadcb55a13693bf4afa6 Reviewed-on: https://go-review.googlesource.com/5592Reviewed-by: Russ Cox <rsc@golang.org>
-
Russ Cox authored
Change-Id: I3417efc203f555a0a6101701f387ead84f9a08d1 Reviewed-on: https://go-review.googlesource.com/5577Reviewed-by: Rob Pike <r@golang.org>
-
Russ Cox authored
To pick up darwin/arm fix and hopefully fix build. Change-Id: I06996d0b13b777e476f65405aee031482fc76439
-
Robert Griesemer authored
Fixes $9938. Change-Id: Ie8680a875225748abd660fb26b4c25546e7b92d3 Reviewed-on: https://go-review.googlesource.com/5620Reviewed-by: Alan Donovan <adonovan@google.com>
-
Rick Hudson authored
The routine mallocgc retrieves objects from freelists. Prefetch the object that will be returned in the next call to mallocgc. Experiments indicate that this produces a 1% improvement when using prefetchnta and less when using prefetcht0, prefetcht1, or prefetcht2. Benchmark numbers indicate a 1% improvement over no prefetch, much less over prefetcht0, prefetcht1, and prefetcht2. These numbers were for the garbage benchmark with MAXPROCS=4 no prefetch >> 5.96 / 5.77 / 5.89 prefetcht0(uintptr(v.ptr().next)) >> 5.88 / 6.17 / 5.84 prefetcht1(uintptr(v.ptr().next)) >> 5.88 / 5.89 / 5.91 prefetcht2(uintptr(v.ptr().next)) >> 5.87 / 6.47 / 5.92 prefetchnta(uintptr(v.ptr().next)) >> 5.72 / 5.84 / 5.85 Change-Id: I54e07172081cccb097d5b5ce8789d74daa055ed9 Reviewed-on: https://go-review.googlesource.com/5350Reviewed-by: Dmitry Vyukov <dvyukov@google.com> Reviewed-by: Austin Clements <austin@google.com>
-
Robert Griesemer authored
Fixes #9948. Change-Id: I7b354fccd5e933eeeb2253a66acec050ebff6e41 Reviewed-on: https://go-review.googlesource.com/5611Reviewed-by: Alan Donovan <adonovan@google.com>
-
Robert Griesemer authored
Change-Id: Ida847365223ef09b4a3846e240b4bb6919cb0fe9 Reviewed-on: https://go-review.googlesource.com/5610Reviewed-by: Alan Donovan <adonovan@google.com>
-
Alexandre Cesaro authored
The code concerning quoted-printable encoding (RFC 2045) and its variant for MIME headers (RFC 2047) is currently spread in mime/multipart and net/mail. It is also not exported. This commit is the second step to fix that issue. It moves the RFC 2047 encoding and decoding functions from net/mail to internal/mime. The exported API is unchanged. Updates #4943 Change-Id: I5f58aa58e74bbe4ec91b2e9b8c81921338053b00 Reviewed-on: https://go-review.googlesource.com/2101Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
David Crawshaw authored
We currently have only one supported darwin/arm device, a locked iOS machine. It requires cgo binaries. Change-Id: If36a152e6a743e4a58ea3470e62cccb742630a5d Reviewed-on: https://go-review.googlesource.com/5443Reviewed-by: Russ Cox <rsc@golang.org>
-
Russ Cox authored
Should fix nacl build on dev.cc. Change-Id: I166a03b5f6903bd8bbce65af4e5f2899807bb6cc Reviewed-on: https://go-review.googlesource.com/5575Reviewed-by: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org>
-
Russ Cox authored
Makes them compatible with the new asm. Applied mechanically from vet diagnostics. Manual edits: the names for arguments in time·now(SB) in runtime/sys_*_arm.s. Change-Id: Ib295390d9509d306afc67714e3f50dc832256625 Reviewed-on: https://go-review.googlesource.com/5576 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Russ Cox authored
Converted from rsc.io/c2go rev a9bc7f2. Adds profiling support. Change-Id: Ie04f86b71e0713c7294416c77d349e0d93798403 Reviewed-on: https://go-review.googlesource.com/5574Reviewed-by: Rob Pike <r@golang.org>
-
Russ Cox authored
Change-Id: I10f7950d173b302151f2a31daebce297b4306ebe
-
Russ Cox authored
This was supposed to be in the previous CL, but I forgot to 'git rw' it down. Change-Id: Ia5e14ca2c7640f08abbbed1a777a6cf04d71d0e7 Reviewed-on: https://go-review.googlesource.com/5570Reviewed-by: Russ Cox <rsc@golang.org>
-
Russ Cox authored
Change-Id: I259e88f019b6818c57caaa1ec236b7c2e2ae1382 Reviewed-on: https://go-review.googlesource.com/5551Reviewed-by: Rob Pike <r@golang.org>
-
Russ Cox authored
The wildcard 'std' is defined in documentation to be all the packages in the Go standard library. It has also historically matched commands in the main repo, but as we implement core commands in Go, that becomes problematic. We need a wildcard that means just the library, and since 'std' is already documented to have that definition, make it so. Add a new wildcard 'cmd' for the commands in the main repo ($GOROOT). Commands that want both can say 'std cmd' (or 'cmd std') to get the effect of the old 'std'. Update make.bash etc to say both std and cmd most of the time. Exception: in race.bash, do not install race-enabled versions of the actual commands. This avoids trying to write binaries while using them, but more importantly it avoids enabling the race detector and its associated memory overhead for the already memory-hungry compilers. Change-Id: I26bb06cb13b636dfbe71a015ee0babeb270a0275 Reviewed-on: https://go-review.googlesource.com/5550 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
David du Colombier authored
cpp: src/cmd/ld/lib.h:349 No newline at end of file Change-Id: Id21851963f7778364ba9337da3bacd312443f51f Reviewed-on: https://go-review.googlesource.com/5520Reviewed-by: Minux Ma <minux@golang.org>
-
Matthew Dempsky authored
Change-Id: I239ae86cfebfece607dce39a96d9123cbacbee7d Reviewed-on: https://go-review.googlesource.com/5562 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Minux Ma <minux@golang.org>
-
- 22 Feb, 2015 2 commits
-
-
Aaron Jacobs authored
Change-Id: I05cdf357249166a45105703e9317793aa2088844 Reviewed-on: https://go-review.googlesource.com/5560Reviewed-by: Andrew Gerrand <adg@golang.org>
-
Jan Kratochvil authored
With a trivial Golang-built program loaded in gdb-7.8.90.20150214-7.fc23.x86_64 I get this error: (gdb) source ./src/runtime/runtime-gdb.py Loading Go Runtime support. Traceback (most recent call last): File "./src/runtime/runtime-gdb.py", line 230, in <module> _rctp_type = gdb.lookup_type("struct reflect.rtype").pointer() gdb.error: No struct type named reflect.rtype. (gdb) q No matter if this struct should or should not be in every Golang-built binary this change should fix that with no disadvantages. Change-Id: I0c490d3c9bbe93c65a2183b41bfbdc0c0f405bd1 Reviewed-on: https://go-review.googlesource.com/5521Reviewed-by: Ian Lance Taylor <iant@golang.org>
-