]> Cypherpunks repositories - gostls13.git/log
gostls13.git
11 years agocrypto/tls: better error messages.
Adam Langley [Wed, 12 Feb 2014 16:20:01 +0000 (11:20 -0500)]
crypto/tls: better error messages.

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

11 years agonet/http: make responseAndError satisfy the net.Error interface
Rick Arnold [Wed, 12 Feb 2014 15:59:58 +0000 (07:59 -0800)]
net/http: make responseAndError satisfy the net.Error interface

Allow clients to check for timeouts without relying on error substring
matching.

Fixes #6185.

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

11 years agodebug/pe: delete unnecessary type conversions
Robert Dinu [Wed, 12 Feb 2014 15:35:54 +0000 (07:35 -0800)]
debug/pe: delete unnecessary type conversions

Fixes #7104.

LGTM=iant
R=golang-dev, iant
CC=golang-codereviews
https://golang.org/cl/61480049

11 years agoA+C: Alexander Larsson (individual CLA)
David Symonds [Wed, 12 Feb 2014 01:34:04 +0000 (12:34 +1100)]
A+C: Alexander Larsson (individual CLA)

Generated by addca.

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

11 years agogo/parser: better error messages for if/switch/for conditions/expressions
Robert Griesemer [Wed, 12 Feb 2014 00:45:31 +0000 (16:45 -0800)]
go/parser: better error messages for if/switch/for conditions/expressions

Fixes #7102.

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

11 years agoapi: update next.txt
Shenghou Ma [Wed, 12 Feb 2014 00:37:36 +0000 (19:37 -0500)]
api: update next.txt

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

11 years agocmd/ld, cmd/6l: part 2 of solaris/amd64 linker changes.
Shenghou Ma [Tue, 11 Feb 2014 23:43:05 +0000 (18:43 -0500)]
cmd/ld, cmd/6l: part 2 of solaris/amd64 linker changes.
Second part of the solaris/amd64 linker changes: relocation and symbol table.

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

11 years agogo/parser: check presence of 2nd and 3rd index in 3-index slice
Robert Griesemer [Tue, 11 Feb 2014 21:40:37 +0000 (13:40 -0800)]
go/parser: check presence of 2nd and 3rd index in 3-index slice

Fixes #7305.

LGTM=adonovan
R=bradfitz, adonovan
CC=golang-codereviews
https://golang.org/cl/58950045

11 years agocmd/6g, cmd/8g, cmd/5g: make the undefined instruction have no successors
Daniel Morsing [Tue, 11 Feb 2014 20:25:40 +0000 (20:25 +0000)]
cmd/6g, cmd/8g, cmd/5g: make the undefined instruction have no successors

The UNDEF instruction was listed in the instruction data as having the next instruction in the stream as its successor. This confused the optimizer into adding a load where it wasn't needed, in turn confusing the liveness analysis pass for GC bitmaps into thinking that the variable was live.

Fixes #7229.

LGTM=iant, rsc
R=golang-codereviews, bradfitz, iant, dave, rsc
CC=golang-codereviews
https://golang.org/cl/56910045

11 years agoarchive/zip: re-use flate.Writers when writing compressed files
Brad Fitzpatrick [Tue, 11 Feb 2014 19:41:25 +0000 (11:41 -0800)]
archive/zip: re-use flate.Writers when writing compressed files

Prevents a ton of garbage. (Noticed this when writing large
Camlistore zip archives to Amazon Glacier)

Note that the Closer part of the io.WriteCloser is never given
to users. It's an internal detail of the package.

benchmark                         old ns/op     new ns/op     delta
BenchmarkCompressedZipGarbage     42884123      40732373      -5.02%

benchmark                         old allocs     new allocs     delta
BenchmarkCompressedZipGarbage     204            149            -26.96%

benchmark                         old bytes     new bytes     delta
BenchmarkCompressedZipGarbage     4397576       66744         -98.48%

LGTM=adg, rsc
R=adg, rsc
CC=golang-codereviews
https://golang.org/cl/54300053

11 years agoruntime: do not profile blocked netpoll on windows
Dmitriy Vyukov [Tue, 11 Feb 2014 09:41:46 +0000 (13:41 +0400)]
runtime: do not profile blocked netpoll on windows
There is frequently a thread hanging on GQCS,
currently it skews profiles towards netpoll,
but it is not bad and is not consuming any resources.

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

11 years agoruntime: homogenize panic strings on Plan 9
David du Colombier [Tue, 11 Feb 2014 08:34:43 +0000 (09:34 +0100)]
runtime: homogenize panic strings on Plan 9

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

11 years agoA+C: Péter Szilágyi (individual CLA)
Andrew Gerrand [Tue, 11 Feb 2014 06:29:40 +0000 (17:29 +1100)]
A+C: Péter Szilágyi (individual CLA)

Generated by addca.

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

11 years agoarchive/zip: use correct test, fix 32-bit build
Andrew Gerrand [Tue, 11 Feb 2014 05:27:14 +0000 (16:27 +1100)]
archive/zip: use correct test, fix 32-bit build

LGTM=dsymonds
R=dsymonds
CC=golang-codereviews
https://golang.org/cl/61070047

11 years agoarchive/zip: actually test uncompressed size
Andrew Gerrand [Tue, 11 Feb 2014 05:09:42 +0000 (16:09 +1100)]
archive/zip: actually test uncompressed size

Fixes #7292.

LGTM=dsymonds
R=dsymonds
CC=golang-codereviews
https://golang.org/cl/61650046

