]> Cypherpunks repositories - gostls13.git/log
gostls13.git
12 years agoruntime: fix string optimization
Russ Cox [Wed, 27 Jun 2012 21:32:41 +0000 (17:32 -0400)]
runtime: fix string optimization

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

12 years agoruntime: avoid allocation for "" + x + ""
Russ Cox [Wed, 27 Jun 2012 21:06:49 +0000 (17:06 -0400)]
runtime: avoid allocation for "" + x + ""

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

12 years agonet: fix build (FreeBSD sendfile)
Russ Cox [Wed, 27 Jun 2012 21:02:39 +0000 (17:02 -0400)]
net: fix build (FreeBSD sendfile)

TBR=bradfitz
CC=golang-dev
https://golang.org/cl/6358043

12 years agopath/filepath: avoid allocation in Clean of cleaned path
Russ Cox [Wed, 27 Jun 2012 20:52:36 +0000 (16:52 -0400)]
path/filepath: avoid allocation in Clean of cleaned path

Alternative to https://golang.org/cl/6330044.

Fixes #3681.

R=golang-dev, r, hanwen, iant
CC=golang-dev
https://golang.org/cl/6335056

12 years agoruntime: add goroutine creation benchmark
Dmitriy Vyukov [Wed, 27 Jun 2012 17:57:49 +0000 (21:57 +0400)]
runtime: add goroutine creation benchmark
Current results on 2 core darwin/amd64:
BenchmarkGoroutineChain 351 ns/op
BenchmarkGoroutineChain-2 3840 ns/op
BenchmarkGoroutineChain-4 4040 ns/op
BenchmarkConcGoroutineChain 350 ns/op
BenchmarkConcGoroutineChain-2 875 ns/op
BenchmarkConcGoroutineChain-4 2027 ns/op

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

12 years agogo spec: clean up use of QualifiedIdent production.
Robert Griesemer [Tue, 26 Jun 2012 18:49:19 +0000 (11:49 -0700)]
go spec: clean up use of QualifiedIdent production.

Fixes #3763.

R=r, rsc, iant, ken
CC=golang-dev
https://golang.org/cl/6333066

12 years agosyscall: fix build
Russ Cox [Tue, 26 Jun 2012 00:45:18 +0000 (20:45 -0400)]
syscall: fix build

I missed the API change in the last FreeBSD CL, but the tool caught it.

TBR=bradfitz
CC=golang-dev
https://golang.org/cl/6331063

12 years agonet/http: provide access to POST-only form values
Patrick Mylund Nielsen [Tue, 26 Jun 2012 00:41:46 +0000 (20:41 -0400)]
net/http: provide access to POST-only form values

Fixes #3630.

R=rsc
CC=bradfitz, dsymonds, golang-dev, rodrigo.moraes
https://golang.org/cl/6210067

12 years agosyscall, net: sendfile for FreeBSD
L Campbell [Tue, 26 Jun 2012 00:26:19 +0000 (20:26 -0400)]
syscall, net: sendfile for FreeBSD

R=golang-dev, rsc, bradfitz, devon.odell
CC=golang-dev
https://golang.org/cl/6221054

12 years agoA+C: L Campbell (individual CLA)
Russ Cox [Tue, 26 Jun 2012 00:25:59 +0000 (20:25 -0400)]
A+C: L Campbell (individual CLA)

Guess I was wrong about being done for the day.

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

12 years agofmt: set p.field before nil check
Rob Pike [Mon, 25 Jun 2012 23:48:20 +0000 (16:48 -0700)]
fmt: set p.field before nil check
Fixes #3752.

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

12 years agoruntime: add arm soft division and modulo benchmarks
Dave Cheney [Mon, 25 Jun 2012 22:58:00 +0000 (08:58 +1000)]
runtime: add arm soft division and modulo benchmarks

arm soft div and mod performance plays an important part
in runtime performance.

The currently implementation is very stable, but we believe
we can best it. This benchmark provides a reference point.

linux/arm omap4 pandaboard

BenchmarkUint32Div7     10000000               298 ns/op
BenchmarkUint32Div37    10000000               298 ns/op
BenchmarkUint32Div123   10000000               298 ns/op
BenchmarkUint32Div763   10000000               298 ns/op
BenchmarkUint32Div1247  10000000               299 ns/op
BenchmarkUint32Div9305  10000000               298 ns/op
BenchmarkUint32Div13307 10000000               298 ns/op
BenchmarkUint32Div52513 10000000               298 ns/op
BenchmarkUint32Div60978747      10000000               298 ns/op
BenchmarkUint32Div106956295     10000000               297 ns/op
BenchmarkUint32Mod7     10000000               280 ns/op
BenchmarkUint32Mod37    10000000               280 ns/op
BenchmarkUint32Mod123   10000000               280 ns/op
BenchmarkUint32Mod763   10000000               280 ns/op
BenchmarkUint32Mod1247  10000000               280 ns/op
BenchmarkUint32Mod9305  10000000               280 ns/op
BenchmarkUint32Mod13307 10000000               280 ns/op
BenchmarkUint32Mod52513 10000000               280 ns/op
BenchmarkUint32Mod60978747      10000000               280 ns/op
BenchmarkUint32Mod106956295     10000000               280 ns/op

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

