]> Cypherpunks repositories - gostls13.git/log
gostls13.git
12 years agoreflect: use []unsafe.Pointer instead of []*int
Jan Ziak [Tue, 18 Sep 2012 18:23:11 +0000 (14:23 -0400)]
reflect: use []unsafe.Pointer instead of []*int

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

12 years agoencoding/json: do not read beyond array literal
Russ Cox [Tue, 18 Sep 2012 18:22:55 +0000 (14:22 -0400)]
encoding/json: do not read beyond array literal

Fixes #3942.

R=golang-dev, mike.rosset, r
CC=golang-dev
https://golang.org/cl/6524043

12 years agoreflect: add Select
Russ Cox [Tue, 18 Sep 2012 18:22:41 +0000 (14:22 -0400)]
reflect: add Select

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

12 years agobuiltin: Changed documentation for rune type.
Anthony Eufemio [Tue, 18 Sep 2012 18:01:10 +0000 (11:01 -0700)]
builtin: Changed documentation for rune type.
Fixes #4093.

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

12 years agoA+C: Add Anthony Eufemio (Individual CLA)
Brad Fitzpatrick [Tue, 18 Sep 2012 18:00:55 +0000 (11:00 -0700)]
A+C: Add Anthony Eufemio (Individual CLA)

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

12 years agoruntime: refactor goroutine blocking
Dmitriy Vyukov [Tue, 18 Sep 2012 17:15:46 +0000 (21:15 +0400)]
runtime: refactor goroutine blocking
The change is a preparation for the new scheduler.
It introduces runtime.park() function,
that will atomically unlock the mutex and park the goroutine.
It will allow to remove the racy readyonstop flag
that is difficult to implement w/o the global scheduler mutex.

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

12 years agoundo CL 6395055 / 2518eee18c4f
Mikio Hara [Tue, 18 Sep 2012 16:33:03 +0000 (01:33 +0900)]
undo CL 6395055 / 2518eee18c4f

Broke TCP selfConnect

««« original CL description
net: avoid nil pointer dereference when RemoteAddr.String method chain is called

Fixes #3721.

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

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

12 years agodoc/effective_go: Closed some tags; removed extra spaces.
Oling Cat [Tue, 18 Sep 2012 15:50:24 +0000 (08:50 -0700)]
doc/effective_go: Closed some tags; removed extra spaces.

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

12 years agocmd/gc: fix double evaluation in interface comparison
Daniel Morsing [Tue, 18 Sep 2012 15:40:53 +0000 (17:40 +0200)]
cmd/gc: fix double evaluation in interface comparison

During interface compare, the operands will be evaluated twice. The operands might include function calls for conversion, so make them cheap before comparing them.

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

12 years agoimage/jpeg: ignore an incorrect but harmless trailing restart marker.
Nigel Tao [Tue, 18 Sep 2012 11:57:33 +0000 (21:57 +1000)]
image/jpeg: ignore an incorrect but harmless trailing restart marker.

Fixes #4084.

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

12 years agosyscall: attempt to find error message in "local" language before resorting to error...
Alex Brainman [Tue, 18 Sep 2012 03:02:37 +0000 (13:02 +1000)]
syscall: attempt to find error message in "local" language before resorting to error number on windows

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

12 years agodoc: document OS X tarballs
Andrew Gerrand [Tue, 18 Sep 2012 00:01:09 +0000 (17:01 -0700)]
doc: document OS X tarballs

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

12 years agomisc/dist: generate tarballs for Mac OS X
Andrew Gerrand [Mon, 17 Sep 2012 23:59:16 +0000 (16:59 -0700)]
misc/dist: generate tarballs for Mac OS X

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

12 years agoruntime: arm: abort if VFPv3 support missing
Dave Cheney [Mon, 17 Sep 2012 23:55:07 +0000 (09:55 +1000)]
runtime: arm: abort if VFPv3 support missing

Fixes #3456.

This proposal is a reformulation of CL 5987063. This CL resets
the default GOARM value to 6 and allows the use of the VFPv3
optimisation if GOARM=7. Binaries built with this CL in place
will abort if GOARM=7 was used and the target host does not
support VFPv3.

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

12 years agoA+C: update Eric Roshan-Eisner
Eric Roshan-Eisner [Mon, 17 Sep 2012 22:39:26 +0000 (08:39 +1000)]
A+C: update Eric Roshan-Eisner

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

12 years agobuild: fix various 'set and not used' for Plan 9
Lucio De Re [Mon, 17 Sep 2012 21:25:26 +0000 (17:25 -0400)]
build: fix various 'set and not used' for Plan 9

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

12 years agocmd/ld: fix compilation when GOARCH != GOHOSTARCH
Jan Ziak [Mon, 17 Sep 2012 21:18:21 +0000 (17:18 -0400)]
cmd/ld: fix compilation when GOARCH != GOHOSTARCH

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