11 years agodoc: remove "Code that grows with grace" video from front page
Andrew Gerrand [Tue, 11 Feb 2014 05:00:44 +0000 (16:00 +1100)]
doc: remove "Code that grows with grace" video from front page

It was deleted from Vimeo. I will attempt to get a new version online.

Fixes #7297.

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

11 years agocmd/gc: change compile error to "use of package %S without selector"
Brendan Daniel Tracey [Tue, 11 Feb 2014 01:27:31 +0000 (20:27 -0500)]
cmd/gc: change compile error to "use of package %S without selector"

At present, when a package identifier is used outside of a selector expression, gc gives the error "use of package %S outside selector". However, in the selector expression x.f, the spec defines f as the selector. This change makes the error clearer.

Fixes #7133.

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

11 years agoA+C: Brendan Daniel Tracey (individual CLA)
Russ Cox [Tue, 11 Feb 2014 01:27:21 +0000 (20:27 -0500)]
A+C: Brendan Daniel Tracey (individual CLA)

Generated by addca.

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

11 years agodoc: restore race detector manual
Andrew Gerrand [Mon, 10 Feb 2014 22:26:34 +0000 (09:26 +1100)]
doc: restore race detector manual

This got deleted mistakenly during the content re-org.

Fixes #7275.

LGTM=dvyukov
R=golang-codereviews, minux.ma, dvyukov
CC=golang-codereviews
https://golang.org/cl/60850043

11 years agocontainer/heap: avoid and/or ambiguity in documentation
Robert Griesemer [Mon, 10 Feb 2014 20:48:56 +0000 (12:48 -0800)]
container/heap: avoid and/or ambiguity in documentation

(per suggestion by Doug McIlroy)

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

11 years agoruntime: handle "sys: trap: divide error" note on Plan 9
David du Colombier [Mon, 10 Feb 2014 20:47:52 +0000 (21:47 +0100)]
runtime: handle "sys: trap: divide error" note on Plan 9

Fixes #7286.

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

11 years agolib/codereview: allow addca CLs without LGTM
Russ Cox [Mon, 10 Feb 2014 19:40:19 +0000 (14:40 -0500)]
lib/codereview: allow addca CLs without LGTM

LGTM=gri
R=golang-codereviews, gri
CC=golang-codereviews
https://golang.org/cl/61610043

11 years agocmd/go: fix comment
Dmitriy Vyukov [Mon, 10 Feb 2014 17:48:43 +0000 (21:48 +0400)]
cmd/go: fix comment

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

11 years agoruntime: fix crash during cpu profiling
Dmitriy Vyukov [Mon, 10 Feb 2014 16:24:47 +0000 (20:24 +0400)]
runtime: fix crash during cpu profiling
mp->mcache can be concurrently modified by runtime·helpgc.
In such case sigprof can remember mcache=nil, then helpgc sets it to non-nil,
then sigprof restores it back to nil, GC crashes with nil mcache.

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

11 years agocmd/go: better advice for heap profiling
Dmitriy Vyukov [Mon, 10 Feb 2014 14:59:07 +0000 (18:59 +0400)]
cmd/go: better advice for heap profiling

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

11 years agoruntime: do not cpu profile idle threads on windows
Dmitriy Vyukov [Mon, 10 Feb 2014 11:40:55 +0000 (15:40 +0400)]
runtime: do not cpu profile idle threads on windows
Currently this leads to a significant skew towards 'etext' entry,
since all idle threads are profiled every tick.
Before:
Total: 66608 samples
   63188  94.9%  94.9%    63188  94.9% etext
     278   0.4%  95.3%      278   0.4% sweepspan
     216   0.3%  95.6%      448   0.7% runtime.mallocgc
     122   0.2%  95.8%      122   0.2% scanblock
     113   0.2%  96.0%      113   0.2% net/textproto.canonicalMIMEHeaderKey
After:
Total: 8008 samples
    3949  49.3%  49.3%     3949  49.3% etext
     231   2.9%  52.2%      231   2.9% scanblock
     211   2.6%  54.8%      211   2.6% runtime.cas64
     182   2.3%  57.1%      408   5.1% runtime.mallocgc
     178   2.2%  59.3%      178   2.2% runtime.atomicload64

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

11 years agomisc/pprof: support web profiles on windows
Dmitriy Vyukov [Mon, 10 Feb 2014 09:52:58 +0000 (13:52 +0400)]
misc/pprof: support web profiles on windows

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

11 years agocmd/go: skip $ORIGIN test on darwin systems
Dave Cheney [Mon, 10 Feb 2014 02:35:39 +0000 (13:35 +1100)]
cmd/go: skip $ORIGIN test on darwin systems

Fixes #7293.

Update #7261

The bsd ld(1) does not understand $ORIGIN and has restrictions on using -rpath when using clang(1), the default compiler on darwin.

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

11 years agocmd/go: fix test.bash
Dave Cheney [Sun, 9 Feb 2014 23:41:47 +0000 (10:41 +1100)]
cmd/go: fix test.bash

Fixes #7260.

Fix three broken tests in test.bash

The test for issue 4568 was confused by go $ACTION . producing a package root of "", avoiding this mode fixes the test but weakens the test.

The test for issue 4773 was broken on linux because math/Rand would fail to resolve as a package causing the test for duplicates to be skipped.

Finally, the last breakage was a small change in the error message.

Also, add test for foldDup.

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

11 years agoarchive/zip: add flate writing benchmark
Brad Fitzpatrick [Sun, 9 Feb 2014 21:56:47 +0000 (13:56 -0800)]
archive/zip: add flate writing benchmark