12 years ago doc: drop video title from homepage
Andrew Gerrand [Mon, 25 Jun 2012 21:54:26 +0000 (14:54 -0700)]
  doc: drop video title from homepage

It's just stutter.

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

12 years agoencoding/json: add Number type
Jonathan Gold [Mon, 25 Jun 2012 21:36:09 +0000 (17:36 -0400)]
encoding/json: add Number type

Number represents the actual JSON text,
preserving the precision and
formatting of the original input.

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

12 years agoA+C: Jonathan Gold (individual CLA)
Russ Cox [Mon, 25 Jun 2012 21:36:02 +0000 (17:36 -0400)]
A+C: Jonathan Gold (individual CLA)

This is my last one for today, I hope!

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

12 years agonet: fix lookup of AAAA-only hosts without cgo
Michael Stapelberg [Mon, 25 Jun 2012 21:32:39 +0000 (17:32 -0400)]
net: fix lookup of AAAA-only hosts without cgo

Fixes #3762.

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

12 years agoA+C: add Michael Stapelberg (individual CLA)
Russ Cox [Mon, 25 Jun 2012 21:32:31 +0000 (17:32 -0400)]
A+C: add Michael Stapelberg (individual CLA)

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

12 years agogo/build: fix doc typo
Pieter Droogendijk [Mon, 25 Jun 2012 21:20:48 +0000 (17:20 -0400)]
go/build: fix doc typo

go/build section "Build Constraints", first paragraph said:
  "... they must be appear near the top of the file ..."
fixed to:
  "... they must appear near the top of the file ..."

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

12 years agomisc/chrome/gophertool: Support for manifest version 1 is being phased out.
Amir Mohammad Saied [Mon, 25 Jun 2012 21:19:08 +0000 (17:19 -0400)]
misc/chrome/gophertool: Support for manifest version 1 is being phased out.

Manifest version 1 was deprecated in Chrome 18, and support will be phased
out according to the schedule available at:
http://code.google.com/chrome/extensions/manifestVersion.html

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

12 years agoencoding/base32, encoding/base64: removed unneeded break label
Thomas Alan Copeland [Mon, 25 Jun 2012 21:18:50 +0000 (17:18 -0400)]
encoding/base32, encoding/base64: removed unneeded break label

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

12 years agoA+C: Amir Mohammad Saied, Thomas Alan Copeland (both individual CLA)
Russ Cox [Mon, 25 Jun 2012 21:18:44 +0000 (17:18 -0400)]
A+C: Amir Mohammad Saied, Thomas Alan Copeland (both individual CLA)

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

12 years agogofmt: handle comments correctly in rewrites
Robert Griesemer [Mon, 25 Jun 2012 20:58:28 +0000 (13:58 -0700)]
gofmt: handle comments correctly in rewrites

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

12 years agoencoding/json: simplify (*decodeState).indirect
Micah Stetson [Mon, 25 Jun 2012 20:03:18 +0000 (16:03 -0400)]
encoding/json: simplify (*decodeState).indirect

Removes an incorrect code comment and some superfluous variables.

The comment I removed says that struct fields which implement
Unmarshaler must be pointers, even if they're in an addressable
struct. That's not the case, and there's already a test in decode_test.go
that demonstrates as much.

Encoding/json has quite a few assignments of reflect.Values to extra
variables – things like "iv := v" when there's no need to make a copy. I
think these are left over from a previous version of the reflect API. If they
aren't wanted, I wouldn't mind going through the package and getting
rid of the rest of them.

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

12 years agoencoding/csv, encoding/xml: report write errors
Jan Ziak [Mon, 25 Jun 2012 20:00:35 +0000 (16:00 -0400)]
encoding/csv, encoding/xml: report write errors

Fixes #3773.

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

12 years agospec: clarify receive operator
Robert Griesemer [Mon, 25 Jun 2012 18:28:24 +0000 (11:28 -0700)]
spec: clarify receive operator

- receiving from a closed channel returns immediately
- in the ,ok form, the 2nd result is of type bool, not
  just boolean (gc and ggcgo agree).

Per dsymonds' suggestion.

R=r, rsc, ken, iant, dsymonds
CC=golang-dev
https://golang.org/cl/6333057

12 years agogo/ast: minor comment maps API change
Robert Griesemer [Mon, 25 Jun 2012 18:27:54 +0000 (11:27 -0700)]
go/ast: minor comment maps API change

This is a new, not yet committed API.

- Changed NewCommentMap to be independent of
  *File nodes and more symmetric with the
  Filter and Comments methods.

- Implemented Update method for use in
  AST modifications.

- Implemented String method for debugging

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