12 years agomath: Faster Tanh
Charles L. Dorian [Mon, 17 Sep 2012 21:18:16 +0000 (17:18 -0400)]
math: Faster Tanh

From 159 to 47.6 ns/op; slightly more accurate.

R=rsc, golang-dev, mtj, dave, remyoudompheng
CC=golang-dev
https://golang.org/cl/6500121

12 years agocmd/go: reject relative values for GOPATH
Francisco Souza [Mon, 17 Sep 2012 20:44:55 +0000 (13:44 -0700)]
cmd/go: reject relative values for GOPATH

Fixes #4062.

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

12 years agocmd/gc: add missing conversion from bool to interface in switches.
Daniel Morsing [Mon, 17 Sep 2012 19:29:10 +0000 (21:29 +0200)]
cmd/gc: add missing conversion from bool to interface in switches.

In switches without an expression, the compiler would not convert the implicit true to an interface, causing codegen errors.

Fixes #3980.

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

12 years agospec: unsafe.Alignof/Sizeof also accept non-variable arguments
Robert Griesemer [Mon, 17 Sep 2012 19:23:41 +0000 (12:23 -0700)]
spec: unsafe.Alignof/Sizeof also accept non-variable arguments

Both gc and gccgo permit calls such as unsafe.Sizeof(42). The
spec only permits variable arguments. This is a (backward-compatible)
spec change reflecting the status quo. Seems preferrable over
restricting the compilers.

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

12 years agomisc/dashboard/builder: reinstate 'go get -d' error handling hack
Andrew Gerrand [Mon, 17 Sep 2012 18:21:02 +0000 (11:21 -0700)]
misc/dashboard/builder: reinstate 'go get -d' error handling hack

I thought this was redundant since the behavior of 'go get -d' had
changed. I was wrong. Should have tested more thoroughly.

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

12 years agounicode/utf8: add Examples
Sanjay Menakuru [Mon, 17 Sep 2012 18:06:42 +0000 (11:06 -0700)]
unicode/utf8: add Examples

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

12 years agomisc/dashboard/builder: increase default command timeout
Andrew Gerrand [Mon, 17 Sep 2012 18:05:43 +0000 (11:05 -0700)]
misc/dashboard/builder: increase default command timeout

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

12 years agomisc/dashboard/builder: add timeout to all external command invocations
Andrew Gerrand [Mon, 17 Sep 2012 17:41:47 +0000 (10:41 -0700)]
misc/dashboard/builder: add timeout to all external command invocations

Fixes #4083.

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

12 years agostrings: implement a faster generic Replacer
Eric Eisner [Mon, 17 Sep 2012 01:50:15 +0000 (11:50 +1000)]
strings: implement a faster generic Replacer

This also fixes the semantics of some corner cases with the empty
match. TODOs for genericReplacer in the tests are fixed.

benchmark                  old ns/op    new ns/op    delta
BenchmarkGenericNoMatch        71395         3132  -95.61%
BenchmarkGenericMatch1         75610        20280  -73.18%
BenchmarkGenericMatch2        837995        86725  -89.65%

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

12 years agorun.bash: fix a typo (fix build)
Shenghou Ma [Sun, 16 Sep 2012 17:26:57 +0000 (01:26 +0800)]
run.bash: fix a typo (fix build)

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

12 years agorun.bash: set appropriate ulimits
Shenghou Ma [Sun, 16 Sep 2012 17:11:28 +0000 (01:11 +0800)]
run.bash: set appropriate ulimits
    mainly for NetBSD/OpenBSD.

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

12 years agoruntime: fix SI_USER for FreeBSD
Shenghou Ma [Sun, 16 Sep 2012 17:08:41 +0000 (01:08 +0800)]
runtime: fix SI_USER for FreeBSD
Ref: http://svnweb.freebsd.org/base/head/sys/sys/signal.h?revision=HEAD&view=markup

R=golang-dev, devon.odell, r
CC=golang-dev
https://golang.org/cl/6490118

12 years agotext/template: towards better errors
Rob Pike [Fri, 14 Sep 2012 22:25:37 +0000 (15:25 -0700)]
text/template: towards better errors
Give the right name for errors, and add a test to check we're
getting the errors we expect.
Also fix an ordering bug (calling add after stopParse) that
caused a nil indirection rather than a helpful error.
Fixes #3280.

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

12 years agoos/exec: don't crash when out of fds
Brad Fitzpatrick [Fri, 14 Sep 2012 20:40:22 +0000 (13:40 -0700)]
os/exec: don't crash when out of fds

Command.Start could crash before if no fds were available
because a nil *os.File of /dev/null was added to the cleanup
list, which crashed before returning the proper error.

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