LGTM=adg
R=adg
CC=golang-codereviews
https://golang.org/cl/60530049

11 years agoinclude, linlink, cmd/6l, cmd/ld: part 1 of solaris/amd64 linker changes.
Shenghou Ma [Sun, 9 Feb 2014 21:45:38 +0000 (16:45 -0500)]
include, linlink, cmd/6l, cmd/ld: part 1 of solaris/amd64 linker changes.
rsc suggested that we split the whole linker changes into three parts.
This is the first one, mostly dealing with adding Hsolaris.

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

11 years agoC: add Robert Sesek (Google CLA)
Andrew Gerrand [Sun, 9 Feb 2014 21:25:47 +0000 (08:25 +1100)]
C: add Robert Sesek (Google CLA)

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

11 years agosyscall: add missing include statement to bootstrap error code and signal generator
Mikio Hara [Sun, 9 Feb 2014 08:20:59 +0000 (17:20 +0900)]
syscall: add missing include statement to bootstrap error code and signal generator

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

11 years agocmd/6g: faster memmove/memset-like code using unaligned load/stores.
Rémy Oudompheng [Fri, 7 Feb 2014 22:58:21 +0000 (23:58 +0100)]
cmd/6g: faster memmove/memset-like code using unaligned load/stores.

This changes makes sgen and clearfat use unaligned instructions for
the trailing bytes, like the runtime memmove does, resulting in faster
code when manipulating types whose size is not a multiple of 8.

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

11 years agocmd/gc: revert CL 60740044
David du Colombier [Fri, 7 Feb 2014 16:05:16 +0000 (17:05 +0100)]
cmd/gc: revert CL 60740044

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

11 years agocmd/gc: fix nil pointer dereference
David du Colombier [Fri, 7 Feb 2014 14:43:40 +0000 (15:43 +0100)]
cmd/gc: fix nil pointer dereference

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

11 years agonet: remove superfluous type conversion
Alex Brainman [Fri, 7 Feb 2014 05:58:45 +0000 (16:58 +1100)]
net: remove superfluous type conversion

LGTM=minux.ma, dvyukov
R=golang-codereviews, minux.ma, dvyukov
CC=golang-codereviews
https://golang.org/cl/60900043

11 years agoruntime: faster memclr on x86.
Keith Randall [Fri, 7 Feb 2014 01:43:22 +0000 (17:43 -0800)]
runtime: faster memclr on x86.

Use explicit SSE writes instead of REP STOSQ.

benchmark               old ns/op    new ns/op    delta
BenchmarkMemclr5               22            5  -73.62%
BenchmarkMemclr16              27            5  -78.49%
BenchmarkMemclr64              28            6  -76.43%
BenchmarkMemclr256             34            8  -74.94%
BenchmarkMemclr4096           112           84  -24.73%
BenchmarkMemclr65536         1902         1920   +0.95%

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

11 years agoos/exec: use filepath.Base in Command
Alex Brainman [Fri, 7 Feb 2014 01:30:30 +0000 (12:30 +1100)]
os/exec: use filepath.Base in Command

filepath.Base covers all scenarios
(for example paths like d:hello.txt)
on windows

LGTM=iant, bradfitz
R=golang-codereviews, iant, bradfitz
CC=golang-codereviews
https://golang.org/cl/59740050

11 years agosyscall: make use of signed char explicit in generating z-files on freebsd/arm
Mikio Hara [Fri, 7 Feb 2014 01:23:53 +0000 (10:23 +0900)]
syscall: make use of signed char explicit in generating z-files on freebsd/arm

This CL is in preparation to make cgo work on freebsd/arm.

The signedness of C char might be a problem when we make bare syscall
APIs, Go structures, using built-in bootstrap scripts with cgo because
they do translate C stuff to Go stuff internally. For now almost all
the C compilers assume that the type of char will be unsigned on arm
by default but it makes a different view from amd64, 386.

This CL just passes -fsigned-char, let the type of char be signed,
option which is supported on both gcc and clang to the underlying C
compilers through cgo for avoiding such inconsistency on syscall API.

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

11 years agosyscall: regenerate EABI call convention compliant syscalls for freebsd/arm
Mikio Hara [Fri, 7 Feb 2014 01:23:26 +0000 (10:23 +0900)]
syscall: regenerate EABI call convention compliant syscalls for freebsd/arm

This CL is in preparation to make cgo work on freebsd/arm.

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

11 years agosyscall: fix build on freebsd/arm
Mikio Hara [Fri, 7 Feb 2014 01:23:02 +0000 (10:23 +0900)]
syscall: fix build on freebsd/arm

This CL is in preparation to make cgo work on freebsd/arm.

It's just for fixing build fails on freebsd/arm, we still need to
update z-files later for fixing several package test fails.

How to generate z-files on freebsd/arm in the bootstrapping phase:
1. run freebsd on appropriate arm-eabi platforms
2. both syscall z-files and runtime def-files in the current tree are
   broken about EABI padding, fix them by hand
3. run make.bash again to build $GOTOOLDIR/cgo
4. use $GOTOOLDIR/cgo directly

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

11 years agoruntime/cgo: fix build on freebsd/arm
Mikio Hara [Fri, 7 Feb 2014 01:22:34 +0000 (10:22 +0900)]
runtime/cgo: fix build on freebsd/arm

This CL is in preparation to make cgo work on freebsd/arm.

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

