]> Cypherpunks repositories - gostls13.git/log
gostls13.git
11 years agocodereview: close the head tag
Brad Fitzpatrick [Thu, 23 May 2013 21:13:39 +0000 (14:13 -0700)]
codereview: close the head tag

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/9695045

11 years agomisc/emacs: Do not modify kill ring when programmatically deleting text
Dominik Honnef [Thu, 23 May 2013 17:19:03 +0000 (10:19 -0700)]
misc/emacs: Do not modify kill ring when programmatically deleting text

Operations like gofmt and go-remove-unused-imports delete entire
lines of text. Previously this put them on the kill-ring,
negatively affecting user experience.

R=adonovan
CC=gobot, golang-dev
https://golang.org/cl/9605043

11 years agoio: Prioritize WriterTos over ReaderFroms in Copy.
Daniel Morsing [Thu, 23 May 2013 16:29:19 +0000 (18:29 +0200)]
io: Prioritize WriterTos over ReaderFroms in Copy.

This only affects calls where both ReaderFrom and WriterTo are implemented. WriterTo can issue one large write, while ReaderFrom must Read until EOF, potentially reallocating when out of memory. With one large Write, the Writer only needs to allocate once.

This also helps in ioutil.Discard since we can avoid copying memory when the Reader implements WriterTo.

R=golang-dev, dsymonds, remyoudompheng, bradfitz
CC=golang-dev, minux.ma
https://golang.org/cl/9462044

11 years agocrypto/rsa: implement PSS signatures.
Nan Deng [Thu, 23 May 2013 15:10:41 +0000 (11:10 -0400)]
crypto/rsa: implement PSS signatures.

This change contains an implementation of the RSASSA-PSS signature
algorithm described in RFC 3447.

R=agl, agl
CC=gobot, golang-dev, r
https://golang.org/cl/9438043

11 years agosyscall: add IPv6 socket options for Unix variants
Mikio Hara [Thu, 23 May 2013 07:22:05 +0000 (16:22 +0900)]
syscall: add IPv6 socket options for Unix variants

This CL adds missing IPv6 socket options which are required
to control IPv6 as described in RFC 3493, RFC 3542.

Update #5538

R=golang-dev, dave, iant
CC=golang-dev
https://golang.org/cl/9373046

11 years agocmd/go: check GOROOT directory is present before acting
Alex Brainman [Thu, 23 May 2013 04:13:02 +0000 (14:13 +1000)]
cmd/go: check GOROOT directory is present before acting

Fixes #5042.

R=golang-dev, adg, rsc
CC=golang-dev
https://golang.org/cl/7786047

11 years agocodereview.py: improve error message when user is not a committer
Francesc Campoy [Wed, 22 May 2013 23:27:39 +0000 (16:27 -0700)]
codereview.py: improve error message when user is not a committer

R=adg, bradfitz, r
CC=golang-dev
https://golang.org/cl/9626045

11 years agogo/doc: fix build
Robert Griesemer [Wed, 22 May 2013 21:22:50 +0000 (14:22 -0700)]
go/doc: fix build

1) go/doc:
   - create correct ast.FuncType
   - use more commonly used variable names in a test case

2) make ast.FuncType.Pos robust in case of incorrect ASTs

R=golang-dev
CC=golang-dev
https://golang.org/cl/9651044

11 years agoA+C: Nan Deng (individual CLA)
Adam Langley [Wed, 22 May 2013 21:08:59 +0000 (17:08 -0400)]
A+C: Nan Deng (individual CLA)

Generated by addca.

R=gobot
CC=golang-dev
https://golang.org/cl/9678043

11 years agotest: add test for issue 3888.
Rémy Oudompheng [Wed, 22 May 2013 20:45:38 +0000 (22:45 +0200)]
test: add test for issue 3888.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/9676043

11 years agotest/errchk: use "#!/usr/bin/env perl" shebang line
Shenghou Ma [Wed, 22 May 2013 20:41:22 +0000 (04:41 +0800)]
test/errchk: use "#!/usr/bin/env perl" shebang line
fix test failure of go.tools sub-repo on NetBSD.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/9662044

11 years agobufio: fix SplitFunc docs
Shenghou Ma [Wed, 22 May 2013 20:38:32 +0000 (04:38 +0800)]
bufio: fix SplitFunc docs
Fixes #5532.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/9672044

11 years agogo/ast: fix FuncType.Pos() impl. and FuncType.Params documentation
Robert Griesemer [Wed, 22 May 2013 20:36:43 +0000 (13:36 -0700)]
go/ast: fix FuncType.Pos() impl. and FuncType.Params documentation

As pointed out by adonovan.

R=golang-dev, adonovan
CC=golang-dev
https://golang.org/cl/9662045

11 years agodoc: GCC 4.8.1 is not updated to Go 1.1
Ian Lance Taylor [Wed, 22 May 2013 20:05:31 +0000 (13:05 -0700)]
doc: GCC 4.8.1 is not updated to Go 1.1

I will try again for 4.8.2.

R=golang-dev, minux.ma
CC=golang-dev
https://golang.org/cl/9663045

11 years agolog/syslog: report errors from write
Rob Pike [Wed, 22 May 2013 19:45:52 +0000 (12:45 -0700)]
log/syslog: report errors from write
Fixes #5541.
This time for sure.

R=golang-dev, minux.ma, iant
CC=golang-dev
https://golang.org/cl/9668043

11 years agocmd/cc: reject unions containing pointers
Daniel Morsing [Wed, 22 May 2013 19:13:30 +0000 (21:13 +0200)]
cmd/cc: reject unions containing pointers

If a union contains a pointer, it will mess up the garbage collector, causing memory corruption.

R=golang-dev, dave, nightlyone, adg, dvyukov, bradfitz, minux.ma, r, iant
CC=golang-dev
https://golang.org/cl/8469043

