]> Cypherpunks repositories - gostls13.git/log
gostls13.git
11 years agosyscall: add Flock_t.Lock method
Brad Fitzpatrick [Tue, 21 Jan 2014 22:52:44 +0000 (14:52 -0800)]
syscall: add Flock_t.Lock method

Fixes #7059

R=golang-codereviews, iant, mikioh.mikioh
CC=golang-codereviews
https://golang.org/cl/53470043

11 years agoruntime: if "panic during panic"'s stacktrace fails, don't recurse.
Keith Randall [Tue, 21 Jan 2014 22:34:37 +0000 (14:34 -0800)]
runtime: if "panic during panic"'s stacktrace fails, don't recurse.

R=golang-codereviews, iant, khr, dvyukov
CC=golang-codereviews
https://golang.org/cl/54160043

11 years agocmd/link: add testdata/pclntab.6 (fix build)
Russ Cox [Tue, 21 Jan 2014 22:12:30 +0000 (17:12 -0500)]
cmd/link: add testdata/pclntab.6 (fix build)

Sorry, "hg status" hides .6 files by default.
We should probably fix that.

TBR=iant
CC=golang-codereviews
https://golang.org/cl/55290043

11 years agocmd/gc: document -pack flag
Ian Lance Taylor [Tue, 21 Jan 2014 19:54:21 +0000 (11:54 -0800)]
cmd/gc: document -pack flag

R=golang-codereviews, r
CC=golang-codereviews
https://golang.org/cl/55140044

11 years agocmd/link: pclntab generation
Russ Cox [Tue, 21 Jan 2014 18:47:47 +0000 (13:47 -0500)]
cmd/link: pclntab generation

R=iant
CC=golang-codereviews
https://golang.org/cl/53820043

11 years agocmd/gc: fix build
Russ Cox [Tue, 21 Jan 2014 18:46:14 +0000 (13:46 -0500)]
cmd/gc: fix build

The AKILL stuff is not ready yet and
was not meant to be in the last CL.

R=iant
CC=golang-codereviews
https://golang.org/cl/55170043

11 years agocmd/gc: do not follow uintptr passed as function argument
Russ Cox [Tue, 21 Jan 2014 18:31:34 +0000 (13:31 -0500)]
cmd/gc: do not follow uintptr passed as function argument

The escape analysis works by tracing assignment paths from
variables that start with pointer type, or addresses of variables
(addresses are always pointers).  It does allow non-pointers
in the path, so that in this code it sees x's value escape into y:

        var x *[10]int
        y := (*int)(unsafe.Pointer(uintptr(unsafe.Pointer(x))+32))

It must allow uintptr in order to see through this kind of
"pointer arithmetic".

It also traces such values if they end up as uintptrs passed to
functions. This used to be important because packages like
encoding/gob passed around uintptrs holding real pointers.

The introduction of precise collection of stacks has forced
code to be more honest about which declared stack variables
hold pointers and which do not. In particular, the garbage
collector no longer sees pointers stored in uintptr variables.
Because of this, packages like encoding/gob have been fixed.

There is not much point in the escape analysis accepting
uintptrs as holding pointers at call boundaries if the garbage
collector does not.

Excluding uintptr-valued arguments brings the escape
analysis in line with the garbage collector and has the
useful side effect of making arguments to syscall.Syscall
not appear to escape.

That is, this CL should yield the same benefits as
CL 45930043 (rolled back in CL 53870043), but it does
so by making uintptrs less special, not more.

R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/53940043

11 years agocmd/gc: fix crash in -live debugging output
Russ Cox [Tue, 21 Jan 2014 18:31:22 +0000 (13:31 -0500)]
cmd/gc: fix crash in -live debugging output

R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/53930043

11 years agocmd/ld: support archives larger than 2G
Ian Lance Taylor [Tue, 21 Jan 2014 17:29:19 +0000 (09:29 -0800)]
cmd/ld: support archives larger than 2G

R=golang-codereviews, gobot, rsc
CC=golang-codereviews
https://golang.org/cl/53950043

11 years agoliblink: check for symgrow size too large
Ian Lance Taylor [Tue, 21 Jan 2014 14:12:54 +0000 (06:12 -0800)]
liblink: check for symgrow size too large

Many calls to symgrow pass a vlong value.  Change the function
to not implicitly truncate, and to instead give an error if
the value is too large.

R=golang-codereviews, gobot, rsc
CC=golang-codereviews
https://golang.org/cl/54010043

11 years agoruntime: do not collect GC roots explicitly
Dmitriy Vyukov [Tue, 21 Jan 2014 09:06:57 +0000 (13:06 +0400)]
runtime: do not collect GC roots explicitly
Currently we collect (add) all roots into a global array in a single-threaded GC phase.
This hinders parallelism.
With this change we just kick off parallel for for number_of_goroutines+5 iterations.
Then parallel for callback decides whether it needs to scan stack of a goroutine
scan data segment, scan finalizers, etc. This eliminates the single-threaded phase entirely.
This requires to store all goroutines in an array instead of a linked list
(to allow direct indexing).
This CL also removes DebugScan functionality. It is broken because it uses
unbounded stack, so it can not run on g0. When it was working, I've found
it helpless for debugging issues because the two algorithms are too different now.
This change would require updating the DebugScan, so it's simpler to just delete it.

With 8 threads this change reduces GC pause by ~6%, while keeping cputime roughly the same.

garbage-8
allocated                 2987886      2989221      +0.04%
allocs                      62885        62887      +0.00%
cputime                  21286000     21272000      -0.07%
gc-pause-one             26633247     24885421      -6.56%
gc-pause-total             873570       811264      -7.13%
rss                     242089984    242515968      +0.18%
sys-gc                   13934336     13869056      -0.47%
sys-heap                205062144    205062144      +0.00%
sys-other                12628288     12628288      +0.00%
sys-stack                11534336     11927552      +3.41%
sys-total               243159104    243487040      +0.13%
time                      2809477      2740795      -2.44%

R=golang-codereviews, rsc
CC=cshapiro, golang-codereviews, khr
https://golang.org/cl/46860043

11 years agoruntime: delete proc.p
Dmitriy Vyukov [Tue, 21 Jan 2014 08:49:55 +0000 (12:49 +0400)]
runtime: delete proc.p
It's entirely outdated today.

R=golang-codereviews, bradfitz, gobot, r
CC=golang-codereviews
https://golang.org/cl/43500045