11 years agoruntime: fix build on freebsd/arm
Mikio Hara [Fri, 7 Feb 2014 01:22:13 +0000 (10:22 +0900)]
runtime: fix build on freebsd/arm

This CL is in preparation to make cgo work on freebsd/arm.

How to generate defs-files on freebsd/arm in the bootstrapping phase:
1. run freebsd on appropriate arm-eabi platforms
2. both syscall z-files and runtime def-files in the current tree are
   broken about EABI padding, fix them by hand
3. run make.bash again to build $GOTOOLDIR/cgo
4. use $GOTOOLDIR/cgo directly

LGTM=minux.ma, iant
R=iant, minux.ma, dave
CC=golang-codereviews
https://golang.org/cl/59580045

11 years agonet/mail: correctly handle whitespaces when formatting an email address
Jakub Ryszard Czarnowicz [Thu, 6 Feb 2014 23:49:10 +0000 (10:49 +1100)]
net/mail: correctly handle whitespaces when formatting an email address

Whitespace characters are allowed in quoted-string according to RFC 5322 without
being "Q"-encoding. Address.String() already always formats the name portion in
quoted string, so whitespace characters should be allowed in there.

Fixes #6641.

LGTM=dave, dsymonds
R=golang-codereviews, gobot, dsymonds, dave
CC=golang-codereviews
https://golang.org/cl/55770043

11 years agocmd/go: do not create world-writable files.
Shenghou Ma [Thu, 6 Feb 2014 22:54:33 +0000 (17:54 -0500)]
cmd/go: do not create world-writable files.
Fixes #7240.

LGTM=tommi.virtanen, bradfitz
R=golang-codereviews, tommi.virtanen, bradfitz
CC=golang-codereviews
https://golang.org/cl/60480045

11 years agomath/big: replace goto with for loop
Richard Musiol [Thu, 6 Feb 2014 22:44:30 +0000 (14:44 -0800)]
math/big: replace goto with for loop
I just added support for goto statements to my GopherJS project and now I am trying to get rid of my patches. These occurrences of goto however are a bit problematic:
GopherJS has to emulate gotos, so there is some performance drawback when doing so. In this case the drawback is major, since this is a core function of math/big which is called quite often. Additionally I can't see any reason here why the implementation with gotos should be preferred over my proposal.
That's why I would kindly ask to include this patch, even though it is functional equivalent to the existing code.

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

11 years agodoc/install.html: get rid of explicit version number in docs.
Shenghou Ma [Thu, 6 Feb 2014 21:09:01 +0000 (16:09 -0500)]
doc/install.html: get rid of explicit version number in docs.
So that we don't need to update the file each time a new version is released.

LGTM=dave, r, adg
R=golang-codereviews, dave, josharian, gobot, adg, r
CC=golang-codereviews
https://golang.org/cl/48730043

11 years agocmd/go, cmd/cgo, make.bash: cross compiling with cgo enabled
Elias Naur [Thu, 6 Feb 2014 17:11:00 +0000 (09:11 -0800)]
cmd/go, cmd/cgo, make.bash: cross compiling with cgo enabled

Introduce two new environment variables, CC_FOR_TARGET and CXX_FOR_TARGET.
CC_FOR_TARGET defaults to CC and is used when compiling for GOARCH, while
CC remains for compiling for GOHOSTARCH.
CXX_FOR_TARGET defaults to CXX and is used when compiling C++ code for
GOARCH.

CGO_ENABLED defaults to disabled when cross compiling and has to be
explicitly enabled.

Update #4714

LGTM=minux.ma, iant
R=golang-codereviews, minux.ma, iant, rsc, dominik.honnef
CC=golang-codereviews
https://golang.org/cl/57100043

11 years agoA+C: Denis Brandolini (individual CLA)
Brad Fitzpatrick [Wed, 5 Feb 2014 15:32:16 +0000 (07:32 -0800)]
A+C: Denis Brandolini (individual CLA)

Generated by addca.

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

11 years agoencoding/json: mention escaping of '&'
Shenghou Ma [Wed, 5 Feb 2014 06:24:51 +0000 (01:24 -0500)]
encoding/json: mention escaping of '&'
Fixes #7034.

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

11 years agocmd/go, doc/go1.3.txt: misc/benchcmp has been replaced by go tool benchcmp
Josh Bleecher Snyder [Tue, 4 Feb 2014 19:53:13 +0000 (11:53 -0800)]
cmd/go, doc/go1.3.txt: misc/benchcmp has been replaced by go tool benchcmp

Fixes #7016.

LGTM=r
R=r
CC=adg, bradfitz, dave, golang-codereviews
https://golang.org/cl/60100043

11 years agotext/tabwriter: improve panic backtraces
Josh Bleecher Snyder [Tue, 4 Feb 2014 18:19:02 +0000 (10:19 -0800)]
text/tabwriter: improve panic backtraces

Fixes #7117.

LGTM=gri
R=golang-codereviews, gobot, gri
CC=golang-codereviews
https://golang.org/cl/53310044

11 years agocrypto/tls: do not send the current time in hello messages
Anthony Martin [Tue, 4 Feb 2014 15:51:37 +0000 (10:51 -0500)]
crypto/tls: do not send the current time in hello messages

This reduces the ability to fingerprint TLS connections.

The impeteus for this change was a recent change to OpenSSL
by Nick Mathewson:

http://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=2016265dfb

LGTM=agl
R=agl
CC=golang-codereviews
https://golang.org/cl/57230043

