Rob Pike
23dec8d190
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
2013-05-21 21:18:10 -07:00
David Symonds
c912150761
doc/go_faq: fix example.
...
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/9564044
2013-05-22 12:28:58 +10:00
Brad Fitzpatrick
950fa93531
net/http: add another Hijacker test
...
R=dsymonds
CC=gobot, golang-dev
https://golang.org/cl/9570043
2013-05-21 18:43:28 -07:00
Brad Fitzpatrick
99f6722860
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
2013-05-21 15:51:49 -07:00
Brad Fitzpatrick
ddda7980c5
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
2013-05-21 15:21:30 -07:00
Brad Fitzpatrick
0e10196982
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
2013-05-21 14:58:08 -07:00
Brad Fitzpatrick
509a1173a3
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
2013-05-21 14:32:09 -07:00
Daniel Morsing
6f5af9c0b1
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
2013-05-21 18:35:47 +02:00
Shenghou Ma
bea7b51872
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
2013-05-22 00:32:03 +08:00
Brad Fitzpatrick
c3294049c3
api: update next.txt
...
R=minux.ma
CC=golang-dev
https://golang.org/cl/9459047
2013-05-21 09:11:11 -07:00
Brad Fitzpatrick
09395daf2e
codereview: add khr as a person
...
R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/9459046
2013-05-21 09:02:30 -07:00
Adam Langley
8590e1bd3c
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
2013-05-21 10:47:31 -04:00
Shenghou Ma
f5d06da072
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
2013-05-21 21:47:32 +08:00
Brad Fitzpatrick
c6c439d7a0
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
2013-05-20 19:26:26 -07:00
Rémy Oudompheng
fc3bec386e
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
2013-05-20 23:45:22 +02:00
Rémy Oudompheng
4b0eb19a05
cmd/gc: eliminate a useless bounds check in inlined append().
...
R=golang-dev, daniel.morsing, r
CC=golang-dev
https://golang.org/cl/9358043
2013-05-20 23:19:41 +02:00
Robert Griesemer
6a3859f433
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
2013-05-20 14:01:07 -07:00
Robert Griesemer
bb3a32ef6e
spec: fix language about "range" clause
...
Fixes #5434 .
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/9595044
2013-05-20 13:27:53 -07:00
Shenghou Ma
523b3bc434
misc/dashboard/builder: handle Plan 9 in defaultSuffix()
...
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/9495045
2013-05-21 03:22:52 +08:00
Adam Langley
b419e2b57c
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
2013-05-20 14:20:26 -04:00
Dmitriy Vyukov
910bd157c9
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
2013-05-20 21:53:16 +04:00
Brad Fitzpatrick
27f7427995
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
2013-05-20 07:23:59 -07:00
Mikio Hara
b98a4d1a10
syscall: prefer PATH environment variable in bootstrap scripts
...
R=golang-dev, dave, iant
CC=golang-dev
https://golang.org/cl/9575043
2013-05-20 23:18:52 +09:00
Mikio Hara
c5732c8526
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
2013-05-20 19:25:32 +09:00
Alex Brainman
1a948950f7
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
2013-05-20 15:23:45 +10:00
Dmitriy Vyukov
1308194204
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
2013-05-20 08:17:21 +04:00
Brad Fitzpatrick
d4cbc80d10
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
2013-05-19 20:15:40 -07:00
Alex Brainman
38abb09a2e
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
2013-05-20 12:55:50 +10:00
Dmitriy Vyukov
fee1d1cda0
runtime: properly set G status after syscall
...
R=golang-dev, r, dave
CC=golang-dev
https://golang.org/cl/9307045
2013-05-19 19:35:09 +04:00
Dave Cheney
c3dbe5d24c
misc/dashboard: add go.tools to list of subrepos
...
R=r, adg, dsymonds
CC=golang-dev
https://golang.org/cl/9535044
2013-05-19 10:04:23 +10:00
Anthony Martin
2dc751ac21
runtime, cmd/gc: clean up function protoypes
...
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/8652043
2013-05-18 15:49:23 -07:00
Anthony Martin
8b85a3d480
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
2013-05-18 15:47:49 -07:00
Anthony Martin
b65271d008
runtime: fix newproc debugging print
...
R=golang-dev, remyoudompheng, r
CC=golang-dev
https://golang.org/cl/9249044
2013-05-18 15:47:15 -07:00
Keith Randall
28882bbd33
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
2013-05-18 15:28:27 -07:00
Dominik Honnef
70f3b6097b
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
2013-05-18 19:22:30 +08:00
Brad Fitzpatrick
b25a53acd7
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
2013-05-17 15:16:06 -07:00
Rob Pike
249842c8db
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
2013-05-17 13:53:22 -07:00
Keith Randall
6021449236
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
2013-05-17 12:53:49 -07:00
Shenghou Ma
af1dd56d1b
misc/cgo/test: deflake TestParallelSleep once more
...
Fixes #5480 .
R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/9475043
2013-05-18 02:55:44 +08:00
Shenghou Ma
a848475324
cmd/ld: emit .tbss section when doing dynamic internal linking
...
Fixes #5200 .
R=iant, dave
CC=golang-dev
https://golang.org/cl/9383043
2013-05-18 02:41:49 +08:00
Alex Brainman
fad27ec5d4
os: clarify windows read console code
...
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/9458043
2013-05-17 17:26:44 +10:00
Alex Brainman
c15ca825ad
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
2013-05-17 14:23:29 +10:00
Alex Brainman
28f74608b5
runtime: do not mark os memory as executable on windows
...
R=golang-dev, bradfitz, khr
CC=golang-dev
https://golang.org/cl/9235046
2013-05-17 13:37:30 +10:00
Carl Shapiro
50ba6e13b4
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
2013-05-16 10:42:39 -07:00
Adam Langley
21cf646bfc
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
2013-05-16 12:29:23 -04:00
Alex Brainman
a65f861bfa
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
2013-05-16 17:20:13 +10:00
Rémy Oudompheng
78f5b616fc
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
2013-05-16 09:01:43 +02:00
Brad Fitzpatrick
0af302f507
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
2013-05-15 17:23:40 -07:00
Robert Hencke
f7b5a01999
reflect: use visit structure for map key in DeepEqual
...
R=golang-dev, bradfitz, jonathan, r
CC=golang-dev
https://golang.org/cl/8730044
2013-05-15 14:50:57 -07:00
Dmitriy Vyukov
c6293d2106
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
2013-05-15 23:50:32 +04:00