11 years agoruntime: properly synchronize GC and finalizer goroutine
Dmitriy Vyukov [Wed, 22 May 2013 19:04:46 +0000 (23:04 +0400)]
runtime: properly synchronize GC and finalizer goroutine
This is needed for preemptive scheduler, because the goroutine
can be preempted at surprising points.

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/9376043

11 years agoruntime: detect deadlocks in programs using cgo
Dmitriy Vyukov [Wed, 22 May 2013 18:57:47 +0000 (22:57 +0400)]
runtime: detect deadlocks in programs using cgo
When cgo is used, runtime creates an additional M to handle callbacks on threads not created by Go.
This effectively disabled deadlock detection, which is a right thing, because Go program can be blocked
and only serve callbacks on external threads.
This also disables deadlock detection under race detector, because it happens to use cgo.
With this change the additional M is created lazily on first cgo call. So deadlock detector
works for programs that import "C", "net" or "net/http/pprof" but do not use them in fact.
Also fixes deadlock detector under race detector.
It should be fine to create the M later, because C code can not call into Go before first cgo call,
because C code does not know when Go initialization has completed. So a Go program need to call into C
first either to create an external thread, or notify a thread created in global ctor that Go
initialization has completed.
Fixes #4973.
Fixes #5475.

R=golang-dev, minux.ma, iant
CC=golang-dev
https://golang.org/cl/9303046

11 years agocmd/go: use "go get" instead of "go install" to install vet
Shenghou Ma [Wed, 22 May 2013 18:46:07 +0000 (02:46 +0800)]
cmd/go: use "go get" instead of "go install" to install vet

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/9662043

11 years agoundo CL 9658043 / ac7877558dce
Rob Pike [Wed, 22 May 2013 18:42:04 +0000 (11:42 -0700)]
undo CL 9658043 / ac7877558dce

The original code was correct. The count returned must be the length
of the input slice, not the length of the formatted message.

««« original CL description
log/syslog: report errors from Fprintf
Thanks to chiparus for identifying this.

Fixes #5541.

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/9658043
»»»

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/9644044

11 years agoruntime: fix and speedup malloc stats
Dmitriy Vyukov [Wed, 22 May 2013 18:22:57 +0000 (22:22 +0400)]
runtime: fix and speedup malloc stats
Currently per-sizeclass stats are lost for destroyed MCache's. This patch fixes this.
Also, only update mstats.heap_alloc on heap operations, because that's the only
stat that needs to be promptly updated. Everything else needs to be up-to-date only in ReadMemStats().

R=golang-dev, remyoudompheng, dave, iant
CC=golang-dev
https://golang.org/cl/9207047

11 years agolog/syslog: report errors from Fprintf
Rob Pike [Wed, 22 May 2013 18:03:10 +0000 (11:03 -0700)]
log/syslog: report errors from Fprintf
Thanks to chiparus for identifying this.

Fixes #5541.

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/9658043

11 years agoinclude: add a README file
Shenghou Ma [Wed, 22 May 2013 10:51:15 +0000 (18:51 +0800)]
include: add a README file

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/9392049

11 years agoruntime: simplify MCache
Dmitriy Vyukov [Wed, 22 May 2013 09:29:17 +0000 (13:29 +0400)]
runtime: simplify MCache
The nlistmin/size thresholds are copied from tcmalloc,
but are unnecesary for Go malloc. We do not do explicit
frees into MCache. For sparse cases when we do (mainly hashmap),
simpler logic will do.

R=rsc, dave, iant
CC=gobot, golang-dev, r, remyoudompheng
https://golang.org/cl/9373043

11 years agocmd/go: support new location for vet
Rob Pike [Wed, 22 May 2013 04:18:10 +0000 (21:18 -0700)]
cmd/go: support new location for vet
Also delete the special case for exp, which isn't necessary any more.

Fixes #5529.

R=rsc, nightlyone
CC=golang-dev
https://golang.org/cl/9611048

11 years agodoc/go_faq: fix example.
David Symonds [Wed, 22 May 2013 02:28:58 +0000 (12:28 +1000)]
doc/go_faq: fix example.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/9564044

11 years agonet/http: add another Hijacker test
Brad Fitzpatrick [Wed, 22 May 2013 01:43:28 +0000 (18:43 -0700)]
net/http: add another Hijacker test

R=dsymonds
CC=gobot, golang-dev
https://golang.org/cl/9570043

11 years agobufio: reuse Writer buffers after Flush
Brad Fitzpatrick [Tue, 21 May 2013 22:51:49 +0000 (15:51 -0700)]
bufio: reuse Writer buffers after Flush

A bufio.Writer.Flush marks the usual end of a Writer's
life. Recycle its internal buffer on those explicit flushes,
but not on normal, as-needed internal flushes.

benchmark               old ns/op    new ns/op    delta
BenchmarkWriterEmpty         1959          727  -62.89%

benchmark              old allocs   new allocs    delta
BenchmarkWriterEmpty            2            1  -50.00%

benchmark               old bytes    new bytes    delta
BenchmarkWriterEmpty         4215           83  -98.03%

R=gri, iant
CC=gobot, golang-dev, voidlogic7
https://golang.org/cl/9459044

11 years agonet/http: don't send Accept-Encoding on HEAD requests
Brad Fitzpatrick [Tue, 21 May 2013 22:21:30 +0000 (15:21 -0700)]
net/http: don't send Accept-Encoding on HEAD requests

Works around a bug in nginx: http://trac.nginx.org/nginx/ticket/358

Fixes #5522

R=iant
CC=gobot, golang-dev
https://golang.org/cl/9627043

11 years agodatabase/sql: remove extra RemoveDep call
Brad Fitzpatrick [Tue, 21 May 2013 21:58:08 +0000 (14:58 -0700)]
database/sql: remove extra RemoveDep call

This should have been removed in 45c12efb4635. Not a correctness
issue, but unnecessary work.

This CL also adds paranoia checks in removeDep so this doesn't
happen again.

Fixes #5502

R=adg
CC=gobot, golang-dev, google
https://golang.org/cl/9543043