11 years agoruntime: add more chan benchmarks
Dmitriy Vyukov [Tue, 4 Feb 2014 05:41:48 +0000 (09:41 +0400)]
runtime: add more chan benchmarks
Add benchmarks for:
1. non-blocking failing receive (polling of "stop" chan)
2. channel-based semaphore (gate pattern)
3. select-based producer/consumer (pass data through a channel, but also wait on "stop" and "timeout" channels)

LGTM=r
R=golang-codereviews, r
CC=bradfitz, golang-codereviews, iant, khr
https://golang.org/cl/59040043

11 years agoliblink, cmd/5l: restore flag_shared
Elias Naur [Mon, 3 Feb 2014 22:49:57 +0000 (14:49 -0800)]
liblink, cmd/5l: restore flag_shared

CL 56120043 fixed and cleaned up TLS on ARM after introducing liblink, but
left flag_shared broken. This CL restores the (unsupported) flag_shared
behaviour by simply rewriting access to $runtime.tlsgm(SB) with
runtime.tlsgm(SB), to compensate for the extra indirection when going from
the R_ARM_TLS_LE32 relocation to the R_ARM_TLS_IE32 relocation.

Also, remove unnecessary symbol lookup left after 56120043.

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

11 years agoliblink, cmd/5a, cmd/5l: restore cgo on older ARM processors
Elias Naur [Mon, 3 Feb 2014 22:07:54 +0000 (14:07 -0800)]
liblink, cmd/5a, cmd/5l: restore cgo on older ARM processors

CL 56120043 fixed TLS handling on ARM after the introduction of
liblink but left older ARM processors broken.

Before liblink, the MRC instruction was replaced with a fallback
on older ARMs. CL 56120043 removed that, because the rewrite matched
bit patterns on the AWORD pseudo-instruction and could therefore change
unrelated AWORDs that happened to match.

This CL adds an AMRC instruction to encode both MRC and MCR previously
encoded as AWORDs. Then, in liblink, the AMRC instructions are either
rewritten to AWORD, or, on goarm < 7, replaced with a branch to the
fallback.

./all.bash completes successfully on an ARMv7 with either GOARM=7 or
GOARM=5. I have verified that the fallback is indeed present in both
runtime.save_gm and runtime.load_gm when GOARM=5 but not when GOARM=7.

If all goes well, this should fix the armv5 builders.

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

11 years agoos/exec: fix Command with relative paths
Brad Fitzpatrick [Mon, 3 Feb 2014 21:32:13 +0000 (16:32 -0500)]
os/exec: fix Command with relative paths

Command was (and is) documented like:
"If name contains no path separators, Command uses LookPath to
resolve the path to a complete name if possible. Otherwise it
uses name directly."

But that wasn't true. It always did LookPath, and then
set a sticky error that the user couldn't unset.
And then if cmd.Dir was changed, Start would still fail
due to the earlier sticky error being set.

This keeps LookPath in the same place as before (so no user
visible changes in cmd.Path after Command), but only does
it when the documentation says it will happen.

Also, clarify the docs about a relative Dir path.

No change in any existing behavior, except using Command
is now possible with relative paths. Previously it only
worked if you built the *Cmd by hand.

Fixes #7228

LGTM=iant
R=iant
CC=adg, golang-codereviews
https://golang.org/cl/59580044

11 years agonet/http: make a test fail harder, earlier
Brad Fitzpatrick [Mon, 3 Feb 2014 21:01:58 +0000 (16:01 -0500)]
net/http: make a test fail harder, earlier

LGTM=dave
R==r, r, dave
CC=golang-codereviews
https://golang.org/cl/59810043

11 years agoA+C: Gordon Klaus (individual CLA)
Robert Griesemer [Mon, 3 Feb 2014 19:05:51 +0000 (11:05 -0800)]
A+C: Gordon Klaus (individual CLA)

Generated by addca.

LGTM=iant
R=gobot, iant
CC=golang-codereviews
https://golang.org/cl/59770043

11 years agoA+C: 申习之 (individual CLA)
Brad Fitzpatrick [Mon, 3 Feb 2014 08:52:03 +0000 (09:52 +0100)]
A+C: 申习之 (individual CLA)

Generated by addca.

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

11 years agoA+C: Tudor Golubenco (individual CLA)
Brad Fitzpatrick [Sun, 2 Feb 2014 12:04:14 +0000 (13:04 +0100)]
A+C: Tudor Golubenco (individual CLA)

Generated by addca.

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

11 years agoA+C: Travis Cline (individual CLA)
Brad Fitzpatrick [Sun, 2 Feb 2014 12:02:37 +0000 (13:02 +0100)]
A+C: Travis Cline (individual CLA)

Generated by addca.

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

11 years agoA+C: Paul Hammond (individual CLA)
Brad Fitzpatrick [Sun, 2 Feb 2014 12:01:10 +0000 (13:01 +0100)]
A+C: Paul Hammond (individual CLA)

Generated by addca.

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

11 years agoA+C: Kelvin Foo Chuan Lyi (individual CLA)
Brad Fitzpatrick [Sun, 2 Feb 2014 12:00:05 +0000 (13:00 +0100)]
A+C: Kelvin Foo Chuan Lyi (individual CLA)

Generated by addca.

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

11 years agoA+C: Joshua Chase (individual CLA)
Brad Fitzpatrick [Sun, 2 Feb 2014 11:58:45 +0000 (12:58 +0100)]
A+C: Joshua Chase (individual CLA)

Generated by addca.

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

11 years agoA+C: John C Barstow (individual CLA)
Brad Fitzpatrick [Sun, 2 Feb 2014 11:56:30 +0000 (12:56 +0100)]
A+C: John C Barstow (individual CLA)