12 years agoexp/inotify: prevent data race
Jan Ziak [Mon, 25 Jun 2012 18:08:09 +0000 (14:08 -0400)]
exp/inotify: prevent data race
Fixes #3713.

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

12 years agonet/http: speed up Header.WriteSubset
Brad Fitzpatrick [Mon, 25 Jun 2012 15:54:36 +0000 (08:54 -0700)]
net/http: speed up Header.WriteSubset

A few performance improvements, but without the stack sorting
change to avoid allocating, which is instead waiting on better
escape analysis.

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

12 years agoruntime: remove memset/memclr shim
Dave Cheney [Mon, 25 Jun 2012 13:01:34 +0000 (23:01 +1000)]
runtime: remove memset/memclr shim

This CL resolves https://golang.org/cl/6300043/#msg3
by renaming memset_arm.s to memclr_arm.s and merging the function
of the same name from asm_arm.s.

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

12 years agoruntime: fix potential GC deadlock
Dmitriy Vyukov [Mon, 25 Jun 2012 07:08:09 +0000 (11:08 +0400)]
runtime: fix potential GC deadlock
The issue seems to not be triggered right now,
but I've seen the deadlock after some other legal
modifications to runtime.
So I think we are safer this way.

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

12 years agoruntime: detect hash map collision problems
Russ Cox [Sun, 24 Jun 2012 23:47:50 +0000 (19:47 -0400)]
runtime: detect hash map collision problems

This can only happen if the hash function we're using is getting
far more than it's fair share of collisions, but that has happened
to us repeatedly as we've expanded the allowed use cases for
hash tables (issue 1544, issue 2609, issue 2630, issue 2883, issue 3695).
Maybe this will help the next time we try something new.

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

12 years agomath: improve Atan, Asin and Acos accuracy
Charles L. Dorian [Sun, 24 Jun 2012 23:39:07 +0000 (19:39 -0400)]
math: improve Atan, Asin and Acos accuracy

pkg/math/all_test.go tests Atan (and therefore Asin and Acos) to a
relative accuracy of 4e-16, but the test vector misses values where
the old algorithm was in error by more than that. For example:

x            newError   oldError
0.414215746  1.41e-16  -4.24e-16
0.414216076  1.41e-16  -4.24e-16
0.414217632  1.41e-16  -4.24e-16
0.414218770  1.41e-16  -4.24e-16
0.414225466  0         -5.65e-16
0.414226244  1.41e-16  -4.24e-16
0.414228756  0         -5.65e-16
0.414235089  0         -5.65e-16
0.414237070  0         -5.65e-16

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

12 years agoos: make POSIX StartProcess work with chroot again.
Han-Wen Nienhuys [Sun, 24 Jun 2012 23:34:06 +0000 (19:34 -0400)]
os: make POSIX StartProcess work with chroot again.

Skip directory check in startProcess in the presence of
SysProcAttr.

Fixes #3649.

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

12 years agoCONTRIBUTORS: add Han-Wen Nienhuys (Google CLA)
Russ Cox [Sun, 24 Jun 2012 23:32:37 +0000 (19:32 -0400)]
CONTRIBUTORS: add Han-Wen Nienhuys (Google CLA)

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

12 years agotest/bench/shootout: remove dependency on C libraries in test mode
Jan Ziak [Sun, 24 Jun 2012 23:23:09 +0000 (19:23 -0400)]
test/bench/shootout: remove dependency on C libraries in test mode
Fixes #3732.

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

12 years agoexp/inotify: prevent data race during testing
Jan Ziak [Sun, 24 Jun 2012 23:22:48 +0000 (19:22 -0400)]
exp/inotify: prevent data race during testing
Fixes #3714.

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

12 years agoruntime: avoid r9/r10 during memmove
Dave Cheney [Sun, 24 Jun 2012 22:28:30 +0000 (08:28 +1000)]
runtime: avoid r9/r10 during memmove

Fixes #3718.

Requires CL 6300043.

R=rsc, minux.ma, extraterrestrial.neighbour
CC=golang-dev
https://golang.org/cl/6305100

12 years agoruntime: avoid r9/r10 during memset
Dave Cheney [Sun, 24 Jun 2012 21:59:50 +0000 (07:59 +1000)]
runtime: avoid r9/r10 during memset

Partially fixes issue 3718.

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

12 years agoflag: fix indexing doc.
David Symonds [Sun, 24 Jun 2012 19:23:51 +0000 (12:23 -0700)]
flag: fix indexing doc.

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

12 years agonet/http: fix doc inaccuracy and typo; tighten test
Brad Fitzpatrick [Sun, 24 Jun 2012 17:41:12 +0000 (10:41 -0700)]
net/http: fix doc inaccuracy and typo; tighten test

Note url.Error wrapping, and s/issue/issuing/.

Fixes #3724

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

12 years agoruntime: fix struct Sigaction for Linux/386
Shenghou Ma [Sat, 23 Jun 2012 17:41:17 +0000 (01:41 +0800)]
runtime: fix struct Sigaction for Linux/386
        We need to use kernel headers to generate defs_linux_$GOARCH.h