11 years agotime: remove Time.FormatAppend
Brad Fitzpatrick [Tue, 21 May 2013 21:32:09 +0000 (14:32 -0700)]
time: remove Time.FormatAppend

undo CL 8478044 / 0d28fd55e721

Lack of consensus.

««« original CL description
time: add Time.FormatAppend

This is a version of Time.Format that doesn't require allocation.

Fixes #5192
Update #5195

R=r
CC=gobot, golang-dev
https://golang.org/cl/8478044
»»»

R=r
CC=golang-dev
https://golang.org/cl/9462049

11 years agocmd/gc: fix confusing error with broken types and defer/go
Daniel Morsing [Tue, 21 May 2013 16:35:47 +0000 (18:35 +0200)]
cmd/gc: fix confusing error with broken types and defer/go

Fixes #5172.

R=golang-dev, bradfitz, r
CC=golang-dev
https://golang.org/cl/9614044

11 years agocmd/go: fix LDFLAGS handling, enable misc/cgo/testso on Darwin
Shenghou Ma [Tue, 21 May 2013 16:32:03 +0000 (00:32 +0800)]
cmd/go: fix LDFLAGS handling, enable misc/cgo/testso on Darwin
Fixes #5479.

R=golang-dev, dave
CC=golang-dev
https://golang.org/cl/9416047

11 years agoapi: update next.txt
Brad Fitzpatrick [Tue, 21 May 2013 16:11:11 +0000 (09:11 -0700)]
api: update next.txt

R=minux.ma
CC=golang-dev
https://golang.org/cl/9459047

11 years agocodereview: add khr as a person
Brad Fitzpatrick [Tue, 21 May 2013 16:02:30 +0000 (09:02 -0700)]
codereview: add khr as a person

R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/9459046

11 years agocrypto/tls: don't send NPN extension if NextProtos is not set.
Adam Langley [Tue, 21 May 2013 14:47:31 +0000 (10:47 -0400)]
crypto/tls: don't send NPN extension if NextProtos is not set.

This isn't clearly a bug on Go's part, but it triggers a bug in Firefox
which means that crypto/tls and net/http cannot be wired up together
unless NextProtos includes "http/1.1". When net/http sets up the
tls.Config, it does this and so works fine. But anyone setting up the
tls.Config themselves will hit the Firefox bug.

Fixes #5445.

R=golang-dev, bradfitz, r
CC=golang-dev
https://golang.org/cl/9539045

11 years agocmd/api: add more platforms
Shenghou Ma [Tue, 21 May 2013 13:47:32 +0000 (21:47 +0800)]
cmd/api: add more platforms
as OpenBSD lacks 4 errno constants, api/go1.txt is updated so that
api check won't fail.

R=golang-dev, iant, bradfitz, r
CC=golang-dev
https://golang.org/cl/9149045

11 years agonet/http: use WriteString directly when possible
Brad Fitzpatrick [Tue, 21 May 2013 02:26:26 +0000 (19:26 -0700)]
net/http: use WriteString directly when possible

Several places used io.WriteString unnecessarily when the
static type already implemented WriteString. No need to
check for it at runtime.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/9608043

11 years agocmd/gc: clear n->list of OFOR range loop after walk.
Rémy Oudompheng [Mon, 20 May 2013 21:45:22 +0000 (23:45 +0200)]
cmd/gc: clear n->list of OFOR range loop after walk.

It contains the LHS of the range clause and gets
instrumented by racewalk, but it doesn't have any meaning.

Fixes #5446.

R=golang-dev, dvyukov, daniel.morsing, r
CC=golang-dev
https://golang.org/cl/9560044

11 years agocmd/gc: eliminate a useless bounds check in inlined append().
Rémy Oudompheng [Mon, 20 May 2013 21:19:41 +0000 (23:19 +0200)]
cmd/gc: eliminate a useless bounds check in inlined append().

R=golang-dev, daniel.morsing, r
CC=golang-dev
https://golang.org/cl/9358043

11 years agospec: removed old or invalid TODOs
Robert Griesemer [Mon, 20 May 2013 21:01:07 +0000 (14:01 -0700)]
spec: removed old or invalid TODOs

Several old TODOs are either resolved now (e.g. when is a return
needed), or are from a time the language wasn't frozen (^ for uints
only). Consolidated the others.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/9599044

11 years agospec: fix language about "range" clause
Robert Griesemer [Mon, 20 May 2013 20:27:53 +0000 (13:27 -0700)]
spec: fix language about "range" clause

Fixes #5434.

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/9595044

11 years agomisc/dashboard/builder: handle Plan 9 in defaultSuffix()
Shenghou Ma [Mon, 20 May 2013 19:22:52 +0000 (03:22 +0800)]
misc/dashboard/builder: handle Plan 9 in defaultSuffix()

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/9495045

11 years agocrypto/x509: provide better error messages for X.509 verify failures.
Adam Langley [Mon, 20 May 2013 18:20:26 +0000 (14:20 -0400)]
crypto/x509: provide better error messages for X.509 verify failures.

Failures caused by errors like invalid signatures or missing hash
functions cause rather generic, unhelpful error messages because no
trust chain can be constructed: "x509: certificate signed by unknown
authority."

With this change, authority errors may contain the reason why an
arbitary candidate step in the chain was rejected. For example, in the
event of a missing hash function the error looks like:

x509: certificate signed by unknown authority (possibly because of
"crypto/x509: cannot verify signature: algorithm unimplemented" while
trying to verify candidate authority certificate 'Thawte SGC CA')

Fixes 5058.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/9104051

11 years agotest: do not run the test that relies on precise GC on 32-bits
Dmitriy Vyukov [Mon, 20 May 2013 17:53:16 +0000 (21:53 +0400)]
test: do not run the test that relies on precise GC on 32-bits
Currently most of the 32-bit builder are broken.
Fixes #5516.

R=golang-dev, dave, iant
CC=golang-dev
https://golang.org/cl/9573043