Generated by addca.

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

11 years agoA+C: Henrik Edwards (individual CLA)
Brad Fitzpatrick [Sun, 2 Feb 2014 11:54:21 +0000 (12:54 +0100)]
A+C: Henrik Edwards (individual CLA)

Generated by addca.

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

11 years agoA+C: Christoffer Buchholz (individual CLA)
Brad Fitzpatrick [Sun, 2 Feb 2014 11:52:54 +0000 (12:52 +0100)]
A+C: Christoffer Buchholz (individual CLA)

Generated by addca.

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

11 years agoA+C: Case Nelson (individual CLA)
Brad Fitzpatrick [Sun, 2 Feb 2014 11:51:22 +0000 (12:51 +0100)]
A+C: Case Nelson (individual CLA)

Generated by addca.

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

11 years agoA+C: Adrien Bustany (individual CLA)
Brad Fitzpatrick [Sun, 2 Feb 2014 11:49:59 +0000 (12:49 +0100)]
A+C: Adrien Bustany (individual CLA)

Generated by addca.

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

11 years agotime: use an alternative method of yielding during Overflow timer test
Dave Cheney [Sun, 2 Feb 2014 05:05:07 +0000 (16:05 +1100)]
time: use an alternative method of yielding during Overflow timer test

Fixes #6874.

Use runtime.GC() as a stronger version of runtime.Gosched() which tends to bias the running goroutine in an otherwise idle system. This appears to reduce the worst case number of spins from 600 down to 30 on my 2 core system under high load.

LGTM=iant
R=golang-codereviews, lucio.dere, iant, dvyukov
CC=golang-codereviews
https://golang.org/cl/56540046

11 years agotime: use names for beginning and end of zone transition times
Ian Lance Taylor [Sat, 1 Feb 2014 01:22:10 +0000 (17:22 -0800)]
time: use names for beginning and end of zone transition times

No functional changes, just more readable code.

LGTM=r
R=golang-codereviews, gobot, r
CC=golang-codereviews
https://golang.org/cl/59240043

11 years agounicode: delete appearance of unused LowerUpper term from comment
Rob Pike [Fri, 31 Jan 2014 23:10:18 +0000 (15:10 -0800)]
unicode: delete appearance of unused LowerUpper term from comment
If a LowerUpper ever happens, maketables will complain.

Fixes #7002.

LGTM=dave
R=golang-codereviews, dave
CC=golang-codereviews
https://golang.org/cl/59210044

11 years agotime: correctly handle timezone before first transition time
Ian Lance Taylor [Fri, 31 Jan 2014 22:40:13 +0000 (14:40 -0800)]
time: correctly handle timezone before first transition time

LGTM=r
R=golang-codereviews, r, arnehormann, bradfitz
CC=golang-codereviews
https://golang.org/cl/58450043

11 years agoruntime: fix typos in test
Dmitriy Vyukov [Fri, 31 Jan 2014 14:09:53 +0000 (18:09 +0400)]
runtime: fix typos in test
I don't know what is n, but it exists somewhere there.

LGTM=dave
R=golang-codereviews, dave
CC=golang-codereviews
https://golang.org/cl/58710043

11 years agosyscall: add ERROR_MORE_DATA to Windows for os/fsnotify
Nathan John Youngman [Fri, 31 Jan 2014 06:43:46 +0000 (17:43 +1100)]
syscall: add ERROR_MORE_DATA to Windows for os/fsnotify

LGTM=alex.brainman
R=golang-codereviews, alex.brainman
CC=dave, golang-codereviews
https://golang.org/cl/58900044

11 years agocrypto/rand: add tests for Int, Prime
Shawn Smith [Fri, 31 Jan 2014 00:43:48 +0000 (11:43 +1100)]
crypto/rand: add tests for Int, Prime

LGTM=rsc, dave
R=golang-codereviews, dave, josharian, rsc
CC=golang-codereviews
https://golang.org/cl/46490043

11 years agocmd/gc: do not consider length zero arrays as comparable.
Rémy Oudompheng [Thu, 30 Jan 2014 23:30:56 +0000 (00:30 +0100)]
cmd/gc: do not consider length zero arrays as comparable.

Array values are comparable if values of the array element type
are comparable.

Fixes #6526.

LGTM=khr
R=rsc, bradfitz, khr
CC=golang-codereviews
https://golang.org/cl/58580043

11 years agocmd/ld: fix bug with "runtime/cgo" in external link mode
Ian Lance Taylor [Thu, 30 Jan 2014 17:25:47 +0000 (09:25 -0800)]
cmd/ld: fix bug with "runtime/cgo" in external link mode

In external link mode the linker explicitly adds the string
constant "runtime/cgo".  It adds the string constant using the
same symbol name as the compiler, but a different format.  The
compiler assumes that the string data immediately follows the
string header, but the linker puts the two in different
sections.  The result is bad string data when the compiler
sees "runtime/cgo" used as a string constant.

The compiler assumption is in datastring in [568]g/gobj.c.
The linker layout is in addstrdata in ld/data.c.  The compiler
assumption is valid for string literals.  The linker is not
creating a string literal, so its assumption is also valid.

There are a few ways to avoid this problem.  This patch fixes
it by only doing the fake import of runtime/cgo if necessary,
and by only creating the string symbol if necessary.

Fixes #7234.

LGTM=dvyukov
R=golang-codereviews, dvyukov, bradfitz
CC=golang-codereviews
https://golang.org/cl/58410043

