- 13 Feb, 2019 4 commits
-
-
Ian Lance Taylor authored
Updates #30197 Change-Id: I08b592fbd477d6879eb5d3b7fcbbc8322ea90103 Reviewed-on: https://go-review.googlesource.com/c/162078 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> (cherry picked from commit cf4dc255) Reviewed-on: https://go-review.googlesource.com/c/162197
-
Brad Fitzpatrick authored
Change-Id: I6801676335924414ce50249df2b7bea08886b203 Reviewed-on: https://go-review.googlesource.com/c/162360Reviewed-by: Filippo Valsorda <filippo@golang.org> (cherry picked from commit 48bb6116) Reviewed-on: https://go-review.googlesource.com/c/162497
-
Cherry Zhang authored
In runtime.gopanic, the _panic object p is stack allocated and referenced from gp._panic. With stack objects, p on stack is dead at the point preprintpanics runs. gp._panic points to p, but stack scan doesn't look at gp. Heap scan of gp does look at gp._panic, but it stops and ignores the pointer as it points to the stack. So whatever p points to may be collected and clobbered. We need to scan gp._panic explicitly during stack scan. To test it reliably, we introduce a GODEBUG mode "clobberfree", which clobbers the memory content when the GC frees an object. Fixes #30150. Change-Id: I11128298f03a89f817faa221421a9d332b41dced Reviewed-on: https://go-review.googlesource.com/c/161778 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Austin Clements <austin@google.com> (cherry picked from commit af8f4062) Reviewed-on: https://go-review.googlesource.com/c/162358 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Ian Lance Taylor authored
Updates #30199 Change-Id: Ib4586e3facb8c0985c8882482d94843b648b9d2f Reviewed-on: https://go-review.googlesource.com/c/162257 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> (cherry picked from commit ffd096db) Reviewed-on: https://go-review.googlesource.com/c/162238Reviewed-by: Andrew Bonventre <andybons@golang.org>
-
- 11 Feb, 2019 2 commits
-
-
Andrew Bonventre authored
Change-Id: Iac838b852061a8469e4e201670a589fa2bed9f04 Reviewed-on: https://go-review.googlesource.com/c/161900 Run-TryBot: Andrew Bonventre <andybons@golang.org> Reviewed-by: Filippo Valsorda <filippo@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Bryan C. Mills authored
Fixes #30166 Change-Id: I4704b57ed48197f512cd1b818e1f7d2fffc0d9ce Reviewed-on: https://go-review.googlesource.com/c/161898 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 10 Feb, 2019 1 commit
-
-
Daniel Martí authored
install.html still insisted that GOROOT must be set if a binary install of Go is set up in a custom directory. However, since 1.10, this has been unnecessary as the GOROOT will be found based on the location of the 'go' binary being run. Likewise, install-source.html includes an 'export GOROOT' line in a section that only talks about explicitly setting GOARCH and GOOS, which is optional. We don't want to have users think it is recommended to set GOROOT here either, so remove the unnecessary line. Change-Id: I7dfef09f9a1d003e0253b793d63ea40d5cf1837f Reviewed-on: https://go-review.googlesource.com/c/161758Reviewed-by: Andrew Bonventre <andybons@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 09 Feb, 2019 2 commits
-
-
Ian Lance Taylor authored
runtime/internal/atomic/atomic_mipsx.go enforces 64-bit alignment. Change-Id: Ifdc36e1c0322827711425054d10f1c52425a13fa Reviewed-on: https://go-review.googlesource.com/c/161697 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
alkesh26 authored
Change-Id: I46046cddceff2d44a7b2517db1ebf7acdf5f2b90 GitHub-Last-Rev: 7fb9f26476d2764f07d068ce612bf79b1e7f44b4 GitHub-Pull-Request: golang/go#30144 Reviewed-on: https://go-review.googlesource.com/c/161718Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 08 Feb, 2019 1 commit
-
-
Justin Li authored
When prepared on a DB, prepared statement code in database/sql handles everything to keep the prepared statement alive as it moves across the connection pool. Understanding this is an important part of using this API correctly, but it was only documented indirectly via `(*Tx) Prepare*`. Change-Id: Ic8757e0150d59e675d9f0252f6c15aef2cc2e831 GitHub-Last-Rev: 55dba87458542cb631baac80aeea0c3607d8f421 GitHub-Pull-Request: golang/go#29890 Reviewed-on: https://go-review.googlesource.com/c/159077Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Daniel Theophanes <kardianos@gmail.com>
-
- 07 Feb, 2019 3 commits
-
-
Filippo Valsorda authored
Most of the issues that led to the decision on #30055 were related to incompatibility with or faulty support for RSA-PSS (#29831, #29779, v1.5 signatures). RSA-PSS is required by TLS 1.3, but is also available to be negotiated in TLS 1.2. Altering TLS 1.2 behavior based on GODEBUG=tls13=1 feels surprising, so just disable RSA-PSS entirely in TLS 1.2 until TLS 1.3 is on by default, so breakage happens all at once. Updates #30055 Change-Id: Iee90454a20ded8895e5302e8bcbcd32e4e3031c2 Reviewed-on: https://go-review.googlesource.com/c/160998 Run-TryBot: Filippo Valsorda <filippo@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Adam Langley <agl@golang.org>
-
Filippo Valsorda authored
Updates #30055 Change-Id: If68615c8e9daa4226125dcc6a6866f29f3cfeef1 Reviewed-on: https://go-review.googlesource.com/c/160997 Run-TryBot: Filippo Valsorda <filippo@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Filippo Valsorda authored
If a certificate somehow has an AKID, it should still chain successfully to a parent without a SKID, even if the latter is invalid according to RFC 5280, because only the Subject is authoritative. This reverts to the behavior before #29233 was fixed in 77013065. Roots with the right subject will still be shadowed by roots with the right SKID and the wrong subject, but that's been the case for a long time, and is left for a more complete fix in Go 1.13. Updates #30079 Change-Id: If8ab0179aca86cb74caa926d1ef93fb5e416b4bb Reviewed-on: https://go-review.googlesource.com/c/161097Reviewed-by: Adam Langley <agl@golang.org>
-
- 06 Feb, 2019 1 commit
-
-
Yasser Abdolmaleki authored
Change-Id: Idee94a1d93555d53442098dd7479982e3f5afbba Reviewed-on: https://go-review.googlesource.com/c/161339Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 05 Feb, 2019 3 commits
-
-
Filippo Valsorda authored
Change-Id: If3bab2dd5278ebc621235164e9d6ff710ba326ee Reviewed-on: https://go-review.googlesource.com/c/160898Reviewed-by: Adam Langley <agl@golang.org>
-
alkesh26 authored
Change-Id: Ia830f59d6f6ca1bc506ec298ccfc154d9f94f01d GitHub-Last-Rev: 3ab18d4fd1a8d4295713cbb7ff74f30b3838b6d3 GitHub-Pull-Request: golang/go#30067 Reviewed-on: https://go-review.googlesource.com/c/160829 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Yuval Pavel Zholkover authored
Fixes #22447 Fixes #22448 Change-Id: Ia24f42c31e014c79040ff927f1247dfb2318de4f Reviewed-on: https://go-review.googlesource.com/c/160778Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
-
- 04 Feb, 2019 3 commits
-
-
Alberto Donizetti authored
Expand modules documentation to clarify why @none is useful. The wording is the one suggested by rsc on the issue. Fixes #26684 Change-Id: I76dc4ff87e50f1dd8536fd9ac1fd938adb29bee3 Reviewed-on: https://go-review.googlesource.com/c/161037Reviewed-by: Bryan C. Mills <bcmills@google.com>
-
spring1843 authored
Change-Id: Ib0a0d04aaaaa3c213fdb8646bd9b7dfdadae40d4 Reviewed-on: https://go-review.googlesource.com/c/160831Reviewed-by: Filippo Valsorda <filippo@golang.org>
-
Ian Lance Taylor authored
Fixes #30065 Change-Id: I3d0fb03bab397548653d5f3b386cfe2980ac1030 Reviewed-on: https://go-review.googlesource.com/c/160830 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
- 01 Feb, 2019 4 commits
-
-
Keith Randall authored
Make sure the argument to memmove is of pointer type before we try to get the element type. This has been noticed for code that uses unsafe+linkname so it can call runtime.memmove. Probably not the best thing to allow, but the code is out there and we'd rather not break it unnecessarily. Fixes #30061 Change-Id: I334a8453f2e293959fd742044c43fbe93f0b3d31 Reviewed-on: https://go-review.googlesource.com/c/160826 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Cherry Zhang authored
We are copying the results to uninitialized stack space. Write barrier is not needed. Fixes #30041. Change-Id: Ia91d74dbafd96dc2bd92de0cb479808991dda03e Reviewed-on: https://go-review.googlesource.com/c/160737 Run-TryBot: Cherry Zhang <cherryyz@google.com> Reviewed-by: Keith Randall <khr@golang.org>
-
Ian Lance Taylor authored
Fixes #30043 Change-Id: I4ecfff7d8a9432240c1927f7484786fe1182b773 Reviewed-on: https://go-review.googlesource.com/c/160797Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Yuval Pavel Zholkover authored
CL 159859 causes build failure with old clang versions (3.4.1) on FreeBSD 10.3/10.4. Update #29962 Update #27619 Change-Id: I78264ac5d8d17eeae89a982e89aac988eb22b286 Reviewed-on: https://go-review.googlesource.com/c/160777 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 31 Jan, 2019 2 commits
-
-
Michael Anthony Knyszek authored
When scavenging small amounts it's possible we over-scavenge by a significant margin since we choose to scavenge the largest spans first. This over-scavenging is never accounted for. With this change, we add a scavenge credit pool, similar to the reclaim credit pool. Any time scavenging triggered by RSS growth starts up, it checks if it can cash in some credit first. If after using all the credit it still needs to scavenge, then any extra it does it adds back into the credit pool. This change mitigates the performance impact of golang.org/cl/159500 on the Garbage benchmark. On Go1 it suggests some improvements, but most of that is within the realm of noise (Revcomp seems very sensitive to GC-related changes, both postively and negatively). Garbage: https://perf.golang.org/search?q=upload:20190131.5 Go1: https://perf.golang.org/search?q=upload:20190131.4 Performance change with both changes: Garbage: https://perf.golang.org/search?q=upload:20190131.7 Go1: https://perf.golang.org/search?q=upload:20190131.6 Change-Id: I87bd3c183e71656fdafef94714194b9fdbb77aa2 Reviewed-on: https://go-review.googlesource.com/c/160297Reviewed-by: Austin Clements <austin@google.com>
-
Michael Anthony Knyszek authored
Because scavenged and unscavenged spans no longer coalesce, memory that is freed no longer has a high likelihood of being re-scavenged. As a result, if an application is allocating at a fast rate, it may work fast enough to undo all the scavenging work performed by the runtime's current scavenging mechanisms. This behavior is exacerbated by the global best-fit allocation policy the runtime uses, since scavenged spans are just as likely to be chosen as unscavenged spans on average. To remedy that, we treat each allocation of scavenged space as a heap growth, and scavenge other memory to make up for the allocation. This change makes performance of the runtime slightly worse, as now we're scavenging more often during allocation. The regression is particularly obvious with the garbage benchmark (3%) but most of the Go1 benchmarks are within the margin of noise. A follow-up change should help. Garbage: https://perf.golang.org/search?q=upload:20190131.3 Go1: https://perf.golang.org/search?q=upload:20190131.2 Updates #14045. Change-Id: I44a7e6586eca33b5f97b6d40418db53a8a7ae715 Reviewed-on: https://go-review.googlesource.com/c/159500Reviewed-by: Austin Clements <austin@google.com>
-
- 30 Jan, 2019 7 commits
-
-
Ian Lance Taylor authored
GCC 9 has started emitting warnings when taking the address of a field in a packed struct may cause a misaligned pointer. We use packed structs in cgo to ensure that our field layout matches the C compiler's layout. Our pointers are always aligned, so disable the warning Fixes #29962 Change-Id: I7e290a7cf694a2c2958529e340ebed9fcd62089c Reviewed-on: https://go-review.googlesource.com/c/159859 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
-
Dmitri Shuralyov authored
This update has been automatically generated using the updatecontrib command at CL 160277: cd gotip go run golang.org/x/build/cmd/updatecontrib Actions taken (relative to CONTRIBUTORS at origin/master): Added Aaron Cannon <cannona@fireantproductions.com> Added Andzej Maciusovic <andzej.maciusovic@gmail.com> Added Douglas Danger Manley <doug.manley@gmail.com> Added Federico Bond <federicobond@gmail.com> Added Frew Schmidt <github@frew.co> Added GitHub User @saitarunreddy (21041941) <saitarunreddypalla@gmail.com> Added GitHub User @tell-k (26263) <ffk2005@gmail.com> Added Guilherme Caruso <gui.martinscaruso@gmail.com> Added Jay Taylor <outtatime@gmail.com> Added Juan Pablo Civile <elementohb@gmail.com> Added Julien Kauffmann <julien.kauffmann@freelan.org> Added Maya Rashish <maya@NetBSD.org> Added Parminder Singh <parmsingh101@gmail.com> Added Peter Dotchev <dotchev@gmail.com> Added Quinten Yearsley <qyearsley@chromium.org> Added Ross Smith II <ross@smithii.com> Added Sean Chen <oohcode@gmail.com> Added Sebastiaan van Stijn <github@gone.nl> Added Sebastian Schmidt <yath@google.com> Added Sebastien Williams-Wynn <sebastien@cytora.com> Added Viacheslav Poturaev <vearutop@gmail.com> Added Yohei Takeda <yo.tak0812@gmail.com> Used GitHub User @saitarunreddy (21041941) form for saitarunreddy <saitarunreddypalla@gmail.com> https://github.com/golang/build/commit/269e03a [build] Used GitHub User @tell-k (26263) form for tell-k <ffk2005@gmail.com> https://github.com/golang/tools/commit/85a87a81 [tools] Used GitHub name "Akhil Indurti" for smasher164 <aindurti@gmail.com> https://github.com/golang/go/commit/a7af474359 [build go] Used GitHub name "Guilherme Caruso" for GuilhermeCaruso <gui.martinscaruso@gmail.com> https://github.com/golang/go/commit/5fae09b738 [go] Used GitHub name "Ivan Markin" for nogoegst <nogoegst@users.noreply.github.com> https://github.com/golang/go/commit/a1addf15df [go] Used GitHub name "Keiji Yoshida" for yosssi <yoshida.keiji.84@gmail.com> https://github.com/golang/lint/commit/ac6833c [lint] Used GitHub name "Marwan Sulaiman" for marwan-at-work <marwan.sameer@gmail.com> https://github.com/golang/go/commit/92caeef892 [go] Used GitHub name "Michalis Kargakis" for kargakis <mkargaki@redhat.com> https://github.com/golang/go/commit/e243d242d7 [go] Used GitHub name "Robin Eklind" for mewmew <rnd0x00@gmail.com> https://github.com/golang/go/commit/b8620afb8d [go proposal.git] Used GitHub name "Sean Chen" for two <oohcode@gmail.com> https://github.com/golang/sys/commit/302c3dd [sys] Used GitHub name "Sebastien Williams-Wynn" for GiantsLoveDeathMetal <sebastien@cytora.com> https://github.com/golang/go/commit/4e056ade24 [go] Used GitHub name "Yohei Takeda" for yo-tak <yo.tak0812@gmail.com> https://github.com/golang/go/commit/8b7cf898af [go] Given that the scope of updatecontrib is only to add contributors to CONTRIBUTORS file, without having to check CLAs or deal with legal matters, we can relax the requirement of having a space in the name before it gets added to the CONTRIBUTORS file. That will be done in a later change. Updates #12042 Change-Id: I70248f3c82a836ee829256898e931e638ee45eb4 Reviewed-on: https://go-review.googlesource.com/c/160261Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Alberto Donizetti authored
Note the removal of the go tool tour command in the Go 1.12 release notes. Updates #24819 Change-Id: I258ab9401ea2cc06a83328c67299376fcf23c980 Reviewed-on: https://go-review.googlesource.com/c/158618Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com> Reviewed-by: Andrew Bonventre <andybons@golang.org>
-
Ian Lance Taylor authored
Fixes #29983 Change-Id: I24077bde991e621c23d00973b2a77bb3a18e4ae7 Reviewed-on: https://go-review.googlesource.com/c/160180 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Damien Neil <dneil@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ian Lance Taylor authored
Updates #29983 Change-Id: Ifdf8aa9c92e053374e301a4268d85e277c15f0b5 Reviewed-on: https://go-review.googlesource.com/c/160182 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Ian Lance Taylor authored
Change-Id: I744940e2bbde19ccec53af6c5469d46ba9161f01 Reviewed-on: https://go-review.googlesource.com/c/160179Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Ian Lance Taylor authored
- add EINTR loop on Darwin - return PathError on error - call newFile rather than NewFile This tries to minimize the possibility of any future changes. It would be nice to put openFdAt in the same file as openFileNolog, but build tags forbid. Updates #29983 Change-Id: I866002416d6473fbfd80ff6ef09b2bc4607f2934 Reviewed-on: https://go-review.googlesource.com/c/160181 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Damien Neil <dneil@google.com>
-
- 29 Jan, 2019 4 commits
-
-
Brad Fitzpatrick authored
CL 159157 was doing UTF-8 decoding of URLs. URLs aren't really UTF-8, even if sometimes they are in some contexts. Instead, only reject ASCII CTLs. Updates #27302 Updates #22907 Change-Id: Ibd64efa5d3a93263d175aadf1c9f87deb4670c62 Reviewed-on: https://go-review.googlesource.com/c/160178 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
kim yongbin authored
Change-Id: Iaf67fcbb145277327e24150b29ff38f6c65f6a03 Reviewed-on: https://go-review.googlesource.com/c/155781Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Ian Lance Taylor authored
Updates #28242 Change-Id: Ib717b64f1f368cc889895a2437ff2943ed4eab0d Reviewed-on: https://go-review.googlesource.com/c/159998 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
-
Austin Clements authored
Currently, if an assembly file includes a static reference to an undefined symbol, and another package also has an undefined reference to that symbol, the linker can report an error like: x: relocation target zero not defined for ABI0 (but is defined for ABI0) Since the symbol is referenced in another package, the code in ErrorUnresolved that looks for alternative ABI symbols finds that symbol in the symbol table, but doesn't check that it's actually defined, which is where the "but is defined for ABI0" comes from. The "not defined for ABI0" is because ErrorUnresolved failed to turn the static symbol's version back into an ABI, and it happened to print the zero value for an ABI. This CL fixes both of these problems. It explicitly maps the relocation version back to an ABI and detects if it can't be mapped back (e.g., because it's a static reference). Then, if it finds a symbol with a different ABI in the symbol table, it checks to make sure it's a definition, and not simply an unresolved reference. Fixes #29852. Change-Id: Ice45cc41c1907919ce5750f74588e8047eaa888c Reviewed-on: https://go-review.googlesource.com/c/159518 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 28 Jan, 2019 2 commits
-
-
Ian Lance Taylor authored
Updates #29919 Change-Id: Ibf92c9957f71394f08c1203a29eae35a12021585 Reviewed-on: https://go-review.googlesource.com/c/159877 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Keith Randall authored
Change-Id: I824b42a1c1fdcee8712681ffc6316470761be065 Reviewed-on: https://go-review.googlesource.com/c/159858Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 27 Jan, 2019 1 commit
-
-
Alex Brainman authored
TestIssue29372 is broken on windows when temporary directory has symlink in its path. Adjust the test to use filepath.EvalSymlinks of temporary directory, instead of temporary directory on windows. This change is not a proper fix, but at least it makes TestIssue29372 pass on windows-arm. See issue for details. Updates #29746 Change-Id: I2af8ebb89da7cb9daf027a5e49e32ee22dbd0e3d Reviewed-on: https://go-review.googlesource.com/c/159578 Run-TryBot: Alex Brainman <alex.brainman@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-