12 years agospec: clarify section on string types
Robert Griesemer [Fri, 14 Sep 2012 18:31:56 +0000 (11:31 -0700)]
spec: clarify section on string types

Strings happen to be represented similarly to
byte slices internally, but they don't quite
behave like them: While strings can be indexed,
sliced, and have their len() taken like byte
slices, string elements are not addressable,
make() and cap() is not supported, range loops
operate differently, and they are immutable (and
thus behave like values rather then references).

Fixes #4018.

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

12 years agogo/build: use custom file readers to avoid I/O
Russ Cox [Fri, 14 Sep 2012 16:22:45 +0000 (12:22 -0400)]
go/build: use custom file readers to avoid I/O

When reading Go files, read through import block.
When reading non-Go files, read only leading comments.

R=nigeltao, adg, r
CC=golang-dev
https://golang.org/cl/6493068

12 years agocmd/go: fix build
Russ Cox [Fri, 14 Sep 2012 16:21:57 +0000 (12:21 -0400)]
cmd/go: fix build

TBR=r

TBR=r
CC=golang-dev
https://golang.org/cl/6496124

12 years agocmd/go: treat all commands in exp/ as tools
Russ Cox [Fri, 14 Sep 2012 16:06:21 +0000 (12:06 -0400)]
cmd/go: treat all commands in exp/ as tools

Nothing in exp should get installed directly in bin,
at least not by default.

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

12 years agoexp/locale/collate: changed API to allow access to different locales through New(),
Marcel van Lohuizen [Fri, 14 Sep 2012 10:10:02 +0000 (19:10 +0900)]
exp/locale/collate: changed API to allow access to different locales through New(),
instead of variables. Several reasons:
- Encourage users of the API to minimize the number of creations and reuse Collate objects.
- Don't rule out the possibility of using initialization code for collators. For some locales
  it will be possible to have very compact representations that can be quickly expanded
  into a proper table on demand.
Other changes:
- Change name of root* vars to main*, as the tables are shared between locales.
- Added Locales() method to get a list of supported locales.

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

12 years agomisc/dashboard/builder: use c:\ as default buildroot on windows
Alex Brainman [Fri, 14 Sep 2012 02:53:30 +0000 (12:53 +1000)]
misc/dashboard/builder: use c:\ as default buildroot on windows

We have some tests (misc/cgo/test) that are disabled only because
they will fail to run on go builder - see issue 3358 for details.
This change will allow us to enable these tests.

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

12 years agoA+C: add Xing Xing (individual CLA)
Andrew Gerrand [Fri, 14 Sep 2012 02:26:45 +0000 (12:26 +1000)]
A+C: add Xing Xing (individual CLA)

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

12 years agocmd/yacc: allow utf-8 token values
Rob Pike [Thu, 13 Sep 2012 20:59:00 +0000 (13:59 -0700)]
cmd/yacc: allow utf-8 token values
Also clean up the code and allow \U.
Fixes #3007.

R=golang-dev, rsc, 0xjnml
CC=golang-dev
https://golang.org/cl/6492105

12 years agoeffective_go: use html/template instead of text/template
Rob Pike [Thu, 13 Sep 2012 20:41:13 +0000 (13:41 -0700)]
effective_go: use html/template instead of text/template
Should have done this a long time ago.
Fixes #3811.

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

12 years agold: add .gcdata and .gcbss sections
Jan Ziak [Thu, 13 Sep 2012 19:59:34 +0000 (15:59 -0400)]
ld: add .gcdata and .gcbss sections

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

12 years agobuild: print go banner before restoring windows PATH
Brad Fitzpatrick [Thu, 13 Sep 2012 19:39:25 +0000 (12:39 -0700)]
build: print go banner before restoring windows PATH

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

12 years agocmd/gc: Specify which package import caused an redeclaration error.
Daniel Morsing [Thu, 13 Sep 2012 16:40:50 +0000 (18:40 +0200)]
cmd/gc: Specify which package import caused an redeclaration error.

Fixes #4012.

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

12 years agocrypto/tls: allow certificates and key to be in either order.
Adam Langley [Thu, 13 Sep 2012 15:00:16 +0000 (11:00 -0400)]
crypto/tls: allow certificates and key to be in either order.

X509KeyPair wasn't really supposed to allow the certificate and
key to be in the same file, but it did work if you put the key
first. Since some HTTPS servers support loading keys and certs
like this, this change makes it work in either order.

Fixes #3986.

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

12 years agohtml/template: fix URL doc
Russ Cox [Thu, 13 Sep 2012 14:53:00 +0000 (10:53 -0400)]
html/template: fix URL doc

This is the easy part of issue 3528.
(What to do about "noescape" is the hard part, left open.)

Update #3528.

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