11 years agonet/http: temporarily disable the failing tests on Plan 9
David du Colombier [Thu, 30 Jan 2014 10:12:08 +0000 (11:12 +0100)]
net/http: temporarily disable the failing tests on Plan 9

Update #7237

LGTM=bradfitz
R=jas, bradfitz
CC=golang-codereviews
https://golang.org/cl/57190045

11 years agoruntime: increase page size to 8K
Dmitriy Vyukov [Thu, 30 Jan 2014 09:28:19 +0000 (13:28 +0400)]
runtime: increase page size to 8K
Tcmalloc uses 8K, 32K and 64K pages, and in custom setups 256K pages.
Only Chromium uses 4K pages today (in "slow but small" configuration).
The general tendency is to increase page size, because it reduces
metadata size and DTLB pressure.
This change reduces GC pause by ~10% and slightly improves other metrics.

json-1
allocated                 8037492      8038689      +0.01%
allocs                     105762       105573      -0.18%
cputime                 158400000    155800000      -1.64%
gc-pause-one              4412234      4135702      -6.27%
gc-pause-total            2647340      2398707      -9.39%
rss                      54923264     54525952      -0.72%
sys-gc                    3952624      3928048      -0.62%
sys-heap                 46399488     46006272      -0.85%
sys-other                 5597504      5290304      -5.49%
sys-stack                  393216       393216      +0.00%
sys-total                56342832     55617840      -1.29%
time                    158478890    156046916      -1.53%
virtual-mem             256548864    256593920      +0.02%

garbage-1
allocated                 2991113      2986259      -0.16%
allocs                      62844        62652      -0.31%
cputime                  16330000     15860000      -2.88%
gc-pause-one            789108229    725555211      -8.05%
gc-pause-total            3945541      3627776      -8.05%
rss                    1143660544   1132253184      -1.00%
sys-gc                   65609600     65806208      +0.30%
sys-heap               1032388608   1035599872      +0.31%
sys-other                37501632     22777664     -39.26%
sys-stack                 8650752      8781824      +1.52%
sys-total              1144150592   1132965568      -0.98%
time                     16364602     15891994      -2.89%
virtual-mem            1327296512   1313746944      -1.02%

This is the exact reincarnation of already LGTMed:
https://golang.org/cl/45770044
which must not break darwin/freebsd after:
https://golang.org/cl/56630043
TBR=iant

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

11 years agonet/http: use a struct instead of a string in transport conn cache key
Brad Fitzpatrick [Thu, 30 Jan 2014 08:57:04 +0000 (09:57 +0100)]
net/http: use a struct instead of a string in transport conn cache key

The Transport's idle connection cache is keyed by a string,
for pre-Go 1.0 reasons.  Ever since Go has been able to use
structs as map keys, there's been a TODO in the code to use
structs instead of allocating strings. This change does that.

Saves 3 allocatins and ~100 bytes of garbage per client
request. But because string hashing is so fast these days
(thanks, Keith), the performance is a wash: what we gain
on GC and not allocating, we lose in slower hashing. (hashing
structs of strings is slower than 1 string)

This seems a bit faster usually, but I've also seen it be a
bit slower. But at least it's how I've wanted it now, and it
the allocation improvements are consistent.

LGTM=adg
R=adg
CC=golang-codereviews
https://golang.org/cl/58260043

11 years agoencoding/gob: fix two crashes on corrupted data.
Rémy Oudompheng [Thu, 30 Jan 2014 06:54:57 +0000 (07:54 +0100)]
encoding/gob: fix two crashes on corrupted data.

Fixes #6323.

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

11 years agonet: net: better IPv4 stack probe on Plan 9
Jeff Sickel [Thu, 30 Jan 2014 00:49:32 +0000 (09:49 +0900)]
net: net: better IPv4 stack probe on Plan 9

LGTM=mischief, mikioh.mikioh
R=golang-codereviews, 0intro, mischief, mikioh.mikioh
CC=golang-codereviews
https://golang.org/cl/53960044

11 years agocmd/8g: don't crash if Prog->u.branch is nil
Rob Pike [Thu, 30 Jan 2014 00:14:45 +0000 (16:14 -0800)]
cmd/8g: don't crash if Prog->u.branch is nil
The code is copied from cmd/6g.
Empirically, all branch targets are nil in this code so
something is still wrong, but at least this stops 8g -S
from crashing.

Update #7178

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

11 years agoruntime: prepare for 8K pages
Dmitriy Vyukov [Wed, 29 Jan 2014 14:18:46 +0000 (18:18 +0400)]
runtime: prepare for 8K pages
Ensure than heap is PageSize aligned.

LGTM=iant
R=iant, dave, gobot
CC=golang-codereviews
https://golang.org/cl/56630043

11 years agonet/http: read as much as possible (including EOF) during chunked reads
Brad Fitzpatrick [Wed, 29 Jan 2014 12:44:21 +0000 (13:44 +0100)]
net/http: read as much as possible (including EOF) during chunked reads

This is the chunked half of https://golang.org/cl/49570044 .

We want full reads to return EOF as early as possible, when we
know we're at the end, so http.Transport client connections are eagerly
re-used in the common case, even if no Read or Close follows.

To do this, make the chunkedReader.Read fill up its argument p []byte
buffer as much as possible, as long as that doesn't involve doing
any more blocking reads to read chunk headers. That means if we
have a chunk EOF ("0\r\n") sitting in the incoming bufio.Reader,
we see it and set EOF on our final Read.

