]> Cypherpunks repositories - gostls13.git/log
gostls13.git
11 years agoruntime: fix bad g status after copystack
Dmitriy Vyukov [Thu, 6 Mar 2014 17:33:19 +0000 (21:33 +0400)]
runtime: fix bad g status after copystack

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

11 years agoruntime: fix runaway memory usage
Dmitriy Vyukov [Thu, 6 Mar 2014 17:33:00 +0000 (21:33 +0400)]
runtime: fix runaway memory usage
It was caused by mstats.heap_alloc skew.
Fixes #7430.

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

11 years agonet/http: make TestUseProxy repeatable
Dmitriy Vyukov [Thu, 6 Mar 2014 14:44:14 +0000 (18:44 +0400)]
net/http: make TestUseProxy repeatable
Currently it fails on second and subsequent runs (when using -cpu=1,2,4) as:
--- FAIL: TestUseProxy-4 (0.00 seconds)
proxy_test.go:109: useProxy(barbaz.net) = true, want false
proxy_test.go:109: useProxy(foobar.com) = true, want false
proxy_test.go:109: useProxy(www.foobar.com) = true, want false

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

11 years agorun.bash: explain why we set GOMAXPROCS for runtime test
Dmitriy Vyukov [Thu, 6 Mar 2014 09:16:14 +0000 (13:16 +0400)]
run.bash: explain why we set GOMAXPROCS for runtime test
Fixes #7459.

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

11 years agoapi: update next.txt
Shenghou Ma [Thu, 6 Mar 2014 06:44:04 +0000 (01:44 -0500)]
api: update next.txt

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

11 years agoapi: add NetBSD/ARM EABI exceptions.
Shenghou Ma [Thu, 6 Mar 2014 06:19:16 +0000 (01:19 -0500)]
api: add NetBSD/ARM EABI exceptions.

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

11 years agocmd/dist: enable GOARM>5 on NetBSD/ARM.
Shenghou Ma [Thu, 6 Mar 2014 05:57:23 +0000 (00:57 -0500)]
cmd/dist: enable GOARM>5 on NetBSD/ARM.
Tested GOARM=6 on Raspberry Pi, and I found only a few tests that
use sub-normal numbers fails. I have a patch to NetBSD kernel pending
that fixes this issue (NetBSD kernel doesn't allow us to disable the
Flush-to-Zero feature).

LGTM=jsing
R=golang-codereviews, jsing
CC=golang-codereviews
https://golang.org/cl/70730043

11 years agosyscall: update NetBSD/ARM port to EABI.
Shenghou Ma [Thu, 6 Mar 2014 05:55:57 +0000 (00:55 -0500)]
syscall: update NetBSD/ARM port to EABI.

LGTM=jsing
R=golang-codereviews, jsing
CC=golang-codereviews
https://golang.org/cl/70720043

11 years agospec: be more precise about underlying types of predeclared types
Robert Griesemer [Thu, 6 Mar 2014 03:37:44 +0000 (19:37 -0800)]
spec: be more precise about underlying types of predeclared types

The underlying type of the predeclared type error is not itself,
but the interface it is defined as.

Fixes #7444.

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

11 years agodoc/go_faq.html: reference the new wiki page titled Go Code Review Comments
Rob Pike [Thu, 6 Mar 2014 02:15:09 +0000 (13:15 +1100)]
doc/go_faq.html: reference the new wiki page titled Go Code Review Comments

Fixes #7449.

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

11 years agonet/rpc/jsonrpc: add temporarily-disabled failing test
Brad Fitzpatrick [Thu, 6 Mar 2014 00:01:37 +0000 (16:01 -0800)]
net/rpc/jsonrpc: add temporarily-disabled failing test

To be enabled by https://golang.org/cl/71230045/

Update #7442

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

11 years agonet/http: deflake a test
Brad Fitzpatrick [Wed, 5 Mar 2014 22:56:50 +0000 (14:56 -0800)]
net/http: deflake a test

I missed this one in codereview.appspot.com/70010050
Same thing, but different test.

Fixes windows-amd64-race and likely other Windows
machines failing like:
http://build.golang.org/log/0382bf0048bf5835a51a8a902df5c6fc73cd7ff5

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

11 years agodoc: update links in contribute.html
Brad Fitzpatrick [Wed, 5 Mar 2014 22:09:03 +0000 (14:09 -0800)]
doc: update links in contribute.html

CLA links are now redirects. Use new URLs instead.