11 years agonet/http: simplify transfer body; reduces allocations too
Brad Fitzpatrick [Mon, 20 May 2013 14:23:59 +0000 (07:23 -0700)]
net/http: simplify transfer body; reduces allocations too

benchmark                                   old ns/op    new ns/op    delta
BenchmarkServerFakeConnNoKeepAlive              14431        14247   -1.28%
BenchmarkServerFakeConnWithKeepAlive            11618        11357   -2.25%
BenchmarkServerFakeConnWithKeepAliveLite         6735         6427   -4.57%
BenchmarkServerHandlerTypeLen                    8842         8740   -1.15%
BenchmarkServerHandlerNoLen                      8001         7828   -2.16%
BenchmarkServerHandlerNoType                     8270         8227   -0.52%
BenchmarkServerHandlerNoHeader                   6148         5920   -3.71%

benchmark                                  old allocs   new allocs    delta
BenchmarkServerFakeConnNoKeepAlive                 30           29   -3.33%
BenchmarkServerFakeConnWithKeepAlive               25           24   -4.00%
BenchmarkServerFakeConnWithKeepAliveLite           10            9  -10.00%
BenchmarkServerHandlerTypeLen                      18           17   -5.56%
BenchmarkServerHandlerNoLen                        15           14   -6.67%
BenchmarkServerHandlerNoType                       16           15   -6.25%
BenchmarkServerHandlerNoHeader                     10            9  -10.00%

benchmark                                   old bytes    new bytes    delta
BenchmarkServerFakeConnNoKeepAlive               2557         2492   -2.54%
BenchmarkServerFakeConnWithKeepAlive             2260         2194   -2.92%
BenchmarkServerFakeConnWithKeepAliveLite         1092         1026   -6.04%
BenchmarkServerHandlerTypeLen                    1941         1875   -3.40%
BenchmarkServerHandlerNoLen                      1898         1832   -3.48%
BenchmarkServerHandlerNoType                     1906         1840   -3.46%
BenchmarkServerHandlerNoHeader                   1092         1026   -6.04%

Update #5195

R=golang-dev, daniel.morsing
CC=golang-dev
https://golang.org/cl/9492044

11 years agosyscall: prefer PATH environment variable in bootstrap scripts
Mikio Hara [Mon, 20 May 2013 14:18:52 +0000 (23:18 +0900)]
syscall: prefer PATH environment variable in bootstrap scripts

R=golang-dev, dave, iant
CC=golang-dev
https://golang.org/cl/9575043

11 years agoruntime: integrated network poller for freebsd/amd64,386, openbsd/amd64,386
Mikio Hara [Mon, 20 May 2013 10:25:32 +0000 (19:25 +0900)]
runtime: integrated network poller for freebsd/amd64,386, openbsd/amd64,386

Update #5199

R=golang-dev, dvyukov
CC=golang-dev
https://golang.org/cl/8825043

11 years agonet: move system common global variables into fd_unix.go
Alex Brainman [Mon, 20 May 2013 05:23:45 +0000 (15:23 +1000)]
net: move system common global variables into fd_unix.go

R=golang-dev, bradfitz
CC=dvyukov, golang-dev, mikioh.mikioh
https://golang.org/cl/9495044

11 years agoruntime: zeroize g->fnstart to not prevent GC of the closure
Dmitriy Vyukov [Mon, 20 May 2013 04:17:21 +0000 (08:17 +0400)]
runtime: zeroize g->fnstart to not prevent GC of the closure
Fixes #5493.

R=golang-dev, minux.ma, iant
CC=golang-dev
https://golang.org/cl/9557043

11 years agonet/http: fewer allocations in the server path
Brad Fitzpatrick [Mon, 20 May 2013 03:15:40 +0000 (20:15 -0700)]
net/http: fewer allocations in the server path

Don't allocate for the Date or Content-Length headers.
A custom Date header formatter replaces use of time.Format.

benchmark                                   old ns/op    new ns/op    delta
BenchmarkClientServer                           67791        64424   -4.97%
BenchmarkClientServerParallel4                  62956        58533   -7.03%
BenchmarkClientServerParallel64                 62043        54789  -11.69%
BenchmarkServer                                254609       229060  -10.03%
BenchmarkServerFakeConnNoKeepAlive              17038        16316   -4.24%
BenchmarkServerFakeConnWithKeepAlive            14184        13226   -6.75%
BenchmarkServerFakeConnWithKeepAliveLite         8591         7532  -12.33%
BenchmarkServerHandlerTypeLen                   10750         9961   -7.34%
BenchmarkServerHandlerNoLen                      9535         8935   -6.29%
BenchmarkServerHandlerNoType                     9858         9362   -5.03%
BenchmarkServerHandlerNoHeader                   7754         6856  -11.58%

benchmark                                  old allocs   new allocs    delta
BenchmarkClientServer                              68           66   -2.94%
BenchmarkClientServerParallel4                     68           66   -2.94%
BenchmarkClientServerParallel64                    68           66   -2.94%
BenchmarkServer                                    21           19   -9.52%
BenchmarkServerFakeConnNoKeepAlive                 32           30   -6.25%
BenchmarkServerFakeConnWithKeepAlive               27           25   -7.41%
BenchmarkServerFakeConnWithKeepAliveLite           12           10  -16.67%
BenchmarkServerHandlerTypeLen                      19           18   -5.26%
BenchmarkServerHandlerNoLen                        17           15  -11.76%
BenchmarkServerHandlerNoType                       17           16   -5.88%
BenchmarkServerHandlerNoHeader                     12           10  -16.67%

Update #5195

R=nigeltao
CC=golang-dev
https://golang.org/cl/9432046

11 years agoruntime: change PollDesc.fd from int32 to uintptr
Alex Brainman [Mon, 20 May 2013 02:55:50 +0000 (12:55 +1000)]
runtime: change PollDesc.fd from int32 to uintptr

This is in preparation for netpoll windows version.

R=golang-dev, bradfitz
CC=dvyukov, golang-dev, mikioh.mikioh
https://golang.org/cl/9569043