12 years agocrypto/rsa: reject PublicKey.E if it won't fit in a 32-bit int
Russ Cox [Thu, 13 Sep 2012 14:47:01 +0000 (10:47 -0400)]
crypto/rsa: reject PublicKey.E if it won't fit in a 32-bit int

Right now we only have 32-bit ints so that's a no-op.
Took the opportunity to check for some other invalid values too.
Suggestions for additions or modifications welcome.

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

12 years agocmd/pack: rename __.SYMDEF to __.GOSYMDEF
Russ Cox [Thu, 13 Sep 2012 14:26:21 +0000 (10:26 -0400)]
cmd/pack: rename __.SYMDEF to __.GOSYMDEF

This fixes a problem with ELF tools thinking they know the
format of the symbol table, as we do not use any of the
standard formats for that table.

This change will probably annoy the Plan 9 users, but I
believe there are other incompatibilities already that mean
they have to use a Go-specific nm.

Fixes #3473.

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

12 years agogo/build: reject empty strings in Import
Francisco Souza [Thu, 13 Sep 2012 14:25:35 +0000 (10:25 -0400)]
go/build: reject empty strings in Import

Fixes #3889.

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

12 years agoimage/png: optimize encoding image.Gray and image.NRGBA images.
Nigel Tao [Thu, 13 Sep 2012 05:47:12 +0000 (15:47 +1000)]
image/png: optimize encoding image.Gray and image.NRGBA images.

benchmark                    old ns/op    new ns/op    delta
BenchmarkEncodeGray           23616080      5624558  -76.18%
BenchmarkEncodeNRGBOpaque     34181260     17144380  -49.84%
BenchmarkEncodeNRGBA          41235820     20345990  -50.66%
BenchmarkEncodePaletted        5594652      5620362   +0.46%
BenchmarkEncodeRGBOpaque      17242210     17168820   -0.43%
BenchmarkEncodeRGBA           66515720     67243560   +1.09%

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

12 years ago undo CL 6493071 / 56c7453d488f
Andrew Gerrand [Thu, 13 Sep 2012 01:14:20 +0000 (11:14 +1000)]
  undo CL 6493071 / 56c7453d488f

This change messes with anchor links. It obscures the item being linked to.
I don't see a way around it. Undoing for now.

      Fixes #4071.

      ««« original CL description
      doc css: topbar sticks to the top of large windows.
      Rationale: for large screens, the convenience of not having to scroll
      to the top of the page to do a search outweighs having less vertical
      space.
      Tested with Chrome, Firefox, Safari with various window and text sizes.

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

      Committer: Andrew Gerrand <adg@golang.org>
      »»»

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

12 years agonet/rpc/jsonrpc: fix test error message
Russ Cox [Wed, 12 Sep 2012 21:37:39 +0000 (17:37 -0400)]
net/rpc/jsonrpc: fix test error message

Fixes #4041.

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

12 years agogc: generate garbage collection info for types
Jan Ziak [Wed, 12 Sep 2012 16:08:27 +0000 (12:08 -0400)]
gc: generate garbage collection info for types

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

12 years agocmd/dist: emit \r in env -w output
Russ Cox [Wed, 12 Sep 2012 16:05:34 +0000 (12:05 -0400)]
cmd/dist: emit \r in env -w output

go tool dist env -w is supposed to print a Windows batch file.
Normally Windows will execute batch files without \r before \n,
but issue 3060 reports that if the file ends up containing paths
written in Chinese, Windows 7 cannot execute it without the \r.
So add the \r.

Fixes #3060.

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

12 years agospec: make bitwise operators stand out
Russ Cox [Wed, 12 Sep 2012 16:05:24 +0000 (12:05 -0400)]
spec: make bitwise operators stand out

The (and not) arguably sounds like it is trying to say something - and not what?.

Just an idea, won't be hurt if it gets rejected.

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

12 years agosyscall: add linux specific Getsockopt for Ucred struct
Andreas Jellinghaus [Wed, 12 Sep 2012 13:38:21 +0000 (06:38 -0700)]
syscall: add linux specific Getsockopt for Ucred struct

SO_PEERCRED on unix domain socket will fill a Ucred struct,
thus linux needs a custom Getsockopt variant.
Fixes #3836.

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

12 years agoC: Add Andreas Jellinghaus (Google CLA)
Ian Lance Taylor [Wed, 12 Sep 2012 13:34:42 +0000 (06:34 -0700)]
C: Add Andreas Jellinghaus (Google CLA)

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

12 years agocmd/6g, cmd/8g: clean up unnecessary switch code in componentgen.
Nigel Tao [Wed, 12 Sep 2012 11:47:05 +0000 (21:47 +1000)]
cmd/6g, cmd/8g: clean up unnecessary switch code in componentgen.
Code higher up in the function already catches these cases.

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