11 years agoruntime: per-P defer pool
Dmitriy Vyukov [Tue, 21 Jan 2014 07:20:23 +0000 (11:20 +0400)]
runtime: per-P defer pool
Instead of a per-goroutine stack of defers for all sizes,
introduce per-P defer pool for argument sizes 8, 24, 40, 56, 72 bytes.

For a program that starts 1e6 goroutines and then joins then:
old: rss=6.6g virtmem=10.2g time=4.85s
new: rss=4.5g virtmem= 8.2g time=3.48s

R=golang-codereviews, rsc
CC=golang-codereviews
https://golang.org/cl/42750044

11 years agoruntime: fix race detector by recording read by chansend.
Keith Randall [Tue, 21 Jan 2014 07:17:44 +0000 (11:17 +0400)]
runtime: fix race detector by recording read by chansend.

R=golang-codereviews, dvyukov, khr
CC=golang-codereviews
https://golang.org/cl/54060043

11 years agoruntime: zero 2-word memory blocks in-place
Dmitriy Vyukov [Tue, 21 Jan 2014 06:53:51 +0000 (10:53 +0400)]
runtime: zero 2-word memory blocks in-place
Currently for 2-word blocks we set the flag to clear the flag. Makes no sense.
In particular on 32-bits we call memclr always.

R=golang-codereviews, dave, iant
CC=golang-codereviews, khr, rsc
https://golang.org/cl/41170044

11 years agoruntime: fix specials deadlock
Dmitriy Vyukov [Tue, 21 Jan 2014 06:48:37 +0000 (10:48 +0400)]
runtime: fix specials deadlock

The deadlock is between span->specialLock and proflock:

goroutine 11 [running]:
runtime.MProf_Free(0x7fa272d26508, 0xc210054180, 0xc0)
        src/pkg/runtime/mprof.goc:220 +0x27
runtime.freespecial(0x7fa272d1e088, 0xc210054180, 0xc0)
        src/pkg/runtime/mheap.c:691 +0x6a
runtime.freeallspecials(0x7fa272d1af50, 0xc210054180, 0xc0)
        src/pkg/runtime/mheap.c:717 +0xb5
runtime.free(0xc210054180)
        src/pkg/runtime/malloc.goc:190 +0xfd
selectgo(0x7fa272a5ef58)
        src/pkg/runtime/chan.c:1136 +0x2d8
runtime.selectgo(0xc210054180)
        src/pkg/runtime/chan.c:840 +0x12
runtime_test.func·058()
        src/pkg/runtime/proc_test.go:146 +0xb4
runtime.goexit()
        src/pkg/runtime/proc.c:1405
created by runtime_test.TestTimerFairness
        src/pkg/runtime/proc_test.go:152 +0xd1

goroutine 12 [running]:
addspecial(0xc2100540c0, 0x7fa272d1e0a0)
        src/pkg/runtime/mheap.c:569 +0x88
runtime.setprofilebucket(0xc2100540c0, 0x7fa272d26508)
        src/pkg/runtime/mheap.c:668 +0x73
runtime.MProf_Malloc(0xc2100540c0, 0xc0, 0x0)
        src/pkg/runtime/mprof.goc:212 +0x16b
runtime.mallocgc(0xc0, 0x0, 0xc200000000)
        src/pkg/runtime/malloc.goc:142 +0x239
runtime.mal(0xbc)
        src/pkg/runtime/malloc.goc:703 +0x38
newselect(0x2, 0x7fa272a5cf60)
        src/pkg/runtime/chan.c:632 +0x53
runtime.newselect(0xc200000002, 0xc21005f000)
        src/pkg/runtime/chan.c:615 +0x28
runtime_test.func·058()
        src/pkg/runtime/proc_test.go:146 +0x37
runtime.goexit()
        src/pkg/runtime/proc.c:1405
created by runtime_test.TestTimerFairness
        src/pkg/runtime/proc_test.go:152 +0xd1

Fixes #7099.

R=golang-codereviews, khr
CC=golang-codereviews
https://golang.org/cl/53120043

11 years agoruntime: fix test on windows
Dmitriy Vyukov [Tue, 21 Jan 2014 06:44:08 +0000 (10:44 +0400)]
runtime: fix test on windows
The test prints an excessive \n when /dev/null is not present.

R=golang-codereviews, bradfitz, dave
CC=golang-codereviews
https://golang.org/cl/54890043

11 years agonet: fix data race in test
Dmitriy Vyukov [Tue, 21 Jan 2014 06:35:27 +0000 (10:35 +0400)]
net: fix data race in test
Fixes #7157.

R=alex.brainman, bradfitz
CC=golang-codereviews
https://golang.org/cl/54880043

11 years agoruntime: ensure fair scheduling during frequent GCs
Dmitriy Vyukov [Tue, 21 Jan 2014 06:24:42 +0000 (10:24 +0400)]
runtime: ensure fair scheduling during frequent GCs
What was happenning is as follows:
Each writer goroutine always triggers GC during its scheduling quntum.
After GC goroutines are shuffled so that the timer goroutine is always second in the queue.
This repeats infinitely, causing timer goroutine starvation.
Fixes #7126.

R=golang-codereviews, shanemhansen, khr, khr
CC=golang-codereviews
https://golang.org/cl/53080043

11 years agoexpvar: sort maps, fix race
Brad Fitzpatrick [Mon, 20 Jan 2014 17:59:23 +0000 (09:59 -0800)]
expvar: sort maps, fix race

It's pretty distracting to use expvar with the output of both
the top-level map and map values jumping around randomly.

Also fixes a potential race where multiple clients trying to
increment a map int or float key at the same time could lose
updates.

R=golang-codereviews, couchmoney
CC=golang-codereviews
https://golang.org/cl/54320043

11 years agonet/http, net/http/httputil: make chunked reader alloc test more robust
Brad Fitzpatrick [Sun, 19 Jan 2014 18:02:10 +0000 (10:02 -0800)]
net/http, net/http/httputil: make chunked reader alloc test more robust

Use testing.AllocsPerRun now that it exists, instead of doing it by hand.

Fixes #6076

R=golang-codereviews, alex.brainman
CC=golang-codereviews
https://golang.org/cl/53810043

11 years agosyscall: add syscall.Termios on netbsd
Michael Gehring [Sun, 19 Jan 2014 17:57:02 +0000 (09:57 -0800)]
syscall: add syscall.Termios on netbsd

R=golang-codereviews, bradfitz
CC=golang-codereviews
https://golang.org/cl/54290043