R=golang-dev, dave, alex.brainman, iant
CC=golang-dev
https://golang.org/cl/6296091

12 years agonet/rpc: fix typo in documentation, clarify semantics of error return
David G. Andersen [Fri, 22 Jun 2012 22:07:22 +0000 (15:07 -0700)]
net/rpc: fix typo in documentation, clarify semantics of error return

Several of my students were confused by trying to use both the error
return and a reply return, so I figured it was worth explicitly clarifying
that returning an error overrides the reply.

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

12 years agoencoding/json: fix minor typo in documentation for Marshal
David G. Andersen [Fri, 22 Jun 2012 21:43:41 +0000 (14:43 -0700)]
encoding/json: fix minor typo in documentation for Marshal

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

12 years agodoc: put A Tour of Go video on the front page
Andrew Gerrand [Fri, 22 Jun 2012 17:22:01 +0000 (10:22 -0700)]
doc: put A Tour of Go video on the front page

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

12 years agomisc/emacs: Replace replace-{string|regexp} for XEmacs compatible code
Mats Lidell [Thu, 21 Jun 2012 17:01:54 +0000 (13:01 -0400)]
misc/emacs: Replace replace-{string|regexp} for XEmacs compatible code

Use code to be used in lisp programs as suggested in the doc strings for
replace-{string|regexp}. Bonus: This code works for XEmacs.

R=golang-dev, sameer, jmeurin
CC=golang-dev
https://golang.org/cl/6296073

12 years agocrypto/x509: add extended key usage support.
Adam Langley [Wed, 20 Jun 2012 20:18:56 +0000 (16:18 -0400)]
crypto/x509: add extended key usage support.

Flame motivated me to get around to adding extended key usage support
so that code signing certificates can't be used for TLS server
authentication and vice versa.

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

12 years agoexp/locale/collate: added regression test for collate package
Marcel van Lohuizen [Tue, 19 Jun 2012 18:34:56 +0000 (11:34 -0700)]
exp/locale/collate: added regression test for collate package
based on UCA test files.

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

12 years agodoc/articles/slices_usage_and_internals: fix typo
Shenghou Ma [Tue, 19 Jun 2012 17:22:03 +0000 (01:22 +0800)]
doc/articles/slices_usage_and_internals: fix typo
        Fixes #3753.

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

12 years agoruntime: fix struct Sigaction for Linux/ARM
Shenghou Ma [Tue, 19 Jun 2012 17:17:03 +0000 (01:17 +0800)]
runtime: fix struct Sigaction for Linux/ARM
        if we were to use sizeof(sa.sa_mask) instead of 8 as the last argument
        to rt_sigaction, we would have already fixed this bug, so also updated
        Linux/386 and Linux/amd64 files to use that; also test the return value
        of rt_sigaction.

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

12 years agonet/http: make client await response concurrently with writing request
Brad Fitzpatrick [Tue, 19 Jun 2012 16:20:41 +0000 (09:20 -0700)]
net/http: make client await response concurrently with writing request

If the server replies with an HTTP response before we're done
writing our body (for instance "401 Unauthorized" response), we
were previously ignoring that, since we returned our write
error ("broken pipe", etc) before ever reading the response.
Now we read and write at the same time.

Fixes #3595

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

12 years agonet/http: clarify client return values in docs
Brad Fitzpatrick [Tue, 19 Jun 2012 16:10:14 +0000 (09:10 -0700)]
net/http: clarify client return values in docs

Also, fixes one violation found during testing where both
response and error could be non-nil when a CheckRedirect test
failed.  This is arguably a minor API (behavior, not
signature) change, but it wasn't documented either way and was
inconsistent & non-Go like.  Any code depending on the old
behavior was wrong anyway.

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

12 years agogo/ast: multiple "blank" imports are permitted
Robert Griesemer [Tue, 19 Jun 2012 04:56:41 +0000 (21:56 -0700)]
go/ast: multiple "blank" imports are permitted

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

12 years agobytes: fixed typo.
Marcel van Lohuizen [Tue, 19 Jun 2012 00:43:05 +0000 (17:43 -0700)]
bytes: fixed typo.

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

12 years agonet/url: sort keys in Encode; don't enumerate map randomly
Brad Fitzpatrick [Mon, 18 Jun 2012 19:54:36 +0000 (12:54 -0700)]
net/url: sort keys in Encode; don't enumerate map randomly

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

12 years agoA+C: Christine Hansmann (individual CLA)
Adam Langley [Mon, 18 Jun 2012 15:08:31 +0000 (11:08 -0400)]
A+C: Christine Hansmann (individual CLA)

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

12 years agogo/ast: Walk: do not walk comment list
Robert Griesemer [Fri, 15 Jun 2012 23:55:15 +0000 (16:55 -0700)]
go/ast: Walk: do not walk comment list

A comment to that effect was introduced
with rev d332f4b9cef5 but the respective
code wasn't deleted.

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