12 years agoos: detect and handle console in File.Write on windows
Alex Brainman [Wed, 12 Sep 2012 02:04:45 +0000 (12:04 +1000)]
os: detect and handle console in File.Write on windows

Fixes #3376.

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

12 years agostrings: fix NewReplacer(old0, new0, old1, new1, ...) to be consistent
Nigel Tao [Wed, 12 Sep 2012 00:40:39 +0000 (10:40 +1000)]
strings: fix NewReplacer(old0, new0, old1, new1, ...) to be consistent
when oldi == oldj.

Benchmark numbers show no substantial change.

R=eric.d.eisner, rogpeppe
CC=golang-dev
https://golang.org/cl/6496104

12 years agosync/atomic: add package doc for AddT, LoadT and StoreT.
Nigel Tao [Wed, 12 Sep 2012 00:36:22 +0000 (10:36 +1000)]
sync/atomic: add package doc for AddT, LoadT and StoreT.

Rename the first argument of CompareAndSwapT and AddT s/val/addr/
for consistency with LoadT and StoreT.

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

12 years agocmd/gc: Inline pointer sized T2I interface conversions
Daniel Morsing [Tue, 11 Sep 2012 19:42:30 +0000 (21:42 +0200)]
cmd/gc: Inline pointer sized T2I interface conversions

This CL also adds support for marking the likelyness of IF nodes in the AST being true. This feature is being used here to mark the slow path as unlikely.

src/pkg/runtime:
benchmark                  old ns/op    new ns/op    delta
BenchmarkConvT2IUintptr           16            1  -91.63%

test/bench/go1:
benchmark                 old ns/op    new ns/op    delta
BenchmarkBinaryTree17    5416917000   5461355000   +0.82%
BenchmarkFannkuch11      3810355000   3842609000   +0.85%
BenchmarkGobDecode         19950950     19855420   -0.48%
BenchmarkGobEncode         11301220     11308530   +0.06%
BenchmarkGzip             548119600    546869200   -0.23%
BenchmarkGunzip           176145400    180208300   +2.31%
BenchmarkJSONEncode        93117400     70163100  -24.65%
BenchmarkJSONDecode       406626800    409999200   +0.83%
BenchmarkMandelbrot200      6300992      6317866   +0.27%
BenchmarkParse              7664396      7451625   -2.78%
BenchmarkRevcomp         1189424000   1412332000  +18.74%
BenchmarkTemplate         491308400    458654200   -6.65%

benchmark                  old MB/s     new MB/s  speedup
BenchmarkGobDecode            38.47        38.66    1.00x
BenchmarkGobEncode            67.92        67.87    1.00x
BenchmarkGzip                 35.40        35.48    1.00x
BenchmarkGunzip              110.16       107.68    0.98x
BenchmarkJSONEncode           20.84        27.66    1.33x
BenchmarkJSONDecode            4.77         4.73    0.99x
BenchmarkParse                 7.56         7.77    1.03x
BenchmarkRevcomp             213.69       179.96    0.84x
BenchmarkTemplate              3.95         4.23    1.07x

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

12 years agocmd/gc: recognize small TPTR64 values as small integer constants.
Nigel Tao [Tue, 11 Sep 2012 09:45:28 +0000 (19:45 +1000)]
cmd/gc: recognize small TPTR64 values as small integer constants.

Given the following Go program:

func sum(s []int) int {
        ret := 0
        for _, x := range s {
                ret += x
        }
        return ret
}

6g would previously generate:

--- prog list "sum" ---
0000 (main.go:3) TEXT    sum+0(SB),$0-24
0001 (main.go:5) MOVQ    s+0(FP),CX
0002 (main.go:5) MOVL    s+8(FP),DI
0003 (main.go:5) MOVL    s+12(FP),BX
0004 (main.go:4) MOVL    $0,SI
0005 (main.go:5) MOVL    $0,AX
0006 (main.go:5) JMP     ,8
0007 (main.go:5) INCL    ,AX
0008 (main.go:5) CMPL    AX,DI
0009 (main.go:5) JGE     $0,16
0010 (main.go:5) MOVL    (CX),DX
0011 (main.go:5) MOVQ    $4,BX
0012 (main.go:5) ADDQ    CX,BX
0013 (main.go:5) MOVQ    BX,CX
0014 (main.go:6) ADDL    DX,SI
0015 (main.go:5) JMP     ,7
0016 (main.go:8) MOVL    SI,.noname+16(FP)
0017 (main.go:8) RET     ,

and now generates:

--- prog list "sum" ---
0000 (main.go:3) TEXT    sum+0(SB),$0-24
0001 (main.go:5) MOVQ    s+0(FP),CX
0002 (main.go:5) MOVL    s+8(FP),DI
0003 (main.go:5) MOVL    s+12(FP),BX
0004 (main.go:4) MOVL    $0,SI
0005 (main.go:5) MOVL    $0,AX
0006 (main.go:5) JMP     ,8
0007 (main.go:5) INCL    ,AX
0008 (main.go:5) CMPL    AX,DI
0009 (main.go:5) JGE     $0,14
0010 (main.go:5) MOVL    (CX),BP
0011 (main.go:5) ADDQ    $4,CX
0012 (main.go:6) ADDL    BP,SI
0013 (main.go:5) JMP     ,7
0014 (main.go:8) MOVL    SI,.noname+16(FP)
0015 (main.go:8) RET     ,

The key difference is that
0011 (main.go:5) MOVQ    $4,BX
0012 (main.go:5) ADDQ    CX,BX
0013 (main.go:5) MOVQ    BX,CX
has changed to
0011 (main.go:5) ADDQ    $4,CX

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

12 years agoC: add Francesc Campoy (Google CLA)
Andrew Gerrand [Tue, 11 Sep 2012 07:15:20 +0000 (17:15 +1000)]
C: add Francesc Campoy (Google CLA)

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

12 years agocmd/6g, cmd/8g: do not LEA[LQ] interfaces when calling methods.
Rémy Oudompheng [Tue, 11 Sep 2012 06:45:23 +0000 (08:45 +0200)]
cmd/6g, cmd/8g: do not LEA[LQ] interfaces when calling methods.

It is enough to load directly the data word and the itab word
from memory, so we save a LEA instruction for each method call,
and allow elimination of some extra temporaries.

Update #1914.

R=daniel.morsing, rsc
CC=golang-dev, remy
https://golang.org/cl/6501110

12 years agocmd/6g, cmd/8g: eliminate extra agen for nil comparisons.
Rémy Oudompheng [Tue, 11 Sep 2012 06:08:40 +0000 (08:08 +0200)]
cmd/6g, cmd/8g: eliminate extra agen for nil comparisons.

Removes an extra LEAL/LEAQ instructions there and usually saves
a useless temporary in the idiom
    if err := foo(); err != nil {...}

Generated code is also less involved:
    MOVQ err+n(SP), AX
    CMPQ AX, $0
(potentially CMPQ n(SP), $0) instead of
    LEAQ err+n(SP), AX
    CMPQ (AX), $0

Update #1914.

R=daniel.morsing, nigeltao, rsc
CC=golang-dev, remy
https://golang.org/cl/6493099

12 years agostrings: more thorough Replacer tests.
Nigel Tao [Tue, 11 Sep 2012 04:40:08 +0000 (14:40 +1000)]
strings: more thorough Replacer tests.

This verifies existing behavior. Some replacements are arguably wrong
(these are marked with TODO) but changing behavior is left for a
follow-up CL.

Also fix that BenchmarkGenericMatch wasn't actually matching anything.

R=rsc, eric.d.eisner
CC=bradfitz, golang-dev
https://golang.org/cl/6488110

12 years agoC: spell Brian's name correctly
Andrew Gerrand [Tue, 11 Sep 2012 04:13:49 +0000 (14:13 +1000)]
C: spell Brian's name correctly

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

12 years agomisc/cgo/life: disable it temporarily on windows, because go builder fails
Alex Brainman [Tue, 11 Sep 2012 04:06:34 +0000 (14:06 +1000)]
misc/cgo/life: disable it temporarily on windows, because go builder fails

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

12 years agoencoding/json: handle anonymous fields
Russ Cox [Tue, 11 Sep 2012 03:31:40 +0000 (23:31 -0400)]
encoding/json: handle anonymous fields

Fixes #3069.

R=golang-dev, n13m3y3r
CC=golang-dev
https://golang.org/cl/6460044

12 years agodoc css: topbar sticks to the top of large windows.
Brian Slesinskya [Tue, 11 Sep 2012 01:38:47 +0000 (11:38 +1000)]
doc css: topbar sticks to the top of large windows.
Rationale: for large screens, the convenience of not having to scroll
to the top of the page to do a search outweighs having less vertical
space.
Tested with Chrome, Firefox, Safari with various window and text sizes.

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

12 years agoC: add Brian Slesinsky (Google CLA)
Andrew Gerrand [Tue, 11 Sep 2012 01:33:34 +0000 (11:33 +1000)]
C: add Brian Slesinsky (Google CLA)

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

12 years agonet: delete unused IP-level socket option helpers
Mikio Hara [Mon, 10 Sep 2012 23:56:28 +0000 (08:56 +0900)]
net: delete unused IP-level socket option helpers

R=rsc, dave
CC=bradfitz, gobot, golang-dev
https://golang.org/cl/6497044

12 years agodoc: Don't imply incorrect guarantees about data races.
David Symonds [Mon, 10 Sep 2012 22:47:30 +0000 (08:47 +1000)]
doc: Don't imply incorrect guarantees about data races.