11 years agoruntime: properly set G status after syscall
Dmitriy Vyukov [Sun, 19 May 2013 15:35:09 +0000 (19:35 +0400)]
runtime: properly set G status after syscall

R=golang-dev, r, dave
CC=golang-dev
https://golang.org/cl/9307045

11 years agomisc/dashboard: add go.tools to list of subrepos
Dave Cheney [Sun, 19 May 2013 00:04:23 +0000 (10:04 +1000)]
misc/dashboard: add go.tools to list of subrepos

R=r, adg, dsymonds
CC=golang-dev
https://golang.org/cl/9535044

11 years agoruntime, cmd/gc: clean up function protoypes
Anthony Martin [Sat, 18 May 2013 22:49:23 +0000 (15:49 -0700)]
runtime, cmd/gc: clean up function protoypes

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/8652043

11 years agoruntime: mark usleep as NOSPLIT on Plan 9
Anthony Martin [Sat, 18 May 2013 22:47:49 +0000 (15:47 -0700)]
runtime: mark usleep as NOSPLIT on Plan 9

Usleep is called from lockextra, also marked NOSPLIT.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/9258043

11 years agoruntime: fix newproc debugging print
Anthony Martin [Sat, 18 May 2013 22:47:15 +0000 (15:47 -0700)]
runtime: fix newproc debugging print

R=golang-dev, remyoudompheng, r
CC=golang-dev
https://golang.org/cl/9249044

11 years agocompress/flate: faster version of forwardCopy
Keith Randall [Sat, 18 May 2013 22:28:27 +0000 (15:28 -0700)]
compress/flate: faster version of forwardCopy

benchmark                           old ns/op    new ns/op    delta
BenchmarkDecodeDigitsSpeed1e4          197767       203490   +2.89%
BenchmarkDecodeDigitsSpeed1e5         1873969      1912761   +2.07%
BenchmarkDecodeDigitsSpeed1e6        18922760     19021056   +0.52%
BenchmarkDecodeDigitsDefault1e4        194975       197054   +1.07%
BenchmarkDecodeDigitsDefault1e5       1704262      1719988   +0.92%
BenchmarkDecodeDigitsDefault1e6      16618354     16351957   -1.60%
BenchmarkDecodeDigitsCompress1e4       195281       194626   -0.34%
BenchmarkDecodeDigitsCompress1e5      1694364      1702372   +0.47%
BenchmarkDecodeDigitsCompress1e6     16463347     16492126   +0.17%
BenchmarkDecodeTwainSpeed1e4           200653       200127   -0.26%
BenchmarkDecodeTwainSpeed1e5          1861385      1759632   -5.47%
BenchmarkDecodeTwainSpeed1e6         18255769     17186679   -5.86%
BenchmarkDecodeTwainDefault1e4         189080       185157   -2.07%
BenchmarkDecodeTwainDefault1e5        1559222      1461465   -6.27%
BenchmarkDecodeTwainDefault1e6       14792125     13879051   -6.17%
BenchmarkDecodeTwainCompress1e4        188881       185151   -1.97%
BenchmarkDecodeTwainCompress1e5       1537031      1456945   -5.21%
BenchmarkDecodeTwainCompress1e6      14805972     13405094   -9.46%
BenchmarkPaeth                          4            4   -0.89%
BenchmarkDecodeGray                964679       937244   -2.84%
BenchmarkDecodeNRGBAGradient      3753769      3646416   -2.86%
BenchmarkDecodeNRGBAOpaque        3165856      2981300   -5.83%
BenchmarkDecodePaletted            713950       691984   -3.08%
BenchmarkDecodeRGB                3051718      2924260   -4.18%

R=nigeltao, bradfitz
CC=golang-dev, raph
https://golang.org/cl/9425046

11 years agocmd/go: Update documentation of go run to match current behaviour.
Dominik Honnef [Sat, 18 May 2013 11:22:30 +0000 (19:22 +0800)]
cmd/go: Update documentation of go run to match current behaviour.

Fixes #5511.

R=golang-dev, minux.ma
CC=golang-dev
https://golang.org/cl/9530043

11 years agobufio: make Reader buffer transient
Brad Fitzpatrick [Fri, 17 May 2013 22:16:06 +0000 (15:16 -0700)]
bufio: make Reader buffer transient

Share garbage between different bufio Readers. When a Reader
has zero buffered data, put its buffer into a pool.

This acknowledges that most bufio.Readers eventually get
read to completion, and their buffers are then no longer
needed.

benchmark               old ns/op    new ns/op    delta
BenchmarkReaderEmpty         2993         1058  -64.65%

benchmark              old allocs   new allocs    delta
BenchmarkReaderEmpty            3            2  -33.33%

benchmark               old bytes    new bytes    delta
BenchmarkReaderEmpty         4278          133  -96.89%

Update #5100

R=r
CC=adg, dvyukov, gobot, golang-dev, rogpeppe
https://golang.org/cl/8819049

12 years agocmd/vet: delete; it now lives in the go.tools subrepo
Rob Pike [Fri, 17 May 2013 20:53:22 +0000 (13:53 -0700)]
cmd/vet: delete; it now lives in the go.tools subrepo

R=golang-dev, dsymonds, rsc, iant, dave
CC=golang-dev
https://golang.org/cl/9496043

12 years agoruntime: faster x86 memmove (a.k.a. built-in copy())
Keith Randall [Fri, 17 May 2013 19:53:49 +0000 (12:53 -0700)]
runtime: faster x86 memmove (a.k.a. built-in copy())

REP instructions have a high startup cost, so we handle small
sizes with some straightline code.  The REP MOVSx instructions
are really fast for large sizes.  The cutover is approximately
1K.  We implement up to 128/256 because that is the maximum
SSE register load (loading all data into registers before any
stores lets us ignore copy direction).

