net: return correct point-to-point interface address on linux

On Linux point-to-point interface an IFA_ADDRESS attribute
represents a peer address. For a correct interface address
we should take an IFA_LOCAL attribute instead.

Fixes issue 4839.

R=golang-dev, dave, rsc
CC=golang-dev
https://codereview.appspot.com/7352045
net: set up IPv6 scoped addressing zone for network facilities

This CL changes nothing to existing API behavior, just sets up
Zone in IPNet and IPAddr structures if possible.

Also does small simplification.

Update issue 4234.

R=rsc, dave
CC=golang-dev
https://codereview.appspot.com/7300081
net: Plan 9: open data file and set remote-addr properly

The data file should be opened when a Conn is first
established, rather than waiting for the first Read or
Write.

Upon Close, we now make sure to try to close both, the
ctl as well as data files and set both to nil, even in
the face of errors, instead of returning early.

The Accept call was not setting the remote address
of the connection properly. Now, we read the correct
file.

Make functions that establish Conn use newTCPConn
or newUDPConn.

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

Committer: Anthony Martin <ality@pbrane.org>
runtime: add conversion specifier to printf for char values

R=r, golang-dev
CC=golang-dev
https://codereview.appspot.com/7327053
windows: fix syscall.SidTypeUser so following consts have correct values.

Fixes issue 4844.

R=golang-dev, alex.brainman
CC=golang-dev
https://codereview.appspot.com/7366043

Committer: Alex Brainman <alex.brainman@gmail.com>
path/filepath, os/exec: unquote PATH elements on Windows

On Windows, directory names in PATH can be fully or partially quoted
in double quotes ('"'), but the path names as used by most APIs must
be unquoted. In addition, quoted names can contain the semicolon
(';') character, which is otherwise used as ListSeparator.

This CL changes SplitList in path/filepath and LookPath in os/exec
to only	treat unquoted semicolons as separators, and to unquote the
separated elements.

(In addition, fix harmless test bug I introduced for LookPath on Unix.)

Related discussion thread:
https://groups.google.com/d/msg/golang-nuts/PXCr10DsRb4/sawZBM7scYgJ

R=rsc, minux.ma, mccoyst, alex.brainman, iant
CC=golang-dev
https://codereview.appspot.com/7181047

Committer: Alex Brainman <alex.brainman@gmail.com>
doc: fix old broken link

The Camlistore code tree rearranged after the go tool came
out. (I didn't know this link was here until I saw it in
some logs.)

R=adg
CC=golang-dev
https://codereview.appspot.com/7374043
runtime: ensure forward progress of runtime.Gosched() for locked goroutines
The removed code leads to the situation when M executes the same locked G again
and again.
This is https://codereview.appspot.com/7310096 but with return instead of break
in the nested switch.
Fixes issue 4820.

R=golang-dev, alex.brainman, rsc
CC=golang-dev
https://codereview.appspot.com/7304102
runtime: fix deadlock detector false negative
Fixes issue 4819.

R=golang-dev, rsc
CC=golang-dev
https://codereview.appspot.com/7322086
runtime/debug: deflake TestFreeOSMemory
This is followup to https://codereview.appspot.com/7319050/

R=golang-dev, dave
CC=golang-dev
https://codereview.appspot.com/7379043
runtime: introduce entersyscallblock()
In preparation for the new scheduler.

R=golang-dev, rsc
CC=golang-dev
https://codereview.appspot.com/7386044
runtime: prepare for M's running w/o mcache
Can not happen ATM. In preparation for the new scheduler.

R=golang-dev, rsc
CC=golang-dev
https://codereview.appspot.com/7388043
go/types: support for customizable Alignof, Sizeof

(Offsetof is a function of Alignof and Sizeof.)

- removed IntSize, PtrSize from Context (set Sizeof instead)
- GcImporter needs a Context now (it needs to have
  access to Sizeof/Alignof)
- removed exported Size field from Basic (use Sizeof)
- added Offset to Field
- added Alignment, Size to Struct

R=adonovan
CC=golang-dev
https://codereview.appspot.com/7357046
bufio: new Scanner interface

Add a new, simple interface for scanning (probably textual) data,
based on a new type called Scanner. It does its own internal buffering,
so should be plausibly efficient even without injecting a bufio.Reader.
The format of the input is defined by a "split function", by default
splitting into lines. Other implemented split functions include single
bytes, single runes, and space-separated words.

Here's the loop to scan stdin as a file of lines:

        s := bufio.NewScanner(os.Stdin)
        for s.Scan() {
                fmt.Printf("%s\n", s.Bytes())
        }
        if s.Err() != nil {
                log.Fatal(s.Err())
        }

While we're dealing with spaces, define what space means to strings.Fields.

Fixes issue 4802.

R=adg, rogpeppe, bradfitz, rsc
CC=golang-dev
https://codereview.appspot.com/7322088
cmd/godoc: better console error message for example error

(per r's suggestion)

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