archive/tar,zip: implement the os.FileInfo interface correctly.
This is potentially an API-breaking change, but it is an important bug fix.

The CL https://codereview.appspot.com/7305072/ added stuff to make
the tar file look more like a file system internally, including providing an
implementation of os.FileInfo for the file headers within the archive.
But the code is incorrect because FileInfo.Name is supposed to return
the base name only; this implementation returns the full path. A round
trip test added in the same shows this in action, as the slashes are
preserved as we create a header using the local implementation of
FileInfo.

The CL here changes the behavior of the tar (and zip) FileInfo to honor
the Go spec for that interface. It also clarifies that the FileInfoHeader
function, which takes a FileInfo as an argument, will therefore create
a header with only the base name of the file recorded, and that
subsequent adjustment may be necessary.

There may be code out there that depends on the broken behavior.
We can call out the risk in the release notes.

Fixes issue 6180.

R=golang-dev, dsymonds, adg, bradfitz
CC=golang-dev
https://codereview.appspot.com/13118043
doc: remove a insignificant line from go1.2.txt

Not a user-visible API change.  Just a minor garbage
win in contrived cases.

Also, the package is io/ioutil.

R=golang-dev, r
CC=golang-dev
https://codereview.appspot.com/12987044
doc/go1.2.txt: archive/tar's fixed FileInfo

R=golang-dev, dsymonds
CC=golang-dev
https://codereview.appspot.com/13140043
doc/go1.2.txt: net: performance improvement on BSD

R=golang-dev, r
CC=golang-dev
https://codereview.appspot.com/12975044
text/template: implement comparison of basic types

Add eq, lt, etc. to allow one to do simple comparisons.
It's basic types only (booleans, integers, unsigned integers,
floats, complex, string) because that's easy, easy to define,
and covers the great majority of useful cases, while leaving
open the possibility of a more sweeping definition later.

{{if eq .X .Y}}X and Y are equal{{else}}X and Y are unequal{{end}}

R=golang-dev, adg
CC=golang-dev
https://codereview.appspot.com/13091045
doc/go1.2.txt: text/template: add comparison functions

R=golang-dev, dsymonds
CC=golang-dev
https://codereview.appspot.com/12801045
all: protect alloc count tests by -testing.short

Update issue 5000
Should reduce the flakiness a little. Malloc counting is important
to general testing but not to the build dashboard, which uses -short.

R=golang-dev, dsymonds
CC=golang-dev
https://codereview.appspot.com/12866047
C: add Todd Wang (Google CLA).

R=r, adg
CC=golang-dev, toddwang
https://codereview.appspot.com/13149043
reflect: Fix Convert to add indir bit when the value is actually a
pointer.  An example that triggers the bad behavior on a 64bit
machine http://play.golang.org/p/GrNFakAYLN
        rv1 := reflect.ValueOf(complex128(0))
        rt := rv1.Type()
        rv2 := rv1.Convert(rt)
        rv3 := reflect.New(rt).Elem()
        rv3.Set(rv2)

Running the code fails with the following:
        panic: reflect: internal error: storeIword of 16-byte value

I've tested on a 64bit machine and verified this fixes the panic.  I
haven't tested on a 32bit machine so I haven't verified the other
cases, but they follow logically.

R=golang-dev, r, iant
CC=golang-dev
https://codereview.appspot.com/12805045

Committer: Rob Pike <r@golang.org>
doc/go1.2.txt: cmd/5l: support for external linking for linux/arm

R=r
CC=golang-dev
https://codereview.appspot.com/13019044

Committer: Rob Pike <r@golang.org>
cmd/5g, cmd/6g, cmd/8g: faster compilation
Replace linked list walk with memset.
This reduces CPU time taken by 'go install -a std' by ~10%.
Before:
real		user		sys
0m23.561s	0m16.625s	0m5.848s
0m23.766s	0m16.624s	0m5.846s
0m23.742s	0m16.621s	0m5.868s
after:
0m22.714s	0m14.858s	0m6.138s
0m22.644s	0m14.875s	0m6.120s
0m22.604s	0m14.854s	0m6.081s