11 years agosyscall: fix typo
Mikio Hara [Sat, 18 Jan 2014 07:02:59 +0000 (16:02 +0900)]
syscall: fix typo

R=r
CC=golang-codereviews
https://golang.org/cl/54040043

11 years agoruntime: print stack trace when "panic during panic"
Keith Randall [Sat, 18 Jan 2014 02:47:40 +0000 (18:47 -0800)]
runtime: print stack trace when "panic during panic"

Fixes bug 7145

R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/53970043

11 years agosyscall: fix build
Mikio Hara [Sat, 18 Jan 2014 02:22:32 +0000 (11:22 +0900)]
syscall: fix build

R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/54000043

11 years agosyscall: make getrlimit, setrlimit tests work on unix variants
Mikio Hara [Fri, 17 Jan 2014 23:34:31 +0000 (08:34 +0900)]
syscall: make getrlimit, setrlimit tests work on unix variants

R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/53690043

11 years agoruntime, cmd/gc: Get rid of vararg channel calls.
Keith Randall [Fri, 17 Jan 2014 22:48:45 +0000 (14:48 -0800)]
runtime, cmd/gc: Get rid of vararg channel calls.

Vararg C calls present a problem for the GC because the
argument types are not derivable from the signature.  Remove
them by passing pointers to channel elements instead of the
channel elements directly.

R=golang-codereviews, gobot, rsc, dvyukov
CC=golang-codereviews
https://golang.org/cl/53430043

11 years agoruntime: fix TestLFStackStress
Russ Cox [Fri, 17 Jan 2014 22:42:24 +0000 (17:42 -0500)]
runtime: fix TestLFStackStress

Fixes #7138.

R=r, bradfitz, dave
CC=dvyukov, golang-codereviews
https://golang.org/cl/53910043

11 years agoundo CL 45930043 / c22889382a17
Russ Cox [Fri, 17 Jan 2014 21:58:14 +0000 (16:58 -0500)]
undo CL 45930043 / c22889382a17

The compiler change is an ugly hack.
We can do better.

««« original CL description
syscall: mark arguments to Syscall as noescape
Heap arguments to "async" syscalls will break when/if we have moving GC anyway.
With this change is must not break until moving GC, because a user must
reference the object in Go to preserve liveness. Otherwise the code is broken already.
Reduces number of leaked params from 125 to 36 on linux.

R=golang-codereviews, mikioh.mikioh, bradfitz
CC=cshapiro, golang-codereviews, khr, rsc
https://golang.org/cl/45930043
»»»

R=golang-codereviews, r
CC=bradfitz, dvyukov, golang-codereviews
https://golang.org/cl/53870043

11 years agosyscall: allocate 64 bits of "basep" for Getdirentries
Rob Pike [Fri, 17 Jan 2014 21:19:00 +0000 (13:19 -0800)]
syscall: allocate 64 bits of "basep" for Getdirentries
Recent crashes on 386 Darwin appear to be caused by this system call
smashing the stack. Phenomenology shows that allocating more data
here addresses the probem.
The guess is that since the actual system call is getdirentries64, 64 is
what we should allocate.

Should fix the darwin/386 build.

R=rsc
CC=golang-codereviews
https://golang.org/cl/53840043

11 years agodoc: replace "private" with "unexported" in Effective Go.
David Symonds [Fri, 17 Jan 2014 17:06:39 +0000 (09:06 -0800)]
doc: replace "private" with "unexported" in Effective Go.

R=r
CC=golang-codereviews
https://golang.org/cl/53720043

11 years agoregexp: remove unnecessary sentence in doc comment.
David Symonds [Fri, 17 Jan 2014 17:06:28 +0000 (09:06 -0800)]
regexp: remove unnecessary sentence in doc comment.

R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/53190046

11 years agoA+C: Maxim Khitrov (individual CLA)
Adam Langley [Fri, 17 Jan 2014 16:26:42 +0000 (11:26 -0500)]
A+C: Maxim Khitrov (individual CLA)

Generated by addca.

R=gobot
CC=golang-codereviews
https://golang.org/cl/53730043

11 years agosyscall: mark arguments to Syscall as noescape
Dmitriy Vyukov [Fri, 17 Jan 2014 16:18:37 +0000 (20:18 +0400)]
syscall: mark arguments to Syscall as noescape
Heap arguments to "async" syscalls will break when/if we have moving GC anyway.
With this change is must not break until moving GC, because a user must
reference the object in Go to preserve liveness. Otherwise the code is broken already.
Reduces number of leaked params from 125 to 36 on linux.

R=golang-codereviews, mikioh.mikioh, bradfitz
CC=cshapiro, golang-codereviews, khr, rsc
https://golang.org/cl/45930043

11 years agocrypto/cipher: improved cbc performance
Luke Curley [Fri, 17 Jan 2014 16:07:04 +0000 (11:07 -0500)]
crypto/cipher: improved cbc performance

decrypt: reduced the number of copy calls from 2n to 1.
encrypt: reduced the number of copy calls from n to 1.

Encryption is straight-forward: use dst instead of tmp when
xoring the block with the iv.

Decryption now loops backwards through the blocks abusing the
fact that the previous block's ciphertext (src) is the iv. This
means we don't need to copy the iv every time, in addition to
using dst instead of tmp like encryption.

R=golang-codereviews, agl, mikioh.mikioh
CC=golang-codereviews
https://golang.org/cl/50900043

11 years agoA+C: Luke Curley (individual CLA)
Adam Langley [Fri, 17 Jan 2014 16:01:03 +0000 (11:01 -0500)]
A+C: Luke Curley (individual CLA)

Generated by addca.

R=gobot
CC=golang-codereviews
https://golang.org/cl/53710043

11 years agoruntime: add support for GOOS=solaris
Aram Hăvărneanu [Fri, 17 Jan 2014 04:58:10 +0000 (17:58 +1300)]
runtime: add support for GOOS=solaris

R=alex.brainman, dave, jsing, gobot, rsc
CC=golang-codereviews
https://golang.org/cl/35990043

11 years agonet/rpc: fix inconsistency in documentation of Service.Register
Rob Pike [Thu, 16 Jan 2014 23:57:32 +0000 (15:57 -0800)]
net/rpc: fix inconsistency in documentation of Service.Register
Falsely claimed an old, no longer true condition that the first argument
must be a pointer.
Fixes #6697

R=golang-codereviews, bradfitz
CC=golang-codereviews
https://golang.org/cl/53480043

