all: fix some vet-found printf errors

R=golang-dev, iant
CC=golang-dev
https://codereview.appspot.com/7393059
runtime: precise garbage collection of channels

This changeset adds a mostly-precise garbage collection of channels.
The garbage collection support code in the linker isn't recognizing
channel types yet.

Fixes issue http://stackoverflow.com/questions/14712586/memory-consumption-skyrocket

R=dvyukov, rsc, bradfitz
CC=dave, golang-dev, minux.ma, remyoudompheng
https://codereview.appspot.com/7307086

Committer: Russ Cox <rsc@golang.org>
cmd/gc: can stop tracking gotype in regopt

Now that the type information is in TYPE instructions
that are not rewritten by the optimization passes,
we don't have to try to preserve the type information
(no longer) attached to MOV instructions.

R=ken2
CC=golang-dev
https://codereview.appspot.com/7402054
net/http/cgi: make tests compile on plan9

Don't reference the non-portable syscall.Signal(0).

Maybe they'll pass too. Untested. plan9 bit from
Akshat Kumar.

R=golang-dev, akumar
CC=golang-dev
https://codereview.appspot.com/7370049
doc: fix wiki codelab description of template parsing

R=golang-dev, r
CC=golang-dev
https://codereview.appspot.com/7372048
runtime/cgo: fix deadlock involving signals on darwin
sigprocmask() is process-wide on darwin, so two concurrent
libcgo_sys_thread_start() can result in all signals permanently
blocked, which in particular blocks handling of nil derefs.
Fixes issue 4833.

R=golang-dev, dave, rsc
CC=golang-dev
https://codereview.appspot.com/7324058

Committer: Russ Cox <rsc@golang.org>
syscall: Plan9, amd64: fix syscall error handling in assembly

Syscalls return `-1' on error and the representation is always
32-bits. The `$-1' literal in 64-bit assembly is always the
64-bit representation. So this change makes sure that we
always do a 32-bit comparison when checking for error.
Also makes sure that in the error case, we return a 64-bit
`-1' from runtime.seek.

Fixes the arithmetic for handling the error-string in
runtime.Syscall6.

R=golang-dev, rminnich, rsc, ality, minux.ma
CC=golang-dev
https://codereview.appspot.com/7399052

Committer: Ron Minnich <rminnich@gmail.com>
libmach, cmd/5a, cmd/5c, cmd/5g, cmd/5l: enable DWARF type info for Linux/ARM
Fixes issue 3747.

Update issue 4912
This CL adds gotype into .5 object file.

R=golang-dev, rsc
CC=golang-dev
https://codereview.appspot.com/7376054
doc: document that weekly.html is only a historical reference

Fixes issue 4810.

R=golang-dev, r
CC=golang-dev
https://codereview.appspot.com/7401050
time: handle very large sleep durations

Fixes issue 4903.

R=golang-dev, daniel.morsing, dave, r
CC=golang-dev
https://codereview.appspot.com/7388056
strconv, fmt: clarify behavior of CanBackquote and "%#q".
Fixes issue 4858.

R=golang-dev, bradfitz, r, rsc
CC=golang-dev
https://codereview.appspot.com/7387044
cmd/gc: apply escape analysis results to closures.

This avoids an allocation when closures are used
as "macros", in Walk idioms, or as argument to defer.

benchmark                old ns/op    new ns/op    delta
BenchmarkSearchWrappers       1171          354  -69.77%
BenchmarkCallClosure             3            3  -12.54%
BenchmarkCallClosure1          119            7  -93.95%
BenchmarkCallClosure2          183           74  -59.18%
BenchmarkCallClosure3          187           75  -59.57%
BenchmarkCallClosure4          187           76  -58.98%

Compared to Go 1:
benchmark                  old ns/op    new ns/op    delta
BenchmarkSearchWrappers         3208          354  -88.97%

Fixes issue 3520.

R=daniel.morsing, bradfitz, minux.ma, dave, rsc
CC=golang-dev
https://codereview.appspot.com/7397056
cmd/gc: fix corruption in export of &T{} literals.

Composite literals using the &T{} form were incorrectly
exported, leading to weird errors at import time.

Fixes issue 4879.

R=golang-dev, rsc
CC=golang-dev
https://codereview.appspot.com/7395054
cmd/gc: accept cases with same value but different types in switch.

Fixes issue 4781.

R=golang-dev, rsc
CC=golang-dev
https://codereview.appspot.com/7365056
cmd/vet: move the tests into separate files
Then mark them with a build tag so they're not compiled into the binary.
They are called test_*.go rather than *_test.go because they are not
for go test. Use make test to test the command.

R=golang-dev, adg
CC=golang-dev
https://codereview.appspot.com/7377052
net: Implement FileListener, FileConn, and File methods for Plan 9

Functions for representing network connections as files
and vice versa, on Plan 9.

Representing network connections as files is not so
straight-forward, because a network connection on Plan 9
is represented by a host of files rather than a single
file descriptor (as is the case on UNIX). We use the
type system to distinguish between listeners and
connections, returning the control file in the former
case and the data file in the latter case.

R=rsc, rminnich, ality, akumar, bradfitz
CC=golang-dev
https://codereview.appspot.com/7235068

Committer: Ron Minnich <rminnich@gmail.com>
cmd/vet: silence error from type checker unless verbose is set.
Also restores the checking of _test.go files, which disappeared
as a result of the package-at-a-time change.
Fixes issue 4895.

R=golang-dev, rsc
CC=golang-dev
https://codereview.appspot.com/7399051
exp/cookiejar: implement IDNA/Punycode's toASCII.

R=dr.volker.dobler
CC=golang-dev
https://codereview.appspot.com/7398049
syscall, runtime: Plan 9: use nanotime syscall on amd64

Separates the implementation of nanotime on 64-bit
version of Plan 9 from that on the 32-bit version.
The former uses a syscall.

R=rsc, rminnich, ality
CC=golang-dev
https://codereview.appspot.com/7379051

Committer: Ron Minnich <rminnich@gmail.com>
os: use windows ReadConsole to read from console

Fixes issue 4760.

R=golang-dev, minux.ma, bradfitz
CC=golang-dev
https://codereview.appspot.com/7312053