aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-06-26cmd/compile: improve escape analysis explanationgo1.11beta1David Chase
No code changes, only revised comments in an attempt to make escape analysis slightly less confusing. Updates #23109. Change-Id: I5ee6cea0946ced63f6210ac4484a088bcdd862fb Reviewed-on: https://go-review.googlesource.com/121001 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
2018-06-26ast: refer to "embedded" rather than "anonymous" fields inRowan Marshall
documentation. Fixes #25684. Change-Id: I9d0e47dff2446c27a3df88fb9ccfefef7419470b Reviewed-on: https://go-review.googlesource.com/120556 Reviewed-by: Robert Griesemer <gri@golang.org>
2018-06-26go/types: rename NewInterface2 to NewInterfaceTypeRobert Griesemer
NewInterface2 was introduced with https://go-review.googlesource.com/114317 which fixed #25301. Changed the name to NewInterfaceType to better match Go naming styles, per discussion with @josharian, @iant, et al. Change-Id: Ifa4708a5efd4f708295b33c3d20fdc5812e1b4fc Reviewed-on: https://go-review.googlesource.com/120875 Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-06-26syscall/js: use stable references to JavaScript valuesRichard Musiol
This commit changes how JavaScript values are referenced by Go code. After this change, a JavaScript value is always represented by the same ref, even if passed multiple times from JavaScript to Go. This allows Go's == operator to work as expected on js.Value (strict equality). Additionally, the performance of some operations of the syscall/js package got improved by saving additional roundtrips to JavaScript code. Fixes #25802. Change-Id: Ide6ffe66c6aa1caf5327a2d3ddbe48fe7c180461 Reviewed-on: https://go-review.googlesource.com/120561 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-26syscall: fix typo in RawSyscall6 commentXargin
Change-Id: I589a60459a3b0811da77d46428eca57c741b1184 GitHub-Last-Rev: f9ab775b9d7f869916af6de9abb7c1d5f0005f1b GitHub-Pull-Request: golang/go#26063 Reviewed-on: https://go-review.googlesource.com/120917 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-06-26cmd/cgo: mention character restrictions on #cgo linesIan Lance Taylor
Fixes #26025 Change-Id: I43b3c9019ca8d2844e4d664c2090e506b2171077 Reviewed-on: https://go-review.googlesource.com/120975 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-26time: run genzabbrs.go to update zoneinfo_abbrs_windows.goAlberto Donizetti
The abbreviations list in zoneinfo_abbrs_windows.go was last updated in June 2017, and it's currently outdated. Update it. Change-Id: Ie2bf4268787f5aefe98ee110c2c279451e18fd97 Reviewed-on: https://go-review.googlesource.com/120559 Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
2018-06-26cmd/compile: map delete should clear value alwaysVladimir Kuzmin
Map delete must clear value every time because newly added map optimizations of compound-assignment operators (CL #91557) rely on this behavior of map delete. It slows down map delete operation for non-reference types: name old time/op new time/op delta MapDelete/Int32/100 23.9ns ± 2% 27.8ns ± 4% +16.04% (p=0.000 n=20+20) MapDelete/Int32/1000 21.5ns ± 2% 25.2ns ± 2% +17.06% (p=0.000 n=20+19) MapDelete/Int32/10000 24.2ns ± 6% 27.2ns ± 5% +12.39% (p=0.000 n=19+19) MapDelete/Int64/100 24.2ns ± 4% 27.7ns ± 2% +14.55% (p=0.000 n=20+20) MapDelete/Int64/1000 22.1ns ± 2% 24.8ns ± 2% +12.36% (p=0.000 n=10+20) Fixes #25936 Change-Id: I8499b790cb5bb019938161b3e50f3243d9bbb79c Reviewed-on: https://go-review.googlesource.com/120255 Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com> Reviewed-by: Keith Randall <khr@golang.org>
2018-06-25cmd/dist: increase timeout scale to 3 for windowsAndrew
cmd/go can sometimes take up to 400s on windows due to various issues (disk I/O on builders being the latest cause). Increase the timeout scale to account for this. Change-Id: I1fd4964472a70fb0f33cf6ed73298c034b9c1fb0 Reviewed-on: https://go-review.googlesource.com/120762 Run-TryBot: Andrew Bonventre <andybons@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-06-25cmd/compile: avoid remainder in loopbce when increment=0David Chase
For non-unit increment, loopbce checks to see if the increment evenly divides the difference between (constant) loop start and end. This test panics when the increment is zero. Fix: check for zero, if found, don't optimize the loop. Also added missing copyright notice to loopbce.go. Fixes #26043. Change-Id: I5f460104879cacc94481949234c9ce8c519d6380 Reviewed-on: https://go-review.googlesource.com/120759 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-25cmd/dist: enable more tests on js/wasmBrad Fitzpatrick
Fixes #26050 Change-Id: I21697ac30eb3bc423263cba885bce5fea8f81d94 Reviewed-on: https://go-review.googlesource.com/120796 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Andrew Bonventre <andybons@golang.org>
2018-06-25net/http: document and test behavior of ServeMux with portsGuilherme Goncalves
Beginning on Go 1.9, ServeMux has been dropping the port number from the Host header and in the path pattern. This commit explicitly mentions the change in behavior and adds a simple test case to ensure consistency. Fixes #23351. Change-Id: I0270c8bd96cda92c13ac6437cdf66c2807b3042d Reviewed-on: https://go-review.googlesource.com/120557 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-06-25runtime/trace: reword the trace package summaryJeremy Jackins
Reword the package summary to be a little easier to read. Change-Id: I84a9301a02e228b46165410a429548b3774762d5 GitHub-Last-Rev: 1342c7219f0ed06144d3bca9acd77790707e4b77 GitHub-Pull-Request: golang/go#26052 Reviewed-on: https://go-review.googlesource.com/120795 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-25os: have UserCacheDir return an error on failureAndrew Bonventre
Previously, it would return an empty string if it could not determine the user's cache directory. Return an error instead. Change-Id: I74f00b1ad3858efa3fe2700c599271ebfe5764b6 Reviewed-on: https://go-review.googlesource.com/120757 Run-TryBot: Andrew Bonventre <andybons@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-06-25doc/go1.11: add note about package versioningAndrew Bonventre
It will not be present in go1.11beta1 but will be present in subsequent releases. Change-Id: I298fb682945345bb4a34ec83802fd644f75bdd98 Reviewed-on: https://go-review.googlesource.com/120756 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-25syscall/js: turn constant package vars into functionsRichard Musiol
This is so the values can not be changed and the type is easy to see. Requested on https://go-review.googlesource.com/c/go/+/120561. Change-Id: If2ed48ca3ba8874074687bfb2375d2f5592e8e0d Reviewed-on: https://go-review.googlesource.com/120564 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-25syscall.js: add Value.InstanceOfRichard Musiol
Change-Id: Icf56188fdb2b8ce6789830a35608203fdb9a3df6 Reviewed-on: https://go-review.googlesource.com/120560 Reviewed-by: Paul Jolly <paul@myitcv.org.uk> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-25runtime: respect timeout in semasleep on DarwinNikhil Benesch
semasleep on Darwin was refactored in https://golang.org/cl/118736 to use the pthread_cond_timedwait function from libc. The new code incorrectly assumed that pthread_cond_timedwait took a timeout relative to the current time, when it in fact it takes a timeout specified in absolute time. semasleep thus specified a timeout well in the past, causing it to immediately exceed the timeout and spin hot. This was the source of a large performance hit to CockroachDB (#26019). Adjust semasleep to instead call pthread_cond_timedwait_relative_np, which properly interprets its timeout parameter as relative to the current time. pthread_cond_timedwait_relative_np is non-portable, but using pthread_cond_timedwait correctly would require two calls to gettimeofday: one in the runtime package to convert the relative timeout to absolute time, then another in the pthread library to convert back to a relative offset [0], as the Darwin kernel expects a relative offset. [0]: https://opensource.apple.com/source/libpthread/libpthread-301.30.1/src/pthread_cond.c.auto.html Fix #26019. Change-Id: I1a8c2429f79513b43d2b256365cd9166d235af8b Reviewed-on: https://go-review.googlesource.com/120635 Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-06-24doc/contribute: fix typo and reword a few sentencesAlberto Donizetti
This change fixes a typo in doc/contribute.html (afects -> affects) and rewords a few slightly akward sentences. Change-Id: I6bfbacba0de29464fce134b0fdaf3898a97b8d57 Reviewed-on: https://go-review.googlesource.com/120105 Reviewed-by: Rob Pike <r@golang.org>
2018-06-23cmd/link: never coalesce type descriptors when dynamically linking GoMichael Hudson-Doyle
Add a test by making misc/cgo/testshared/src/trivial.go marginally less trivial. Fixes #25970. Change-Id: I8815d0c56b8850fcdbf9b45f8406f37bd21b6865 Reviewed-on: https://go-review.googlesource.com/120235 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-06-22api: promote next to go1.11Andrew Bonventre
Change-Id: Ib8fa0a12363993033201ff707c315f4030811f89 Reviewed-on: https://go-review.googlesource.com/120595 Run-TryBot: Andrew Bonventre <andybons@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-22cmd/link: support DWARF compression on DarwinHeschi Kreinick
We want to compress DWARF even on macOS, but the native toolchain isn't going to understand it. Add a flag that can be used to disable compression, then add Darwin to the whitelist used during internal linking. Unlike GNU ld, the Darwin linker doesn't have a handy linker flag to do compression. But since we're already doing surgery to put the DWARF in the output executable in the first place, compressing it at the same time isn't unduly difficult. This does have the slightly odd effect of compressing some Apple proprietary debug sections, which absolutely nothing will understand. Leaving them uncompressed didn't make much sense, though, since I doubt they're useful without (say) __debug_info. Updates #11799 Change-Id: Ie00b0215c630a798c59d009a641e2d13f0e7ea01 Reviewed-on: https://go-review.googlesource.com/120155 Run-TryBot: Heschi Kreinick <heschi@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
2018-06-22syscall, internal/poll: fix build on js/wasmBrad Fitzpatrick
Fixes #26014 Change-Id: I9d92414a9181c5d189e3e266666950656bf00406 Reviewed-on: https://go-review.googlesource.com/120576 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Andrew Bonventre <andybons@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-06-22cmd/dist: skip non-std tests on js/wasmBrad Fitzpatrick
After the std tests, most of the rest of the tests aren't applicable to js/wasm. (anything with -cpu=>1, cgo, etc) Skip them all for now. We can incrementally re-enable them over time as the js/wasm port is fleshed out. But let's get the builder column black again so we can enable trybots and keep it black. Updates #26014 Updates #26015 Updates #18892 Change-Id: I8992ed3888f598fa42273ce8646a32d62ce45b1d Reviewed-on: https://go-review.googlesource.com/120575 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Andrew Bonventre <andybons@golang.org>
2018-06-22cmd/compile: fix compile failure for lazily resolved shadowed typesMatthew Dempsky
If expanding an inline function body required lazily expanding a package-scoped type whose identifier was shadowed within the function body, the lazy expansion would instead overwrite the local symbol definition instead of the package-scoped symbol. This was due to importsym using s.Def instead of s.PkgDef. Unfortunately, this is yet another consequence of the current awkward scope handling code. Passes toolstash-check. Fixes #25984. Change-Id: Ia7033e1749a883e6e979c854d4b12b0b28083dd8 Reviewed-on: https://go-review.googlesource.com/120456 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Robert Griesemer <gri@golang.org>
2018-06-22cmd/compile: convert uint32 to int32 in ARM constant folding rulesCherry Zhang
MOVWconst's AuxInt is Int32. SSA check complains if the AuxInt does not fit in int32. Convert uint32 to int32 to make it happy. The generated code is unchanged. MOVW only cares low 32 bits. Passes "toolstash -cmp" std cmd for ARM. Fixes #25993. Change-Id: I2b6532c9c285ea6d89652505fb7c553f85a98864 Reviewed-on: https://go-review.googlesource.com/120335 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
2018-06-22doc/go1.11: clarify GOOS/GOARCH pair of WebAssembly portDmitri Shuralyov
It's more common to specify GOOS/GOARCH values in that order, rather than the inverse. Fix the order. Updates #18892. Change-Id: I8551508599e019f6617dc007397b562c9926418d Reviewed-on: https://go-review.googlesource.com/120057 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-22sync: fix deficiency in RWMutex race annotationsDmitry Vyukov
Remove unnecessary race.Release annotation from Unlock. For RWMutex we want to establish the following happens-before (HB) edges: 1. Between Unlock and the subsequent Lock. 2. Between Unlock and the subsequent RLock. 3. Between batch of RUnlock's and the subsequent Lock. 1 is provided by Release(&rw.readerSem) in Unlock and Acquire(&rw.readerSem) in Lock. 2 is provided by Release(&rw.readerSem) in Unlock and Acquire(&rw.readerSem) in RLock. 3 is provided by ReleaseMerge(&rw.writerSem) in RUnlock in Acquire(&rw.writerSem) in Lock, since we want to establish HB between a batch of RUnlock's this uses ReleaseMerge instead of Release. Release(&rw.writerSem) in Unlock is simply not needed. FWIW this is also how C++ tsan handles mutexes, not a proof but at least something. Making 2 implementations consistent also simplifies any kind of reasoning against both of them. Since this only affects performance, a reasonable test is not possible. Everything should just continue to work but slightly faster. Credit for discovering this goes to Jamie Liu. Change-Id: Ice37d29ecb7a5faed3f7781c38dd32c7469b2735 Reviewed-on: https://go-review.googlesource.com/120495 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-06-22os, net: avoid races between dup, set-blocking-mode, and closingIan Lance Taylor
Fixes #24481 Fixes #24483 Change-Id: Id7da498425a440c91582aa5480c253ae7a9c932c Reviewed-on: https://go-review.googlesource.com/119955 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-22net/http: fix test assertionThomas Bruyelle
Logf doesn't make the test fail, so the test was always OK. Change-Id: I7c10ee74ff7e5d28cbd3a35e185093cb9f349470 Reviewed-on: https://go-review.googlesource.com/120496 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-22runtime: fix comments style typoZhou Peng
Code comments should have a space between comments characters and actual words. Change-Id: I6274baf1fc09b37a32ec6c69ddbb8edca9eb5469 Reviewed-on: https://go-review.googlesource.com/120475 Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-06-22text/template/parse: undo breaking API changesDaniel Theophanes
golang.org/cl/84480 altered the API for the parse package for clarity and consistency. However, the changes also broke the API for consumers of the package. This CL reverts the API to the previous spelling, adding only a single new exported symbol. Fixes #25968 Change-Id: Ieb81054b61eeac7df3bc3864ef446df43c26b80f Reviewed-on: https://go-review.googlesource.com/120355 Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Rob Pike <r@golang.org> Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-06-22runtime: avoid recursive panic on bad lock countAustin Clements
Currently, if lock or unlock calls throw because the g.m.lock count is corrupted, we're unlikely to get a stack trace because startpanic_m will itself attempt to acquire a lock, causing a recursive failure. Avoid this by forcing the g.m.locks count to a sane value if it's currently bad. This might be enough to get a stack trace from #25128. Change-Id: I52d7bd4717ffae94a821f4249585f3eb6cd5aa41 Reviewed-on: https://go-review.googlesource.com/120416 Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-06-21cmd/compile: fix recursive inimport handlingMatthew Dempsky
expandDecl can be called recursively, so it's not an appropriate place to clean inimport. Instead, move this up to resolve, along with an appropriate recursion check. Passes toolstash-check. Change-Id: I138d37b057dcc6525c780b4b3fbaa5e97f99655b Reviewed-on: https://go-review.googlesource.com/120455 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
2018-06-21flag: add a Value exampleTerin Stock
Change-Id: I579cc9f4f8e5be5fd6447a99614797ab7bc53611 Reviewed-on: https://go-review.googlesource.com/120175 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-06-21misc/wasm: fix permissions on wasm_exec.jsPaul Jolly
Currently wasm_exec.js is executable (0755) yet has no interpreter. Indeed wasm_exec.js is only ever used as an argument to Node or loaded via a <script> tag in a browser-loaded HTML file. Hence the execute mode bits are superfluous and simply serve to clutter your PATH if $GOROOT/misc/wasm is on your PATH (as is required if you want to run go test syscall/js). Change-Id: I279e2457094f8a12b9bf380ad7f1a9f47b22fc96 Reviewed-on: https://go-review.googlesource.com/120435 Run-TryBot: Paul Jolly <paul@myitcv.org.uk> Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-06-21internal/poll: use more fine-grained locking in SpliceAndrei Tudor Călin
The previous code acquired a read lock on src and a write lock on dst for the entire duration of Splice. This resulted in deadlock, in a situation akin to the following: Splice is blocking, waiting to read from src. The caller tries to close dst from another goroutine, but Close on dst blocks in runtime.semacquire, because Splice is still holding a write lock on it, and the Close didn't unblock any I/O. The caller cannot unblock the read side of Splice through other means, because they are stuck waiting in dst.Close(). Use more fine-grained locking instead: acquire the read lock on src just before trying to splice from the source socket to the pipe, and acquire the write lock on dst just before trying to splice from the pipe to the destination socket. Fixes #25985 Change-Id: I264c91c7a69bb6c5e28610e2bd801244804cf86d Reviewed-on: https://go-review.googlesource.com/120317 Run-TryBot: Aram Hăvărneanu <aram@mgk.ro> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-06-21cmd/go: re-enable a couple of tests of gccgoIan Lance Taylor
Updates #22472 Change-Id: I526d131f2ef8e0200f7a5634c75b31e0ee083f93 Reviewed-on: https://go-review.googlesource.com/120375 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-21cmd/compile: improve atomic add intrinsics with ARMv8.1 new instructionWei Xiao
ARMv8.1 has added new instruction (LDADDAL) for atomic memory operations. This CL improves existing atomic add intrinsics with the new instruction. Since the new instruction is only guaranteed to be present after ARMv8.1, we guard its usage with a conditional on CPU feature. Performance result on ARMv8.1 machine: name old time/op new time/op delta Xadd-224 1.05µs ± 6% 0.02µs ± 4% -98.06% (p=0.000 n=10+8) Xadd64-224 1.05µs ± 3% 0.02µs ±13% -98.10% (p=0.000 n=9+10) [Geo mean] 1.05µs 0.02µs -98.08% Performance result on ARMv8.0 machine: name old time/op new time/op delta Xadd-46 538ns ± 1% 541ns ± 1% +0.62% (p=0.000 n=9+9) Xadd64-46 505ns ± 1% 508ns ± 0% +0.48% (p=0.003 n=9+8) [Geo mean] 521ns 524ns +0.55% Change-Id: If4b5d8d0e2d6f84fe1492a4f5de0789910ad0ee9 Reviewed-on: https://go-review.googlesource.com/81877 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
2018-06-21net/http: avoid deferred unlock in ServeMux.shouldRedirectEmmanuel T Odeke
CL 96575 introduced concurrency protection for ServeMux.shouldRedirect with a read lock and deferred unlock. However, the change produced a noticeable regression. Instead add the suffix "RLocked" to the function name to declare that we should hold the read lock as a pre-requisite before calling it, hence avoiding the defer altogether. Benchmarks: name old time/op new time/op delta ServeMux-8 63.3µs ± 0% 54.6µs ± 0% -13.74% (p=0.000 n=9+9) ServeMux_SkipServe-8 41.4µs ± 2% 32.7µs ± 1% -21.05% (p=0.000 n=10+10) name old alloc/op new alloc/op delta ServeMux-8 17.3kB ± 0% 17.3kB ± 0% ~ (all equal) ServeMux_SkipServe-8 0.00B 0.00B ~ (all equal) name old allocs/op new allocs/op delta ServeMux-8 360 ± 0% 360 ± 0% ~ (all equal) ServeMux_SkipServe-8 0.00 0.00 ~ (all equal) Updates #25383 Updates #25482 Change-Id: I2ffa4eafe165faa961ce23bd29b5653a89facbc2 Reviewed-on: https://go-review.googlesource.com/113996 Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-21syscall: check faccessat flags parameter on LinuxTobias Klauser
Port CL 119495 from golang.org/x/sys/unix to the syscall package. Currently Linux faccessat(2) syscall implementation doesn't support the flags parameter. As per the discussion in #25845, permit the same flags as glibc [1]. [1] https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/faccessat.c;h=ea42b2303ff4b2d2d6548ea04376fb265f773436;hb=HEAD Updates #25845 Change-Id: I132b33275a9cc72b3a97acea5482806c7f47d7f7 Reviewed-on: https://go-review.googlesource.com/120015 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-06-20mime: change *.js mime type to application/javascript, not x-javascriptBrad Fitzpatrick
We delayed doing this for 4 years for fear that it might break something, but it was standardized (RFC 4329) 12 years ago, and the default in Debian and other places is correct: $ cat /etc/mime.types | grep js$ application/javascript js Time for us to change too. I doubt there will be problems, but we'll see during the Go 1.11 beta. Fixes #7498 Change-Id: Iba0bf8a6e707a64dd63317e1c0d6dd9a18634527 Reviewed-on: https://go-review.googlesource.com/120058 Reviewed-by: Andrew Bonventre <andybons@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-06-20cmd/go/internal: add a note about GOCACHE=offAgniva De Sarker
Fixes #25928 Change-Id: I1401ecc54af26eeeee648bb8eeb5d2d3566fa60c Reviewed-on: https://go-review.googlesource.com/119695 Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-06-20doc: fix spelling of G SuiteStephen Lewis
'G Suite' seems to be the preferred spelling according to https://gsuite.google.com/ Change-Id: Ica60938cf942594157bba84ef205e1cdcb8c1b08 Reviewed-on: https://go-review.googlesource.com/120132 Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
2018-06-20doc: change git clone urlWayne Ashley Berry
The git clone url should be a Gerrit host and not Github, otherwise the codereview command will fail. git-codereview: failed to load Gerrit origin: git origin must be a Gerrit host, not GitHub: https://github.com/golang/go Change-Id: I62f62c86ee6dce0720a844fc56340135dfae8405 Reviewed-on: https://go-review.googlesource.com/117178 Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-20crypto/tls: consolidate signatures handling in SKE and CVPeter Wu
ServerKeyExchange and CertificateVerify can share the same logic for picking a signature algorithm (based on the certificate public key and advertised algorithms), selecting a hash algorithm (depending on TLS version) and signature verification. Refactor the code to achieve code reuse, have common error checking (especially for intersecting supported signature algorithms) and to prepare for addition of new signature algorithms. Code should be easier to read since version-dependent logic is concentrated at one place. Change-Id: I978dec3815d28e33c3cfbc85f0c704b1894c25a3 Reviewed-on: https://go-review.googlesource.com/79735 Reviewed-by: Filippo Valsorda <filippo@golang.org> Run-TryBot: Filippo Valsorda <filippo@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-06-20internal/poll: better panic message for lock overflowIan Lance Taylor
Instead of "inconsistent poll.fdMutex", panic with "too many concurrent operations on a single file or socket (max 1048575)". Fixes #25558 Change-Id: I5cad3633aa539fb6f48cca236c6656c86acfb663 Reviewed-on: https://go-review.googlesource.com/119956 Run-TryBot: Ian Lance Taylor <iant@golang.org> Run-TryBot: Dmitry Vyukov <dvyukov@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
2018-06-20make.bash: don't pass GOOS and GOARCH to cmd/go when finding GOROOT_BOOTSTRAPLE Manh Cuong
Fixes #25962 Change-Id: I10d41713f6aef100d7b2c8c976f22d1c8ac376d5 Reviewed-on: https://go-review.googlesource.com/119937 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-20crypto/rand: make documentation consistent between package comment and ReaderBrad Fitzpatrick
Updates #25959 Change-Id: I9ae64b216ab5807718db0db98b32de1dc5fa4bec Reviewed-on: https://go-review.googlesource.com/119875 Reviewed-by: Rob Pike <r@golang.org> Reviewed-by: Filippo Valsorda <filippo@golang.org>
2018-06-20cmd/go: remove inadvertent comment for vgoAgniva De Sarker
This change was introduced while adding the dark copy of golang.org/x/vgo in CL 118095. While the comment made sense in a separate vgo repo, when it is merged with the main repo, this should not remain. Found while running mkalldocs.sh in CL 119695. Change-Id: I112a4629c415032bd29e165ac1c27a0f3cabeede Reviewed-on: https://go-review.googlesource.com/119938 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>