12 years agodoc: delete Mercurial Queues doc
Shenghou Ma [Fri, 15 Jun 2012 18:24:44 +0000 (02:24 +0800)]
doc: delete Mercurial Queues doc
        Fixes #3716.

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

12 years agoexp/html/atom: add some more atoms.
Nigel Tao [Fri, 15 Jun 2012 05:39:25 +0000 (15:39 +1000)]
exp/html/atom: add some more atoms.

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

12 years agoexp/types: clean up objects after test
Shenghou Ma [Thu, 14 Jun 2012 18:52:18 +0000 (02:52 +0800)]
exp/types: clean up objects after test
        Fixes #3739.

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

12 years agocrypto/elliptic: fix doc typo
Shenghou Ma [Thu, 14 Jun 2012 14:43:15 +0000 (22:43 +0800)]
crypto/elliptic: fix doc typo
        Fixes #3735.

R=golang-dev, agl
CC=golang-dev
https://golang.org/cl/6301083

12 years agotag go1.0.2
Andrew Gerrand [Thu, 14 Jun 2012 03:18:10 +0000 (13:18 +1000)]
tag go1.0.2

R=golang-dev, rsc, dsymonds, minux.ma
CC=golang-dev
https://golang.org/cl/6305089

12 years agodoc: document go1.0.2
Andrew Gerrand [Thu, 14 Jun 2012 01:44:00 +0000 (11:44 +1000)]
doc: document go1.0.2

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

12 years agocmd/gc: inline convT2E when T is uintptr-shaped.
Nigel Tao [Thu, 14 Jun 2012 00:43:20 +0000 (10:43 +1000)]
cmd/gc: inline convT2E when T is uintptr-shaped.

GOARCH=amd64 benchmarks

src/pkg/runtime
benchmark                  old ns/op    new ns/op    delta
BenchmarkConvT2ESmall             10           10   +1.00%
BenchmarkConvT2EUintptr            9            0  -92.07%
BenchmarkConvT2EBig               74           74   -0.27%
BenchmarkConvT2I                  27           26   -3.62%
BenchmarkConvI2E                   4            4   -7.05%
BenchmarkConvI2I                  20           19   -2.99%

test/bench/go1
benchmark                 old ns/op    new ns/op    delta
BenchmarkBinaryTree17    5930908000   5937260000   +0.11%
BenchmarkFannkuch11      3927057000   3933556000   +0.17%
BenchmarkGobDecode         21998090     21870620   -0.58%
BenchmarkGobEncode         12725310     12734480   +0.07%
BenchmarkGzip             567617600    567892800   +0.05%
BenchmarkGunzip           178284100    178706900   +0.24%
BenchmarkJSONEncode        87693550     86794300   -1.03%
BenchmarkJSONDecode       314212600    324115000   +3.15%
BenchmarkMandelbrot200      7016640      7073766   +0.81%
BenchmarkParse              7852100      7892085   +0.51%
BenchmarkRevcomp         1285663000   1286147000   +0.04%
BenchmarkTemplate         566823800    567606200   +0.14%

I'm not entirely sure why the JSON* numbers have changed, but
eyeballing the profile suggests that it could be spending less
and more time in runtime.{new,old}stack, so it could simply be
stack-split boundary noise.

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

12 years agoencoding/gob: don't cache broken encoding engines.
Rob Pike [Wed, 13 Jun 2012 22:55:43 +0000 (15:55 -0700)]
encoding/gob: don't cache broken encoding engines.
Fixes a situation where a nested bad type would still
permit the outer type to install a working engine, leading
to inconsistent behavior.

Fixes #3273.

R=bsiegert, rsc
CC=golang-dev
https://golang.org/cl/6294067

12 years agonet/http: use index.html modtime (not directory) for If-Modified-Since
Brad Fitzpatrick [Wed, 13 Jun 2012 21:53:05 +0000 (14:53 -0700)]
net/http: use index.html modtime (not directory) for If-Modified-Since

Thanks to Håvid Falch for finding the problem.

Fixes #3414

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

12 years agostrconv: extend fast parsing algorithm to ParseFloat(s, 32)
Rémy Oudompheng [Wed, 13 Jun 2012 21:52:00 +0000 (23:52 +0200)]
strconv: extend fast parsing algorithm to ParseFloat(s, 32)

benchmark                  old ns/op    new ns/op    delta
BenchmarkAtof32Decimal           215           73  -65.72%
BenchmarkAtof32Float             233           83  -64.21%
BenchmarkAtof32FloatExp         3351          209  -93.76%
BenchmarkAtof32Random           1939          260  -86.59%

R=rsc
CC=golang-dev, remy
https://golang.org/cl/6294071

12 years agomath/big: correctly test for positive inputs in Int.GCD
Robert Griesemer [Wed, 13 Jun 2012 20:54:36 +0000 (13:54 -0700)]
math/big: correctly test for positive inputs in Int.GCD

Also: better GCD tests.

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