Also, use https:// links for all Google sites where
the http version just redirects to https anyway.
(That's all links on the page, as it turns out)

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

11 years agonet/http: minor fixes and optimization for Response.TLS
Brad Fitzpatrick [Wed, 5 Mar 2014 20:40:13 +0000 (12:40 -0800)]
net/http: minor fixes and optimization for Response.TLS

Also add it to doc/go1.3.txt.

Update #7289

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

11 years agoCONTRIBUTORS: add David Covert (Google CLA)
Russ Cox [Wed, 5 Mar 2014 20:39:34 +0000 (15:39 -0500)]
CONTRIBUTORS: add David Covert (Google CLA)

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

11 years agoA+C: Manoj Dayaram (Moov Corporation, corporate CLA)
Russ Cox [Wed, 5 Mar 2014 20:27:36 +0000 (15:27 -0500)]
A+C: Manoj Dayaram (Moov Corporation, corporate CLA)

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

11 years agonet/http: Add TLS Connection State to Responses.
Paul A Querna [Wed, 5 Mar 2014 20:25:55 +0000 (12:25 -0800)]
net/http: Add TLS Connection State to Responses.

Fixes #7289.

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

11 years agoA+C: Paul A Querna (individual CLA)
Brad Fitzpatrick [Wed, 5 Mar 2014 20:22:10 +0000 (12:22 -0800)]
A+C: Paul A Querna (individual CLA)

Generated by addca.

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

11 years agosyscall: add mmap constants for NetBSD/ARM.
Shenghou Ma [Wed, 5 Mar 2014 20:18:36 +0000 (15:18 -0500)]
syscall: add mmap constants for NetBSD/ARM.
Fixes the syscall test.

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

11 years agospec: shadowed return parameters may be disallowed
Robert Griesemer [Wed, 5 Mar 2014 19:59:53 +0000 (11:59 -0800)]
spec: shadowed return parameters may be disallowed

This documents the implemented behavior of both
gc and gccgo as an implementation restriction.

NOT A LANGUAGE CHANGE.

Fixes #5425.

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

11 years agocmd/dist: support building pkg/runtime/*.
Shenghou Ma [Wed, 5 Mar 2014 19:57:17 +0000 (14:57 -0500)]
cmd/dist: support building pkg/runtime/*.
Essentialy for running tests without a working cmd/go.
While we're at it, also fix a typo.

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

11 years agoencoding/gob: improve interface assignment error message
Kelsey Hightower [Wed, 5 Mar 2014 19:52:18 +0000 (06:52 +1100)]
encoding/gob: improve interface assignment error message

During the glob decoding process interface values are set to concrete
values after a test for assignability. If the assignability test fails
a slightly vague error message is produced. While technically accurate
the error message does not clearly describe the problem.

Rewrite the error message to include the usage of the word assignable,
which makes it clear the concrete value type is not assignable to the
interface value type.

Fixes #6467.

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

11 years agoencoding/xml: add test for EncodeToken
Shawn Smith [Wed, 5 Mar 2014 19:49:33 +0000 (14:49 -0500)]
encoding/xml: add test for EncodeToken

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

11 years agocmd/ld: don't include padding length in size of the note section
Shenghou Ma [Wed, 5 Mar 2014 19:40:55 +0000 (14:40 -0500)]
cmd/ld: don't include padding length in size of the note section
Recently NetBSD starts to enforce this, and refuses to execute
the program if n is larger than the sum of entry sizes.

Before:
$ readelf -n ../bin/go.old
Notes at offset 0x00000bd0 with length 0x00000019:
  Owner         Data size       Description
  NetBSD                0x00000004      NT_VERSION (version)
readelf: Warning: corrupt note found at offset 18 into core notes
readelf: Warning:  type: 0, namesize: 00000000, descsize: 00000000
$ readelf -n ../bin/go
Notes at offset 0x00000bd0 with length 0x00000018:
Owner         Data size       Description
NetBSD                0x00000004      NT_VERSION (version)

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

11 years agocmd/go: add support for coverage in CgoFiles
Alberto García Hierro [Wed, 5 Mar 2014 19:28:11 +0000 (14:28 -0500)]
cmd/go: add support for coverage in CgoFiles

Add CgoFiles to the covered files when building
with cover support.

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

11 years agocmd/dist: use vfprintf on Windows, same as on Unix
Russ Cox [Wed, 5 Mar 2014 19:16:30 +0000 (14:16 -0500)]
cmd/dist: use vfprintf on Windows, same as on Unix

Apparently, the Windows routines sometimes fail to generate output.
Copy the Unix stdio-based implementations instead.

Suggested by Pietro Gagliardi in CL 65280043 but that CL
seems to have been abandoned.

Fixes #7242.

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

11 years agocmd/gc: allow append and complex builtins to accept 2-result call expression as first...
Chris Manghane [Wed, 5 Mar 2014 19:16:21 +0000 (14:16 -0500)]
cmd/gc: allow append and complex builtins to accept 2-result call expression as first argument.

Fixes #5793.

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

11 years agocmd/dist: respect system CFLAGS/LDFLAGS
Jan Ziak [Wed, 5 Mar 2014 19:10:22 +0000 (14:10 -0500)]
cmd/dist: respect system CFLAGS/LDFLAGS

Update #6882.

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

11 years agoruntime: handle Go calls C calls Go panic correctly on windows/386
Russ Cox [Wed, 5 Mar 2014 16:10:40 +0000 (11:10 -0500)]
runtime: handle Go calls C calls Go panic correctly on windows/386

32-bit Windows uses "structured exception handling" (SEH) to
handle hardware faults: that there is a per-thread linked list
of fault handlers maintained in user space instead of
something like Unix's signal handlers. The structures in the
linked list are required to live on the OS stack, and the
usual discipline is that the function that pushes a record
(allocated from the current stack frame) onto the list pops
that record before returning. Not to pop the entry before
returning creates a dangling pointer error: the list head
points to a stack frame that no longer exists.

Go pushes an SEH record in the top frame of every OS thread,
and that record suffices for all Go execution on that thread,
at least until cgo gets involved.

If we call into C using cgo, that called C code may push its
own SEH records, but by the convention it must pop them before
returning back to the Go code. We assume it does, and that's
fine.

If the C code calls back into Go, we want the Go SEH handler
to become active again, not whatever C has set up. So
runtime.callbackasm1, which handles a call from C back into
Go, pushes a new SEH record before calling the Go code and
pops it when the Go code returns. That's also fine.

It can happen that when Go calls C calls Go like this, the
inner Go code panics. We allow a defer in the outer Go to
recover the panic, effectively wiping not only the inner Go
frames but also the C calls. This sequence was not popping the
SEH stack up to what it was before the cgo calls, so it was
creating the dangling pointer warned about above. When
eventually the m stack was used enough to overwrite the
dangling SEH records, the SEH chain was lost, and any future
panic would not end up in Go's handler.

The bug in TestCallbackPanic and friends was thus creating a
situation where TestSetPanicOnFault - which causes a hardware
fault - would not find the Go fault handler and instead crash
the binary.

Add checks to TestCallbackPanicLocked to diagnose the mistake
in that test instead of leaving a bad state for another test
case to stumble over.

Fix bug by restoring SEH chain during deferred "endcgo"
cleanup.

This bug is likely present in Go 1.2.1, but since it depends
on Go calling C calling Go, with the inner Go panicking and
the outer Go recovering the panic, it seems not important
enough to bother fixing before Go 1.3. Certainly no one has
complained.

Fixes #7470.

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

11 years agosyscall: regenerate z-files for dragonfly
Joel Sing [Wed, 5 Mar 2014 13:09:09 +0000 (00:09 +1100)]
syscall: regenerate z-files for dragonfly

Regenerate z-files for DragonFly BSD 3.6.

F_DUP_FD_CLOEXEC is now supported, so remove the zero value constant
from types_dragonfly.go so that we use the generated value from the
z-files.

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

11 years agosyscall: fix mksysnum_dragonfly.pl
Joel Sing [Wed, 5 Mar 2014 13:08:34 +0000 (00:08 +1100)]
syscall: fix mksysnum_dragonfly.pl

The format of the DragonFly BSD syscalls.master file has changed
slightly - update mksysnum_dragonfly.pl to match.

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

11 years agonet: disable "udp" to IPv6 unicast address loopback test on dragonfly
Joel Sing [Wed, 5 Mar 2014 13:08:03 +0000 (00:08 +1100)]
net: disable "udp" to IPv6 unicast address loopback test on dragonfly

Disable the "udp" to IPv6 unicast address on the loopback interface
test under DragonFly BSD. This currently returns a local address of
0.0.0.1, rather than an IPv6 address with zone identifier.

Update #7473

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

11 years agonet: fix non-blocking connect handling on dragonfly
Joel Sing [Wed, 5 Mar 2014 13:07:16 +0000 (00:07 +1100)]
net: fix non-blocking connect handling on dragonfly

Performing multiple connect system calls on a non-blocking socket
under DragonFly BSD does not necessarily result in errors from earlier
connect calls being returned, particularly if we are connecting to
localhost. Instead, once netpoll tells us that the socket is ready,
get the SO_ERROR socket option to see if the connection succeeded
or failed.

Fixes #7474

LGTM=mikioh.mikioh
R=mikioh.mikioh
CC=golang-codereviews
https://golang.org/cl/69340044

11 years agoos: try openFile before openDir in windows os.OpenFile
Patrick Mézard [Wed, 5 Mar 2014 01:19:56 +0000 (12:19 +1100)]
os: try openFile before openDir in windows os.OpenFile

Logging calls when running "go install -a std" turns:

  547  openDir succeeded
  3593 openDir failed and fell back to openFile
  3592 openFile succeeded
  1    both failed

into:

  3592 openFile succeeded
  548  openFile failed and fell back
  547  openDir succeeded
  1    both failed

Here the change trades 3593 failed openDir for 548 failed openFile.

Fix issue 7426.

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

11 years agogo/parser: better error position for non-invoked gp/defer functions
Robert Griesemer [Tue, 4 Mar 2014 22:10:30 +0000 (14:10 -0800)]
go/parser: better error position for non-invoked gp/defer functions

Added test cases and expanded test harness to handle token end
positions.

Also: Make sure token end positions are never outside the valid
      position range, as was possible in case of parse errors.

Fixes #7458.

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

11 years agonet/smtp: set ServerName in StartTLS, as now required by crypto/tls
Mike Andrews [Tue, 4 Mar 2014 21:43:26 +0000 (13:43 -0800)]
net/smtp: set ServerName in StartTLS, as now required by crypto/tls

the crypto/tls revision d3d43f270632 (CL 67010043, requiring ServerName or InsecureSkipVerify) breaks net/smtp,
since it seems impossible to do SMTP via TLS anymore. i've tried to fix this by simply using a tls.Config with
ServerName, instead of a nil *tls.Config. without this fix, doing SMTP with TLS results in error "tls: either
ServerName or InsecureSkipVerify must be specified in the tls.Config".

testing: the new method TestTlsClient(...) sets up a skeletal smtp server with tls capability, and test client
injects a "fake" certificate allowing tls to work on localhost; thus, the modification to SendMail(...) enabling
this.

Fixes #7437.

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

11 years agonet/http: improve Client.Timeout docs, quiet test
Brad Fitzpatrick [Tue, 4 Mar 2014 21:41:05 +0000 (13:41 -0800)]
net/http: improve Client.Timeout docs, quiet test

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

11 years agoliblink: fix arm build
Russ Cox [Tue, 4 Mar 2014 19:59:08 +0000 (14:59 -0500)]
liblink: fix arm build

The arm puts the text flags in a different place
than the other architectures. This needs to be
cleaned up.

TBR=minux
CC=golang-codereviews
https://golang.org/cl/71260043

11 years agonet/http: make Request.ParseForm parse form-urlencoded for method PATCH too
Matt Aimonetti [Tue, 4 Mar 2014 19:58:21 +0000 (11:58 -0800)]
net/http: make Request.ParseForm parse form-urlencoded for method PATCH too

Fixes #7454

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

11 years agonet/http: fix test failure on some Windows machines
Brad Fitzpatrick [Tue, 4 Mar 2014 19:55:35 +0000 (11:55 -0800)]
net/http: fix test failure on some Windows machines

The network connection dies differently from the server's
perspective on (some) Windows when the client goes away. Match
on the common prefix (common to Unix and Windows) instead of
the network error part.

Fixes #7456

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

11 years agoruntime: fix arm build (B not JMP)
Russ Cox [Tue, 4 Mar 2014 19:03:39 +0000 (14:03 -0500)]
runtime: fix arm build (B not JMP)

TBR=dvyukov
CC=golang-codereviews
https://golang.org/cl/71060046

11 years agocmd/ld: clear unused ctxt before morestack
Russ Cox [Tue, 4 Mar 2014 18:53:08 +0000 (13:53 -0500)]
cmd/ld: clear unused ctxt before morestack

For non-closure functions, the context register is uninitialized
on entry and will not be used, but morestack saves it and then the
garbage collector treats it as live. This can be a source of memory
leaks if the context register points at otherwise dead memory.
Avoid this by introducing a parallel set of morestack functions
that clear the context register, and use those for the non-closure functions.

I hope this will help with some of the finalizer flakiness, but it probably won't.

Fixes #7244.

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

11 years agonet/http: deflake another alloc test
Brad Fitzpatrick [Tue, 4 Mar 2014 17:59:07 +0000 (09:59 -0800)]
net/http: deflake another alloc test

I have one machine where this 25 test run is flaky
and fails ("21 >= 21"), but 50 works everywhere.

LGTM=josharian
R=josharian
CC=golang-codereviews
https://golang.org/cl/67870053

11 years agocrypto/cipher: fix AEAD.Open documentation nit
Brad Fitzpatrick [Tue, 4 Mar 2014 17:58:54 +0000 (09:58 -0800)]
crypto/cipher: fix AEAD.Open documentation nit

It mentioned true and false for error values. Instead, just
don't mention the error semantics, as they match normal Go
conventions (if error is non-nil, the other value is
meaningless). We generally only document error values when
they're interesting (where non-nil, non-nil is valid, or the
error value can be certain known values or types).

Fixes #7464

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

11 years agopath/filepath: ensure Glob does not ignore broken symlinks
Kelsey Hightower [Tue, 4 Mar 2014 17:00:45 +0000 (09:00 -0800)]
path/filepath: ensure Glob does not ignore broken symlinks

Fixes #6463.

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

11 years agonet/http: disable an alloc test under the race detector
Brad Fitzpatrick [Tue, 4 Mar 2014 16:56:52 +0000 (08:56 -0800)]
net/http: disable an alloc test under the race detector

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

11 years agoA+C: Matt Aimonetti (individual CLA)
Brad Fitzpatrick [Tue, 4 Mar 2014 16:39:51 +0000 (08:39 -0800)]
A+C: Matt Aimonetti (individual CLA)

Generated by addca.

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

11 years agoA+C: Mike Andrews (individual CLA)
Brad Fitzpatrick [Tue, 4 Mar 2014 16:25:38 +0000 (08:25 -0800)]
A+C: Mike Andrews (individual CLA)

Generated by addca.

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

11 years agoA+C: Kelsey Hightower (individual CLA)
Brad Fitzpatrick [Tue, 4 Mar 2014 16:20:09 +0000 (08:20 -0800)]
A+C: Kelsey Hightower (individual CLA)

Generated by addca.

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

11 years agoruntime: fix finalizer flakiness
Russ Cox [Tue, 4 Mar 2014 14:46:40 +0000 (09:46 -0500)]
runtime: fix finalizer flakiness

The flakiness appears to be just in tests, not in the actual code.
Specifically, the many tests call runtime.GC once and expect that
the finalizers will be running in the background when GC returns.
Now that the sweep phase is concurrent with execution, however,
the finalizers will not be run until sweep finishes, which might
be quite a bit later. To force sweep to finish, implement runtime.GC
by calling the actual collection twice. The second will complete the
sweep from the first.

This was reliably broken after a few runs before the CL and now
passes tens of runs:

while GOMAXPROCS=2 ./runtime.test -test.run=Finalizer -test.short \
        -test.timeout=300s -test.cpu=$(perl -e 'print ("1,2,4," x 100) . "1"')
do true; done

Fixes #7328.

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

11 years agocmd/go: fix data race on buildLdflags
Dmitriy Vyukov [Tue, 4 Mar 2014 07:42:02 +0000 (11:42 +0400)]
cmd/go: fix data race on buildLdflags
Fixes #7438.

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

11 years agocmd/gc: use a register to checknil constants.
Rémy Oudompheng [Tue, 4 Mar 2014 07:18:17 +0000 (08:18 +0100)]
cmd/gc: use a register to checknil constants.

Fixes #7346.

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

11 years agoruntime: fix traceback on Windows
Russ Cox [Tue, 4 Mar 2014 04:33:27 +0000 (23:33 -0500)]
runtime: fix traceback on Windows

The exception handler runs on the ordinary g stack,
and the stack copier is now trying to do a traceback
across it. That's never been needed before, so it was
unimplemented. Implement it, in all its ugliness.

Fixes windows/amd64 build.

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

11 years agospec: clarify what is considered a function call for len/cap special case
Robert Griesemer [Tue, 4 Mar 2014 04:07:34 +0000 (20:07 -0800)]
spec: clarify what is considered a function call for len/cap special case

gccgo considers built-in function calls returning a constant not as function call (issue 7386)
go/types considers any call (regular or built-in) as a function call

The wording and examples clarify that only "function calls" that are issued
at run-time (and thus do not result in a constant result) are considered
function calls in this case.

gc is inconsistent (issue 7385)
gccgo already interprets the spec accordingly and issue 7386 is moot.
go/types considers all calls (constant or not) as function calls (issue 7457).

Fixes #7387.
Fixes #7386.

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

11 years agonet/http: fix location of StateHijacked and StateActive
Brad Fitzpatrick [Tue, 4 Mar 2014 02:58:28 +0000 (18:58 -0800)]
net/http: fix location of StateHijacked and StateActive

1) Move StateHijacked callback earlier, to make it
panic-proof.  A Hijack followed by a panic didn't previously
result in ConnState getting fired for StateHijacked.  Move it
earlier, to the time of hijack.

2) Don't fire StateActive unless any bytes were read off the
wire while waiting for a request. This means we don't
transition from New or Idle to Active if the client
disconnects or times out. This was documented before, but not
implemented properly.

This CL is required for an pending fix for Issue 7264

LGTM=josharian
R=josharian
CC=golang-codereviews
https://golang.org/cl/69860049

11 years agodoc: add freebsd items
Mikio Hara [Tue, 4 Mar 2014 01:53:24 +0000 (10:53 +0900)]
doc: add freebsd items

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

11 years agomath/rand: speed up Float32, Float64
Russ Cox [Tue, 4 Mar 2014 01:43:23 +0000 (20:43 -0500)]
math/rand: speed up Float32, Float64

Actually, speed up Int31n and Int63n by avoiding retry loop.

benchmark           old ns/op    new ns/op    delta
BenchmarkFloat32           32           26  -19.45%
BenchmarkFloat64           46           23  -49.47%

Fixes #7267.

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

11 years agocmd/gc: fix internal crash
Russ Cox [Tue, 4 Mar 2014 00:55:40 +0000 (19:55 -0500)]
cmd/gc: fix internal crash

TBR=ken2
CC=golang-codereviews
https://golang.org/cl/70200053

11 years agonet: enable fast socket creation with close-on-exec flag on freebsd
Mikio Hara [Tue, 4 Mar 2014 00:28:09 +0000 (09:28 +0900)]
net: enable fast socket creation with close-on-exec flag on freebsd

Also makes variable names explicit.

Fixes #7186.

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

11 years agosyscall: add Accept4 for freebsd
Mikio Hara [Tue, 4 Mar 2014 00:27:48 +0000 (09:27 +0900)]
syscall: add Accept4 for freebsd

Update #7186
Update #7428

LGTM=r, bradfitz
R=golang-codereviews, rsc, minux.ma, r, bradfitz
CC=golang-codereviews
https://golang.org/cl/68880043

11 years agoos: handle file creation with close-on-exec flag correctly on darwin, freebsd
Mikio Hara [Tue, 4 Mar 2014 00:27:29 +0000 (09:27 +0900)]
os: handle file creation with close-on-exec flag correctly on darwin, freebsd

Fixes #7187.
Update #7193

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

11 years agosyscall: add support for FreeBSD 10
Mikio Hara [Tue, 4 Mar 2014 00:26:56 +0000 (09:26 +0900)]
syscall: add support for FreeBSD 10

This CL tweaks syscall.InterfaceMessage to support FreeBSD 10 and
prior to 10.

See http://svnweb.freebsd.org/base?view=revision&revision=254804.

Fixes #7193.

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

11 years agoapi: add FreeBSD 10 exceptions
Mikio Hara [Tue, 4 Mar 2014 00:26:28 +0000 (09:26 +0900)]
api: add FreeBSD 10 exceptions

Update #7193

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

11 years agosyscall: regenerate z-files on FreeBSD 10
Mikio Hara [Tue, 4 Mar 2014 00:26:01 +0000 (09:26 +0900)]
syscall: regenerate z-files on FreeBSD 10

Unfortunately FreeBSD 10 has changed its syscall arguments for
some reasons but as per request at golang-dev this CL does not
generate some structures, syscall numbers and constants as
compatible to FreeBSD 10 as follows:

Structure: Stat_t, IfData, IfMsghdr are based on 8-STABLE
Syscall number: Capsicum API is based on 9-STABLE
Constant: IFT_CARP, SIOCAIFADDR, SIOCSIFPHYADDR are based on 9-STABLE

Update #7193

FreeBSD 10 breaking changes:

r205792: Rename st_*timespec fields to st_*tim for POSIX 2008
compliance.
http://svnweb.freebsd.org/base?view=revision&revision=205792

r254804: Restructure the mbuf pkthdr to make it fit for upcoming
capabilities and features.
http://svnweb.freebsd.org/base?view=revision&revision=254804

r255219: Change the cap_rights_t type from uint64_t to a structure
that we can extend in the future in a backward compatible (API and
ABI) way.
http://svnweb.freebsd.org/base?view=revision&revision=255219

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

11 years agoruntime: update CBARGS macro for nacl/amd64p32
Dave Cheney [Mon, 3 Mar 2014 23:36:04 +0000 (10:36 +1100)]
runtime: update CBARGS macro for nacl/amd64p32

CBARGS is unused on amd64p32 so make this explicit.

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

11 years agonet/http: in Client, consume small redirect bodies before making next request
Brad Fitzpatrick [Mon, 3 Mar 2014 19:25:57 +0000 (11:25 -0800)]
net/http: in Client, consume small redirect bodies before making next request

In Go 1.2, closing a request body without reading to EOF
causes the underlying TCP connection to not be reused. This
client code following redirects was never updated when that
happened.

This was part of a previous CL but moved to its own CL at
Josh's request.  Now with test too.

LGTM=josharian
R=josharian
CC=golang-codereviews
https://golang.org/cl/70800043

11 years agocmd/ld: DWARF opcode base to 10
Graham King [Mon, 3 Mar 2014 19:11:04 +0000 (11:11 -0800)]
cmd/ld: DWARF opcode base to 10

DWARF 2 has 9 standard opcodes, so dwarfdump expects us to use an
opcode base of at least 10. Previously we used 5.

Discussion:
https://groups.google.com/forum/#!topic/golang-dev/d-BqpPgalzc

LGTM=josharian, rsc
R=golang-codereviews, gobot, rsc, josharian, iant, bradfitz
CC=golang-codereviews
https://golang.org/cl/69320043

11 years agocrypto/tls: split connErr to avoid read/write races.
Adam Langley [Mon, 3 Mar 2014 14:01:44 +0000 (09:01 -0500)]
crypto/tls: split connErr to avoid read/write races.

Currently a write error will cause future reads to return that same error.
However, there may have been extra information from a peer pending on
the read direction that is now unavailable.

This change splits the single connErr into errors for the read, write and
handshake. (Splitting off the handshake error is needed because both read
and write paths check the handshake error.)

Fixes #7414.

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

11 years agotest/run: add /usr/pkg/bin to PATH.
Shenghou Ma [Mon, 3 Mar 2014 07:16:15 +0000 (02:16 -0500)]
test/run: add /usr/pkg/bin to PATH.
perl is installed by pkgsrc to /usr/pkg/bin.

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

11 years agocmd/ld: fix warning on Plan 9
David du Colombier [Mon, 3 Mar 2014 07:14:27 +0000 (08:14 +0100)]
cmd/ld: fix warning on Plan 9

warning: src/cmd/ld/pcln.c:184 more arguments than format INT

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

11 years agonet/http: add Client.Timeout for end-to-end timeouts
Brad Fitzpatrick [Mon, 3 Mar 2014 04:39:20 +0000 (20:39 -0800)]
net/http: add Client.Timeout for end-to-end timeouts

Fixes #3362

LGTM=josharian
R=golang-codereviews, josharian
CC=adg, dsymonds, golang-codereviews, n13m3y3r
https://golang.org/cl/70120045

11 years agotag go1.2.1
Andrew Gerrand [Mon, 3 Mar 2014 02:22:13 +0000 (13:22 +1100)]
tag go1.2.1

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

11 years agomisc/makerelease: use windows installer resources from local goroot
Andrew Gerrand [Mon, 3 Mar 2014 01:50:29 +0000 (12:50 +1100)]
misc/makerelease: use windows installer resources from local goroot

This broke when we renamed the tool, and I missed this fix when I
fixed darwin last week.

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

11 years agodoc: document Go 1.2.1
Andrew Gerrand [Mon, 3 Mar 2014 00:26:18 +0000 (11:26 +1100)]
doc: document Go 1.2.1

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

11 years agonet: remove the dreg of solaris merge
Mikio Hara [Sun, 2 Mar 2014 22:09:28 +0000 (07:09 +0900)]
net: remove the dreg of solaris merge

Also enables netgo test on solaris.

LGTM=aram, jsing
R=golang-codereviews, dave, aram, jsing
CC=golang-codereviews
https://golang.org/cl/70300043

11 years agoruntime: make SIGSYS notifiable on FreeBSD
Mikio Hara [Sun, 2 Mar 2014 22:08:44 +0000 (07:08 +0900)]
runtime: make SIGSYS notifiable on FreeBSD

Update #7186

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

11 years agonet/http: ensure ConnState for StateNew fires before Server.Serve returns
Richard Crowley [Sun, 2 Mar 2014 04:32:42 +0000 (20:32 -0800)]
net/http: ensure ConnState for StateNew fires before Server.Serve returns

The addition of Server.ConnState provides all the necessary
hooks to stop a Server gracefully, but StateNew previously
could fire concurrently with Serve exiting (as it does when
its net.Listener is closed). This previously meant one
couldn't use a WaitGroup incremented in the StateNew hook
along with calling Wait after Serve. Now you can.

Update #4674

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

11 years agoA+C: Richard Crowley (individual CLA)
Brad Fitzpatrick [Sun, 2 Mar 2014 04:26:38 +0000 (20:26 -0800)]
A+C: Richard Crowley (individual CLA)

Generated by addca.

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

11 years agosyscall: workaround Dragonfly BSD kernel exec bug
Shenghou Ma [Sat, 1 Mar 2014 23:56:50 +0000 (18:56 -0500)]
syscall: workaround Dragonfly BSD kernel exec bug
See also CL 4259056 for FreeBSD.

Test program:
// exec.go
package main
import (
        "log"
        "os"
        "os/exec"
        "runtime"
)
func main() {
        path := runtime.GOROOT() + "/src/pkg/net/http/cgi/testdata"
        cmd := &exec.Cmd{
                Path:   "test.cgi",
                Args:   []string{path + "/test.cgi"},
                Dir:    path
                Stdout: os.Stdout}
        if err := cmd.Start(); err != nil {
                log.Fatal(err)
        }
        if err := cmd.Wait(); err != nil {
                log.Fatal(err)
        }
}

$ go run exec.go
2014/03/01 15:52:41 fork/exec test.cgi: argument list too long

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

11 years agosync/atomic: skip broken tests on freebsd/arm and netbsd/arm
Dave Cheney [Sat, 1 Mar 2014 21:30:45 +0000 (08:30 +1100)]
sync/atomic: skip broken tests on freebsd/arm and netbsd/arm

Update #7338

The nil deref tests are currently failing on the *bsd/arm platforms. In an effort to avoid the build deteriorating further I would like to skip these tests on freebsd/arm and netbsd/arm.

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

11 years agoruntime: small Native Client fixes
Dave Cheney [Sat, 1 Mar 2014 00:13:29 +0000 (11:13 +1100)]
runtime: small Native Client fixes

cgocall.c: define the CBARGS macro for GOARCH_amd64p32. I don't think the value of this macro will ever be used under nacl/amd64p32 but it is required to compile even if cgo is not used.

hashmap.goc: amd64p32 uses 32bit words.

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

11 years agodoc: add more go1.3.txt items, sort.
Brad Fitzpatrick [Fri, 28 Feb 2014 22:17:33 +0000 (14:17 -0800)]
doc: add more go1.3.txt items, sort.

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

11 years agonet/http: de-flake ConnState test
Brad Fitzpatrick [Fri, 28 Feb 2014 21:27:36 +0000 (13:27 -0800)]
net/http: de-flake ConnState test

LGTM=josharian
R=golang-codereviews, josharian
CC=golang-codereviews
https://golang.org/cl/70270043

11 years agonet/http: add Server.ErrorLog; log and test TLS handshake errors
Brad Fitzpatrick [Fri, 28 Feb 2014 20:12:51 +0000 (12:12 -0800)]
net/http: add Server.ErrorLog; log and test TLS handshake errors

Fixes #7291

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

11 years agocmd/ld: fix misgenerated pcln file numbers
Josh Bleecher Snyder [Fri, 28 Feb 2014 19:08:32 +0000 (11:08 -0800)]
cmd/ld: fix misgenerated pcln file numbers

The pcln file number was being encoded incorrectly. The recorded delta was always against -1, not against the previous value.

Update #7369

This CL fixes the bad DWARF file numbers. It does not, however, fix the gdb continue-to-end bug.

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

11 years agoos: don't allow Process.Kill after Process.Release
Brad Fitzpatrick [Fri, 28 Feb 2014 16:31:12 +0000 (08:31 -0800)]
os: don't allow Process.Kill after Process.Release

This is a user error, but killing -1 kills everything, which
is a pretty bad failure mode.

Fixes #7434

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

11 years agonet/http: add Server.SetKeepAlivesEnabled
Brad Fitzpatrick [Fri, 28 Feb 2014 15:40:25 +0000 (07:40 -0800)]
net/http: add Server.SetKeepAlivesEnabled

Part of graceful shutdown.

Update #4674

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

11 years agocrypto/tls: add DialWithDialer.
Adam Langley [Fri, 28 Feb 2014 14:40:12 +0000 (09:40 -0500)]
crypto/tls: add DialWithDialer.

While reviewing uses of the lower-level Client API in code, I found
that in many cases, code was using Client only because it needed a
timeout on the connection. DialWithDialer allows a timeout (and
 other values) to be specified without resorting to the low-level API.

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

11 years agocmd/dist: add missing Native Client bits
Dave Cheney [Fri, 28 Feb 2014 10:45:12 +0000 (21:45 +1100)]
cmd/dist: add missing Native Client bits

Some parts of CL 15400047 didn't survive the merge.

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

11 years agoimage/jpeg: return a FormatError when hitting an unexpected io.EOF
Nigel Tao [Fri, 28 Feb 2014 04:18:35 +0000 (15:18 +1100)]
image/jpeg: return a FormatError when hitting an unexpected io.EOF
inside Huffman-encoded data.

Fixes #6450.

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

11 years agodebug/macho: Define CPU constants for other common architectures for OS X/iOS.
Robert Sesek [Fri, 28 Feb 2014 03:11:03 +0000 (19:11 -0800)]
debug/macho: Define CPU constants for other common architectures for OS X/iOS.

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

11 years agonet/http: add optional Server.ConnState callback
Brad Fitzpatrick [Fri, 28 Feb 2014 02:29:00 +0000 (18:29 -0800)]
net/http: add optional Server.ConnState callback

Update #4674

This allows for all sorts of graceful shutdown policies,
without picking a policy (e.g. lameduck period) and without
adding lots of locking to the server core. That policy and
locking can be implemented outside of net/http now.

LGTM=adg
R=golang-codereviews, josharian, r, adg, dvyukov
CC=golang-codereviews
https://golang.org/cl/69260044

11 years agoall: final merge of NaCl tree
Russ Cox [Fri, 28 Feb 2014 01:37:00 +0000 (20:37 -0500)]
all: final merge of NaCl tree

This CL replays the following one CL from the rsc-go13nacl repo.
This is the last replay CL: after this CL the main repo will have
everything the rsc-go13nacl repo did. Changes made to the main
repo after the rsc-go13nacl repo branched off probably mean that
NaCl doesn't actually work after this CL, but all the code is now moved
over and just needs to be redebugged.

---
cmd/6l, cmd/8l, cmd/ld: support for Native Client

See golang.org/s/go13nacl for design overview.

This CL is publicly visible but not CC'ed to golang-dev,
to avoid distracting from the preparation of the Go 1.2
release.

This CL and the others will be checked into my rsc-go13nacl
clone repo for now, and I will send CLs against the main
repo early in the Go 1.3 development.

R≡khr
https://golang.org/cl/15750044
---

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

11 years agogo/misc/makerelease: pin go-tour repo to a specific revision
Andrew Gerrand [Fri, 28 Feb 2014 00:09:26 +0000 (11:09 +1100)]
go/misc/makerelease: pin go-tour repo to a specific revision

We're about to commit some wide-sweeping changes to the go-tour and I
would rather not include them in Go 1.2.1, which is due in the next
week or so.

Also fix the makerelease tool; it has been broken since it was
renamed from bindist.

LGTM=campoy
R=campoy
CC=golang-codereviews
https://golang.org/cl/68780043

11 years agoimage/jpeg: fix progressive decoding when the DC components are split
Nigel Tao [Thu, 27 Feb 2014 23:37:21 +0000 (10:37 +1100)]
image/jpeg: fix progressive decoding when the DC components are split
over multiple scans. Previously, the Go code assumed that DC was
synonymous with interleaved and AC with non-interleaved.

Fixes #6767.

The test files were generated with libjpeg's cjpeg program, version 9a,
with the following patch, since cjpeg is hard-coded to output
interleaved DC.

$ diff -u jpeg-9a*/jcparam.c
--- jpeg-9a-clean/jcparam.c 2013-07-01 21:13:28.000000000 +1000
+++ jpeg-9a/jcparam.c 2014-02-27 11:40:41.236889852 +1100
@@ -572,7 +572,7 @@
 {
   int ci;

-  if (ncomps <= MAX_COMPS_IN_SCAN) {
+  if (0) {
         /* Single interleaved DC scan */
         scanptr->comps_in_scan = ncomps;
         for (ci = 0; ci < ncomps; ci++)
@@ -610,7 +610,7 @@
           (cinfo->jpeg_color_space == JCS_YCbCr ||
                cinfo->jpeg_color_space == JCS_BG_YCC)) {
         /* Custom script for YCC color images. */
-    nscans = 10;
+    nscans = 14;
   } else {
         /* All-purpose script for other color spaces. */
         if (ncomps > MAX_COMPS_IN_SCAN)

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

11 years agoruntime: move stack shrinking until after sweepgen is incremented.
Keith Randall [Thu, 27 Feb 2014 22:20:15 +0000 (14:20 -0800)]
runtime: move stack shrinking until after sweepgen is incremented.

Before GC, we flush all the per-P allocation caches.  Doing
stack shrinking mid-GC causes these caches to fill up.  At the
end of gc, the sweepgen is incremented which causes all of the
data in these caches to be in a bad state (cached but not yet
swept).

Move the stack shrinking until after sweepgen is incremented,
so any caching that happens as part of shrinking is done with
already-swept data.

Reenable stack copying.

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

11 years agosyscall: add some paranoia in Linux's Accept4
Brad Fitzpatrick [Thu, 27 Feb 2014 22:16:47 +0000 (14:16 -0800)]
syscall: add some paranoia in Linux's Accept4

Fixes #7428

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

11 years agonet/http: make Transport.CancelRequest work for requests blocked in a dial
Brad Fitzpatrick [Thu, 27 Feb 2014 21:32:40 +0000 (13:32 -0800)]
net/http: make Transport.CancelRequest work for requests blocked in a dial

Fixes #6951

LGTM=josharian
R=golang-codereviews, josharian
CC=golang-codereviews
https://golang.org/cl/69280043

11 years agogo/printer: measure lines/construct in generated output rather than incoming source
Robert Griesemer [Thu, 27 Feb 2014 19:35:53 +0000 (11:35 -0800)]
go/printer: measure lines/construct in generated output rather than incoming source

No change to $GOROOT/src, misc formatting.

Nice side-effect: almost 3% faster runs because it's much faster to compute
line number differences in the generated output than the incoming source.

Benchmark run, best of 5 runs, before and after:
BenchmarkPrint      200   12347587 ns/op
BenchmarkPrint      200   11999061 ns/op

Fixes #4504.

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

11 years agobufio: in Reader.WriteTo, try to use target's ReaderFrom
Brad Fitzpatrick [Thu, 27 Feb 2014 18:48:36 +0000 (10:48 -0800)]
bufio: in Reader.WriteTo, try to use target's ReaderFrom

This is the simple half of https://golang.org/cl/53560043/ with
a new benchmark. pongad is in the C+A files already.

benchmark                         old ns/op     new ns/op     delta
BenchmarkReaderWriteToOptimal     2054          825           -59.83%

Update #6373

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