11 years agonet: skip TestDualStackTCPListener in short mode
Dave Cheney [Thu, 16 Jan 2014 22:49:38 +0000 (09:49 +1100)]
net: skip TestDualStackTCPListener in short mode

Update #5001

This test is flakey on linux servers and fails otherwise good builds. Mikio has some proposals to fix the test, but they require additional plumbing.

In the meantime, disable this test in -short mode so it will run during the full net test suite, but not during builder ci.

R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/53410043

11 years agotime: break parse and formatting tests into a separate source file
Rob Pike [Thu, 16 Jan 2014 22:30:01 +0000 (14:30 -0800)]
time: break parse and formatting tests into a separate source file
No changes, just rearrangement. The tests were in need of a little
housekeeping.

R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/53400043

11 years agosyscall: add Flock_t on Linux
Brad Fitzpatrick [Thu, 16 Jan 2014 22:08:32 +0000 (14:08 -0800)]
syscall: add Flock_t on Linux

Matches Darwin and the BSDs. This means leveldb-go, kv,
Camlistore, etc can stop defining these structs on Linux by
hand.

Update #7059

R=golang-codereviews, dave, iant
CC=golang-codereviews
https://golang.org/cl/53350043

11 years agoreflect: Remove imprecise techniques from channel/select operations.
Keith Randall [Thu, 16 Jan 2014 21:35:29 +0000 (13:35 -0800)]
reflect: Remove imprecise techniques from channel/select operations.

Reflect used to communicate to the runtime using interface words,
which is bad for precise GC because sometimes iwords hold a pointer
and sometimes they don't.  This change rewrites channel and select
operations to always pass pointers to the runtime.

reflect.Select gets somewhat more expensive, as we now do an allocation
per receive case instead of one allocation whose size is the max of
all the received types.  This seems unavoidable to get preciseness
(unless we move the allocation into selectgo, which is a much bigger
change).

Fixes #6490

R=golang-codereviews, dvyukov, rsc
CC=golang-codereviews
https://golang.org/cl/52900043

11 years agonet/http: don't allow Content-Type or body on 204 and 1xx
Brad Fitzpatrick [Thu, 16 Jan 2014 19:43:52 +0000 (11:43 -0800)]
net/http: don't allow Content-Type or body on 204 and 1xx

Status codes 204, 304, and 1xx don't allow bodies. We already
had a function for this, but we were hard-coding just 304
(StatusNotModified) in a few places.  Use the function
instead, and flesh out tests for all codes.

Fixes #6685

R=golang-codereviews, r
CC=golang-codereviews
https://golang.org/cl/53290044

11 years agonet/smtp: add examples
Kamil Kisiel [Thu, 16 Jan 2014 18:49:58 +0000 (10:49 -0800)]
net/smtp: add examples

R=golang-codereviews, bradfitz
CC=golang-codereviews
https://golang.org/cl/8274046

11 years agonet/http: cache transport environment lookup
Brad Fitzpatrick [Thu, 16 Jan 2014 18:25:45 +0000 (10:25 -0800)]
net/http: cache transport environment lookup

Apparently this is expensive on Windows.

Fixes #7020

R=golang-codereviews, alex.brainman, mattn.jp, dvyukov
CC=golang-codereviews
https://golang.org/cl/52840043

11 years agofmt: fix bug printing large zero-padded hexadecimal
Rob Pike [Thu, 16 Jan 2014 17:48:23 +0000 (09:48 -0800)]
fmt: fix bug printing large zero-padded hexadecimal
We forgot to include the width of "0x" when computing the crossover
from internal buffer to allocated buffer.
Also add a helper function to the test for formatting large zero-padded
test strings.

Fixes #6777.

R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/50820043

11 years agocmd/gc: handle non-escaping address-taken variables better
Russ Cox [Thu, 16 Jan 2014 15:32:30 +0000 (10:32 -0500)]
cmd/gc: handle non-escaping address-taken variables better

This CL makes the bitmaps a little more precise about variables
that have their address taken but for which the address does not
escape to the heap, so that the variables are kept in the stack frame
rather than allocated on the heap.

The code before this CL handled these variables by treating every
return statement as using every such variable and depending on
liveness analysis to essentially treat the variable as live during the
entire function. That approach has false positives and (worse) false
negatives. That is, it's both sloppy and buggy:

        func f(b1, b2 bool) { // x live here! (sloppy)
                if b2 {
                        print(0) // x live here! (sloppy)
                        return
                }
                var z **int
                x := new(int)
                *x = 42
                z = &x
                print(**z) // x live here (conservative)
                if b2 {
                        print(1) // x live here (conservative)
                        return
                }
                for {
                        print(**z) // x not live here (buggy)
                }
        }

The first two liveness annotations (marked sloppy) are clearly
wrong: x cannot be live if it has not yet been declared.

The last liveness annotation (marked buggy) is also wrong:
x is live here as *z, but because there is no return statement
reachable from this point in the code, the analysis treats x as dead.

This CL changes the liveness calculation to mark such variables
live exactly at points in the code reachable from the variable
declaration. This keeps the conservative decisions but fixes
the sloppy and buggy ones.

The CL also detects ambiguously live variables, those that are
being marked live but may not actually have been initialized,
such as in this example:

        func f(b1 bool) {
                var z **int
                if b1 {
                        x := new(int)
                        *x = 42
                        z = &x
                } else {
                        y := new(int)
                        *y = 54
                        z = &y
                }
                print(**z) // x, y live here (conservative)
        }

Since the print statement is reachable from the declaration of x,
x must conservatively be marked live. The same goes for y.
Although both x and y are marked live at the print statement,
clearly only one of them has been initialized. They are both
"ambiguously live".

These ambiguously live variables cause problems for garbage
collection: the collector cannot ignore them but also cannot
depend on them to be initialized to valid pointer values.

Ambiguously live variables do not come up too often in real code,
but recent changes to the way map and interface runtime functions
are invoked has created a large number of ambiguously live
compiler-generated temporary variables. The next CL will adjust
the analysis to understand these temporaries better, to make
ambiguously live variables fairly rare.

Once ambiguously live variables are rare enough, another CL will
introduce code at the beginning of a function to zero those
slots on the stack. At that point the garbage collector and the
stack copying routines will be able to depend on the guarantee that
if a slot is marked as live in a liveness bitmap, it is initialized.

R=khr
CC=golang-codereviews, iant
https://golang.org/cl/51810043

11 years agocmd/gc: fix race build
Russ Cox [Thu, 16 Jan 2014 15:11:06 +0000 (10:11 -0500)]
cmd/gc: fix race build