(on a Sandy Bridge E5-1650 @ 3.20GHz)
benchmark               old ns/op    new ns/op    delta
BenchmarkMemmove0               3            3   +0.86%
BenchmarkMemmove1               5            5   +5.40%
BenchmarkMemmove2              18            8  -56.84%
BenchmarkMemmove3              18            7  -58.45%
BenchmarkMemmove4              36            7  -78.63%
BenchmarkMemmove5              36            8  -77.91%
BenchmarkMemmove6              36            8  -77.76%
BenchmarkMemmove7              36            8  -77.82%
BenchmarkMemmove8              18            8  -56.33%
BenchmarkMemmove9              18            7  -58.34%
BenchmarkMemmove10             18            7  -58.34%
BenchmarkMemmove11             18            7  -58.45%
BenchmarkMemmove12             36            7  -78.51%
BenchmarkMemmove13             36            7  -78.48%
BenchmarkMemmove14             36            7  -78.56%
BenchmarkMemmove15             36            7  -78.56%
BenchmarkMemmove16             18            7  -58.24%
BenchmarkMemmove32             18            8  -54.33%
BenchmarkMemmove64             18            8  -53.37%
BenchmarkMemmove128            20            9  -55.93%
BenchmarkMemmove256            25           11  -55.16%
BenchmarkMemmove512            33           33   -1.19%
BenchmarkMemmove1024           43           44   +2.06%
BenchmarkMemmove2048           61           61   +0.16%
BenchmarkMemmove4096           95           95   +0.00%

R=golang-dev, bradfitz, remyoudompheng, khr, iant, dominik.honnef
CC=golang-dev
https://golang.org/cl/9038048

12 years agomisc/cgo/test: deflake TestParallelSleep once more
Shenghou Ma [Fri, 17 May 2013 18:55:44 +0000 (02:55 +0800)]
misc/cgo/test: deflake TestParallelSleep once more
Fixes #5480.

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/9475043

12 years agocmd/ld: emit .tbss section when doing dynamic internal linking
Shenghou Ma [Fri, 17 May 2013 18:41:49 +0000 (02:41 +0800)]
cmd/ld: emit .tbss section when doing dynamic internal linking
Fixes #5200.

R=iant, dave
CC=golang-dev
https://golang.org/cl/9383043

12 years agoos: clarify windows read console code
Alex Brainman [Fri, 17 May 2013 07:26:44 +0000 (17:26 +1000)]
os: clarify windows read console code

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/9458043

12 years agoruntime: revert 3c2cddfbdaec
Alex Brainman [Fri, 17 May 2013 04:23:29 +0000 (14:23 +1000)]
runtime: revert 3c2cddfbdaec

It appears, syscall.NewCallback still
uses heap to store executable code.

R=golang-dev, khr
CC=golang-dev
https://golang.org/cl/9060046

12 years agoruntime: do not mark os memory as executable on windows
Alex Brainman [Fri, 17 May 2013 03:37:30 +0000 (13:37 +1000)]
runtime: do not mark os memory as executable on windows

R=golang-dev, bradfitz, khr
CC=golang-dev
https://golang.org/cl/9235046

12 years agoruntime: fix scanning of not started goroutines
Carl Shapiro [Thu, 16 May 2013 17:42:39 +0000 (10:42 -0700)]
runtime: fix scanning of not started goroutines

The stack scanner for not started goroutines ignored the arguments
area when its size was unknown.  With this change, the distance
between the stack pointer and the stack base will be used instead.

Fixes #5486

R=golang-dev, bradfitz, iant, dvyukov
CC=golang-dev
https://golang.org/cl/9440043

12 years agocrypto/tls: fix flakey test.
Adam Langley [Thu, 16 May 2013 16:29:23 +0000 (12:29 -0400)]
crypto/tls: fix flakey test.

A test added in b37d2fdcc4d9 didn't work with some values of GOMAXPROCS
because the defer statements were in the wrong order: the Pipe could be
closed before the TLS Client was.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/9187047

12 years agoos: use small buffer when reading from windows console
Alex Brainman [Thu, 16 May 2013 07:20:13 +0000 (17:20 +1000)]
os: use small buffer when reading from windows console

Fixes #5481.

R=golang-dev, dominik.honnef, bradfitz
CC=golang-dev
https://golang.org/cl/9437044

12 years agocmd/gc: repair make(T) in export data for inlining.
Rémy Oudompheng [Thu, 16 May 2013 07:01:43 +0000 (09:01 +0200)]
cmd/gc: repair make(T) in export data for inlining.

When T was an unexported type it could be forgotten.

Fixes #5470.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/9303050

12 years agotime: add Time.FormatAppend
Brad Fitzpatrick [Thu, 16 May 2013 00:23:40 +0000 (17:23 -0700)]
time: add Time.FormatAppend

This is a version of Time.Format that doesn't require allocation.

Fixes #5192
Update #5195

R=r
CC=gobot, golang-dev
https://golang.org/cl/8478044

12 years agoreflect: use visit structure for map key in DeepEqual
Robert Hencke [Wed, 15 May 2013 21:50:57 +0000 (14:50 -0700)]
reflect: use visit structure for map key in DeepEqual

R=golang-dev, bradfitz, jonathan, r
CC=golang-dev
https://golang.org/cl/8730044

12 years agoruntime: fix GC scanning of slices
Dmitriy Vyukov [Wed, 15 May 2013 19:50:32 +0000 (23:50 +0400)]
runtime: fix GC scanning of slices
If a slice points to an array embedded in a struct,
the whole struct can be incorrectly scanned as the slice buffer.
Fixes #5443.

R=cshapiro, iant, r, cshapiro, minux.ma
CC=bradfitz, gobot, golang-dev
https://golang.org/cl/9372044

12 years agomisc/dashboard/codereview: add cshapiro and mpvl to reviewers list.
Rob Pike [Wed, 15 May 2013 17:25:02 +0000 (10:25 -0700)]
misc/dashboard/codereview: add cshapiro and mpvl to reviewers list.

R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/9104052