LGTM=adg
R=adg
CC=golang-codereviews
https://golang.org/cl/58240043

11 years agonet/http: reuse client connections earlier when Content-Length is set
Brad Fitzpatrick [Wed, 29 Jan 2014 10:23:45 +0000 (11:23 +0100)]
net/http: reuse client connections earlier when Content-Length is set

Set EOF on the final Read of a body with a Content-Length, which
will cause clients to recycle their connection immediately upon
the final Read, rather than waiting for another Read or Close
(neither of which might come).  This happens often when client
code is simply something like:

  err := json.NewDecoder(resp.Body).Decode(&dest)
  ...

Then there's usually no subsequent Read. Even if the client
calls Close (which they should): in Go 1.1, the body was
slurped to EOF, but in Go 1.2, that was then treated as a
Close-before-EOF and the underlying connection was closed.
But that's assuming the user even calls Close. Many don't.
Reading to EOF also causes a connection be reused. Now the EOF
arrives earlier.

This CL only addresses the Content-Length case. A future CL
will address the chunked case.

LGTM=adg
R=adg
CC=golang-codereviews
https://golang.org/cl/49570044

11 years agotest: skip SIGCHLD test on Plan 9
David du Colombier [Wed, 29 Jan 2014 08:28:23 +0000 (09:28 +0100)]
test: skip SIGCHLD test on Plan 9

LGTM=bradfitz
R=jas, mikioh.mikioh, bradfitz
CC=golang-codereviews
https://golang.org/cl/51200045

11 years agonet: fix incoming connection's network name handling on unix networks
Mikio Hara [Wed, 29 Jan 2014 00:51:31 +0000 (09:51 +0900)]
net: fix incoming connection's network name handling on unix networks

Fixes #7183.

LGTM=iant
R=golang-codereviews, gobot, iant
CC=golang-codereviews
https://golang.org/cl/57520043

11 years agoencoding/asn1: support set tag when unmarshaling.
Adam Langley [Tue, 28 Jan 2014 19:12:25 +0000 (14:12 -0500)]
encoding/asn1: support set tag when unmarshaling.

This change also addresses some places where the comments were lacking.

Fixes #7087.

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

11 years agoruntime: more chan tests
Dmitriy Vyukov [Tue, 28 Jan 2014 18:45:14 +0000 (22:45 +0400)]
runtime: more chan tests

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

11 years agoruntime: prefetch next block in mallocgc
Dmitriy Vyukov [Tue, 28 Jan 2014 18:38:39 +0000 (22:38 +0400)]
runtime: prefetch next block in mallocgc

json-1
cputime                  99600000     98600000      -1.00%
time                    100005493     98859693      -1.15%

garbage-1
cputime                  15760000     15440000      -2.03%
time                     15791759     15471701      -2.03%

LGTM=khr
R=golang-codereviews, gobot, khr, dave
CC=bradfitz, golang-codereviews, iant
https://golang.org/cl/57310043

11 years agoruntime: fix buffer overflow in make(chan)
Dmitriy Vyukov [Tue, 28 Jan 2014 18:37:35 +0000 (22:37 +0400)]
runtime: fix buffer overflow in make(chan)
On 32-bits one can arrange make(chan) params so that
the chan buffer gives you access to whole memory.

LGTM=r
R=golang-codereviews, r
CC=bradfitz, golang-codereviews, iant, khr
https://golang.org/cl/50250045

11 years agoruntime: adjust malloc race instrumentation for tiny allocs
Dmitriy Vyukov [Tue, 28 Jan 2014 18:34:32 +0000 (22:34 +0400)]
runtime: adjust malloc race instrumentation for tiny allocs
Tiny alloc memory block is shared by different goroutines running on the same thread.
We call racemalloc after enabling preemption in mallocgc,
as the result another goroutine can act on not yet race-cleared tiny block.
Call racemalloc before enabling preemption.
Fixes #7224.

LGTM=dave
R=golang-codereviews, dave
CC=golang-codereviews
https://golang.org/cl/57730043

11 years agonet: make it possible to use FilePacketConn with IPConn
Mikio Hara [Tue, 28 Jan 2014 11:18:27 +0000 (03:18 -0800)]
net: make it possible to use FilePacketConn with IPConn

Fixes #6803.

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

11 years agoio: clarify MultiReader documentation
Andrew Gerrand [Tue, 28 Jan 2014 08:49:29 +0000 (19:49 +1100)]
io: clarify MultiReader documentation

Fixes #7216.

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

11 years agocmd/go: When linking with gccgo pass .a files in the order they are discovered
Michael Hudson-Doyle [Tue, 28 Jan 2014 05:47:09 +0000 (16:47 +1100)]
cmd/go: When linking with gccgo pass .a files in the order they are discovered

Under some circumstances linking a test binary with gccgo can fail, because
the installed version of the library ends up before the version built for the
test on the linker command line.

This admittedly slightly hackish fix fixes this by putting the library archives
on the linker command line in the order that a pre-order depth first traversal
of the dependencies gives them, which has the side effect of always putting the
version of the library built for the test first.

Fixes #6768

LGTM=rsc
R=golang-codereviews, minux.ma, gobot, rsc, dave
CC=golang-codereviews
https://golang.org/cl/28050043

11 years agobuild: fix typos in run.rc
David du Colombier [Tue, 28 Jan 2014 05:17:38 +0000 (06:17 +0100)]
build: fix typos in run.rc

LGTM=bradfitz
R=jas, bradfitz
CC=golang-codereviews
https://golang.org/cl/52940044