Missed this case in CL 51010045.

TBR=khr
CC=golang-codereviews
https://golang.org/cl/53200043

11 years agoruntime: output how long goroutines are blocked
Dmitriy Vyukov [Thu, 16 Jan 2014 08:54:46 +0000 (12:54 +0400)]
runtime: output how long goroutines are blocked
Example of output:

goroutine 4 [sleep for 3 min]:
time.Sleep(0x34630b8a000)
        src/pkg/runtime/time.goc:31 +0x31
main.func·002()
        block.go:16 +0x2c
created by main.main
        block.go:17 +0x33

Full program and output are here:
http://play.golang.org/p/NEZdADI3Td

Fixes #6809.

R=golang-codereviews, khr, kamil.kisiel, bradfitz, rsc
CC=golang-codereviews
https://golang.org/cl/50420043

11 years agoruntime: use lock-free ring for work queues
Dmitriy Vyukov [Thu, 16 Jan 2014 08:17:00 +0000 (12:17 +0400)]
runtime: use lock-free ring for work queues
Use lock-free fixed-size ring for work queues
instead of an unbounded mutex-protected array.
The ring has single producer and multiple consumers.
If the ring overflows, work is put onto global queue.

benchmark              old ns/op    new ns/op    delta
BenchmarkMatmult               7            5  -18.12%
BenchmarkMatmult-4             2            2  -18.98%
BenchmarkMatmult-16            1            0  -12.84%

BenchmarkCreateGoroutines                     105           88  -16.10%
BenchmarkCreateGoroutines-4                   376          219  -41.76%
BenchmarkCreateGoroutines-16                  241          174  -27.80%
BenchmarkCreateGoroutinesParallel             103           87  -14.66%
BenchmarkCreateGoroutinesParallel-4           169          143  -15.38%
BenchmarkCreateGoroutinesParallel-16          158          151   -4.43%

R=golang-codereviews, rsc
CC=ddetlefs, devon.odell, golang-codereviews
https://golang.org/cl/46170044

11 years agoreflect: add precise GC info for Call argument frame.
Keith Randall [Wed, 15 Jan 2014 21:56:59 +0000 (13:56 -0800)]
reflect: add precise GC info for Call argument frame.

Give proper types to the argument/return areas
allocated for reflect calls.  Avoid use of iword to
manipulate receivers, which may or may not be pointers.

Update #6490

R=rsc
CC=golang-codereviews
https://golang.org/cl/52110044

11 years agonet/http: add disabled test for Body Read/Close lock granularity
Brad Fitzpatrick [Wed, 15 Jan 2014 21:12:32 +0000 (13:12 -0800)]
net/http: add disabled test for Body Read/Close lock granularity

Update #7121

R=golang-codereviews, gobot, dsymonds
CC=golang-codereviews
https://golang.org/cl/51750044

11 years agogo/scanner: report too short escape sequences
Robert Griesemer [Wed, 15 Jan 2014 17:50:55 +0000 (09:50 -0800)]
go/scanner: report too short escape sequences

Generally improve error messages for escape sequences.

R=adonovan
CC=golang-codereviews
https://golang.org/cl/49430046

11 years agocmd/pack: rewrite in Go
Rob Pike [Wed, 15 Jan 2014 17:13:52 +0000 (09:13 -0800)]
cmd/pack: rewrite in Go
Replace the pack command, a C program, with a clean reimplementation in Go.
It does not need to reproduce the full feature set and it is no longer used by
the build chain, but has a role in looking inside archives created by the build
chain directly.

Since it's not in C, it is no longer build by dist, so remove it from cmd/dist and
make it a "tool" in cmd/go terminology.

Fixes #2705

R=rsc, dave, minux.ma, josharian
CC=golang-codereviews
https://golang.org/cl/52310044

11 years agoruntime: fix data race in GC
Dmitriy Vyukov [Wed, 15 Jan 2014 15:38:08 +0000 (19:38 +0400)]
runtime: fix data race in GC
Fixes #5139.
Update #7065.

R=golang-codereviews, bradfitz, minux.ma
CC=golang-codereviews
https://golang.org/cl/52090045

11 years agonet/http: return UnexpectedEOF instead of EOF on truncated resposne
Brad Fitzpatrick [Wed, 15 Jan 2014 03:08:40 +0000 (19:08 -0800)]
net/http: return UnexpectedEOF instead of EOF on truncated resposne

Fixes #6564

R=golang-codereviews, r
CC=golang-codereviews
https://golang.org/cl/52420043

11 years agoruntime/debug: force GC after setting of GCPercent to make it effective.
Shenghou Ma [Wed, 15 Jan 2014 00:23:36 +0000 (19:23 -0500)]
runtime/debug: force GC after setting of GCPercent to make it effective.
See also discussion in CL 51010045.

R=golang-codereviews, r
CC=golang-codereviews
https://golang.org/cl/52230043

11 years agocmd/ld: document the -w flag, which disables DWARF generation
Rob Pike [Tue, 14 Jan 2014 23:34:27 +0000 (15:34 -0800)]
cmd/ld: document the -w flag, which disables DWARF generation

R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/52360044

11 years agospec: tighten the wording around . imports
Rob Pike [Tue, 14 Jan 2014 23:16:01 +0000 (15:16 -0800)]
spec: tighten the wording around . imports
Make it clear that if you do a . import, you cannot use a qualified identifier.

R=gri
CC=golang-codereviews
https://golang.org/cl/52390043

11 years agoreflect: better document the tri-state for TryRecv
Rob Pike [Tue, 14 Jan 2014 23:04:16 +0000 (15:04 -0800)]
reflect: better document the tri-state for TryRecv

R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/52360043

11 years agoruntime: Change size of map iter offset so 32-bit version compiles cleanly.
Keith Randall [Tue, 14 Jan 2014 21:46:22 +0000 (13:46 -0800)]
runtime: Change size of map iter offset so 32-bit version compiles cleanly.

R=golang-codereviews, minux.ma
CC=golang-codereviews
https://golang.org/cl/52310043

11 years agonet/http: escape contents of the directory indexes generated by FileServer
Michael Kelly [Tue, 14 Jan 2014 20:55:12 +0000 (12:55 -0800)]
net/http: escape contents of the directory indexes generated by FileServer

      Previously, filenames containing special characters could:
      1) Escape the <a> tag, with a file called something like: ">foo
      2) Break the links in the index by prematurely ending the path portion
      of the url, with a file called: foo?bar

      In order to avoid a forbidden dependency on the html package, I'm
      using htmlReplacer from net/http/server.go, which is equivalent to
      html.EscapeString.

      This change also expands fakeFile.Readdir to better emulate