12 years agoruntime: add simple malloc benchmarks
Dmitriy Vyukov [Wed, 15 May 2013 17:22:32 +0000 (21:22 +0400)]
runtime: add simple malloc benchmarks
Allocs of size 16 can bypass atomic set of the allocated bit, while allocs of size 8 can not.
Allocs with and w/o type info hit different paths inside of malloc.
Current results on linux/amd64:
BenchmarkMalloc8 50000000         43.6 ns/op
BenchmarkMalloc16 50000000         46.7 ns/op
BenchmarkMallocTypeInfo8 50000000         61.3 ns/op
BenchmarkMallocTypeInfo16 50000000         63.5 ns/op

R=golang-dev, remyoudompheng, minux.ma, bradfitz, iant
CC=golang-dev
https://golang.org/cl/9090045

12 years agoruntime: Optimize aeshash a bit. Use a better predicted branch
Keith Randall [Wed, 15 May 2013 16:40:14 +0000 (09:40 -0700)]
runtime: Optimize aeshash a bit.  Use a better predicted branch
for checking for page boundary.  Also avoid boundary check
when >=16 bytes are hashed.

benchmark                        old ns/op    new ns/op    delta
BenchmarkHashStringSpeed                23           22   -0.43%
BenchmarkHashBytesSpeed                 44           42   -3.61%
BenchmarkHashStringArraySpeed           71           68   -4.05%

R=iant, khr
CC=gobot, golang-dev, google
https://golang.org/cl/9123046

12 years agoruntime: transfer whole span from MCentral to MCache
Dmitriy Vyukov [Wed, 15 May 2013 14:35:05 +0000 (18:35 +0400)]
runtime: transfer whole span from MCentral to MCache
Finer-grained transfers were relevant with per-M caches,
with per-P caches they are not relevant and harmful for performance.
For few small size classes where it makes difference,
it's fine to grab the whole span (4K).

benchmark          old ns/op    new ns/op    delta
BenchmarkMalloc           42           40   -4.45%

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/9374043

12 years agocrypto/rsa: check for minimal PKCS#1 v1.5 padding.
Adam Langley [Wed, 15 May 2013 14:27:34 +0000 (10:27 -0400)]
crypto/rsa: check for minimal PKCS#1 v1.5 padding.

The PKCS#1 spec requires that the PS padding in an RSA message be at
least 8 bytes long. We were not previously checking this. This isn't
important in the most common situation (session key encryption), but
the impact is unclear in other cases.

This change enforces the specified minimum size.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/9222045

12 years agocrypto/tls: ignore empty TLS records.
Adam Langley [Wed, 15 May 2013 14:25:54 +0000 (10:25 -0400)]
crypto/tls: ignore empty TLS records.

OpenSSL can be configured to send empty records in order to randomise
the CBC IV. This is an early version of 1/n-1 record splitting (that Go
does) and is quite reasonable, but it results in tls.Conn.Read
returning (0, nil).

This change ignores up to 100 consecutive, empty records to avoid
returning (0, nil) to callers.

Fixes 5309.

R=golang-dev, r, minux.ma
CC=golang-dev
https://golang.org/cl/8852044

12 years agomath/big: save some copies in binaryGCD.
Adam Langley [Wed, 15 May 2013 14:03:22 +0000 (10:03 -0400)]
math/big: save some copies in binaryGCD.

This patch resulted from a bit of quick optimisation in response to a
golang-nuts post. It looks like one could save a couple other copies in
this function, but this addresses the inner loop and is fairly simple.

benchmark                    old ns/op    new ns/op    delta
BenchmarkGCD10x10                 1964         1711  -12.88%
BenchmarkGCD10x100                2019         1736  -14.02%
BenchmarkGCD10x1000               2471         2171  -12.14%
BenchmarkGCD10x10000              6040         5778   -4.34%
BenchmarkGCD10x100000            43204        43025   -0.41%
BenchmarkGCD100x100              11004         8520  -22.57%
BenchmarkGCD100x1000             11820         9446  -20.08%
BenchmarkGCD100x10000            23846        21382  -10.33%
BenchmarkGCD100x100000          133691       131505   -1.64%
BenchmarkGCD1000x1000           120041        95591  -20.37%
BenchmarkGCD1000x10000          136887       113600  -17.01%
BenchmarkGCD1000x100000         295370       273912   -7.26%
BenchmarkGCD10000x10000        2556126      2205198  -13.73%
BenchmarkGCD10000x100000       3159512      2808038  -11.12%
BenchmarkGCD100000x100000    150543094    139986045   -7.01%

R=gri, remyoudompheng
CC=bradfitz, gobot, golang-dev, gri
https://golang.org/cl/9424043

12 years agoruntime: unset m->locks after actual lock unlock
Dmitriy Vyukov [Wed, 15 May 2013 12:48:41 +0000 (16:48 +0400)]
runtime: unset m->locks after actual lock unlock
This is needed for preemptive scheduler,
it will preempt only when m->locks==0,
and we do not want to be preempted while
we have not completely unlocked the lock.

R=golang-dev, khr, iant
CC=golang-dev
https://golang.org/cl/9196047

12 years agoruntime: use enums instead static vars for debugging
Dmitriy Vyukov [Wed, 15 May 2013 07:10:26 +0000 (11:10 +0400)]
runtime: use enums instead static vars for debugging
Compiler can detect and delete dead code with enums,
but can not with static vars.

R=golang-dev, dave, r
CC=golang-dev
https://golang.org/cl/9377043

12 years agoruntime: inline size to class conversion in malloc()
Dmitriy Vyukov [Wed, 15 May 2013 07:02:33 +0000 (11:02 +0400)]
runtime: inline size to class conversion in malloc()
Also change table type from int32[] to int8[] to save space in L1$.

benchmark          old ns/op    new ns/op    delta
BenchmarkMalloc           42           40   -4.68%

R=golang-dev, bradfitz, r
CC=golang-dev
https://golang.org/cl/9199044

12 years agomisc/cgo/test: add missing import
Alex Brainman [Wed, 15 May 2013 05:34:47 +0000 (15:34 +1000)]
misc/cgo/test: add missing import

