cmd/godoc: initialize filesystem and metadata for -url

Unlike when using -http, godoc -url didn't initialize the "filesystem"
and metadata that are used when generating responses. This CL adds this
initialization, so that -url provides the same results as an HTTP
request when using -http.

Fixes issue 4335.

R=golang-dev, minux.ma
CC=golang-dev
http://codereview.appspot.com/6817075

Committer: Shenghou Ma <minux.ma@gmail.com>
net/rpc: give hint to pass a pointer to Register
Fixes issue 4325.

R=golang-dev, r
CC=golang-dev
http://codereview.appspot.com/6819081
sort: fix comment for various Search routines
Fixes issue 4205 (again).

R=r, 0xjnml
CC=golang-dev
http://codereview.appspot.com/6819082
cmd/go: invoke gcc -print-libgcc-file-name only once

R=golang-dev, rsc
CC=golang-dev
http://codereview.appspot.com/6741051
cmd/6g: fix use of large integers as indexes or array sizes.

A check for smallintconst was missing before generating the
comparisons.

Fixes issue 4348.

R=golang-dev, rsc
CC=golang-dev
http://codereview.appspot.com/6815088
CONTRIBUTORS: Add Carl Mastrangelo (Google CLA).

R=golang-dev, nigeltao
CC=golang-dev
http://codereview.appspot.com/6812095
crypto/sha1: Make sha-1 do block mixup in place

Benchmarks:

benchmark              old ns/op    new ns/op    delta
BenchmarkHash8Bytes          762          674  -11.55%
BenchmarkHash1K             8791         7375  -16.11%
BenchmarkHash8K            65094        54881  -15.69%

benchmark               old MB/s     new MB/s  speedup
BenchmarkHash8Bytes        10.50        11.86    1.13x
BenchmarkHash1K           116.48       138.84    1.19x
BenchmarkHash8K           125.85       149.27    1.19x

R=dave, rsc, iant
CC=golang-dev
http://codereview.appspot.com/6820096

Committer: Dave Cheney <dave@cheney.net>
net: implement IPv6 support for windows

Thank you zhoumichaely for original CL 5175042.

Fixes issue 1740.
Fixes issue 2315.

R=golang-dev, bradfitz, mikioh.mikioh
CC=golang-dev, zhoumichaely
http://codereview.appspot.com/6822045
cmd/gc: refactor racewalk
It is refactoring towards generic walk
+ it handles mode nodes.
Partially fixes 4228 issue.

R=golang-dev, lvd, rsc
CC=golang-dev
http://codereview.appspot.com/6775098
cmd/gc: racewalk: do not double function calls
Current racewalk transformation looks like:
x := <-makeChan().c
\/\/\/\/\/\/\/\/\/
runtime.raceread(&makeChan().c)
x := <-makeChan().c
and so makeChan() is called twice.
With this CL the transformation looks like:
x := <-makeChan().c
\/\/\/\/\/\/\/\/\/
chan *tmp = &(makeChan().c)
raceread(&*tmp)
x := <-(*tmp)
Fixes issue 4245.

R=golang-dev, rsc
CC=golang-dev
http://codereview.appspot.com/6822075
cmd/gc: racewalk: instrument returnsfromheap params
Fixes issue 4307.

R=golang-dev, rsc
CC=golang-dev
http://codereview.appspot.com/6822073
runtime/race: lazily allocate shadow memory
Currently race detector runtime maps shadow memory eagerly at process startup.
It works poorly on Windows, because Windows requires reservation in swap file
(especially problematic if several Go program runs at the same, each consuming GBs
of memory).
With this change race detector maps shadow memory lazily, so Go runtime must notify
about all new heap memory.
It will help with Windows port, but also eliminates scary 16TB virtual mememory
consumption in top output (which sometimes confuses some monitoring scripts).

R=golang-dev, rsc
CC=golang-dev
http://codereview.appspot.com/6811085
net: fix protocol number for IPv6 test

The protocol number of ICMP for IPv6 is 58, not 1.

R=golang-dev, bradfitz
CC=golang-dev
http://codereview.appspot.com/6810093
cmd/gc: fix go:nointerface export comment

R=ken
CC=golang-dev
http://codereview.appspot.com/6815073
cmd/gc: annotate local variables with unique ids for inlining

Avoids problems with local declarations shadowing other names.
We write a more explicit form than the incoming program, so there
may be additional type annotations. For example:

        int := "hello"
        j := 2

would normally turn into

        var int string = "hello"
        var j int = 2

but the int variable shadows the int type in the second line.

This CL marks all local variables with a per-function sequence number,
so that this would instead be:

        var int·1 string = "hello"
        var j·2 int = 2

Fixes issue 4326.

R=ken2
CC=golang-dev
http://codereview.appspot.com/6816100
crypto/x509: fix DecryptPEMBlock

The current implement can fail when the
block size is not a multiple of 8 bytes.
This CL makes it work, and also checks that the
data is in fact a multiple of the block size.

R=agl, agl
CC=golang-dev
http://codereview.appspot.com/6827058
reflect: fix test of whether structs are identical

The old code worked with gc, I assume because the linker
unified identical strings, but it failed with gccgo.

R=rsc
CC=gobot, golang-dev
http://codereview.appspot.com/6826063
runtime/race: add Windows support
This is copy of https://codereview.appspot.com/6810080
but sent from another account (dvyukov@gmail.com is not in CONTRIBUTORS).

R=rsc
CC=golang-dev
http://codereview.appspot.com/6827060
cmd/gc: fix escape analysis bug

The code assumed that the only choices were EscNone, EscScope, and EscHeap,
so that it makes sense to set EscScope only if the current setting is EscNone.
Now that we have the many variants of EscReturn, this logic is false, and it was
causing important EscScopes to be ignored in favor of EscReturn.

Fixes issue 4360.

R=ken2
CC=golang-dev, lvd
http://codereview.appspot.com/6816103
api: refresh next.txt

R=golang-dev, iant
CC=golang-dev
http://codereview.appspot.com/6811092