- 01 Oct, 2017 2 commits
-
-
Dave Cheney authored
Move some local declarations closer to their use, reducing their respective lifetimes. Spotted while reviewing CL 67318. Change-Id: I68db67fe8530344d95e50efb6587bc724e1171f5 Reviewed-on: https://go-review.googlesource.com/67370 Run-TryBot: Dave Cheney <dave@cheney.net> Reviewed-by: Marvin Stenger <marvin.stenger94@gmail.com> Reviewed-by: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Cyrill Schumacher authored
A new switch case for converting the source string type into a destination RawBytes type avoids the reflection based conversion. Speed up from old ~61.7ns/op down to ~49ns/op. A second new switch case allows to convert and assign a source time.Time type into a destination sql.RawBytes type. This switch case appends the time to the reset RawBytes slice. This allows the reuse of RawBytes and avoids allocations. Fixes #20746 Change-Id: Ib0563fd5c5c7cb6d9d0acaa1d9aa7b2927f1329c Reviewed-on: https://go-review.googlesource.com/66830 Run-TryBot: Daniel Theophanes <kardianos@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Daniel Theophanes <kardianos@gmail.com>
-
- 30 Sep, 2017 4 commits
-
-
Adam Langley authored
Previously, any “explicit” and/or “tag” decorations on a RawValue would be ignored when unmarshaling. The RawValue would swallow whatever element was encountered. This change causes these decorations to be respected. Thus a field like: Foo asn1.RawValue `asn1:"explicit,tag:1,optional"` will only match if an explicit tag with value one is encountered. Otherwise the RawValue will get the default value and parsing will move onto the next element. Thanks to Martin Kreichgauer for reporting the issue. Change-Id: If6c4488685b9bd039cb5e352d6d75744f98dbb1f Reviewed-on: https://go-review.googlesource.com/34503 Run-TryBot: Adam Langley <agl@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Adam Langley <agl@golang.org>
-
Russ Cox authored
Now that we have -importcfg, there's no need for the temporary directory trees that mirror the import path structure, and we can drop a bunch of complex code that was building and maintaining that structure. This should fix "file name too long" errors on systems with low limits. (For example #10651 and #17070, although we fixed those by adding code to deal with very long file names on Windows instead.) Change-Id: I11e221c6c1edeb81c3b2f1d89988f5235aa2bbb9 Reviewed-on: https://go-review.googlesource.com/56280Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Russ Cox authored
Until now the subdirectories under $WORK have had predictable names, so it was OK to strip just $WORK from the file names that end up in object files. In the future, those predictable names would cause predictable collisions when compiling one package in two different ways, so we're moving toward arbitrary, unpredictable subdirectory names instead. When we do that, if the names appear in the object files we won't get reproducible builds. Take the subdirectory names out now, to make the later change safe. Change-Id: I8057d1cc73f6e35c98b7718c9789c161dcbd87c0 Reviewed-on: https://go-review.googlesource.com/67251 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Russ Cox authored
CL 64793 removed the collect step, which took all the generated .o files and merged them into a single _all.o. Now the generated .o files all go directly into the final .a. The only property of the _all.o approach that was lost in CL 64793 was that before we could be sure that the one name we used was "ar-compatible", that is, short enough not to be truncated. Now that the generated .o files are being kept directly, this CL gives them guaranteed ar-compatible names. This doesn't matter for nearly all uses today, but for some future processing it might help not to lose the .o suffix or not to end up with two identical entries with truncated names. I might not have bothered with this except that it's what's leftover after syncing my own CL disabling _all.o (necessary for reproducible builds on macOS) against Ian's CL 64793, which landed first. Change-Id: Ic86ed2a51432a5a4c58dc523e092a86d341f1997 Reviewed-on: https://go-review.googlesource.com/67250 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 29 Sep, 2017 7 commits
-
-
David Crawshaw authored
Fixes #18584 Change-Id: I5f9428758999cacee49f3449e596e0a88bc06f91 Reviewed-on: https://go-review.googlesource.com/67150 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Kevin Burke authored
Change-Id: Id900636ee58a39aaa3dc1c601cb83706d3e2fbe8 Reviewed-on: https://go-review.googlesource.com/67190Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Russ Cox authored
I don't know why these tests must import runtime/cgo in _testmain.go, but if they must, they must also tell the rest of the go command that they are doing so. Should fix the newly-broken darwin/arm and darwin/arm64 builders. Change-Id: I9b183f8c84c6f403bf3a90cbfc838d6ef428e16f Reviewed-on: https://go-review.googlesource.com/67230 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Ian Lance Taylor authored
Modifying the input slice broke the new test for whether gccgo supports -fgo-importcfg, as the test passed a slice of the argument slice it was in the process of building. Fixes #22089 Change-Id: I45444a82673223c46be0c8579da3e31a74c32d73 Reviewed-on: https://go-review.googlesource.com/67191 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Marvin Stenger authored
nilcheckelim2 cleans up by copying b.Values in a loop, omitting OpUnknowns. However, the common case is that there are no OpUnknowns, in which case we can skip a lot of work. So we track the first nilcheck which was eliminated, if any, and only start copying from there. If no nilcheck was eliminated we won't copy at all. Fixes #20964 Change-Id: Icd44194cf8ac81ce6485ce257b4d33e093003a40 Reviewed-on: https://go-review.googlesource.com/65651 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Russ Cox authored
Implement importcfg on behalf of gccgo by writing out a tree of symbolic links. In addition to keeping gccgo working with the latest changes, this also fixes a precedence bug in gccgo's cmd/go vendor support (the vendor equivalent of #14271). Change-Id: I0e5645116e1c84c957936baf22e3126ba6b0d46e Reviewed-on: https://go-review.googlesource.com/61731 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Russ Cox authored
This is a step toward using cached build artifacts: the importcfg will direct the compiler and linker to read them right from the cache if necessary. However, this CL does not have a cache yet, so it still reads them from the usual install location or build location. Even so, this fixes a long-standing issue that -I and -L (no longer used) are not expressive enough to describe complex GOPATH setups. Shared libraries are handled enough that all.bash passes, but there may still be more work to do here. If so, tests and fixes can be added in follow-up CLs. Gccgo will need updating to support -importcfg as well. Fixes #14271. Change-Id: I5c52a0a5df0ffbf7436e1130c74e9e24fceff80f Reviewed-on: https://go-review.googlesource.com/56279 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 28 Sep, 2017 9 commits
-
-
Daniel Martí authored
Add the package to the table and start it off with a few small, basic functions. Inspired by CL 66331, which added flag.ro. Updates #21851. Change-Id: I3995cde1ff7bb09a718110473bed8b193c2232a5 Reviewed-on: https://go-review.googlesource.com/66990 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ilya Tocar <ilya.tocar@intel.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Tim Cooper authored
Previously, a multi-line flag usage string would not be indented with the rest of the usage strings. This made long usage strings difficult to read. For example, the usage for flag.String("A", "", "1\n2\n3") would be printed as: -A 1 2 3 But will now be printed as: -A 1 2 3 Also fixes a slight error in the FlagSet.PrintDefaults documentation. Fixes #20799 Change-Id: I4379c6b7590fdb93a2809a01046a0f6ae32c3e5d Reviewed-on: https://go-review.googlesource.com/66711 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Daniel Martí authored
Remove an unused type, a few redundant returns and replace a few slice append loops with a single append. Change-Id: If07248180bae5631b5b152c6051d9635889997d5 Reviewed-on: https://go-review.googlesource.com/66851 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dave Cheney <dave@cheney.net>
-
Heschi Kreinick authored
The information that's used to generate DWARF location lists is very ssa.Value centric; it uses Values as start and end coordinates to define ranges. That mostly works fine, but control flow instructions don't come from Values, so the ranges couldn't cover them. Control flow instructions are generated when the SSA representation is converted to assembly, so that's the best place to extend the ranges to cover them. (Before that, there's nothing to refer to, and afterward the boundaries between blocks have been lost.) That requires block information in the debugInfo type, which then flows down to make everything else awkward. On the plus side, there's a little less copying slices around than there used to be, so it should be a little faster. Previously, the ranges for empty blocks were not very meaningful. That was fine, because they had no Values to cover, so no debug information was generated for them. But they do have control flow instructions (that's why they exist) and so now it's important that the information be correct. Introduce two sentinel values, BlockStart and BlockEnd, that denote the boundary of a block, even if the block is empty. BlockEnd replaces the previous SurvivedBlock flag. There's one more problem: the last instruction in the function will be a control flow instruction, so any live ranges need to be extended past it. But there's no instruction after it to use as the end of the range. Instead, leave the EndProg field of those ranges as nil and fix it up to point to past the end of the assembled text at the very last moment. Change-Id: I81f884020ff36fd6fe8d7888fc57c99412c4245b Reviewed-on: https://go-review.googlesource.com/63010Reviewed-by: Alessandro Arzilli <alessandro.arzilli@gmail.com> Reviewed-by: David Chase <drchase@google.com> Run-TryBot: Heschi Kreinick <heschi@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
Currently, methods are sorted by name. This happens to guarantee that exported ASCII methods appear before non-exported ASCII methods, but this breaks down when Unicode method names are considered. Type.Method already accounts for this by always indexing into the slice returned by exportedMethods. This CL makes Value.Method do the same. Fixes #22073. Change-Id: I9bfc6bbfb7353e0bd3c439a15d1c3da60d16d209 Reviewed-on: https://go-review.googlesource.com/66770 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Agniva De Sarker authored
Updated page to Page to match with the sample code Fixes #21773 Change-Id: Ia884a22fd587860c7a6148103b2b474425e45284 Reviewed-on: https://go-review.googlesource.com/66790Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Marvin Stenger authored
The function dumpbvtypes has no use case anymore, so we remove it with this change. Change-Id: I1e0323542be2bcc683b75dffde76b222e087c285 Reviewed-on: https://go-review.googlesource.com/66370Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ian Lance Taylor authored
Updates #21856 Change-Id: I9baa51fe23e6dd2fcf9dd14f7acfaf7457571e1d Reviewed-on: https://go-review.googlesource.com/66334 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org> Reviewed-by: Mikio Hara <mikioh.mikioh@gmail.com>
-
Ian Lance Taylor authored
Also changed name from TestUnix... to TestUnixgram.... Updates #21965 Change-Id: I2833110b77e9fe1b28d4a15feb3d70453ab98d3b Reviewed-on: https://go-review.googlesource.com/66333 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Mikio Hara <mikioh.mikioh@gmail.com> Reviewed-by: Rob Pike <r@golang.org>
-
- 27 Sep, 2017 18 commits
-
-
Daniel Martí authored
Very similar fix to the one made in golang.org/cl/65655. This time it's for switches on interface values, as we look for duplicates in a different manner to keep types in mind. As before, add a small regression test. Updates #22001. Fixes #22063. Change-Id: I9a55d08999aeca262ad276b4649b51848a627b02 Reviewed-on: https://go-review.googlesource.com/66450 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Cyrill Schumacher authored
The fields wantbytes and wantraw in the test struct `conversionTest` has been forgotten to include in the TestConversions function. Change-Id: I6dab69e76de3799a1bbf9fa09a15607e55172114 Reviewed-on: https://go-review.googlesource.com/66610Reviewed-by: David Crawshaw <crawshaw@golang.org> Reviewed-by: Daniel Theophanes <kardianos@gmail.com> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Agniva De Sarker authored
Combined the Split and Join call with a Replace. This simplifies the code as well as makes it fast. Micro-benchmarks show good improvements - func BenchmarkJoinSplit(b *testing.B) { for n := 0; n < b.N; n++ { strings.Join(strings.Split("this string has some spaces", " "), "") } } func BenchmarkReplace(b *testing.B) { for n := 0; n < b.N; n++ { strings.Replace("this string has some spaces", " ", "", -1) } } name old time/op new time/op delta JoinSplit-4 308ns ± 2% 192ns ± 4% -37.60% (p=0.008 n=5+5) name old alloc/op new alloc/op delta JoinSplit-4 144B ± 0% 64B ± 0% -55.56% (p=0.008 n=5+5) name old allocs/op new allocs/op delta JoinSplit-4 3.00 ± 0% 2.00 ± 0% -33.33% (p=0.008 n=5+5) Change-Id: I1dc32105ae7a0be5a43ab0bedde992cefbed5d7d Reviewed-on: https://go-review.googlesource.com/66590 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Joe Tsai authored
Adding the "https://" scheme allows godoc to properly detect the URL and provide a hyperlink for it. Change-Id: I76dc309368c86975de01bc6e6e9196037b2114d7 Reviewed-on: https://go-review.googlesource.com/66570Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
The reflect API normally grants only read-only access to non-exported fields, but it specially handles non-exported embedded fields so that users can still fully access promoted fields and methods. For example, if v.Field(i) refers to a non-exported embedded field, it would be limited to RO access. But if v.Field(i).Field(j) is an exported field, then the resulting Value will have full access. However, the way this was implemented allowed other operations to be interspersed between the Field calls, which could grant inappropriate access. Relatedly, Elem() is safe to use on pointer-embeddings, but it was also being allowed on embeddings of interface types. This is inappropriate because it could allow accessing methods of the dynamic value's complete method set, not just those that were promoted via the interface embedding. Fixes #22031. Fixes #22053. Change-Id: I9db9be88583f1c1d80c1b4705a76f23a4379182f Reviewed-on: https://go-review.googlesource.com/66331 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Austin Clements authored
Currently the FreeBSD CPU affinity code assumes that the maximum GOMAXPROCS is 256, but we just removed that limit. This commit rewrites the FreeBSD CPU affinity code to raise the CPU count limit to 65,536, like the Linux CPU affinity code, and to degrade more gracefully if we do somehow go over that. Change-Id: Ic4ca7f88bd8b9448aae4dbd43ef21a6c1b8fea63 Reviewed-on: https://go-review.googlesource.com/66291 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Austin Clements authored
allp now has length gomaxprocs, which means none of allp[i] are nil or in state _Pdead. This lets replace several different styles of loops over allp with normal range loops. for i := 0; i < gomaxprocs; i++ { ... } loops can simply range over allp. Likewise, range loops over allp[:gomaxprocs] can just range over allp. Loops that check for p == nil || p.state == _Pdead don't need to check this any more. Loops that check for p == nil don't have to check this *if* dead Ps don't affect them. I checked that all such loops are, in fact, unaffected by dead Ps. One loop was potentially affected, which this fixes by zeroing p.gcAssistTime in procresize. Updates #15131. Change-Id: Ifa1c2a86ed59892eca0610360a75bb613bc6dcee Reviewed-on: https://go-review.googlesource.com/45575 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Austin Clements authored
Now that allp is dynamically allocated, there's no need for a hard cap on GOMAXPROCS. Fixes #15131. Change-Id: I53eee8e228a711a818f7ebce8d9fd915b3865eed Reviewed-on: https://go-review.googlesource.com/45574 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Austin Clements authored
This makes it possible to eliminate the hard cap on GOMAXPROCS. Updates #15131. Change-Id: I4c422b340791621584c118a6be1b38e8a44f8b70 Reviewed-on: https://go-review.googlesource.com/45573 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org>
-
Tobias Klauser authored
Correcting values is allowed per the syscall package rules, so update these constants to their correct value on ppc64/ppc64le. The values now match the corresponding constants in x/sys/unix. Update #19560 Fixes #22000 Change-Id: I1d358de345766ec96e15dfcc8911fe2f39fb0ddb Reviewed-on: https://go-review.googlesource.com/66510 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Jean-Francois Cantin authored
Fixes: #22052 Change-Id: Ia056871b35ecc1a8c5ac891402fc1c5702731623 Reviewed-on: https://go-review.googlesource.com/66330 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Ian Lance Taylor authored
Undoes this part of https://golang.org/cl/5447061 by using the OS-specific open and close functions, and adding a read function. Change-Id: If37ef43eb5df8554fc03f3922bbc2f785129bb9c Reviewed-on: https://go-review.googlesource.com/66271 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Joe Tsai <joetsai@google.com>
-
Florian Uekermann authored
Loading and testing timezones is currently implemented using several, partly redundant, OS specific data structures and functions. This change merges most of that code into OS independent implementations. Change-Id: Iae2877c5f48d1e4a9de9ce55d0530d52e24cf96e Reviewed-on: https://go-review.googlesource.com/64391 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Marvin Stenger authored
Remove an old comment introduced in golang.org/cl/9073. Change-Id: I14be27ddfac987f44d839920bc4d02361a576f06 Reviewed-on: https://go-review.googlesource.com/66371 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mihail Minaev authored
This change adds the ability to parse group into email address. The information about group name and group members is lost for backwards compatibility. According to this rule address `Group: Test <text@example.com>;` would be parsed into `Test <test@example.com>`. Fixes #22014 Change-Id: I6e804a62f3ede04f555a1b82500b8ca030eeb431 Reviewed-on: https://go-review.googlesource.com/66250 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Elias Naur authored
On an iPhone 6 running iOS 11, the TestDialerDualStackFDLeak test started failing with dial durations just above the limit: FAIL: TestDialerDualStackFDLeak (0.21s) dial_test.go:90: got 101.154ms; want <= 95ms Bump the timeout on iOS. For the iOS builder. Change-Id: Id42b471e7cf7d0c84f6e83ed04b395fa1a2d449d Reviewed-on: https://go-review.googlesource.com/66491 Run-TryBot: Elias Naur <elias.naur@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Elias Naur authored
Attempting to set the SetGID bit on iOS 11 fails with a permission error. Skip the test. Change-Id: Idac59750447d668091c44fe7cc5ee178014e0e1d Reviewed-on: https://go-review.googlesource.com/66490 Run-TryBot: Elias Naur <elias.naur@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Marvin Stenger authored
The function isInGoToolsRepo has no use case anymore, so we remove it with this change. Change-Id: I71051828eef2e317b83e13f83a14d5f0bc0ec13f Reviewed-on: https://go-review.googlesource.com/66350Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org>
-