os.File.Readdir.

R=golang-codereviews, rsc, gobot, bradfitz, josharian, mikioh.mikioh
CC=golang-codereviews
https://golang.org/cl/37440043

11 years agoruntime: change map iteration randomization to use intra-bucket offset
Josh Bleecher Snyder [Tue, 14 Jan 2014 20:54:05 +0000 (12:54 -0800)]
runtime: change map iteration randomization to use intra-bucket offset

Map iteration previously started from a random bucket, but walked each
bucket from the beginning. Now, iteration always starts from the first
bucket and walks each bucket starting at a random offset. For
performance, the random offset is selected at the start of iteration
and reused for each bucket.

Iteration over a map with 8 or fewer elements--a single bucket--will
now be non-deterministic. There will now be only 8 different possible
map iterations.

Significant benchmark changes, on my OS X laptop (rough but consistent):

benchmark                              old ns/op     new ns/op     delta
BenchmarkMapIter                       128           121           -5.47%
BenchmarkMapIterEmpty                  4.26          4.45          +4.46%
BenchmarkNewEmptyMap                   114           111           -2.63%

Fixes #6719.

R=khr, bradfitz
CC=golang-codereviews
https://golang.org/cl/47370043

11 years agoundo CL 47560044 / 40a37153a550
Brad Fitzpatrick [Tue, 14 Jan 2014 20:53:21 +0000 (12:53 -0800)]
undo CL 47560044 / 40a37153a550

Still work to do. See http://golang.org/issue/7125

««« original CL description
net/http/cookiejar: document format of domain in PublicSuffix

Document what values a PublicSuffixList must accept as
a domain in a call to PublicSuffix.

R=bradfitz, nigeltao
CC=golang-codereviews
https://golang.org/cl/47560044

»»»

R=golang-codereviews, minux.ma
CC=golang-codereviews
https://golang.org/cl/51770044

11 years agoC: add Michael Kelly (Google CLA)
Brad Fitzpatrick [Tue, 14 Jan 2014 20:53:06 +0000 (12:53 -0800)]
C: add Michael Kelly (Google CLA)

R=golang-codereviews, iant, mjk
CC=golang-codereviews
https://golang.org/cl/52220043

11 years agodoc: add cmd/gofmt entry to go1.3.txt
Brad Fitzpatrick [Tue, 14 Jan 2014 20:27:51 +0000 (12:27 -0800)]
doc: add cmd/gofmt entry to go1.3.txt

R=golang-codereviews, minux.ma
CC=golang-codereviews
https://golang.org/cl/52240043

11 years agocmd/gofmt: remove -tabwidth and -tabs flags
Brad Fitzpatrick [Tue, 14 Jan 2014 19:10:56 +0000 (11:10 -0800)]
cmd/gofmt: remove -tabwidth and -tabs flags

Having these flags misleads people into thinking they're acceptable
for code that "must be gofmt'd".

If an organization wishes to use gofmt internally with
different settings, they can fork gofmt trivially. But "gofmt"
as used by the community with open source Go code should not
support these old knobs.

Also removes the -comments flag.

Fixes #7101

R=r, gri
CC=golang-codereviews
https://golang.org/cl/52170043

11 years agoapi: update next.txt
Brad Fitzpatrick [Tue, 14 Jan 2014 18:18:43 +0000 (10:18 -0800)]
api: update next.txt

Now with more syscall!

R=golang-codereviews, minux.ma
CC=golang-codereviews
https://golang.org/cl/52150043

11 years agonet/http: fix another data race when sharing Request.Body
Brad Fitzpatrick [Tue, 14 Jan 2014 17:46:40 +0000 (09:46 -0800)]
net/http: fix another data race when sharing Request.Body

Fix another issue (similar to Issue 6995) where there was a
data race when sharing a server handler's Request.Body with
another goroutine that out-lived the Handler's goroutine.

