- 25 Oct, 2017 4 commits
-
-
Russ Cox authored
The new pagezero_size introduced by CL 72730 breaks on 32-bit systems, since it is 2³². Restrict the change to darwin/arm64, since it is intended for iOS only. We could plausibly allow GOARCH=amd64 as well, but without a compelling reason, changing the zero page size doesn't seem worth the risk. Change-Id: I5d6adcbaff8d0e5b169ff13512f188332cc7ed9a Reviewed-on: https://go-review.googlesource.com/73250 Run-TryBot: Russ Cox <rsc@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Joe Tsai authored
The record delimiter (not configurable by user) is "\r\n" or "\n". It is insensible for the user to set Comma or Comment delimiters to be some character that conflicts with the record delimiter. Furthermore, it is insensible for Comma or Comment to be the same rune. Allowing this leaks implementation details to the user in regards to the evaluation order of which rune is checked for first. Fixes #22404 Change-Id: I31e86abc9b3a8fb4584e090477795587740970ae Reviewed-on: https://go-review.googlesource.com/72793Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Russ Cox authored
This CL expands the job of "dist bootstrap" to be "finish make.bash". I need to change that logic in upcoming CLs related to cmd/go changes, and I'd rather not change it in three places in three different shell script languages. Change-Id: I545dc215e408289e4d0b28f7c2ffcd849d89ad3b Reviewed-on: https://go-review.googlesource.com/72870Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Ian Lance Taylor authored
Change-Id: Id51a2d63f7199b3ff71cedd415345ad20e5bd981 Reviewed-on: https://go-review.googlesource.com/70791Reviewed-by: Austin Clements <austin@google.com>
-
- 24 Oct, 2017 19 commits
-
-
Michael Hudson-Doyle authored
Change-Id: I54c73afd4fb2ad4d5854d2568524f57542c64fe5 Reviewed-on: https://go-review.googlesource.com/42182 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Michael Hudson-Doyle authored
There is some stuff I don't understand very well involved in SSUB, better words for the documentation gratefully accepted. As this is the last use of a bit in SMASK, kill that off too. Change-Id: Iddff1c9b2af02c9dfb12ac8e668d004e4642f997 Reviewed-on: https://go-review.googlesource.com/42026 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Brian Kessler authored
Updates #15833 Lehmer's GCD algorithm uses single precision calculations to simulate several steps of multiple precision calculations in Euclid's GCD algorithm which leads to a considerable speed up. This implementation uses Collins' simplified testing condition on the single digit cosequences which requires only one quotient and avoids any possibility of overflow. name old time/op new time/op delta GCD10x10/WithoutXY-4 1.82µs ±24% 0.28µs ± 6% -84.40% (p=0.008 n=5+5) GCD10x10/WithXY-4 1.69µs ± 6% 1.71µs ± 6% ~ (p=0.595 n=5+5) GCD10x100/WithoutXY-4 1.87µs ± 2% 0.56µs ± 4% -70.13% (p=0.008 n=5+5) GCD10x100/WithXY-4 2.61µs ± 2% 2.65µs ± 4% ~ (p=0.635 n=5+5) GCD10x1000/WithoutXY-4 2.75µs ± 2% 1.48µs ± 1% -46.06% (p=0.008 n=5+5) GCD10x1000/WithXY-4 5.29µs ± 2% 5.25µs ± 2% ~ (p=0.548 n=5+5) GCD10x10000/WithoutXY-4 10.7µs ± 2% 10.3µs ± 0% -4.38% (p=0.008 n=5+5) GCD10x10000/WithXY-4 22.3µs ± 6% 22.1µs ± 1% ~ (p=1.000 n=5+5) GCD10x100000/WithoutXY-4 93.7µs ± 2% 99.4µs ± 2% +6.09% (p=0.008 n=5+5) GCD10x100000/WithXY-4 196µs ± 2% 199µs ± 2% ~ (p=0.222 n=5+5) GCD100x100/WithoutXY-4 10.1µs ± 2% 2.5µs ± 2% -74.84% (p=0.008 n=5+5) GCD100x100/WithXY-4 21.4µs ± 2% 21.3µs ± 7% ~ (p=0.548 n=5+5) GCD100x1000/WithoutXY-4 11.3µs ± 2% 4.4µs ± 4% -60.87% (p=0.008 n=5+5) GCD100x1000/WithXY-4 24.7µs ± 3% 23.9µs ± 1% ~ (p=0.056 n=5+5) GCD100x10000/WithoutXY-4 26.6µs ± 1% 20.0µs ± 2% -24.82% (p=0.008 n=5+5) GCD100x10000/WithXY-4 78.7µs ± 2% 78.2µs ± 2% ~ (p=0.690 n=5+5) GCD100x100000/WithoutXY-4 174µs ± 2% 171µs ± 1% ~ (p=0.056 n=5+5) GCD100x100000/WithXY-4 563µs ± 4% 561µs ± 2% ~ (p=1.000 n=5+5) GCD1000x1000/WithoutXY-4 120µs ± 5% 29µs ± 3% -75.71% (p=0.008 n=5+5) GCD1000x1000/WithXY-4 355µs ± 4% 358µs ± 2% ~ (p=0.841 n=5+5) GCD1000x10000/WithoutXY-4 140µs ± 2% 49µs ± 2% -65.07% (p=0.008 n=5+5) GCD1000x10000/WithXY-4 626µs ± 3% 628µs ± 9% ~ (p=0.690 n=5+5) GCD1000x100000/WithoutXY-4 340µs ± 4% 259µs ± 6% -23.79% (p=0.008 n=5+5) GCD1000x100000/WithXY-4 3.76ms ± 4% 3.82ms ± 5% ~ (p=0.310 n=5+5) GCD10000x10000/WithoutXY-4 3.11ms ± 3% 0.54ms ± 2% -82.74% (p=0.008 n=5+5) GCD10000x10000/WithXY-4 7.96ms ± 3% 7.69ms ± 3% ~ (p=0.151 n=5+5) GCD10000x100000/WithoutXY-4 3.88ms ± 1% 1.27ms ± 2% -67.21% (p=0.008 n=5+5) GCD10000x100000/WithXY-4 38.1ms ± 2% 38.8ms ± 1% ~ (p=0.095 n=5+5) GCD100000x100000/WithoutXY-4 208ms ± 1% 25ms ± 4% -88.07% (p=0.008 n=5+5) GCD100000x100000/WithXY-4 533ms ± 5% 525ms ± 4% ~ (p=0.548 n=5+5) Change-Id: Ic1e007eb807b93e75f4752e968e98c1f0cb90e43 Reviewed-on: https://go-review.googlesource.com/59450 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
-
Mark Pulford authored
Rounding ties to even is statistically useful for some applications. This implementation completes IEEE float64 rounding mode support (in addition to Round, Ceil, Floor, Trunc). This function avoids subtle faults found in ad-hoc implementations, and is simple enough to be inlined by the compiler. Fixes #21748 Change-Id: I09415df2e42435f9e7dabe3bdc0148e9b9ebd609 Reviewed-on: https://go-review.googlesource.com/61211Reviewed-by: Robert Griesemer <gri@golang.org> Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
Eliminates lots of ad hoc code for recognizing the same thing in different ways. Passes toolstash-check. Change-Id: Ic0bb005308e96331b4ef30f455b860e476725b61 Reviewed-on: https://go-review.googlesource.com/73190 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Daniel Theophanes authored
A single database connection ususally maps to a single session. A connection pool is logically also a session pool. Most sessions have a way to reset the session state which is desirable to prevent one bad query from poisoning another later query with temp table name conflicts or other persistent session resources. It also lets drivers provide users with better error messages from queryies when the underlying transport or query method fails. Internally the driver connection should now be marked as bad, but return the actual connection. When ResetSession is called on the connection it should return driver.ErrBadConn to remove it from the connection pool. Previously drivers had to choose between meaningful error messages or poisoning the connection pool. Lastly update TestPoolExhaustOnCancel from relying on a WAIT query fixing a flaky timeout issue exposed by this change. Fixes #22049 Fixes #20807 Change-Id: I2b5df6d954a38d0ad93bf1922ec16e74c827274c Reviewed-on: https://go-review.googlesource.com/73033 Run-TryBot: Daniel Theophanes <kardianos@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Matthew Dempsky authored
Fixes #20986. Change-Id: Ic3cf5c0ab260f259ecff7b92cfdf5f4ae432aef3 Reviewed-on: https://go-review.googlesource.com/73072 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Heschi Kreinick authored
Instead of the hand-written control flow analysis in debug info generation, use a reverse postorder traversal, which is basically the same thing. It should be slightly faster. More importantly, the previous version simply gave up in the case of non-reducible functions, and produced output that caused a later stage to crash. It turns out that there's a non-reducible function in compress/flate, so that wasn't a theoretical issue. With this change, all blocks will be visited, even for non-reducible functions. Change-Id: Id47536764ee93203c6b4105a1a3013fe3265aa12 Reviewed-on: https://go-review.googlesource.com/73110 Run-TryBot: Heschi Kreinick <heschi@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
Nils Larsgård authored
Fixes #19183 Change-Id: I11502d855f5b521b03ed7a63a990cca2d0ed4083 Reviewed-on: https://go-review.googlesource.com/70931Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Russ Cox authored
This reverts commit 2620ac3a. Reason for revert: broke all the builds. Change-Id: I26fc09a13f5f80fa708de66c843442ff9d934694 Reviewed-on: https://go-review.googlesource.com/73050Reviewed-by: Russ Cox <rsc@golang.org>
-
Than McIntosh authored
Fix a bug introduced in patch 2 of https://go-review.googlesource.com/72630 (sense of a map lookup test was accidentally flipped). Change-Id: Icc6096ee50be4605fa7542b9fd855c13b8aff090 Reviewed-on: https://go-review.googlesource.com/72850 Run-TryBot: Than McIntosh <thanm@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com>
-
Daniel Theophanes authored
A single database connection ususally maps to a single session. A connection pool is logically also a session pool. Most sessions have a way to reset the session state which is desirable to prevent one bad query from poisoning another later query with temp table name conflicts or other persistent session resources. It also lets drivers provide users with better error messages from queryies when the underlying transport or query method fails. Internally the driver connection should now be marked as bad, but return the actual connection. When ResetSession is called on the connection it should return driver.ErrBadConn to remove it from the connection pool. Previously drivers had to choose between meaningful error messages or poisoning the connection pool. Lastly update TestPoolExhaustOnCancel from relying on a WAIT query fixing a flaky timeout issue exposed by this change. Fixes #22049 Fixes #20807 Change-Id: Idffa1a7ca9ccfe633257c4a3ae299b864f46c5b6 Reviewed-on: https://go-review.googlesource.com/67630Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Daniel Theophanes authored
Drivers shouldn't need to implement both Queryer and QueryerContext, they should just implement QueryerContext. Same with Execer and ExecerContext. This CL tests for QueryContext and ExecerContext first so drivers do not need to implement Queryer and Execer with an empty definition. Fixes #21663 Change-Id: Ifbaa71da669f4bc60f8da8c41a04a4afed699a9f Reviewed-on: https://go-review.googlesource.com/65733Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
rust authored
This change modifies go to create iOS arm64 binaries that pass iTunes upload validation. Tested with xcode 9.0.1 macOS 10.13. Fixes #22402. Change-Id: I3f14c6ac85065e2da88d06edc8682947f6f1cd47 Reviewed-on: https://go-review.googlesource.com/72730Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Marcel van Lohuizen authored
Also includes all derived values as well as vendored packages. Generated by running UNICODE_VERSION=10.0.0 go generate in golang.org/x/text and modified by hand to add the tests and entries in next.txt for new script and properties. Closes Issue #21471 Change-Id: I1d10ee3887bd1fd3d5a756ee0d04bd6ec2814ba1 Reviewed-on: https://go-review.googlesource.com/63953 Run-TryBot: Marcel van Lohuizen <mpvl@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Andrew Bonventre <andybons@golang.org>
-
Joe Tsai authored
The ErrQuote variable is only returned when a parsing error occurs within a quoted string. Make that clear in the message. Change-Id: I06ad5a9edb41afedde193c4f8b93551bb8342bbb Reviewed-on: https://go-review.googlesource.com/72794Reviewed-by: Avelino <t@avelino.xxx> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Joe Tsai authored
We should be referring to ParseError.Err, which is the underlying error, not ParseError.Error, which is the error method. Change-Id: Ic3cef5ecbe1ada5fa14b9573222f29da8fc9a8d5 Reviewed-on: https://go-review.googlesource.com/72450Reviewed-by: Tim Cooper <tim.cooper@layeh.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Alex Brainman authored
Make netpollopen return what Windows GetLastError API returns. It is probably copy / paste error from long time ago. Change-Id: I28f78718c15fef3e8b5f5d11a259533d7e9c6185 Reviewed-on: https://go-review.googlesource.com/72592Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org>
-
Matthew Dempsky authored
If n.Type==nil after typechecking, then we should have already reported a more useful error somewhere else. Just return 0 in evalunsafe without trying to do anything else that's likely to cause problems. Also, further split out issue7525.go into more test files, because cmd/compile reports at most one typechecking loop per compilation unit. Fixes #22351. Change-Id: I3ebf505f72c48fcbfef5ec915606224406026597 Reviewed-on: https://go-review.googlesource.com/72251 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Robert Griesemer <gri@golang.org>
-
- 23 Oct, 2017 5 commits
-
-
Artyom Pervukhin authored
decoder.decode() was defering close of lzw.decoders created for each frame in a loop, thus increasing heap usage (referenced object + defered function) until decode() returns. Memory increased proportionally to the number of frames. Fix this by moving the sImageDescriptor case block into its own method. Fixes #22237 Change-Id: I819617ea7e539e13c04bc11112f339645391ddb9 Reviewed-on: https://go-review.googlesource.com/70370 Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
-
griesemer authored
Fixes #22282. Change-Id: I4097e9cbd590ab6c8b1511a3b752c6ac98ac819b Reviewed-on: https://go-review.googlesource.com/72792Reviewed-by: Rob Pike <r@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Than McIntosh authored
When enhanced DWARF location list generation is enabled (via internal option -dwarflocationlists), variable entries were missing for "large" (non-decomposable) locals and formals. From the debugging perspective, this makes it appear that the variable doesn't exist, which is probably not what we want. This change insures that a formal/local DIE is created for these vars (with correct type, line, etc) but with a conservative ("no info") location. Change-Id: I10b2e9a51a60c7b4c748e987cdec5f2d8b2837d5 Reviewed-on: https://go-review.googlesource.com/72630 Run-TryBot: Than McIntosh <thanm@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com>
-
griesemer authored
Fixes #22377. Change-Id: I0a0e1bde558df964f0961dc4cfc305e72d590e1a Reviewed-on: https://go-review.googlesource.com/72690Reviewed-by: Alan Donovan <adonovan@google.com>
-
Cherry Zhang authored
The addressing mode of global variable was missing, whereas the compiler may make use of it, causing "illegal combination" error. This CL adds support of that addressing mode. Fixes #22390. Change-Id: Ic8eade31aba73e6fb895f758ee7f277f8f1832ef Reviewed-on: https://go-review.googlesource.com/72610 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
- 22 Oct, 2017 2 commits
-
-
Daniel Martí authored
* replace a copy of IsMethod with a call of it. * a few more switches where they simplify the code. * prefer composite literals over "n := new(...); n.x = y; ...". * use defers to get rid of three goto labels. * rewrite updateHasCall into two funcs to remove gotos. Passes toolstash-check on std cmd. Change-Id: Icb5442a89a87319ef4b640bbc5faebf41b193ef1 Reviewed-on: https://go-review.googlesource.com/72070 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Matthew Dempsky authored
Currently, benchmarking compile performance under -l=4 is confounded by -l=2 enabling eager typechecking of unused inline function bodies for debugging. This isn't logically an "inlining aggressiveness" level, so instead move this logic under the -d umbrella flag. Change-Id: I713f68952efbe25b6941d3ebc2f3707ccbbd6240 Reviewed-on: https://go-review.googlesource.com/72253 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
-
- 21 Oct, 2017 7 commits
-
-
Hugues Bruant authored
Increasing the map size with the benchmark iteration count introduced non-linearities and made benchmark runs slow when increasing benchtime. Rework the benchmark to use a map size independent of the iteration count and instead re-fill it when it becomes empty. Fixes #21546 Change-Id: Iafb6eb225e81830263f30b3aba0d449c361aec32 Reviewed-on: https://go-review.googlesource.com/57650 Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Nigel Tao authored
Previously, the code would only check (w*h), not (w*h*bpp). Fixes #22304 Change-Id: Iaca26d916fe4b894d460448c416b1e0b9fd68e44 Reviewed-on: https://go-review.googlesource.com/72350Reviewed-by: Rob Pike <r@golang.org>
-
David Crawshaw authored
Running test.bash goes from 30s to 10s on a linux workstation. (The coming pkg cache work in cmd/go would presumably do the same thing, but this makes all.bash faster today.) Change-Id: I8c9b0400071a412fce55b386e939906bb1c1d84d Reviewed-on: https://go-review.googlesource.com/72330 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Joe Tsai authored
CL 72150 fixes #22352 by reverting the problematic parts of that CL where the line number and column number were inconsistent with each other. This CL adds back functionality to address the issue that CL 72150 was trying to solve in the first place. That is, it reports the starting line of the record, so that users have a frame of reference to start with when debugging what went wrong. In the event of gnarly CSV files with multiline quoted strings, a parse failure likely occurs somewhere between the start of the record and the point where the parser finally detected an error. Since ParserError.{Line,Column} reports where the *error* occurs, we add a RecordLine field to report where the record starts. Also take this time to cleanup and modernize TestRead. Fixes #19019 Fixes #22352 Change-Id: I16cebf0b81922c35f75804c7073e9cddbfd11a04 Reviewed-on: https://go-review.googlesource.com/72310Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
David Crawshaw authored
For #22095 Change-Id: Idcfdfe8a94db8626392658bb93429454238f648a Reviewed-on: https://go-review.googlesource.com/70835 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Cherry Zhang authored
Code essentially mirrors AMD64 implementation. Change-Id: I39f7f099ce11fdc3772df039998cc11947bb22a2 Reviewed-on: https://go-review.googlesource.com/72270 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Alex Brainman authored
windows version of Pipe function is implemented by calling syscall.Pipe which returns handles inheritable by client process, and then adjusting returned handles with syscall.CloseOnExec. Just create non-inheritable handles in the first place. Now that we don't have a race window in the code, drop use of syscall.ForkLock. Change-Id: Ie325da7c2397b5995db4a5ddb0117e2ce1745187 Reviewed-on: https://go-review.googlesource.com/72010Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 20 Oct, 2017 3 commits
-
-
Tim Cooper authored
NewEncoder returns an io.Writer that writes all incoming bytes as hexadecimal characters to the underlying io.Writer. NewDecoder returns an io.Reader that does the inverse. Fixes #21590 Change-Id: Iebe0813faf365b42598f19a9aa41768f571dc0a8 Reviewed-on: https://go-review.googlesource.com/70210Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
David Crawshaw authored
For #22095 Change-Id: Iba3dffc782cecc15ea0e90a971a2734729984945 Reviewed-on: https://go-review.googlesource.com/70834 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
David Crawshaw authored
For #22095 Change-Id: Ica6b3391541fe5a0355620d7c4a5107cf53eee82 Reviewed-on: https://go-review.googlesource.com/70833 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-