12 years agosyscall: fix windows copyFindData
Russ Cox [Wed, 13 Jun 2012 20:44:19 +0000 (16:44 -0400)]
syscall: fix windows copyFindData

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

12 years agogodoc: show comments in various filtered views
Robert Griesemer [Wed, 13 Jun 2012 20:32:59 +0000 (13:32 -0700)]
godoc: show comments in various filtered views

Fixes #3454.

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

12 years agogo/ast: comment map implementation
Robert Griesemer [Wed, 13 Jun 2012 20:32:29 +0000 (13:32 -0700)]
go/ast: comment map implementation

A comment map associates comments with AST nodes
and permits correct updating of the AST's comment
list when the AST is manipulated.

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

12 years agogo/build: fix boolean negation
Russ Cox [Wed, 13 Jun 2012 20:24:56 +0000 (16:24 -0400)]
go/build: fix boolean negation

!(linux&cgo | darwin&cgo)
= (!linux|!cgo) & (!darwin|!cgo)
= (!linux&!darwin) | !cgo  // new comment
≠ !linux | !darwin | !cgo  // old comment

Fixes #3726.

R=golang-dev, bsiegert
CC=golang-dev
https://golang.org/cl/6306076

12 years agoruntime: improved continuity in hash computation
Jan Ziak [Wed, 13 Jun 2012 19:52:32 +0000 (15:52 -0400)]
runtime: improved continuity in hash computation

Fixes #3695.

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

12 years agomath/big: fix binaryGCD
Robert Griesemer [Wed, 13 Jun 2012 17:29:06 +0000 (10:29 -0700)]
math/big: fix binaryGCD

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

12 years agomath/big: various cleanups
Robert Griesemer [Wed, 13 Jun 2012 16:37:47 +0000 (09:37 -0700)]
math/big: various cleanups

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

12 years ago math/big: Implemented binary GCD algorithm
Christopher Swenson [Wed, 13 Jun 2012 16:31:20 +0000 (09:31 -0700)]
  math/big: Implemented binary GCD algorithm

benchmark                    old ns/op    new ns/op    delta
BenchmarkGCD10x10                 4383         2126  -51.49%
BenchmarkGCD10x100                5612         2124  -62.15%
BenchmarkGCD10x1000               8843         2622  -70.35%
BenchmarkGCD10x10000             17025         6576  -61.37%
BenchmarkGCD10x100000           118985        48130  -59.55%
BenchmarkGCD100x100              45328        11683  -74.23%
BenchmarkGCD100x1000             50141        12678  -74.72%
BenchmarkGCD100x10000           110314        26719  -75.78%
BenchmarkGCD100x100000          630000       156041  -75.23%
BenchmarkGCD1000x1000           654809       137973  -78.93%
BenchmarkGCD1000x10000          985683       159951  -83.77%
BenchmarkGCD1000x100000        4920792       366399  -92.55%
BenchmarkGCD10000x10000       16848950      3732062  -77.85%
BenchmarkGCD10000x100000      55401500      4675876  -91.56%
BenchmarkGCD100000x100000   1126775000    258951800  -77.02%

R=gri, rsc, bradfitz, remyoudompheng, mtj
CC=golang-dev
https://golang.org/cl/6305065

12 years agomisc/emacs: Fix a failure when /tmp/<file>.go exists.
Jean-Marc Eurin [Wed, 13 Jun 2012 14:25:00 +0000 (10:25 -0400)]
misc/emacs: Fix a failure when /tmp/<file>.go exists.

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

12 years agoCONTRIBUTORS: added Christopher Swenson (Google CLA)
Robert Griesemer [Wed, 13 Jun 2012 01:11:19 +0000 (18:11 -0700)]
CONTRIBUTORS: added Christopher Swenson (Google CLA)

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

12 years agodoc/install: mention GOPATH and point to code.html
Andrew Gerrand [Wed, 13 Jun 2012 00:33:02 +0000 (10:33 +1000)]
doc/install: mention GOPATH and point to code.html

Fixes #3469.

R=golang-dev, kevlar, rsc, r
CC=golang-dev
https://golang.org/cl/6304049

12 years agoexp/html: simplify some of the parser's internal methods.
Nigel Tao [Wed, 13 Jun 2012 00:13:05 +0000 (10:13 +1000)]
exp/html: simplify some of the parser's internal methods.

benchmark          old ns/op    new ns/op    delta
BenchmarkParser      4006888      3950604   -1.40%

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

12 years agomath/big: optimize common case of Int.Bit(0)
Robert Griesemer [Tue, 12 Jun 2012 16:36:35 +0000 (09:36 -0700)]
math/big: optimize common case of Int.Bit(0)

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

12 years agoencoding/gob: better handling of nil pointers
Rob Pike [Tue, 12 Jun 2012 04:36:39 +0000 (00:36 -0400)]
encoding/gob: better handling of nil pointers
- better message for top-level nil
- nil inside interface yields error, not panic

Fixes #3704.

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