A race between
        a = "hello, world"
and
        print(a)
is not guaranteed to print either "hello, world" or "".
Its behaviour is undefined.

Fixes #4039.

R=rsc
CC=dvyukov, gobot, golang-dev, r
https://golang.org/cl/6489075

12 years agonet: rename files to clarify platform dependency
Mikio Hara [Mon, 10 Sep 2012 22:37:43 +0000 (07:37 +0900)]
net: rename files to clarify platform dependency

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

12 years agoexp/types/staging: typechecker API
Robert Griesemer [Mon, 10 Sep 2012 21:54:52 +0000 (14:54 -0700)]
exp/types/staging: typechecker API

First set of type checker files for review.
The primary concern here is the typechecker
API (types.go).

R=rsc, adonovan, r, rogpeppe
CC=golang-dev
https://golang.org/cl/6490089

12 years agogc: initial BOM is legal.
Rob Pike [Mon, 10 Sep 2012 20:03:07 +0000 (13:03 -0700)]
gc: initial BOM is legal.
Fixes #4040.

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

12 years agoundo CL 6498092 / 4ff71bc1a199
Adam Langley [Mon, 10 Sep 2012 19:52:36 +0000 (15:52 -0400)]
undo CL 6498092 / 4ff71bc1a199

Broke tests on 386.

««« original CL description
6l/8l: emit correct opcodes to F(SUB|DIV)R?D.

When the destination was not F0, 6l and 8l swapped FSUBD/FSUBRD and
FDIVD/FDIVRD.

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

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

12 years ago6l/8l: emit correct opcodes to F(SUB|DIV)R?D.
Adam Langley [Mon, 10 Sep 2012 19:35:39 +0000 (15:35 -0400)]
6l/8l: emit correct opcodes to F(SUB|DIV)R?D.

When the destination was not F0, 6l and 8l swapped FSUBD/FSUBRD and
FDIVD/FDIVRD.

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

12 years agonet/http: add If-None-Match and If-Range support to ServeContent
Brad Fitzpatrick [Mon, 10 Sep 2012 17:16:09 +0000 (10:16 -0700)]
net/http: add If-None-Match and If-Range support to ServeContent

Also, clear Content-Type and Content-Length on Not Modified
responses before server.go strips them and spams the logs with
warnings.

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

12 years ago6g: delete unnecessary OXXX initialization.
Nigel Tao [Mon, 10 Sep 2012 01:24:34 +0000 (11:24 +1000)]
6g: delete unnecessary OXXX initialization.

No longer necessary after https://golang.org/cl/6497073/
removed the `if(n5.op != OXXX) { regfree(&n5); }`.

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

12 years agocrypto/rand: typo fix from a69e30463bf4
Adam Langley [Mon, 10 Sep 2012 00:11:58 +0000 (20:11 -0400)]
crypto/rand: typo fix from a69e30463bf4

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

12 years agocrypto/rand: zero length reads shouldn't crash on Windows.
Adam Langley [Mon, 10 Sep 2012 00:07:09 +0000 (20:07 -0400)]
crypto/rand: zero length reads shouldn't crash on Windows.

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

12 years agocmd/8g: import componentgen from 6g.
Rémy Oudompheng [Sun, 9 Sep 2012 18:30:08 +0000 (20:30 +0200)]
cmd/8g: import componentgen from 6g.

This makes the compilers code more similar and improves
code generation a lot.

The number of LEAL instructions generated for cmd/go drops
by 60%.

% GOARCH=386 go build -gcflags -S -a cmd/go | grep LEAL | wc -l
Before:       89774
After:        47548

benchmark                              old ns/op    new ns/op    delta
BenchmarkAppendFloatDecimal                  540          444  -17.78%
BenchmarkAppendFloat                        1160         1035  -10.78%
BenchmarkAppendFloatExp                     1060          922  -13.02%
BenchmarkAppendFloatNegExp                  1053          920  -12.63%
BenchmarkAppendFloatBig                     1773         1558  -12.13%
BenchmarkFormatInt                         13065        12481   -4.47%
BenchmarkAppendInt                         10981         9900   -9.84%
BenchmarkFormatUint                         3804         3650   -4.05%
BenchmarkAppendUint                         3506         3303   -5.79%
BenchmarkUnquoteEasy                         714          683   -4.34%
BenchmarkUnquoteHard                        5117         2915  -43.03%

Update #1914.

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

12 years agonet: change cname lookup test target to iana.org
Mikio Hara [Sun, 9 Sep 2012 14:53:48 +0000 (23:53 +0900)]
net: change cname lookup test target to iana.org

It might be meaningful, and stable than others.

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