In some cases we were not closing the incoming Request.Body
(which would've required reading it until the end) if we
thought it we thought we were going to be forcibly closing the
underlying net.Conn later anyway. But that optimization
largely moved to the transfer.go *body later, and locking was
added to *body which then detected read-after-close, so now
calling the (*body).Close always is both cheap and correct.

No new test because TestTransportAndServerSharedBodyRace caught it,
albeit only sometimes. Running:

while ./http.test -test.cpu=8 -test.run=TestTransportAndServerSharedBodyRace; do true; done

... would reliably cause a race before, but not now.

Update #6995
Fixes #7092

R=golang-codereviews, khr
CC=golang-codereviews
https://golang.org/cl/51700043

11 years agocmd/gc: return canonical Node* from temp
Russ Cox [Tue, 14 Jan 2014 15:43:13 +0000 (10:43 -0500)]
cmd/gc: return canonical Node* from temp

For historical reasons, temp was returning a copy
of the created Node*, not the original Node*.
This meant that if analysis recorded information in the
returned node (for example, n->addrtaken = 1), the
analysis would not show up on the original Node*, the
one kept in fn->dcl and consulted during liveness
bitmap creation.

Correct this, and watch for it when setting addrtaken.

Fixes #7083.

R=khr, dave, minux.ma
CC=golang-codereviews
https://golang.org/cl/51010045

11 years agocmd/gc: add -live flag for debugging liveness maps
Russ Cox [Tue, 14 Jan 2014 15:40:16 +0000 (10:40 -0500)]
cmd/gc: add -live flag for debugging liveness maps

R=khr
CC=golang-codereviews
https://golang.org/cl/51820043

11 years agoruntime: emit collection stacks in GODEBUG=allocfreetrace mode
Russ Cox [Tue, 14 Jan 2014 15:39:50 +0000 (10:39 -0500)]
runtime: emit collection stacks in GODEBUG=allocfreetrace mode

R=khr, dvyukov
CC=golang-codereviews
https://golang.org/cl/51830043

11 years agoruntime: fix comment
Dmitriy Vyukov [Tue, 14 Jan 2014 08:58:13 +0000 (12:58 +0400)]
runtime: fix comment
Void function can not return false.

R=golang-codereviews, bradfitz
CC=golang-codereviews
https://golang.org/cl/52000043

11 years agocmd/api: ensure GOPATH always points to the correct go.tools
Alex Brainman [Tue, 14 Jan 2014 05:56:22 +0000 (16:56 +1100)]
cmd/api: ensure GOPATH always points to the correct go.tools

R=golang-codereviews, dave, bradfitz
CC=golang-codereviews
https://golang.org/cl/51000043

11 years agoruntime/pprof: fix flaky TestCPUProfileMultithreaded test
Keith Randall [Tue, 14 Jan 2014 05:18:47 +0000 (21:18 -0800)]
runtime/pprof: fix flaky TestCPUProfileMultithreaded test

It's too sensitive.

Fixes bug 7095

R=golang-codereviews, iant, minux.ma, rsc
CC=golang-codereviews
https://golang.org/cl/50470043

11 years agocmd/link: fix build
Russ Cox [Tue, 14 Jan 2014 04:20:53 +0000 (23:20 -0500)]
cmd/link: fix build

The golden file for link.hello.darwin.amd64
was a little ahead of the checked-in code.

R=iant
TBR=iant
CC=golang-codereviews
https://golang.org/cl/51870043

11 years agocmd/link: implement dead code removal
Russ Cox [Tue, 14 Jan 2014 04:08:10 +0000 (23:08 -0500)]
cmd/link: implement dead code removal

R=iant
CC=golang-codereviews
https://golang.org/cl/51470043

11 years agocmd/link: implement and test automatic symbols
Russ Cox [Tue, 14 Jan 2014 04:07:57 +0000 (23:07 -0500)]
cmd/link: implement and test automatic symbols

Related changes included in this CL:

 - Add explicit start symbol to Prog.
 - Add omitRuntime bool to Prog.
 - Introduce p.Packages[""] to hold automatic symbols
 - Add SymOrder to Prog to preserve symbol order.
 - Add layout test (and fix bug that was putting everything in text section).

R=iant
CC=golang-codereviews
https://golang.org/cl/51260045

11 years agocmd/link: replace golden binary files with hex dumps
Russ Cox [Tue, 14 Jan 2014 04:07:40 +0000 (23:07 -0500)]
cmd/link: replace golden binary files with hex dumps

The hex dumps will diff better, and I hope they will avoid
a repeat of http://bugs.debian.org/716853.

The CL will probably show the testdata diffs as "binary",
but in fact the binary versions are being replaced by
textual hex dumps (output of hexdump -C).

R=iant
CC=golang-codereviews
https://golang.org/cl/51000044

11 years agonet: fix incorrect internal IPv6 address representation in test
Mikio Hara [Mon, 13 Jan 2014 22:36:38 +0000 (07:36 +0900)]
net: fix incorrect internal IPv6 address representation in test

Also fixes a dialgoogle test glitch after issue 6628 fix.

R=golang-codereviews, r
CC=golang-codereviews
https://golang.org/cl/50660044

11 years agoos/exec: disable fd check in TestHelperProcess on Plan 9
David du Colombier [Mon, 13 Jan 2014 22:03:22 +0000 (23:03 +0100)]
os/exec: disable fd check in TestHelperProcess on Plan 9

On Plan 9, we can observe the following open file descriptors:

  0 r  c    0 (000000000000000a   0 00)     0        0 /dev/null
  1 rw |    0 (0000000001df6742   0 00) 65536       54 #|/data1
  2 rw |    0 (0000000001df6782   0 00) 65536        0 #|/data1
  3 rw M 1956 (0000000000d66dd2   0 00)  8192       12 /tmp/333163398
  4 r  c    0 (0000000000000001   0 00)     0      528 /dev/bintime
  5 r  M 1956 (0000000000d66dd1 854 00)  8192        0 /tmp/go-build843954301/os/exec/_test/exec.test
  6 r  M 1956 (0000000000d66dd1 854 00)  8192        0 /tmp/go-build843954301/os/exec/_test/exec.test
  7 r  M 1956 (0000000000d66dd1 854 00)  8192        0 /tmp/go-build843954301/os/exec/_test/exec.test
  8 r  M 1956 (0000000000d66dd1 854 00)  8192        0 /tmp/go-build843954301/os/exec/_test/exec.test
  9 r  M 1956 (0000000000d66dd1 854 00)  8192        0 /tmp/go-build843954301/os/exec/_test/exec.test
 10 r  M 1956 (0000000000d66dd1 854 00)  8192        0 /tmp/go-build843954301/os/exec/_test/exec.test
 11 r  c    0 (000000000000000f   0 00)     0       32 /dev/random
 12 r  M 1956 (0000000000d66dd1 854 00)  8192        0 /tmp/go-build843954301/os/exec/_test/exec.test
 13 r  c    0 (000000000000000a   0 00)     0        0 /dev/null
 14 rw |    0 (0000000001df6801   0 00) 65536        0 #|/data
 15 rw |    0 (0000000001df6802   0 00) 65536     1275 #|/data1

R=rsc, bradfitz, aram
CC=golang-codereviews
https://golang.org/cl/51420044

11 years agosyscall: add syscall.Termios on freebsd/{386,amd64}
Michael Gehring [Mon, 13 Jan 2014 21:57:38 +0000 (13:57 -0800)]
syscall: add syscall.Termios on freebsd/{386,amd64}

R=golang-codereviews, bradfitz, mg
CC=golang-codereviews
https://golang.org/cl/51580044

11 years agoC+A: add email alias for Michael Gehring
Brad Fitzpatrick [Mon, 13 Jan 2014 21:57:06 +0000 (13:57 -0800)]
C+A: add email alias for Michael Gehring

R=golang-codereviews, gnirheg.leahcim
CC=golang-codereviews
https://golang.org/cl/51670043

11 years agonet/http: clarify semantics of File methods
Brad Fitzpatrick [Mon, 13 Jan 2014 21:52:06 +0000 (13:52 -0800)]
net/http: clarify semantics of File methods

There were no docs explaining the meaning of Readdir's count
argument, for instance. Clarify that these mean the same as
the methods on *os.File.

R=golang-codereviews, minux.ma
CC=golang-codereviews
https://golang.org/cl/51630043

11 years agogo/scanner: minimal non-terminated literals
Robert Griesemer [Mon, 13 Jan 2014 19:10:45 +0000 (11:10 -0800)]
go/scanner: minimal non-terminated literals

Consume as little as possible input when encountering
non-terminated rune, string, and raw string literals.
The old code consumed at least one extra character
which could lead to worse error recovery when parsing
erroneous sources.

Also made error messages in those cases more consistent.

Fixes #7091.

R=adonovan
CC=golang-codereviews
https://golang.org/cl/50630043

11 years agoruntime: remove redundant 0x prefix in error print
Russ Cox [Mon, 13 Jan 2014 16:39:04 +0000 (11:39 -0500)]
runtime: remove redundant 0x prefix in error print

%x already adds the prefix unconditionally

R=golang-codereviews, bradfitz
CC=golang-codereviews
https://golang.org/cl/51550043

11 years agoos: disable TestReaddirStatFailures on Plan 9
David du Colombier [Mon, 13 Jan 2014 12:24:59 +0000 (13:24 +0100)]
os: disable TestReaddirStatFailures on Plan 9

R=rsc, dave, aram, jeremyjackins, lucio.dere
CC=golang-codereviews, jas
https://golang.org/cl/50980043

11 years agosyscall: include mmap constants in openbsd zerror* files
Joel Sing [Mon, 13 Jan 2014 00:25:48 +0000 (11:25 +1100)]
syscall: include mmap constants in openbsd zerror* files

Include the <sys/mman.h> header for OpenBSD mkerrors.sh. This brings
in constants used with madvise(2), mmap(2), msync(2) and mlockall(2).

Fixes #4929

R=golang-codereviews, minux.ma
CC=golang-codereviews
https://golang.org/cl/50930043

11 years agosyscall: remove getsockname workaround for openbsd
Joel Sing [Mon, 13 Jan 2014 00:24:56 +0000 (11:24 +1100)]
syscall: remove getsockname workaround for openbsd

Remove the getsockname workaround for unix domain sockets on OpenBSD.
This was fixed in OpenBSD 5.2 and we now have a minimum requirement
for OpenBSD 5.4-current.

R=golang-codereviews, minux.ma
CC=golang-codereviews
https://golang.org/cl/50960043

11 years agoruntime/pprof: enable profiling test on openbsd
Joel Sing [Mon, 13 Jan 2014 00:24:08 +0000 (11:24 +1100)]
runtime/pprof: enable profiling test on openbsd

Profiling of multithreaded applications works correctly on OpenBSD
5.4-current, so enable the profiling test.

R=golang-codereviews, minux.ma
CC=golang-codereviews
https://golang.org/cl/50940043

11 years agonet: ignore some errors in windows Accept
Alex Brainman [Sun, 12 Jan 2014 01:20:16 +0000 (12:20 +1100)]
net: ignore some errors in windows Accept

Fixes #6987

R=golang-codereviews, dvyukov
CC=golang-codereviews
https://golang.org/cl/49490043

11 years agonet: add plan9 to TestDialTimeout
Jeff Sickel [Sat, 11 Jan 2014 17:58:03 +0000 (18:58 +0100)]
net: add plan9 to TestDialTimeout
     === RUN TestDialTimeout
     --- PASS: TestDialTimeout (0.21 seconds)

R=golang-codereviews, bradfitz, 0intro
CC=golang-codereviews, rsc
https://golang.org/cl/49710050

11 years agoapi: update except.txt and next.txt to reflect openbsd system ABI break
Joel Sing [Sat, 11 Jan 2014 09:16:39 +0000 (20:16 +1100)]
api: update except.txt and next.txt to reflect openbsd system ABI break

Update #7049

R=golang-codereviews, minux.ma, mikioh.mikioh
CC=golang-codereviews
https://golang.org/cl/49470052

11 years agoruntime, syscall: update for openbsd system ABI break
Joel Sing [Sat, 11 Jan 2014 08:00:32 +0000 (19:00 +1100)]
runtime, syscall: update for openbsd system ABI break

Update Go so that it continues to work past the OpenBSD system ABI
break, with 64-bit time_t:

  http://www.openbsd.org/faq/current.html#20130813

Note: this makes OpenBSD 5.5 (currently 5.4-current) the minimum
supported release for Go.

Fixes #7049.

R=golang-codereviews, mikioh.mikioh
CC=golang-codereviews
https://golang.org/cl/13368046

11 years agodatabase/sql: fix test on 32-bit
Brad Fitzpatrick [Fri, 10 Jan 2014 20:30:23 +0000 (12:30 -0800)]
database/sql: fix test on 32-bit

R=golang-codereviews
TBR=golang-dev
CC=golang-codereviews
https://golang.org/cl/49920047

11 years agodatabase/sql: avoiding fmt.Sprintf while scanning, avoid allocs with RawBytes
Brad Fitzpatrick [Fri, 10 Jan 2014 20:19:36 +0000 (12:19 -0800)]
database/sql: avoiding fmt.Sprintf while scanning, avoid allocs with RawBytes

A user reported heavy contention on fmt's printer cache. Avoid
fmt.Sprint. We have to do reflection anyway, and there was
already an asString function to use strconv, so use it.

This CL also eliminates a redundant allocation + copy when
scanning into *[]byte (avoiding the intermediate string)
and avoids an extra alloc when assigning to a caller's RawBytes
(trying to reuse the caller's memory).

Fixes #7086

R=golang-codereviews, nightlyone
CC=golang-codereviews
https://golang.org/cl/50240044

11 years agoA+C: Gautham Thambidorai (individual CLA)
Adam Langley [Fri, 10 Jan 2014 18:46:42 +0000 (13:46 -0500)]
A+C: Gautham Thambidorai (individual CLA)

Generated by addca.

R=gobot
CC=golang-codereviews
https://golang.org/cl/50500043

11 years agofmt: make benchmarks parallel
Dmitriy Vyukov [Fri, 10 Jan 2014 09:51:11 +0000 (13:51 +0400)]
fmt: make benchmarks parallel
This seems to be the best target to benchmark sync.Pool changes.

This is resend of cl/49910043 which was LGTMed by
TBR=bradfitz

R=golang-codereviews
CC=golang-codereviews
https://golang.org/cl/50140045

11 years agoliblink: fix comments. Someone was overzealous with search & replace.
Keith Randall [Fri, 10 Jan 2014 03:46:46 +0000 (19:46 -0800)]
liblink: fix comments.  Someone was overzealous with search & replace.

R=golang-codereviews, bradfitz
CC=golang-codereviews
https://golang.org/cl/49160045

11 years agonet: add SetKeepAlivePeriod for windows
Nicholas Katsaros [Fri, 10 Jan 2014 03:33:54 +0000 (14:33 +1100)]
net: add SetKeepAlivePeriod for windows

R=golang-codereviews, alex.brainman, bradfitz, mikioh.mikioh
CC=golang-codereviews
https://golang.org/cl/11393043