R=golang-dev, r
CC=golang-dev
https://codereview.appspot.com/13084043
net: ensure that Read/Write on all platforms do 0 mallocs

R=golang-dev, r
CC=golang-dev
https://codereview.appspot.com/12780045
time: make timers heap 4-ary

This slightly improves performance when a lot of timers are present

$ misc/benchcmp ../old_timers_m.txt ../new_timers_m.txt
benchmark                           old ns/op    new ns/op    delta
BenchmarkAfterFunc                       6884         6605   -4.05%
BenchmarkAfterFunc-2                     4473         4144   -7.36%
BenchmarkAfterFunc-3                     8601         6185  -28.09%
BenchmarkAfterFunc-4                     9378         8773   -6.45%
BenchmarkAfter                           7237         7278   +0.57%
BenchmarkAfter-2                         4638         3923  -15.42%
BenchmarkAfter-3                         8751         6239  -28.71%
BenchmarkAfter-4                         9223         8737   -5.27%
BenchmarkStop                             603          496  -17.74%
BenchmarkStop-2                           795          577  -27.42%
BenchmarkStop-3                           982          680  -30.75%
BenchmarkStop-4                          1164          739  -36.51%
BenchmarkSimultaneousAfterFunc            657          593   -9.74%
BenchmarkSimultaneousAfterFunc-2          816          757   -7.23%
BenchmarkSimultaneousAfterFunc-3          844          830   -1.66%
BenchmarkSimultaneousAfterFunc-4          785          771   -1.78%
BenchmarkStartStop                        238          239   +0.42%
BenchmarkStartStop-2                      249          234   -6.02%
BenchmarkStartStop-3                      271          268   -1.11%
BenchmarkStartStop-4                      293          295   +0.68%

R=golang-dev, dvyukov, bradfitz, r
CC=golang-dev
https://codereview.appspot.com/13094043

Committer: Dmitriy Vyukov <dvyukov@google.com>
undo CL 13010045 / 04f8101b46dd

Update the original change but do not read interface types in
the arguments area.  Once the arguments area is zeroed as the
locals area is we can safely read interface type values there
too.

««« original CL description
undo CL 12785045 / 71ce80dc4195

This has broken the 32-bit builds.

««« original CL description
cmd/gc, runtime: use type information to scan interface values

R=golang-dev, rsc, dvyukov
CC=golang-dev
https://codereview.appspot.com/12785045
»»»

R=khr, golang-dev, khr
CC=golang-dev
https://codereview.appspot.com/13010045
»»»

R=khr, khr
CC=golang-dev
https://codereview.appspot.com/13073045
runtime: do not trigger GC on g0
GC acquires worldsema, which is a goroutine-level semaphore
which parks goroutines. g0 can not be parked.
Fixes issue 6193.

R=khr, khr
CC=golang-dev
https://codereview.appspot.com/12880045
syscall: fix stale URL for linux/arm unistd.h

R=golang-dev, bradfitz
CC=golang-dev
https://codereview.appspot.com/13105047
doc: hide playground on front page if playground disabled

Fixes issue 5630.

R=golang-dev, bradfitz
CC=golang-dev
https://codereview.appspot.com/12884046
net: remove redundant argument check from Dial on udp, unix networks

The net package consists of thin three layers like the follwoing;

- Exposed API, that contains net.Dial, net.DialUDP, net.DialUnix
- Socket and network file descriptor, that contains net.netFD and
  its methods, helper functions such as dialUDP, dialUnix
- Network pollster, that contains net.pollDesc and its methods

This CL removes redundant argument check which is already done by
API layer.

R=golang-dev, dave, bradfitz
CC=golang-dev
https://codereview.appspot.com/13092043
net: add minimal internet protocol number information base

This CL adds minimal information for supporting platforms that don't
have a complete list of internet protocol numbers.

Fixes issue 5344.

R=golang-dev, bradfitz
CC=golang-dev
https://codereview.appspot.com/12898045
net: fix misspelled variable name (fixes windows build)

R=golang-dev, adg
CC=golang-dev, mikioh.mikioh
https://codereview.appspot.com/12848047