12 years agoexp/locale/collate: added indices to builder for reusing blocks between locales.
Marcel van Lohuizen [Sat, 8 Sep 2012 01:46:55 +0000 (10:46 +0900)]
exp/locale/collate: added indices to builder for reusing blocks between locales.
Refactored build + buildTrie into build + buildOrdering.
Note that since the tailoring code is not checked in yet, all tailorings are identical
to root.  The table therefore should not and does not grow at this point.

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

12 years agoexp/locale/collate: switch from DUCET to CLDR for the default root table.
Marcel van Lohuizen [Sat, 8 Sep 2012 01:38:11 +0000 (10:38 +0900)]
exp/locale/collate: switch from DUCET to CLDR for the default root table.

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

12 years agotext/scanner: skip first character if it's a BOM
Robert Griesemer [Sat, 8 Sep 2012 00:15:42 +0000 (17:15 -0700)]
text/scanner: skip first character if it's a BOM

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

12 years agogo/scanner: add missing BOM test
Robert Griesemer [Fri, 7 Sep 2012 23:28:15 +0000 (16:28 -0700)]
go/scanner: add missing BOM test

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

12 years agofaq: go does not have duck typing
Rob Pike [Fri, 7 Sep 2012 21:01:02 +0000 (14:01 -0700)]
faq: go does not have duck typing

R=golang-dev, 0xjnml, iant, adonovan, aram
CC=golang-dev
https://golang.org/cl/6500092

12 years agogo/scanner: skip first character if it's a BOM
Robert Griesemer [Fri, 7 Sep 2012 20:56:31 +0000 (13:56 -0700)]
go/scanner: skip first character if it's a BOM

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

12 years agofaq: mercurial vs. git
Rob Pike [Fri, 7 Sep 2012 18:19:01 +0000 (11:19 -0700)]
faq: mercurial vs. git
Fixes #4052.

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

12 years agosyscall: Test SCM credentials on Linux.
Albert Strasheim [Fri, 7 Sep 2012 17:31:17 +0000 (10:31 -0700)]
syscall: Test SCM credentials on Linux.

This test was previously removed in 087c6e15702e.

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

12 years agospec: an initial BOM can be ignored
Rob Pike [Fri, 7 Sep 2012 17:28:24 +0000 (10:28 -0700)]
spec: an initial BOM can be ignored
After further deliberation, let's back down to the Unicode proposal.
Ignoring aBOMinations anywhere means that things like
        grep unsafe *.go
might fail because there's a BOM in the middle: unBOMsafe.

R=golang-dev, rsc, 0xjnml, gri, bradfitz
CC=golang-dev
https://golang.org/cl/6490091

12 years agonet,mime: Minor corrections to documentation comments.
Lucio De Re [Fri, 7 Sep 2012 17:24:55 +0000 (10:24 -0700)]
net,mime: Minor corrections to documentation comments.

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

12 years agocmd/yacc: allow leading underscore in token name
Rob Pike [Fri, 7 Sep 2012 16:31:51 +0000 (09:31 -0700)]
cmd/yacc: allow leading underscore in token name
Fixes #4037.

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

12 years agofaq: another way to solve the closure/variable/range complaint
Rob Pike [Fri, 7 Sep 2012 16:11:39 +0000 (09:11 -0700)]
faq: another way to solve the closure/variable/range complaint
It's easier just to declare a new variable.

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

12 years agocmd/6g: avoid taking the address of slices unnecessarily.
Rémy Oudompheng [Fri, 7 Sep 2012 04:54:42 +0000 (06:54 +0200)]
cmd/6g: avoid taking the address of slices unnecessarily.

The main case where it happens is when evaluating &s[i] without
bounds checking, which usually happens during range loops (i=0).

This allows registerization of the corresponding variables,
saving 16 bytes of stack frame for each such range loop and a
LEAQ instruction.

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

12 years agoruntime: arm: abort if hardware floating point missing
Dave Cheney [Fri, 7 Sep 2012 04:26:42 +0000 (14:26 +1000)]
runtime: arm: abort if hardware floating point missing

Fixes #3911.

Requires CL 6449127.

dfc@qnap:~$ ./runtime.test
runtime: this CPU has no floating point hardware, so it cannot run
this GOARM=7 binary. Recompile using GOARM=5.

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

12 years agocgo: use debug data section for ELF
Joel Sing [Fri, 7 Sep 2012 03:32:40 +0000 (13:32 +1000)]
cgo: use debug data section for ELF

When generating enums use the debug data section instead of the
DWARF debug info, if it is available in the ELF file. This allows
mkerrors.sh to work correctly on OpenBSD/386 and NetBSD/386.

Fixes #2470.

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

12 years agocmd/yacc: always import fmt, safely
Rob Pike [Thu, 6 Sep 2012 21:58:37 +0000 (14:58 -0700)]
cmd/yacc: always import fmt, safely
The parser depends on it but the client might not import it, so make sure it's there.
Fixes #4038.

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