- 19 Jan, 2017 3 commits
-
-
Chris Broadfoot authored
Change-Id: Ifcf2e13b962aa10280df8ca76cb21b37e3533f8f Reviewed-on: https://go-review.googlesource.com/35475 Run-TryBot: Chris Broadfoot <cbro@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Chris Broadfoot authored
6593d865 go/ast: fix Object's doc comment about Data c1730ae4 runtime: force workers out before checking mark roots d10eddcb testing: make parallel t.Run safe again 2c8b70ea crypto/x509: revert SystemCertPool implementation for Windows fcfd9185 doc/go1.8: document Plan 9 requirements 81a61a96 runtime: for plugins, don't add duplicate itabs f674537c README.md: update and simplify d8711919 cmd/go: fix bug help message 48d8edb5 crypto/tls: disable CBC cipher suites with SHA-256 by default 92ecd789 cmd/compile: add ZeroWB case in writebarrier 787125ab doc: 2017 is the Year of the Gopher 5b708a6b cmd/compile: lvalues are only required for == when calling runtime fns e83d5067 vendor/golang_org/x/crypto/poly1305: revendor to pick up fix for #18673 76f981c8 net/http: skip TestServerHijackGetsBackgroundByte on Plan 9 e395e324 net/http: skip TestServerHijackGetsBackgroundByte_big on Plan 9 6a3c6c0d net/http: add another hijack-after-background-read test 467109bf all: test adjustments for the iOS builder b2a3b54b net/http: make sure Hijack's bufio.Reader includes pre-read background byte 593ea3b3 cmd/go, misc: rework cwd handling for iOS tests 0642b8a2 syscall: export Fsid.X__val on s390x 4601eae6 doc/gdb: mention GOTRACEBACK=crash 4c4c5fc7 misc/cgo/testplugin: test that types and itabs are unique 22689c44 reflect: keep makeFuncImpl live across makeFuncStub 9cf06ed6 cmd/link: only exclude C-only symbols on darwin 9c3630f5 compress/flate: avoid large stack growth in fillDeflate 4f0aac52 cmd/go: add comment about SIGUSR2 on iOS 333f764d cmd/go, misc: switch from breakpoint to SIGUSR2 39e31d5e doc/go1.8: update timezone database version 08da8201 misc/cgo/testshared: test that types and itabs are unique fdde7ba2 runtime: avoid clobbering C callee-save register in cgoSigtramp f65abf6d cmd/compile: hide testdclstack behind debug flag 641ef2a7 compress/gzip: skip TestGZIPFilesHaveZeroMTimes on non-builders 0724aa81 crypto/dsa: gofmt ac055429 net/http: deflake TestRetryIdempotentRequestsOnError b842c9aa doc: remove inline styles Change-Id: I642c056732fe1e8081e9d73e086e38ea0b2568cc
-
Hironao OTSUBO authored
The doc comment about the Data field of go/ast.Object reflects its old behavior, from when the go/types typechecker depended on ast.Objects. Since when the doc was written, the behavior has changed in https://golang.org/cl/7058060 and https://golang.org/cl/7096048 . Fixes #18631 Change-Id: I10fc3e31cfbf7b303eec44150df917f6eb285f90 Reviewed-on: https://go-review.googlesource.com/35075Reviewed-by: Robert Griesemer <gri@golang.org>
-
- 18 Jan, 2017 4 commits
-
-
Austin Clements authored
Currently we check that all roots are marked as soon as gcMarkDone decides to transition from mark 1 to mark 2. However, issue #16083 indicates that there may be a race where we try to complete mark 1 while a worker is still scanning a stack, causing the root mark check to fail. We don't yet understand this race, but as a simple mitigation, move the root check to after gcMarkDone performs a ragged barrier, which will force any remaining workers to finish their current job. Updates #16083. This may "fix" it, but it would be better to understand and fix the underlying race. Change-Id: I1af9ce67bd87ade7bc2a067295d79c28cd11abd2 Reviewed-on: https://go-review.googlesource.com/35353 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org>
-
Russ Cox authored
Fixes #18603. Change-Id: I5760c0a9f862200b7e943058a672eb559ac1b9d9 Reviewed-on: https://go-review.googlesource.com/35354 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Brad Fitzpatrick authored
Updates #18609 Change-Id: I8306135660f52cf625bed4c7f53f632e527617de Reviewed-on: https://go-review.googlesource.com/35265 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Quentin Smith <quentin@golang.org>
-
David du Colombier authored
Fixes #18610. Change-Id: I19da4d59a1b6293c9a4722aa696e2cb58d982a15 Reviewed-on: https://go-review.googlesource.com/35333Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 17 Jan, 2017 4 commits
-
-
Keith Randall authored
We already do this for shared libraries. Do it for plugins also. Suggestions on how to test this would be welcome. I'd like to get this in for 1.8. It could lead to mysterious hangs when using plugins. Fixes #18676 Change-Id: I03209b096149090b9ba171c834c5e59087ed0f92 Reviewed-on: https://go-review.googlesource.com/35117Reviewed-by: David Crawshaw <crawshaw@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Michael Hudson-Doyle <michael.hudson@canonical.com>
-
Alberto Donizetti authored
Fixes #18675 Change-Id: I82e63e8ee3fe4a998b01d9397c3045912588e2f5 Reviewed-on: https://go-review.googlesource.com/35183Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
gulyasm authored
The bug subcommand opens up the browser instead of printing information. Fixes help message to reflect that. Fixes #18630. Change-Id: I660c94bc65ef1994292cfd72d08a544699545701 Reviewed-on: https://go-review.googlesource.com/35150Reviewed-by: Russ Cox <rsc@golang.org>
-
Filippo Valsorda authored
As is, they were fully vulnerable to the Lucky13 attack. The SHA1 variants implement limited countermeasures (see f28cf834) but the SHA256 ones are apparently used rarely enough (see 87415048) that it's not worth the extra code. Instead, disable them by default and update the warning. Updates #13385 Updates #15487 Change-Id: I45b8b716001e2fa0811b17e25be76e2512e5abb2 Reviewed-on: https://go-review.googlesource.com/35290Reviewed-by: Adam Langley <alangley@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Matt Layher <mdlayher@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 16 Jan, 2017 4 commits
-
-
Cherry Zhang authored
It looks like it should be there, although I couldn't find a test case that fails without it. ZeroWB is probably never generated now: zeroing an initialized heap object is done by making an autotmp on stack, zeroing it, and copying (typedmemmove) to heap. Passes "toolstash -cmp" on std. Change-Id: I702a59759e33fb8cc2a34a3b3029e7540aca080a Reviewed-on: https://go-review.googlesource.com/35250Reviewed-by: Austin Clements <austin@google.com> Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Brad Fitzpatrick authored
Change-Id: Iac713ae1f322f893c92b3fc47fe9b5719052f9eb Reviewed-on: https://go-review.googlesource.com/35240Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: David Symonds <dsymonds@golang.org> Reviewed-by: Minux Ma <minux@golang.org>
-
Josh Bleecher Snyder authored
Fixes #18661. Change-Id: I865802a9b88ab22560c9914a70901d1924242bdc Reviewed-on: https://go-review.googlesource.com/35236 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Shenghou Ma authored
Fixes #18673. Change-Id: Ic827c16ad414733392c348da1c9ed9b308879fef Reviewed-on: https://go-review.googlesource.com/35260 Run-TryBot: Minux Ma <minux@golang.org> Reviewed-by: Adam Langley <agl@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 14 Jan, 2017 4 commits
-
-
David du Colombier authored
CL 5232 added TestServerHijackGetsBackgroundByte, which is failing on Plan 9, because CloseWrite is not implemented on Plan 9 yet. Updates #17906. Updates #18657. Change-Id: I3c2f73760b0f767f3f9ed2698c855372170e0481 Reviewed-on: https://go-review.googlesource.com/35178Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
David du Colombier authored
CL 35234 added TestServerHijackGetsBackgroundByte_big, which is failing on Plan 9, because CloseWrite is not implemented on Plan 9 yet. Updates #17906. Updates #18658. Change-Id: Icaf3fe3600d586515ecd92aca874104ea81ce6b9 Reviewed-on: https://go-review.googlesource.com/35179 Run-TryBot: David du Colombier <0intro@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Brad Fitzpatrick authored
Follow-up test from Ian's comments in https://golang.org/cl/35232 after submit. Change-Id: Ifa504bd8d09e555c3c7738376199dfc9b99130cf Reviewed-on: https://go-review.googlesource.com/35234 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
-
David Crawshaw authored
The working directory is now adjusted to match the typical Go test working directory in main, as the old trick for adjusting earlier stopped working with the latest version of LLDB bugs. That means the small number of places where testdata files are read before main is called no longer work. This CL adjusts those reads to happen after main is called. (This has the bonus effect of not reading some benchmark testdata files in all.bash.) Fixes compress/bzip2, go/doc, go/parser, os, and time package tests on the iOS builder. Change-Id: If60f026aa7848b37511c36ac5e3985469ec25209 Reviewed-on: https://go-review.googlesource.com/35255 Run-TryBot: David Crawshaw <crawshaw@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 13 Jan, 2017 6 commits
-
-
Brad Fitzpatrick authored
Previously, if the Hijack called stopped the background read call which read a byte, that byte was sitting in memory, buffered, ready to be Read by Hijack's returned bufio.Reader, but it wasn't yet in the bufio.Reader's buffer itself, so bufio.Reader.Buffered() reported 1 byte fewer. This matters for callers who wanted to stitch together any buffered data (with bufio.Reader.Peek(bufio.Reader.Buffered())) with Hijack's returned net.Conn. Otherwise there was no way for callers to know a byte was read. Change-Id: Id7cb0a0a33fe2f33d79250e13dbaa9c0f7abba13 Reviewed-on: https://go-review.googlesource.com/35232 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
-
David Crawshaw authored
Another change in behvaior (bug) in LLDB. Despite the fact that LLDB can dump the symtab of our test binaries and show the function addresses, it can no longer call the functions. This means the chdir trick on signal is failing. This CL uses a new trick. For iOS, the exec script passes the change in directory as an argument, and it is processed early by the test harness generated by cmd/go. For the iOS builders. Change-Id: I8f5d0f831fe18de99f097761f89c5184d5bf2afb Reviewed-on: https://go-review.googlesource.com/35152Reviewed-by: Elias Naur <elias.naur@gmail.com> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Munday authored
mkpost.go replaces all variables prefixed with 'X_' with '_' on s390x because most of them do not need to be exposed. X__val is being used by a third party library so it turns out we do need to expose it on s390x (it is already exposed on all other Linux architectures). Fixes #17298 and updates #18632. Change-Id: Ic03463229a5f75ca41a4a4b50300da4b4d892d45 Reviewed-on: https://go-review.googlesource.com/30130Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Alberto Donizetti authored
Also fix a couple of other errors. Fixes #6877 Change-Id: I94c81c5847cc7b0adab19418e71687bc2ee7fe94 Reviewed-on: https://go-review.googlesource.com/34960Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Keith Randall authored
Make sure that the same type and itab generated in two different plugins are actually the same thing. See also CL 35115 Change-Id: I0c1ecb039d7e2bf5a601d58dfa162a435ae4ef76 Reviewed-on: https://go-review.googlesource.com/35116 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Austin Clements authored
When traceback sees reflect.makeFuncStub (or reflect.methodValueCall) on the stack, it expects to be able to get the *reflect.makeFuncImpl (or *reflect.methodValue) for that call from the first outgoing argument slot of makeFuncStub/methodValueCall. However, currently this object isn't necessarily kept live across makeFuncStub. This means it may get garbage collected while in a reflect call and reused for something else. If we then try to traceback, the runtime will see a corrupted makeFuncImpl object and panic. This was not a problem in previous releases because we always kept arguments live across the whole function. This became a problem when we stopped doing this. Fix this by using reflect.KeepAlive to keep the makeFuncImpl/methodValue live across all of callReflect/callMethod, which in turn keeps it live as long as makeFuncStub/methodValueCall are on the stack. Fixes #18635. Change-Id: I91853efcf17912390fddedfb0230648391c33936 Reviewed-on: https://go-review.googlesource.com/35151 Run-TryBot: Austin Clements <austin@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 12 Jan, 2017 7 commits
-
-
David Crawshaw authored
C-only symbols are excluded from pclntab because of a quirk of darwin, where functions are referred to by an exported symbol so dynamic relocations de-duplicate to the host binary module and break unwinding. This doesn't happen on ELF systems because the linker always refers to unexported module-local symbols, so we don't need this condition. And the current logic for excluding some functions breaks the module verification code in moduledataverify1. So disable this for plugins on linux. (In 1.9, it will probably be necessary to introduce a module-local symbol reference system on darwin to fix a different bug, so all of this onlycsymbol code made be short-lived.) With this CL, the tests in CL 35116 pass. Change-Id: I517d7ca4427241fa0a91276c462827efb9383be9 Reviewed-on: https://go-review.googlesource.com/35190Reviewed-by: Michael Hudson-Doyle <michael.hudson@canonical.com> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Joe Tsai authored
Ranging over an array causes the array to be copied over to the stack, which cause large re-growths. Instead, we should iterate over slices of the array. Also, assigning a large struct literal uses the stack even though the actual fields being populated are small in comparison to the entirety of the struct (see #18636). Fixing the stack growth does not alter CPU-time performance much since the stack-growth and copying was such a tiny portion of the compression work: name old time/op new time/op delta Encode/Digits/Default/1e4-8 332µs ± 1% 332µs ± 1% ~ (p=0.796 n=10+10) Encode/Digits/Default/1e5-8 5.07ms ± 2% 5.05ms ± 1% ~ (p=0.815 n=9+8) Encode/Digits/Default/1e6-8 53.7ms ± 1% 53.9ms ± 1% ~ (p=0.075 n=10+10) Encode/Twain/Default/1e4-8 380µs ± 1% 380µs ± 1% ~ (p=0.684 n=10+10) Encode/Twain/Default/1e5-8 5.79ms ± 2% 5.79ms ± 1% ~ (p=0.497 n=9+10) Encode/Twain/Default/1e6-8 61.5ms ± 1% 61.8ms ± 1% ~ (p=0.247 n=10+10) name old speed new speed delta Encode/Digits/Default/1e4-8 30.1MB/s ± 1% 30.1MB/s ± 1% ~ (p=0.753 n=10+10) Encode/Digits/Default/1e5-8 19.7MB/s ± 2% 19.8MB/s ± 1% ~ (p=0.795 n=9+8) Encode/Digits/Default/1e6-8 18.6MB/s ± 1% 18.5MB/s ± 1% ~ (p=0.072 n=10+10) Encode/Twain/Default/1e4-8 26.3MB/s ± 1% 26.3MB/s ± 1% ~ (p=0.616 n=10+10) Encode/Twain/Default/1e5-8 17.3MB/s ± 2% 17.3MB/s ± 1% ~ (p=0.484 n=9+10) Encode/Twain/Default/1e6-8 16.3MB/s ± 1% 16.2MB/s ± 1% ~ (p=0.238 n=10+10) Updates #18636 Fixes #18625 Change-Id: I471b20339bf675f63dc56d38b3acdd824fe23328 Reviewed-on: https://go-review.googlesource.com/35122Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
David Crawshaw authored
Missing from CL 34926. Change-Id: I4a046440c30811f26da53bee0e853dae3b0ac57a Reviewed-on: https://go-review.googlesource.com/35123Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
David Crawshaw authored
The iOS test harness has set a breakpoint early in the life of Go programs so that it can change the current working directory using information only available from the host debugger. Somewhere in the upgrade to iOS 10 / XCode 8.2, breakpoints stopped working. This may be an LLDB bug, or a bug in the ios-deploy LLDB scripts, it's not clear. Work around the problem by giving up on breakpoints. Instead, early in the life of every test binary built for iOS, send (and ignore) a SIGUSR2 signal. The debugger will catch this, giving the script go_darwin_arm_exec a chance to change the working directory. For the iOS builders. Change-Id: I7476531985217d0c76bc176904c48379210576c2 Reviewed-on: https://go-review.googlesource.com/34926Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Shenghou Ma authored
Fixes #18623. Change-Id: Ic965f5f7088c3270adbca7162226be486d1b9b4e Reviewed-on: https://go-review.googlesource.com/35130Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Keith Randall authored
Make sure that the same type and itab generated in two different shared library are actually the same thing. Change-Id: Ica45862d65ff8bc7ad04d59a41f57223f71224cd Reviewed-on: https://go-review.googlesource.com/35115 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Bryan C. Mills authored
Use R11 (a caller-saved temp register) instead of RBX (a callee-saved register). I believe this only affects linux/amd64, since it is the only platform with a non-trivial cgoSigtramp implementation. Updates #18328. Change-Id: I3d35c4512624184d5a8ece653fa09ddf50e079a2 Reviewed-on: https://go-review.googlesource.com/35068Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 11 Jan, 2017 4 commits
-
-
Josh Bleecher Snyder authored
This reduces compilation time for the program in #18602 from 7 hours to 30 min. Updates #14781 Updates #18602 Change-Id: I3c4af878a08920e6373d3b3b0c4453ee002e32eb Reviewed-on: https://go-review.googlesource.com/35113 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Joe Tsai authored
Fixes #18604 Change-Id: I89221d5e632042167dfced068e1dc14e932cd618 Reviewed-on: https://go-review.googlesource.com/35111 Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Austin Clements authored
Somehow this file didn't get gofmted after the last change, which interferes with merges. Change-Id: I965cfdbf27a01124a6ed300be9687ff84f68f9a1 Reviewed-on: https://go-review.googlesource.com/35064Reviewed-by: Matt Layher <mdlayher@gmail.com> Reviewed-by: Adam Langley <agl@chromium.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Matt Layher <mdlayher@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Brad Fitzpatrick authored
The test was previously an integration test, relying on luck and many goroutines and lots of time to hit the path to be tested. Instead, rewrite the test to exactly hit the path to be tested, in one try, in one goroutine. Fixes #18205 Change-Id: I63cd513316344bfd7375dcc452c1c396dec0e49f Reviewed-on: https://go-review.googlesource.com/35107 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 10 Jan, 2017 4 commits
-
-
Jaana Burcu Dogan authored
Change-Id: I7ca7e9a2d4cf97cf33c60a9a4d0ba5fb0ca6e44c Reviewed-on: https://go-review.googlesource.com/35098Reviewed-by: Chris Broadfoot <cbro@golang.org>
-
Chris Broadfoot authored
Change-Id: I68a99a4d750357dd59eb48f7c05b4dc08c64c92d Reviewed-on: https://go-review.googlesource.com/35097 Run-TryBot: Chris Broadfoot <cbro@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
David Chase authored
The test is inherently racy and vulnerable to starvation, and within all.bash on some platforms that means it flakes. Test is kept because it can be useful standalone to verify behavior of GOEXPERIMENT=preeemptibleloops, and there is likely to be further development of this feature in the future. There's also some question as to why it is flaking, because though technically this is permitted, it's very odd in this simple case. Fixes #18589. Change-Id: Ia0dd9037285c4a03122da4012c96981c9cc43b60 Reviewed-on: https://go-review.googlesource.com/35051 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Austin Clements authored
Updates #18043. Change-Id: I24e687fdd5521c48b672987f15f0d5de9f308884 Reviewed-on: https://go-review.googlesource.com/34612 Run-TryBot: Austin Clements <austin@google.com> Reviewed-by: Rick Hudson <rlh@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-