misc/emacs: update go-mode syntax table and comment handling as
suggested by pkleiweg.

Fixes issue 3471.

R=adonovan, pkleiweg, rsc
CC=golang-dev
https://codereview.appspot.com/7060056
doc: Mention godoc's handling of example functions.

Fixes issue 4625.

R=iant, adg
CC=golang-dev
https://codereview.appspot.com/7064052

Committer: Ian Lance Taylor <iant@golang.org>
net/http: don't buffer request writing if dest is already buffered

The old code made it impossible to implement a reverse proxy
with anything less than 4k write granularity to the backends.

R=golang-dev, adg
CC=golang-dev
https://codereview.appspot.com/7060059
utf8: fix typo.

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

Committer: Ian Lance Taylor <iant@golang.org>
spec: clarify short variable declaration corner cases

Fixes issue 4612.

R=rsc, iant, ken, r
CC=golang-dev
https://codereview.appspot.com/7076043
go/parser: better error message for declaration error

Fixes issue 4616.

R=rsc
CC=golang-dev
https://codereview.appspot.com/7069049
go/printer, gofmt: don't print unneeded parentheses around parameter types

Fixes issue 4624.

R=rsc
CC=golang-dev
https://codereview.appspot.com/7058052
cmd/dist: drop unneeded clang flags

Our source no longer needs these flags set to build cleanly using clang.

Tested with

* Ubuntu clang version 3.0-6ubuntu3 (tags/RELEASE_30/final) (based on LLVM 3.0) on i386
* clang version 3.2 (tags/RELEASE_32/final) on amd64 cross compiling all platforms

R=golang-dev, rsc
CC=golang-dev
https://codereview.appspot.com/7058053
cmd/gc: add space to export data to match linker expectations

The linker split PKGDEF into (prefix, name, def) pairs,
and defines def to begin after a space following the identifier.
This is totally wrong for the following export data:

        func "".FunctionName()
        var SomethingCompletelyUnrelated int

The linker would parse
    name=`"".FunctionName()\n\tvar`
    def=`SomethingCompletelyUnrelated int`
since there is no space after FunctionName.

R=minux.ma, rsc
CC=golang-dev
https://codereview.appspot.com/7068051
go/types: don't parse imported packages multiple times.

R=dave, golang-dev, rsc
CC=golang-dev
https://codereview.appspot.com/7068044
cmd/go: get -m options from GOARCH when using gccgo

R=golang-dev, bradfitz, minux.ma
CC=golang-dev
https://codereview.appspot.com/7057063
cmd/go: remove $GOROOT as a go get target

Fixes issue 4186.

Back in the day, before the Go 1.0 release, $GOROOT was mandatory for building from source. Fast forward to now and $GOPATH is mandatory and $GOROOT is optional, and mainly used by those who use the binary distribution in uncommon places.

For example, most novices at least know about `sudo` as they would have used it to install the binary tarball into /usr/local. It is logical they would use the `sudo` hammer to `go get` other Go packages when faced with a permission error talking about the path they just had to use `sudo` on last time.

Even if they had read the documentation and set $GOPATH, go get will not work as expected as `sudo` masks most environment variables.

llucky(~) % ~/go/bin/go env | grep GOPATH
GOPATH="/home/dfc"
lucky(~) % sudo ~/go/bin/go env | grep GOPATH
GOPATH=""

This CL therefore proposes to remove support for using `go get` to download source into $GOROOT.

This CL also proposes an error when GOPATH=$GOROOT, as this is another place where new Go users can get stuck.

Further discussion: https://groups.google.com/d/topic/golang-nuts/VIg3fjHiHRI/discussion

R=rsc, adg, minux.ma
CC=golang-dev
https://codereview.appspot.com/6941058
cmd/ld: fix incompatible type signatures on Plan 9

Changeset f483bfe81114 moved ELF generation to the architecture
independent code and in doing so added a Section* to the Sym
type and an Elf64_Shdr* to the Section type.

This caused the Plan 9 compilers to complain about incompatible
type signatures in the many files that reference the Sym type.

R=rsc, dave
CC=golang-dev
https://codereview.appspot.com/7057058
container/list: avoid memory leaks

R=golang-dev, dsymonds
CC=golang-dev
https://codereview.appspot.com/7065067
cmd/cgo: for gccgo: use intgo, don't use slice as void return type

R=golang-dev, rsc
CC=golang-dev
https://codereview.appspot.com/7057064
doc/contribute: Link to IssueTracker docs for more "special sentences"

Update issue 4582.

R=nigeltao, dave, adg
CC=golang-dev
https://codereview.appspot.com/7070065

Committer: Andrew Gerrand <adg@golang.org>
runtime: less aggressive per-thread stack segment caching
Introduce global stack segment cache and limit per-thread cache size.
This greatly reduces StackSys memory on workloads that create lots of threads.

benchmark                      old ns/op    new ns/op    delta
BenchmarkStackGrowth                 665          656   -1.35%
BenchmarkStackGrowth-2               333          328   -1.50%
BenchmarkStackGrowth-4               224          172  -23.21%
BenchmarkStackGrowth-8               124           91  -26.13%
BenchmarkStackGrowth-16               82           47  -41.94%
BenchmarkStackGrowth-32               73           40  -44.79%

BenchmarkStackGrowthDeep           97231        94391   -2.92%
BenchmarkStackGrowthDeep-2         47230        58562  +23.99%
BenchmarkStackGrowthDeep-4         24993        49356  +97.48%
BenchmarkStackGrowthDeep-8         15105        30072  +99.09%
BenchmarkStackGrowthDeep-16        10005        15623  +56.15%
BenchmarkStackGrowthDeep-32        12517        13069   +4.41%

TestStackMem#1,MB                  310          12       -96.13%
TestStackMem#2,MB                  296          14       -95.27%
TestStackMem#3,MB                  479          14       -97.08%

TestStackMem#1,sec                 3.22         2.26     -29.81%
TestStackMem#2,sec                 2.43         2.15     -11.52%
TestStackMem#3,sec                 2.50         2.38      -4.80%

R=sougou, no.smile.face, rsc
CC=golang-dev, msolomon
https://codereview.appspot.com/7029044
runtime: faster segmented stacks
benchmark                      old ns/op    new ns/op    delta
BenchmarkStackGrowth                 665          548  -17.59%
BenchmarkStackGrowth-2               333          274  -17.72%
BenchmarkStackGrowth-4               224          168  -25.00%
BenchmarkStackGrowth-8               124           91  -26.21%
BenchmarkStackGrowth-16               82           70  -14.55%
BenchmarkStackGrowth-32               73           59  -19.49%

R=nigeltao, minux.ma, rsc
CC=golang-dev
https://codereview.appspot.com/7026044