Fixes windows build.

R=golang-dev
CC=golang-dev
https://golang.org/cl/9429043

12 years agomisc/cgo/test: test for issue 5337.
Shenghou Ma [Wed, 15 May 2013 04:33:29 +0000 (12:33 +0800)]
misc/cgo/test: test for issue 5337.
Test for CL 9226043.

R=golang-dev, dave, iant, bradfitz
CC=golang-dev
https://golang.org/cl/9249043

12 years agocmd/godoc: don't warn about HEAD requests
Brad Fitzpatrick [Wed, 15 May 2013 04:21:11 +0000 (21:21 -0700)]
cmd/godoc: don't warn about HEAD requests

Fixes #5451

R=gri
CC=dsymonds, gobot, golang-dev
https://golang.org/cl/9388043

12 years agocmd/yacc: don't emit line comment when -l is given
Shenghou Ma [Wed, 15 May 2013 04:08:51 +0000 (12:08 +0800)]
cmd/yacc: don't emit line comment when -l is given
Fixes #5447.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/9343045

12 years agoos/user: faster user lookup on Windows
Alexey Borzenkov [Wed, 15 May 2013 03:24:54 +0000 (13:24 +1000)]
os/user: faster user lookup on Windows

Trying to lookup user's display name with directory services can
take several seconds when user's computer is not in a domain.
As a workaround, check if computer is joined in a domain first,
and don't use directory services if it is not.
Additionally, don't leak tokens in user.Current().
Fixes #5298.

R=golang-dev, bradfitz, alex.brainman, lucio.dere
CC=golang-dev
https://golang.org/cl/8541047

12 years agomisc/emacs: Add support for methods with unnamed receiver
Dominik Honnef [Wed, 15 May 2013 03:23:35 +0000 (20:23 -0700)]
misc/emacs: Add support for methods with unnamed receiver

This fixes fontification, navigation and indentation for methods
of the form `func (Foo) Bar...`

R=adonovan
CC=gobot, golang-dev
https://golang.org/cl/8951043

12 years agotesting/quick: fix for aliased types, delete duplicate uint8 test, and fix randFloat6...
Jonathan Hseu [Wed, 15 May 2013 00:14:59 +0000 (17:14 -0700)]
testing/quick: fix for aliased types, delete duplicate uint8 test, and fix randFloat64() to give random numbers from (-math.MaxFloat64, math.MaxFloat64).

R=r, agl
CC=agl, bradfitz, golang-dev
https://golang.org/cl/9296046

12 years agoruntime: enable stack scanning by frames
Carl Shapiro [Tue, 14 May 2013 23:38:12 +0000 (16:38 -0700)]
runtime: enable stack scanning by frames

Update #5134

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/9406046

12 years agodatabase/sql: use method values instead of generating closures
Brad Fitzpatrick [Tue, 14 May 2013 23:35:31 +0000 (16:35 -0700)]
database/sql: use method values instead of generating closures

Reduces garbage.

R=adg, r
CC=dsymonds, gobot, golang-dev
https://golang.org/cl/9088045

12 years agocmd/gc: fix race instrumentation of selectors T(v).Field
Rémy Oudompheng [Tue, 14 May 2013 23:25:20 +0000 (01:25 +0200)]
cmd/gc: fix race instrumentation of selectors T(v).Field

Fixes #5424.

R=golang-dev, daniel.morsing, dvyukov, r
CC=golang-dev
https://golang.org/cl/9033048

12 years agoruntime/bytes: fast Compare for byte arrays and strings.
Keith Randall [Tue, 14 May 2013 23:05:51 +0000 (16:05 -0700)]
runtime/bytes: fast Compare for byte arrays and strings.

Uses SSE instructions to process 16 bytes at a time.

fixes #5354

R=bradfitz, google
CC=golang-dev
https://golang.org/cl/8853048

12 years agoencoding/json: allocate less in NewEncoder
Brad Fitzpatrick [Tue, 14 May 2013 22:50:46 +0000 (15:50 -0700)]
encoding/json: allocate less in NewEncoder

The *Encoder is almost always garbage. It doesn't need an
encodeState inside of it (and its bytes.Buffer), since it's
only needed locally inside of Encode.

benchmark                 old ns/op    new ns/op    delta
BenchmarkEncoderEncode         2562         2553   -0.35%

benchmark                 old bytes    new bytes    delta
BenchmarkEncoderEncode          283          102  -63.96%

R=r
CC=gobot, golang-dev
https://golang.org/cl/9365044

12 years agocmd/vet: fix for changes to go/types package
Rob Pike [Tue, 14 May 2013 22:49:58 +0000 (15:49 -0700)]
cmd/vet: fix for changes to go/types package
Need to use (or stub) exact.Value.

R=gri
CC=golang-dev
https://golang.org/cl/9126043

12 years agonet/http: Fix basic authentication with empty password
Alberto García Hierro [Tue, 14 May 2013 22:33:46 +0000 (15:33 -0700)]
net/http: Fix basic authentication with empty password

        The encoded string must include the : separating the username
        and the password, even when the latter is empty. See
        http://www.ietf.org/rfc/rfc2617.txt for more information.

R=golang-dev, bradfitz, adg
CC=golang-dev
https://golang.org/cl/8475043

12 years agoA+C: Alberto García Hierro (individual CLA)
Brad Fitzpatrick [Tue, 14 May 2013 22:31:46 +0000 (15:31 -0700)]
A+C: Alberto García Hierro (individual CLA)

Generated by addca.

R=gobot
CC=golang-dev
https://golang.org/cl/9419045

12 years agoarchive/tar: skip NUL-filled unused octal fields
Shenghou Ma [Tue, 14 May 2013 20:40:42 +0000 (04:40 +0800)]
archive/tar: skip NUL-filled unused octal fields
Fixes #5290.

R=golang-dev, dave, bradfitz, r
CC=golang-dev
https://golang.org/cl/8763044