cmd/go: prevent packages from being cleaned more than once

If a package was listed as a dependency from multiple places, it
could have been cleaned repeatedly.

R=golang-dev, dave, rsc, seed, bradfitz
CC=golang-dev, minux.ma
https://codereview.appspot.com/7482043

Committer: Brad Fitzpatrick <bradfitz@golang.org>
runtime: add concurrent map read test

Currently crashes, so disabled.

Update issue 5179

R=golang-dev, khr
CC=golang-dev
https://codereview.appspot.com/8222044
cmd/gc: do not reuse bool temporaries for composite equality.

Reusing it when multiple comparisons occurred in the same
function call led to bad overwriting.

Fixes issue 5162.

R=golang-dev, daniel.morsing
CC=golang-dev
https://codereview.appspot.com/8174047
cmd/ld: add -extld and -extldflags options

Permits specifying the linker to use, and trailing flags to
pass to that linker, when linking in external mode.  External
mode linking is used when building a package that uses cgo, as
described in the cgo docs.

Also document -linkmode and -tmpdir.

R=golang-dev, r
CC=golang-dev
https://codereview.appspot.com/8225043
cmd/cc/cc.h: Add a #pragma for %S used (only) in cmd/cc/sub.c.
Eliminates a format consistency warning.

R=gloang-dev, r
CC=golang-dev
https://codereview.appspot.com/8217043

Committer: Rob Pike <r@golang.org>
sync/atomic: make unaligned 64-bit atomic operation panic on ARM
use MOVW.NE instead of BEQ and MOVW.

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

Committer: Rob Pike <r@golang.org>
cmd/gc: use appropriate verb to print array type length.

Fixes issue 4730.

R=golang-dev, bradfitz
CC=golang-dev
https://codereview.appspot.com/8229043
cmd/godoc: better error message for missing index files

Fixes issue 5024.

R=golang-dev, r
CC=golang-dev
https://codereview.appspot.com/8222045
testing: document that Log and Logf do not usually produce output
The text is printed only if the test fails or -test.v is set.
Document this behavior in the testing package and 'go help test'.
Also put a 'go install' into mkdoc.sh so I don't get tricked by the
process of updating the documentation ever again.

Fixes issue 5174.

R=golang-dev, dsymonds
CC=golang-dev
https://codereview.appspot.com/8118047
doc/codewalk/markov: fix slice error in description
Fixes issue 5176.

R=golang-dev, bradfitz
CC=golang-dev
https://codereview.appspot.com/8118046
runtime: make map reads multithreaded safe.

Doing grow work on reads is not multithreaded safe.
Changed code to do grow work only on inserts & deletes.

This is a short-term fix, eventually we'll want to do
grow work in parallel to recover the space of the old
table.

Fixes issue 5120.

R=bradfitz, khr
CC=golang-dev
https://codereview.appspot.com/8242043
doc/go1.1.html: add a note about additional platforms

Mention support for NetBSD, OpenBSD, and cgo for linux/arm.

R=golang-dev, dvyukov, r, minux.ma, adg, bradfitz, adg
CC=golang-dev
https://codereview.appspot.com/8152043
cmd/gc: recognize (a.b[0]<<1 | a.b[0]>>31) as a rotate, not just
(x<<1 | x>>31).

Fixes issue 5084.

On the SHA3 benchmark proposals at
https://codereview.appspot.com/7760044/

benchmark                       old ns/op    new ns/op    delta
BenchmarkPermutationFunction         1288         1191   -7.53%
BenchmarkSingleByteWrite             5795         5811   +0.28%
BenchmarkBlockWrite512                178          179   +0.56%
BenchmarkBlockWrite384                230          233   +1.30%
BenchmarkBlockWrite256                282          286   +1.42%
BenchmarkBlockWrite224                301          306   +1.66%
BenchmarkBulkHashSHA3_512          326885       304548   -6.83%
BenchmarkBulkHashSHA3_384          234839       220074   -6.29%
BenchmarkBulkHashSHA3_256          186969       175790   -5.98%
BenchmarkBulkHashSHA3_224          178133       167489   -5.98%

For a function like

func g() {
        x = a[3]<<20 | a[3]>>12
}

the asm goes from

0006 (main.go:10) TEXT    g+0(SB),$0-0
0007 (main.go:10) MOVL    a+12(SB),BP
0008 (main.go:10) LOCALS  ,$0
0009 (main.go:11) MOVL    BP,BX
0010 (main.go:11) SHLL    $20,BX
0011 (main.go:11) SHRL    $12,BP
0012 (main.go:11) ORL     BP,BX
0013 (main.go:11) MOVL    BX,x+0(SB)
0014 (main.go:12) RET     ,

to

0006 (main.go:10) TEXT    g+0(SB),$0-0
0007 (main.go:10) LOCALS  ,$0
0008 (main.go:11) MOVL    a+12(SB),BX
0009 (main.go:11) ROLL    $20,BX
0010 (main.go:11) MOVL    BX,x+0(SB)
0011 (main.go:12) RET     ,

R=rsc, iant, remyoudompheng
CC=golang-dev, jcb
https://codereview.appspot.com/7944043