12 years agofmt.Fscanf: don't read past newline
Rob Pike [Mon, 11 Jun 2012 21:52:09 +0000 (17:52 -0400)]
fmt.Fscanf: don't read past newline
Makes interactive uses work line-by-line.
Fixes #3481.

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

12 years agoexp/types: testing resolution of qualified identifiers
Robert Griesemer [Mon, 11 Jun 2012 18:06:27 +0000 (11:06 -0700)]
exp/types: testing resolution of qualified identifiers

Also: fix a bug with exp/types/GcImport.

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

12 years agomisc/emacs: Fix the automatic gofmt when creating a new file.
Jean-Marc Eurin [Mon, 11 Jun 2012 17:12:28 +0000 (13:12 -0400)]
misc/emacs: Fix the automatic gofmt when creating a new file.

Patching the buffer with the output from gofmt -d only works if
the file already exists. If it doesn't, replace the content with
the output of gofmt.

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

12 years agoencoding/gob: fix doc typo
Brad Fitzpatrick [Sun, 10 Jun 2012 01:30:44 +0000 (18:30 -0700)]
encoding/gob: fix doc typo

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

12 years agoruntime: use uintptr where possible in malloc stats
Dave Cheney [Fri, 8 Jun 2012 21:35:14 +0000 (17:35 -0400)]
runtime: use uintptr where possible in malloc stats

linux/arm OMAP4 pandaboard

benchmark                 old ns/op    new ns/op    delta
BenchmarkBinaryTree17   68723297000  37026214000  -46.12%
BenchmarkFannkuch11     34962402000  35958435000   +2.85%
BenchmarkGobDecode        137298600    124182150   -9.55%
BenchmarkGobEncode         60717160     60006700   -1.17%
BenchmarkGzip            5647156000   5550873000   -1.70%
BenchmarkGunzip          1196350000   1198670000   +0.19%
BenchmarkJSONEncode       863012800    782898000   -9.28%
BenchmarkJSONDecode      3312989000   2781800000  -16.03%
BenchmarkMandelbrot200     45727540     45703120   -0.05%
BenchmarkParse             74781800     59990840  -19.78%
BenchmarkRevcomp          140043650    139462300   -0.42%
BenchmarkTemplate        6467682000   5832153000   -9.83%

benchmark                  old MB/s     new MB/s  speedup
BenchmarkGobDecode             5.59         6.18    1.11x
BenchmarkGobEncode            12.64        12.79    1.01x
BenchmarkGzip                  3.44         3.50    1.02x
BenchmarkGunzip               16.22        16.19    1.00x
BenchmarkJSONEncode            2.25         2.48    1.10x
BenchmarkJSONDecode            0.59         0.70    1.19x
BenchmarkParse                 0.77         0.97    1.26x
BenchmarkRevcomp              18.15        18.23    1.00x
BenchmarkTemplate              0.30         0.33    1.10x

darwin/386 core duo

benchmark                 old ns/op    new ns/op    delta
BenchmarkBinaryTree17   10591616577   9678245733   -8.62%
BenchmarkFannkuch11     10758473315  10749303846   -0.09%
BenchmarkGobDecode         34379785     34121250   -0.75%
BenchmarkGobEncode         23523721     23475750   -0.20%
BenchmarkGzip            2486191492   2446539568   -1.59%
BenchmarkGunzip           444179328    444250293   +0.02%
BenchmarkJSONEncode       221138507    219757826   -0.62%
BenchmarkJSONDecode      1056034428   1048975133   -0.67%
BenchmarkMandelbrot200     19862516     19868346   +0.03%
BenchmarkRevcomp         3742610872   3724821662   -0.48%
BenchmarkTemplate         960283112    944791517   -1.61%

benchmark                  old MB/s     new MB/s  speedup
BenchmarkGobDecode            22.33        22.49    1.01x
BenchmarkGobEncode            32.63        32.69    1.00x
BenchmarkGzip                  7.80         7.93    1.02x
BenchmarkGunzip               43.69        43.68    1.00x
BenchmarkJSONEncode            8.77         8.83    1.01x
BenchmarkJSONDecode            1.84         1.85    1.01x
BenchmarkRevcomp              67.91        68.24    1.00x
BenchmarkTemplate              2.02         2.05    1.01x

R=rsc, 0xe2.0x9a.0x9b, mirtchovski
CC=golang-dev, minux.ma
https://golang.org/cl/6297047

12 years agomath/big: added nat.trailingZeroBits, simplified some code
Robert Griesemer [Fri, 8 Jun 2012 20:00:49 +0000 (13:00 -0700)]
math/big: added nat.trailingZeroBits, simplified some code

Will simplify implementation of binaryGCD.

R=rsc, cswenson
CC=golang-dev
https://golang.org/cl/6299064

12 years agosyscall: unexport GetCurrentProcessId on Windows
Russ Cox [Fri, 8 Jun 2012 18:28:29 +0000 (14:28 -0400)]
syscall: unexport GetCurrentProcessId on Windows

This slipped in with the implementation of Getpid in CL 5909043.
I'd exclude that CL entirely but it is tangled up in the Win32finddata changes.

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

12 years agosyscall: fix windows build
Russ Cox [Fri, 8 Jun 2012 18:04:44 +0000 (14:04 -0400)]
syscall: fix windows build

TBR=bradfitz
CC=golang-dev
https://golang.org/cl/6303061

12 years agosyscall: revert API changes in Windows Win32finddata fix.
Russ Cox [Fri, 8 Jun 2012 17:54:48 +0000 (13:54 -0400)]
syscall: revert API changes in Windows Win32finddata fix.

Preserve old API by using correct struct in system call
and then copying the results, as we did for SetsockoptLinger.

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

12 years agocmd/api: handle empty API file, ignore -next in release
Russ Cox [Fri, 8 Jun 2012 17:44:13 +0000 (13:44 -0400)]
cmd/api: handle empty API file, ignore -next in release

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

12 years agoregexp/syntax: unexport ErrUnexpectedParen
Russ Cox [Fri, 8 Jun 2012 17:05:01 +0000 (13:05 -0400)]
regexp/syntax: unexport ErrUnexpectedParen

This new error is the only API change in the current draft of
Go 1.0.2 CLs. I'd like to include the CL that introduced it,
because it replaces a mysterious 'internal error' with a
useful error message, but I don't want any API changes,
so unexport the error constant for now. It can be
re-exported for Go 1.1.

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

12 years agoexp/html: check the context node for consistency when parsing fragments.
Nigel Tao [Fri, 8 Jun 2012 03:55:15 +0000 (13:55 +1000)]
exp/html: check the context node for consistency when parsing fragments.

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

12 years agocmd/5c, cmd/5g, cmd/5l: fix cross compilation failure on darwin
Dave Cheney [Fri, 8 Jun 2012 03:13:02 +0000 (13:13 +1000)]
cmd/5c, cmd/5g, cmd/5l: fix cross compilation failure on darwin

Fixes #3708.

The fix to allow 5{c,g,l} to compile under clang 3.1 broke cross
compilation on darwin using the Apple default compiler on 10.7.3.

This failure was introduced in 9b455eb64690.

This has been tested by cross compiling on darwin/amd64 to linux/arm using

* gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
* clang version 3.1 (branches/release_31)

As well as on linux/arm using

* gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
* Ubuntu clang version 3.0-6ubuntu3 (tags/RELEASE_30/final) (based on LLVM 3.0)
* Debian clang version 3.1-4 (branches/release_31) (based on LLVM 3.1)

R=consalus, rsc
CC=golang-dev
https://golang.org/cl/6307058

12 years agotest/bench/shoutout: fix compliation
Shenghou Ma [Thu, 7 Jun 2012 18:56:23 +0000 (02:56 +0800)]
test/bench/shoutout: fix compliation
-lm must come after the source file, versions of gcc insist this strict order.
On standard compliant systems, we no longer need malloc.h for malloc.
Use pkg-config(1) to get correct glib cflags and libs.
Fix compiler warning in threadring.c and k-nucleotide.c.

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

12 years agocmd/5a, cmd/5l: add MULW{T,B} and MULAW{T,B} support for ARM
Shenghou Ma [Thu, 7 Jun 2012 18:42:28 +0000 (02:42 +0800)]
cmd/5a, cmd/5l: add MULW{T,B} and MULAW{T,B} support for ARM
        Supported in ARMv5TE and above.
        Also corrected MULA disassembly listing.

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

12 years agocmd/cgo: make Go code order deterministic
Russ Cox [Thu, 7 Jun 2012 16:37:50 +0000 (12:37 -0400)]
cmd/cgo: make Go code order deterministic

The type declarations were being generated using
a range over a map, which meant that successive
runs produced different orders. This will make sure
successive runs produce the same files.

Fixes #3707.

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

12 years agocmd/gc: limit data disassembly to -SS
Russ Cox [Thu, 7 Jun 2012 16:05:34 +0000 (12:05 -0400)]
cmd/gc: limit data disassembly to -SS

This makes -S useful again.

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

12 years agocmd/gc: fix LEAQ $0, SI bug
Russ Cox [Thu, 7 Jun 2012 15:59:18 +0000 (11:59 -0400)]
cmd/gc: fix LEAQ $0, SI bug

Cannot take effective address of constant.

Fixes #3670.

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

12 years agocmd/gc: run escape analysis in call graph dependency order
Russ Cox [Thu, 7 Jun 2012 07:15:09 +0000 (03:15 -0400)]
cmd/gc: run escape analysis in call graph dependency order

If there are mutually recursive functions, there is a cycle in
the dependency graph, so the order is actually dependency order
among the strongly connected components: mutually recursive
functions get put into the same batch and analyzed together.
(Until now the entire package was put in one batch.)

The non-recursive case (single function, maybe with some
closures inside) will be able to be more precise about inputs
that escape only back to outputs, but that is not implemented yet.

R=ken2
CC=golang-dev, lvd
https://golang.org/cl/6304050