]> Cypherpunks repositories - gostls13.git/log
gostls13.git
11 years agoundo CL 47560044 / 40a37153a550
Brad Fitzpatrick [Tue, 14 Jan 2014 20:53:21 +0000 (12:53 -0800)]
undo CL 47560044 / 40a37153a550

Still work to do. See http://golang.org/issue/7125

««« original CL description
net/http/cookiejar: document format of domain in PublicSuffix

Document what values a PublicSuffixList must accept as
a domain in a call to PublicSuffix.

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

»»»

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

11 years agoC: add Michael Kelly (Google CLA)
Brad Fitzpatrick [Tue, 14 Jan 2014 20:53:06 +0000 (12:53 -0800)]
C: add Michael Kelly (Google CLA)

R=golang-codereviews, iant, mjk
CC=golang-codereviews
https://golang.org/cl/52220043

11 years agodoc: add cmd/gofmt entry to go1.3.txt
Brad Fitzpatrick [Tue, 14 Jan 2014 20:27:51 +0000 (12:27 -0800)]
doc: add cmd/gofmt entry to go1.3.txt

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

11 years agocmd/gofmt: remove -tabwidth and -tabs flags
Brad Fitzpatrick [Tue, 14 Jan 2014 19:10:56 +0000 (11:10 -0800)]
cmd/gofmt: remove -tabwidth and -tabs flags

Having these flags misleads people into thinking they're acceptable
for code that "must be gofmt'd".

If an organization wishes to use gofmt internally with
different settings, they can fork gofmt trivially. But "gofmt"
as used by the community with open source Go code should not
support these old knobs.

Also removes the -comments flag.

Fixes #7101

R=r, gri
CC=golang-codereviews
https://golang.org/cl/52170043

11 years agoapi: update next.txt
Brad Fitzpatrick [Tue, 14 Jan 2014 18:18:43 +0000 (10:18 -0800)]
api: update next.txt

Now with more syscall!

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

11 years agonet/http: fix another data race when sharing Request.Body
Brad Fitzpatrick [Tue, 14 Jan 2014 17:46:40 +0000 (09:46 -0800)]
net/http: fix another data race when sharing Request.Body

Fix another issue (similar to Issue 6995) where there was a
data race when sharing a server handler's Request.Body with
another goroutine that out-lived the Handler's goroutine.

In some cases we were not closing the incoming Request.Body
(which would've required reading it until the end) if we
thought it we thought we were going to be forcibly closing the
underlying net.Conn later anyway. But that optimization
largely moved to the transfer.go *body later, and locking was
added to *body which then detected read-after-close, so now
calling the (*body).Close always is both cheap and correct.

No new test because TestTransportAndServerSharedBodyRace caught it,
albeit only sometimes. Running:

while ./http.test -test.cpu=8 -test.run=TestTransportAndServerSharedBodyRace; do true; done

... would reliably cause a race before, but not now.

Update #6995
Fixes #7092

R=golang-codereviews, khr
CC=golang-codereviews
https://golang.org/cl/51700043

11 years agocmd/gc: return canonical Node* from temp
Russ Cox [Tue, 14 Jan 2014 15:43:13 +0000 (10:43 -0500)]
cmd/gc: return canonical Node* from temp

For historical reasons, temp was returning a copy
of the created Node*, not the original Node*.
This meant that if analysis recorded information in the
returned node (for example, n->addrtaken = 1), the
analysis would not show up on the original Node*, the
one kept in fn->dcl and consulted during liveness
bitmap creation.

Correct this, and watch for it when setting addrtaken.

Fixes #7083.

R=khr, dave, minux.ma
CC=golang-codereviews
https://golang.org/cl/51010045

11 years agocmd/gc: add -live flag for debugging liveness maps
Russ Cox [Tue, 14 Jan 2014 15:40:16 +0000 (10:40 -0500)]
cmd/gc: add -live flag for debugging liveness maps

R=khr
CC=golang-codereviews
https://golang.org/cl/51820043

11 years agoruntime: emit collection stacks in GODEBUG=allocfreetrace mode
Russ Cox [Tue, 14 Jan 2014 15:39:50 +0000 (10:39 -0500)]
runtime: emit collection stacks in GODEBUG=allocfreetrace mode

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

11 years agoruntime: fix comment
Dmitriy Vyukov [Tue, 14 Jan 2014 08:58:13 +0000 (12:58 +0400)]
runtime: fix comment
Void function can not return false.

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

11 years agocmd/api: ensure GOPATH always points to the correct go.tools
Alex Brainman [Tue, 14 Jan 2014 05:56:22 +0000 (16:56 +1100)]
cmd/api: ensure GOPATH always points to the correct go.tools

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

11 years agoruntime/pprof: fix flaky TestCPUProfileMultithreaded test
Keith Randall [Tue, 14 Jan 2014 05:18:47 +0000 (21:18 -0800)]
runtime/pprof: fix flaky TestCPUProfileMultithreaded test

It's too sensitive.

Fixes bug 7095

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

11 years agocmd/link: fix build
Russ Cox [Tue, 14 Jan 2014 04:20:53 +0000 (23:20 -0500)]
cmd/link: fix build

The golden file for link.hello.darwin.amd64
was a little ahead of the checked-in code.

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

11 years agocmd/link: implement dead code removal
Russ Cox [Tue, 14 Jan 2014 04:08:10 +0000 (23:08 -0500)]
cmd/link: implement dead code removal

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

11 years agocmd/link: implement and test automatic symbols
Russ Cox [Tue, 14 Jan 2014 04:07:57 +0000 (23:07 -0500)]
cmd/link: implement and test automatic symbols

Related changes included in this CL:

 - Add explicit start symbol to Prog.
 - Add omitRuntime bool to Prog.
 - Introduce p.Packages[""] to hold automatic symbols
 - Add SymOrder to Prog to preserve symbol order.
 - Add layout test (and fix bug that was putting everything in text section).

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

11 years agocmd/link: replace golden binary files with hex dumps
Russ Cox [Tue, 14 Jan 2014 04:07:40 +0000 (23:07 -0500)]
cmd/link: replace golden binary files with hex dumps

The hex dumps will diff better, and I hope they will avoid
a repeat of http://bugs.debian.org/716853.

The CL will probably show the testdata diffs as "binary",
but in fact the binary versions are being replaced by
textual hex dumps (output of hexdump -C).

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

11 years agonet: fix incorrect internal IPv6 address representation in test
Mikio Hara [Mon, 13 Jan 2014 22:36:38 +0000 (07:36 +0900)]
net: fix incorrect internal IPv6 address representation in test

Also fixes a dialgoogle test glitch after issue 6628 fix.

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

11 years agoos/exec: disable fd check in TestHelperProcess on Plan 9
David du Colombier [Mon, 13 Jan 2014 22:03:22 +0000 (23:03 +0100)]
os/exec: disable fd check in TestHelperProcess on Plan 9

On Plan 9, we can observe the following open file descriptors:

  0 r  c    0 (000000000000000a   0 00)     0        0 /dev/null
  1 rw |    0 (0000000001df6742   0 00) 65536       54 #|/data1
  2 rw |    0 (0000000001df6782   0 00) 65536        0 #|/data1
  3 rw M 1956 (0000000000d66dd2   0 00)  8192       12 /tmp/333163398
  4 r  c    0 (0000000000000001   0 00)     0      528 /dev/bintime
  5 r  M 1956 (0000000000d66dd1 854 00)  8192        0 /tmp/go-build843954301/os/exec/_test/exec.test
  6 r  M 1956 (0000000000d66dd1 854 00)  8192        0 /tmp/go-build843954301/os/exec/_test/exec.test
  7 r  M 1956 (0000000000d66dd1 854 00)  8192        0 /tmp/go-build843954301/os/exec/_test/exec.test
  8 r  M 1956 (0000000000d66dd1 854 00)  8192        0 /tmp/go-build843954301/os/exec/_test/exec.test
  9 r  M 1956 (0000000000d66dd1 854 00)  8192        0 /tmp/go-build843954301/os/exec/_test/exec.test
 10 r  M 1956 (0000000000d66dd1 854 00)  8192        0 /tmp/go-build843954301/os/exec/_test/exec.test
 11 r  c    0 (000000000000000f   0 00)     0       32 /dev/random
 12 r  M 1956 (0000000000d66dd1 854 00)  8192        0 /tmp/go-build843954301/os/exec/_test/exec.test
 13 r  c    0 (000000000000000a   0 00)     0        0 /dev/null
 14 rw |    0 (0000000001df6801   0 00) 65536        0 #|/data
 15 rw |    0 (0000000001df6802   0 00) 65536     1275 #|/data1

R=rsc, bradfitz, aram
CC=golang-codereviews
https://golang.org/cl/51420044

11 years agosyscall: add syscall.Termios on freebsd/{386,amd64}
Michael Gehring [Mon, 13 Jan 2014 21:57:38 +0000 (13:57 -0800)]
syscall: add syscall.Termios on freebsd/{386,amd64}

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

11 years agoC+A: add email alias for Michael Gehring
Brad Fitzpatrick [Mon, 13 Jan 2014 21:57:06 +0000 (13:57 -0800)]
C+A: add email alias for Michael Gehring

R=golang-codereviews, gnirheg.leahcim
CC=golang-codereviews
https://golang.org/cl/51670043

11 years agonet/http: clarify semantics of File methods
Brad Fitzpatrick [Mon, 13 Jan 2014 21:52:06 +0000 (13:52 -0800)]
net/http: clarify semantics of File methods

There were no docs explaining the meaning of Readdir's count
argument, for instance. Clarify that these mean the same as
the methods on *os.File.

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

11 years agogo/scanner: minimal non-terminated literals
Robert Griesemer [Mon, 13 Jan 2014 19:10:45 +0000 (11:10 -0800)]
go/scanner: minimal non-terminated literals

Consume as little as possible input when encountering
non-terminated rune, string, and raw string literals.
The old code consumed at least one extra character
which could lead to worse error recovery when parsing
erroneous sources.

Also made error messages in those cases more consistent.

Fixes #7091.

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

11 years agoruntime: remove redundant 0x prefix in error print
Russ Cox [Mon, 13 Jan 2014 16:39:04 +0000 (11:39 -0500)]
runtime: remove redundant 0x prefix in error print

%x already adds the prefix unconditionally

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

11 years agoos: disable TestReaddirStatFailures on Plan 9
David du Colombier [Mon, 13 Jan 2014 12:24:59 +0000 (13:24 +0100)]
os: disable TestReaddirStatFailures on Plan 9

R=rsc, dave, aram, jeremyjackins, lucio.dere
CC=golang-codereviews, jas
https://golang.org/cl/50980043

11 years agosyscall: include mmap constants in openbsd zerror* files
Joel Sing [Mon, 13 Jan 2014 00:25:48 +0000 (11:25 +1100)]
syscall: include mmap constants in openbsd zerror* files

Include the <sys/mman.h> header for OpenBSD mkerrors.sh. This brings
in constants used with madvise(2), mmap(2), msync(2) and mlockall(2).

Fixes #4929

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

11 years agosyscall: remove getsockname workaround for openbsd
Joel Sing [Mon, 13 Jan 2014 00:24:56 +0000 (11:24 +1100)]
syscall: remove getsockname workaround for openbsd

Remove the getsockname workaround for unix domain sockets on OpenBSD.
This was fixed in OpenBSD 5.2 and we now have a minimum requirement
for OpenBSD 5.4-current.

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

11 years agoruntime/pprof: enable profiling test on openbsd
Joel Sing [Mon, 13 Jan 2014 00:24:08 +0000 (11:24 +1100)]
runtime/pprof: enable profiling test on openbsd

Profiling of multithreaded applications works correctly on OpenBSD
5.4-current, so enable the profiling test.

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

11 years agonet: ignore some errors in windows Accept
Alex Brainman [Sun, 12 Jan 2014 01:20:16 +0000 (12:20 +1100)]
net: ignore some errors in windows Accept

Fixes #6987

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

11 years agonet: add plan9 to TestDialTimeout
Jeff Sickel [Sat, 11 Jan 2014 17:58:03 +0000 (18:58 +0100)]
net: add plan9 to TestDialTimeout
     === RUN TestDialTimeout
     --- PASS: TestDialTimeout (0.21 seconds)

R=golang-codereviews, bradfitz, 0intro
CC=golang-codereviews, rsc
https://golang.org/cl/49710050

11 years agoapi: update except.txt and next.txt to reflect openbsd system ABI break
Joel Sing [Sat, 11 Jan 2014 09:16:39 +0000 (20:16 +1100)]
api: update except.txt and next.txt to reflect openbsd system ABI break

Update #7049

R=golang-codereviews, minux.ma, mikioh.mikioh
CC=golang-codereviews
https://golang.org/cl/49470052

11 years agoruntime, syscall: update for openbsd system ABI break
Joel Sing [Sat, 11 Jan 2014 08:00:32 +0000 (19:00 +1100)]
runtime, syscall: update for openbsd system ABI break

Update Go so that it continues to work past the OpenBSD system ABI
break, with 64-bit time_t:

  http://www.openbsd.org/faq/current.html#20130813

Note: this makes OpenBSD 5.5 (currently 5.4-current) the minimum
supported release for Go.

Fixes #7049.

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

11 years agodatabase/sql: fix test on 32-bit
Brad Fitzpatrick [Fri, 10 Jan 2014 20:30:23 +0000 (12:30 -0800)]
database/sql: fix test on 32-bit

R=golang-codereviews
TBR=golang-dev
CC=golang-codereviews
https://golang.org/cl/49920047

11 years agodatabase/sql: avoiding fmt.Sprintf while scanning, avoid allocs with RawBytes
Brad Fitzpatrick [Fri, 10 Jan 2014 20:19:36 +0000 (12:19 -0800)]
database/sql: avoiding fmt.Sprintf while scanning, avoid allocs with RawBytes

A user reported heavy contention on fmt's printer cache. Avoid
fmt.Sprint. We have to do reflection anyway, and there was
already an asString function to use strconv, so use it.

This CL also eliminates a redundant allocation + copy when
scanning into *[]byte (avoiding the intermediate string)
and avoids an extra alloc when assigning to a caller's RawBytes
(trying to reuse the caller's memory).

Fixes #7086

R=golang-codereviews, nightlyone
CC=golang-codereviews
https://golang.org/cl/50240044

11 years agoA+C: Gautham Thambidorai (individual CLA)
Adam Langley [Fri, 10 Jan 2014 18:46:42 +0000 (13:46 -0500)]
A+C: Gautham Thambidorai (individual CLA)

Generated by addca.

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

11 years agofmt: make benchmarks parallel
Dmitriy Vyukov [Fri, 10 Jan 2014 09:51:11 +0000 (13:51 +0400)]
fmt: make benchmarks parallel
This seems to be the best target to benchmark sync.Pool changes.

This is resend of cl/49910043 which was LGTMed by
TBR=bradfitz

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

11 years agoliblink: fix comments. Someone was overzealous with search & replace.
Keith Randall [Fri, 10 Jan 2014 03:46:46 +0000 (19:46 -0800)]
liblink: fix comments.  Someone was overzealous with search & replace.

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

11 years agonet: add SetKeepAlivePeriod for windows
Nicholas Katsaros [Fri, 10 Jan 2014 03:33:54 +0000 (14:33 +1100)]
net: add SetKeepAlivePeriod for windows

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

11 years agoliblink: adjust format verbs to avoid collisions
Anthony Martin [Fri, 10 Jan 2014 03:01:08 +0000 (19:01 -0800)]
liblink: adjust format verbs to avoid collisions

The %S and %N format verbs are used by cmd/gc to
represent Sym and Node structures, respectively.

In liblink, these two verbs are used only by the %D
format routine and never referenced externally.

This change will allow us to delete the duplicated
code for the %A, %D, %P, and %R format routines in
both the compiler and linker.

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

11 years agocmd/gc: mark OGOTO as a statement for formatters.
Rémy Oudompheng [Fri, 10 Jan 2014 00:33:24 +0000 (01:33 +0100)]
cmd/gc: mark OGOTO as a statement for formatters.

Nodes of goto statements were corrupted when written
to export data.

Fixes #7023.

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

11 years agocmd/link: Mach-O (OS X) file formatter
Russ Cox [Fri, 10 Jan 2014 00:29:29 +0000 (19:29 -0500)]
cmd/link: Mach-O (OS X) file formatter

See CL 48870044 for basic structure.

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

11 years agocmd/link: intial skeleton of linker written in Go
Russ Cox [Fri, 10 Jan 2014 00:29:10 +0000 (19:29 -0500)]
cmd/link: intial skeleton of linker written in Go

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

11 years agonet/http: use TCP keep-alives for ListenAndServe and ListenAndServeTLS
Brad Fitzpatrick [Thu, 9 Jan 2014 23:05:09 +0000 (15:05 -0800)]
net/http: use TCP keep-alives for ListenAndServe and ListenAndServeTLS

Our default behavior for the common cases shouldn't lead to
leaked TCP connections (e.g. from people closing laptops) when
their Go servers are exposed to the open Internet without a
proxy in front.

Too many users on golang-nuts have learned this the hard way.

No API change. Only ListenAndServe and ListenAndServeTLS are
updated.

R=golang-codereviews, cespare, gobot, rsc, minux.ma
CC=golang-codereviews
https://golang.org/cl/48300043

11 years agoruntime: fix 32-bit malloc for pointers >= 0x80000000
Ian Lance Taylor [Thu, 9 Jan 2014 23:00:00 +0000 (15:00 -0800)]
runtime: fix 32-bit malloc for pointers >= 0x80000000

The spans array is allocated in runtime·mallocinit.  On a
32-bit system the number of entries in the spans array is
MaxArena32 / PageSize, which (2U << 30) / (1 << 12) == (1 << 19).
So we are allocating an array that can hold 19 bits for an
index that can hold 20 bits.  According to the comment in the
function, this is intentional: we only allocate enough spans
(and bitmaps) for a 2G arena, because allocating more would
probably be wasteful.

But since the span index is simply the upper 20 bits of the
memory address, this scheme only works if memory addresses are
limited to the low 2G of memory.  That would be OK if we were
careful to enforce it, but we're not.  What we are careful to
enforce, in functions like runtime·MHeap_SysAlloc, is that we
always return addresses between the heap's arena_start and
arena_start + MaxArena32.

We generally get away with it because we start allocating just
after the program end, so we only run into trouble with
programs that allocate a lot of memory, enough to get past
address 0x80000000.

This changes the code that computes a span index to subtract
arena_start on 32-bit systems just as we currently do on
64-bit systems.

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

11 years agogo/parser: slightly improved error message by adding hint
Robert Griesemer [Thu, 9 Jan 2014 22:51:23 +0000 (14:51 -0800)]
go/parser: slightly improved error message by adding hint

It's difficult to make this much better w/o much
more effort. This is a rare case and probably not
worth it.

Fixes #6052.

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

11 years agoapi: update next.txt
Brad Fitzpatrick [Thu, 9 Jan 2014 22:31:10 +0000 (14:31 -0800)]
api: update next.txt

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

11 years agotesting: document that ResetTimer also zeros the allocation counters.
Shenghou Ma [Thu, 9 Jan 2014 20:21:24 +0000 (15:21 -0500)]
testing: document that ResetTimer also zeros the allocation counters.
Fixes #6998.

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

11 years agocrypto/tls: support renegotiation extension.
Adam Langley [Thu, 9 Jan 2014 18:38:11 +0000 (13:38 -0500)]
crypto/tls: support renegotiation extension.

The renegotiation extension was introduced[1] due to an attack by Ray in
which a client's handshake was spliced into a connection that was
renegotiating, thus giving an attacker the ability to inject an
arbitary prefix into the connection.

Go has never supported renegotiation as a server and so this attack
doesn't apply. As a client, it's possible that at some point in the
future the population of servers will be sufficiently updated that
it'll be possible to reject connections where the server hasn't
demonstrated that it has been updated to address this problem.

We're not at that point yet, but it's good for Go servers to support
the extension so that it might be possible to do in the future.

[1] https://tools.ietf.org/search/rfc5746

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

11 years agoA+C: Nicholas Katsaros (individual CLA)
Brad Fitzpatrick [Thu, 9 Jan 2014 17:42:58 +0000 (09:42 -0800)]
A+C: Nicholas Katsaros (individual CLA)

Generated by addca.

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

11 years agoruntime: co-exist with NPTL's pthread_cancel.
Rowan Worth [Thu, 9 Jan 2014 17:34:04 +0000 (09:34 -0800)]
runtime: co-exist with NPTL's pthread_cancel.

NPTL uses SIGRTMIN (signal 32) to effect thread cancellation.
Go's runtime replaces NPTL's signal handler with its own, and
ends up aborting if a C library that ends up calling
pthread_cancel is used.

This patch prevents runtime from replacing NPTL's handler.

Fixes #6997.

R=golang-codereviews, iant, dvyukov
CC=golang-codereviews
https://golang.org/cl/47540043

11 years agoA+C: sqweek (individual CLA)
Ian Lance Taylor [Thu, 9 Jan 2014 17:33:35 +0000 (09:33 -0800)]
A+C: sqweek (individual CLA)

Generated by addca.

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

11 years agoos, os/exec, os/user: add support for GOOS=solaris
Aram Hăvărneanu [Thu, 9 Jan 2014 15:49:37 +0000 (02:49 +1100)]
os, os/exec, os/user: add support for GOOS=solaris

R=golang-codereviews, dave, minux.ma, gobot, jsing
CC=golang-codereviews
https://golang.org/cl/36020043

11 years agoruntime: change errorCString to a struct
Ian Lance Taylor [Thu, 9 Jan 2014 05:40:33 +0000 (21:40 -0800)]
runtime: change errorCString to a struct

This prevents callers from using reflect to create a new
instance of errorCString with an arbitrary value and calling
the Error method to examine arbitrary memory.

Fixes #7084.

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

11 years agodebug/goobj: add String methods for SymID and SymKind
Russ Cox [Thu, 9 Jan 2014 01:37:41 +0000 (20:37 -0500)]
debug/goobj: add String methods for SymID and SymKind

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

11 years agolibmach: use different names for different Ureg types
Russ Cox [Thu, 9 Jan 2014 01:37:27 +0000 (20:37 -0500)]
libmach: use different names for different Ureg types

Everything was doing this already with #defines.
Do it right.

R=golang-codereviews, jsing, 0intro, iant
CC=golang-codereviews
https://golang.org/cl/49090043

11 years agocmd/nm: add -sort=size
Rob Pike [Wed, 8 Jan 2014 23:56:40 +0000 (15:56 -0800)]
cmd/nm: add -sort=size
When printing the size, we often want to sort on that key.
Because it's used when looking for large things, make the
sort go from largest to smallest.

Perfect recreation of CL 45150044, which was lost to some blunder.

R=golang-codereviews, gobot, rsc
CC=golang-codereviews
https://golang.org/cl/48500044

11 years ago libmach: use Go's ureg headers on Plan 9
David du Colombier [Wed, 8 Jan 2014 22:34:11 +0000 (23:34 +0100)]
libmach: use Go's ureg headers on Plan 9

    The CL 49090043 renamed Ureg structures to Ureg386,
    UregArm and UregAmd64. This broke build on Plan 9,
    since ureg_x86.h includes /386/include/ureg.h, which
    declares a structure named Ureg instead of Ureg386.

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

11 years agoruntime: deallocate specials before deallocating the underlying object.
Keith Randall [Wed, 8 Jan 2014 20:41:26 +0000 (12:41 -0800)]
runtime: deallocate specials before deallocating the underlying object.

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

11 years agoruntime: handle gdb breakpoint in x86 traceback
Ian Lance Taylor [Wed, 8 Jan 2014 20:36:31 +0000 (12:36 -0800)]
runtime: handle gdb breakpoint in x86 traceback

This lets stack splits work correctly when running under gdb
when gdb has inserted a breakpoint somewhere on the call
stack.

Fixes #6834.

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

11 years agoplan9: lookup query must seek to offset 0 before reading or
Jeff Sickel [Wed, 8 Jan 2014 20:22:18 +0000 (21:22 +0100)]
plan9: lookup query must seek to offset 0 before reading or
       writing /net/dns or /net/cs (see nbd(8)).

R=golang-codereviews
CC=0intro, golang-codereviews, rsc
https://golang.org/cl/49060043

11 years agoarchive/zip: new test for earlier zip64 fix
Brad Fitzpatrick [Wed, 8 Jan 2014 19:28:40 +0000 (11:28 -0800)]
archive/zip: new test for earlier zip64 fix

Update #7069

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

11 years agoall: add solaris build tags
Aram Hăvărneanu [Wed, 8 Jan 2014 04:53:30 +0000 (23:53 -0500)]
all: add solaris build tags

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

11 years agocmd/go: test: do not put object files where later steps will find them
Michael Hudson-Doyle [Wed, 8 Jan 2014 04:53:16 +0000 (23:53 -0500)]
cmd/go: test: do not put object files where later steps will find them

When recompiling a package whose basename is the name of a standard
package for testing with gccgo, a .o file with the basename of the
package being tested was being placed in the _test/ directory where the
compilation of the test binary then found it when looking for the
standard library package.

This change puts the object files in a separate directory.

Fixes #6793

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

11 years agoruntime: use special records hung off the MSpan to
Keith Randall [Tue, 7 Jan 2014 21:45:50 +0000 (13:45 -0800)]
runtime: use special records hung off the MSpan to
record finalizers and heap profile info.  Enables
removing the special bit from the heap bitmap.  Also
provides a generic mechanism for annotating occasional
heap objects.

finalizers
        overhead      per obj
old 680 B       80 B avg
new 16 B/span     48 B

profile
        overhead      per obj
old 32KB       24 B + hash tables
new 16 B/span     24 B

R=cshapiro, khr, dvyukov, gobot
CC=golang-codereviews
https://golang.org/cl/13314053

11 years agonet/http: fix data race when sharing request body between client and server
Brad Fitzpatrick [Tue, 7 Jan 2014 18:40:56 +0000 (10:40 -0800)]
net/http: fix data race when sharing request body between client and server

A server Handler (e.g. a proxy) can receive a Request, and
then turn around and give a copy of that Request.Body out to
the Transport. So then two goroutines own that Request.Body
(the server and the http client), and both think they can
close it on failure.  Therefore, all incoming server requests
bodies (always *http.body from transfer.go) need to be
thread-safe.

Fixes #6995

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

11 years agoencoding/csv: test that carriage return is handled in Write
Shawn Smith [Tue, 7 Jan 2014 17:32:15 +0000 (09:32 -0800)]
encoding/csv: test that carriage return is handled in Write

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

11 years agocmd/gc: add missing dupok flag for interface method wrappers.
Rémy Oudompheng [Tue, 7 Jan 2014 17:25:11 +0000 (18:25 +0100)]
cmd/gc: add missing dupok flag for interface method wrappers.

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

11 years agocrypto/sha512: avoid duplicate block declaration on 386
Joel Sing [Tue, 7 Jan 2014 12:50:31 +0000 (23:50 +1100)]
crypto/sha512: avoid duplicate block declaration on 386

Unbreak the build - we do not have a sha512 block implementation in
386 assembly (yet).

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

11 years agocmd/gc: do not omit wrapper for expression (interface{...}).F
Rémy Oudompheng [Tue, 7 Jan 2014 12:26:48 +0000 (13:26 +0100)]
cmd/gc: do not omit wrapper for expression (interface{...}).F

Fixes #6723.

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

11 years agocrypto/sha512: block implementation in amd64 assembly
Joel Sing [Tue, 7 Jan 2014 12:16:46 +0000 (23:16 +1100)]
crypto/sha512: block implementation in amd64 assembly

Benchmark on Intel(R) Xeon(R) CPU X5650  @ 2.67GHz

benchmark              old ns/op    new ns/op    delta
BenchmarkHash8Bytes         1779         1114  -37.38%
BenchmarkHash1K             9848         4894  -50.30%
BenchmarkHash8K            68513        32187  -53.02%

benchmark               old MB/s     new MB/s  speedup
BenchmarkHash8Bytes         4.50         7.18    1.60x
BenchmarkHash1K           103.97       209.19    2.01x
BenchmarkHash8K           119.57       254.51    2.13x

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

11 years agolib9, libmach, cmd/dist, go/build: add support for GOOS=solaris
Aram Hăvărneanu [Tue, 7 Jan 2014 12:12:12 +0000 (23:12 +1100)]
lib9, libmach, cmd/dist, go/build: add support for GOOS=solaris

This change adds solaris to the list of supported operating
systems and allows cmd/dist to be built on Solaris.

This CL has to come first because we want the tools to ignore
solaris-specific files until the whole port is integrated.

R=golang-codereviews, jsing, rsc, minux.ma
CC=golang-codereviews
https://golang.org/cl/35900045

11 years agosyscall: include mmap constants in netbsd zerror* files
Joel Sing [Tue, 7 Jan 2014 12:04:17 +0000 (23:04 +1100)]
syscall: include mmap constants in netbsd zerror* files

Include the <sys/mman.h> header for NetBSD mkerrors.sh. This brings
in constants used with mmap(2), msync(2) and mlockall(2).

The regeneration of the NetBSD zerror* files also picks clone(2)
related constants.

Update #4929.

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

11 years agocmd/gc: use 100x less memory for []byte("string")
Russ Cox [Tue, 7 Jan 2014 01:43:44 +0000 (20:43 -0500)]
cmd/gc: use 100x less memory for []byte("string")

[]byte("string") was simplifying to
[]byte{0: 0x73, 1: 0x74, 2: 0x72, 3: 0x69, 4: 0x6e, 5: 0x67},
but that latter form takes up much more memory in the compiler.
Preserve the string form and recognize it to turn global variables
initialized this way into linker-initialized data.

Reduces the compiler memory footprint for a large []byte initialized
this way from approximately 10 kB/B to under 100 B/B.

See also issue 6643.

R=golang-codereviews, r, iant, oleku.konko, dave, gobot, bradfitz
CC=golang-codereviews
https://golang.org/cl/15930045

11 years agocrypto/rsa: support unpadded signatures.
Adam Langley [Mon, 6 Jan 2014 21:11:58 +0000 (16:11 -0500)]
crypto/rsa: support unpadded signatures.

Usually when a message is signed it's first hashed because RSA has low
limits on the size of messages that it can sign. However, some
protocols sign short messages directly. This isn't a great idea because
the messages that can be signed suddenly depend on the size of the RSA
key, but several people on golang-nuts have requested support for
this and it's very easy to do.

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

11 years agoundo CL 44150043 / 198bdc0984dd
Brad Fitzpatrick [Mon, 6 Jan 2014 20:38:04 +0000 (12:38 -0800)]
undo CL 44150043 / 198bdc0984dd

See https://golang.org/cl/44150043/

««« original CL description
regexp: use sync.Pool

For machines, not threads.

Update #4720

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

TBR=golang-dev
CC=golang-codereviews
https://golang.org/cl/48190043

11 years agoarchive/zip: fix bug reading zip64 files
Brad Fitzpatrick [Mon, 6 Jan 2014 18:43:56 +0000 (10:43 -0800)]
archive/zip: fix bug reading zip64 files

ZIP64 Extra records are variably sized, but we weren't capping
our reading of the extra fields at its previously-declared
size.

No test because I don't know how to easily create such files
and don't feel like manually construction one.  But all
existing tests pass, and this is "obviously correct" (queue
laughter).

Fixes #7069

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

11 years agonet/http: Add more call order tests for request form parsing.
Matthew Cottingham [Mon, 6 Jan 2014 18:36:04 +0000 (10:36 -0800)]
net/http: Add more call order tests for request form parsing.

Adds tests for branches handling call ordering which
were shown to be untested by the cover tool.

This is part of the refactoring of form parsing discussed
in CL 44040043. These tests may need to be changed later but
should help lock in the current behaviour.

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

11 years agohash/fnv: fix overview link currently returning 404.
Bill Thiede [Mon, 6 Jan 2014 18:34:24 +0000 (10:34 -0800)]
hash/fnv: fix overview link currently returning 404.

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

11 years agotime: add tests for Tick, NewTicker with negative duration
Shawn Smith [Mon, 6 Jan 2014 18:32:07 +0000 (10:32 -0800)]
time: add tests for Tick, NewTicker with negative duration

R=golang-codereviews, gobot, r, bradfitz
CC=golang-codereviews
https://golang.org/cl/37660044

11 years agocrypto/sha256: block implementation in 386 assembly
Joel Sing [Mon, 6 Jan 2014 18:31:22 +0000 (13:31 -0500)]
crypto/sha256: block implementation in 386 assembly

Benchmark on Intel(R) Core(TM) i5-2500S CPU @ 2.70GHz (albeit in a VM)

benchmark              old ns/op    new ns/op    delta
BenchmarkHash8Bytes         1606          699  -56.48%
BenchmarkHash1K            21920         7268  -66.84%
BenchmarkHash8K           165696        53756  -67.56%

benchmark               old MB/s     new MB/s  speedup
BenchmarkHash8Bytes         4.98        11.44    2.30x
BenchmarkHash1K            46.72       140.88    3.02x
BenchmarkHash8K            49.44       152.39    3.08x

R=agl, cldorian
CC=golang-codereviews
https://golang.org/cl/44800044

11 years agonet/http: remove todos from cookie code
Volker Dobler [Mon, 6 Jan 2014 18:00:58 +0000 (10:00 -0800)]
net/http: remove todos from cookie code

The Domain and Path field of a parsed cookie have been
the unprocessed wire data since Go 1.0; this seems to
be okay for most applications so let's keep it.

Returning the unprocessed wire data makes it easy to
handle nonstandard or even broken clients without
consulting Raw or Unparsed of a cookie.

The RFC 6265 parsing rules for domain and path are
currently buried in net/http/cookiejar but could be
exposed in net/http if necessary.

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

11 years agonet/http/cookiejar: document format of domain in PublicSuffix
Volker Dobler [Mon, 6 Jan 2014 18:00:20 +0000 (10:00 -0800)]
net/http/cookiejar: document format of domain in PublicSuffix

Document what values a PublicSuffixList must accept as
a domain in a call to PublicSuffix.

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

11 years agoruntime: Fix panic when trying to stop CPU profiling with profiler turned off
Emil Hessman [Mon, 6 Jan 2014 17:53:55 +0000 (09:53 -0800)]
runtime: Fix panic when trying to stop CPU profiling with profiler turned off

Fixes #7063.

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

11 years agomisc/emacs: fontify type switch correctly
Dominik Honnef [Mon, 6 Jan 2014 16:11:03 +0000 (11:11 -0500)]
misc/emacs: fontify type switch correctly

Require at least one space after "type" and do not fontify closing
parenthesis of type switch as a type.

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

11 years agomisc/emacs: minor cleanups
Dominik Honnef [Mon, 6 Jan 2014 15:48:06 +0000 (10:48 -0500)]
misc/emacs: minor cleanups

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

11 years agocrypto/sha1, crypto/sha256, crypto/sha512: use copy for partial block
Joel Sing [Sun, 5 Jan 2014 14:34:56 +0000 (01:34 +1100)]
crypto/sha1, crypto/sha256, crypto/sha512: use copy for partial block

Use copy rather than a hand rolled loop when moving a partial input
block to the scratch area. This results in a reasonable performance
gain when partial blocks are written.

Benchmarks on Intel(R) Xeon(R) CPU X5650  @ 2.67GHz with Go amd64:

       benchmark               old MB/s     new MB/s  speedup
SHA1   BenchmarkHash8Bytes        18.37        22.80    1.24x
SHA256 BenchmarkHash8Bytes        11.86        13.78    1.16x
SHA512 BenchmarkHash8Bytes         4.51         5.24    1.16x

       benchmark              old ns/op    new ns/op    delta
SHA1   BenchmarkHash8Bytes          435          350  -19.54%
SHA256 BenchmarkHash8Bytes          674          580  -13.95%
SHA512 BenchmarkHash8Bytes         1772         1526  -13.88%

R=agl, dave, bradfitz
CC=golang-codereviews
https://golang.org/cl/35840044

11 years agocontainer/list: improve test coverage
Shawn Smith [Sat, 4 Jan 2014 20:48:32 +0000 (07:48 +1100)]
container/list: improve test coverage

R=golang-codereviews, dave, gobot, bradfitz, gri
CC=golang-codereviews
https://golang.org/cl/46640043

11 years agoruntime: plan 9 does have /dev/random
Jeff Sickel [Sat, 4 Jan 2014 18:53:22 +0000 (10:53 -0800)]
runtime: plan 9 does have /dev/random

R=golang-codereviews, r, aram
CC=0intro, golang-codereviews, rsc
https://golang.org/cl/43420045

11 years agospec: s/and/or/ for correctness and parallelism
Rob Pike [Sat, 4 Jan 2014 18:52:59 +0000 (10:52 -0800)]
spec: s/and/or/ for correctness and parallelism
No change to the meaning, just bad writing found by
Doug McIlroy.
Let's start the new year off with a bang.

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

11 years agoruntime: Fix race detector checks to ignore KindNoPointers bit
Keith Randall [Sat, 4 Jan 2014 16:43:17 +0000 (08:43 -0800)]
runtime: Fix race detector checks to ignore KindNoPointers bit
when comparing kinds.

R=dvyukov, dave, khr
CC=golang-codereviews
https://golang.org/cl/41660045

11 years agospec: Fix broken type identity link
Emil Hessman [Sat, 4 Jan 2014 06:48:03 +0000 (22:48 -0800)]
spec: Fix broken type identity link

Fixes #7003.

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

11 years agoos: add tests for operations on nil *File methods
Dave Cheney [Fri, 3 Jan 2014 22:58:04 +0000 (09:58 +1100)]
os: add tests for operations on nil *File methods

R=shawn.p.smith, gobot, r
CC=golang-codereviews
https://golang.org/cl/46820043

11 years agoos: return ErrInvalid if receiver is nil.
Dave Cheney [Fri, 3 Jan 2014 21:25:09 +0000 (08:25 +1100)]
os: return ErrInvalid if receiver is nil.

Fixes #7043.

Test coming in https://golang.org/cl/46820043

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

11 years agocmd/gc: silence assignment errors to undefined symbols
Daniel Morsing [Fri, 3 Jan 2014 20:03:20 +0000 (21:03 +0100)]
cmd/gc: silence assignment errors to undefined symbols

Fixes #6406.

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

11 years agoencoding/json: Fix missing error when trying to unmarshal null string into int, for...
Emil Hessman [Fri, 3 Jan 2014 18:13:28 +0000 (10:13 -0800)]
encoding/json: Fix missing error when trying to unmarshal null string into int, for successive ,string option

Fixes #7046.

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

11 years agosyscall: handle varied path lengths for unix sockets
Joel Sing [Fri, 3 Jan 2014 13:29:20 +0000 (00:29 +1100)]
syscall: handle varied path lengths for unix sockets

Most BSDs include the trailing NUL character of the socket path in the
length, however some do not (such as NetBSD 6.99). Handle this by only
subtracting the family and length bytes from the returned length, then
scanning the path and removing any terminating NUL bytes.

Fixes #6627.

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

11 years agoruntime: increase attempt count for map iteration order test.
David Symonds [Thu, 2 Jan 2014 23:41:56 +0000 (10:41 +1100)]
runtime: increase attempt count for map iteration order test.

Some builders broke on this test; I'm guessing that was because
this test didn't try hard enough to find a different iteration order.

Update #6719

R=dave
CC=golang-codereviews
https://golang.org/cl/47300043

11 years agoruntime: add a test for randomised map iteration order.
David Symonds [Thu, 2 Jan 2014 23:10:54 +0000 (10:10 +1100)]
runtime: add a test for randomised map iteration order.

Technically the spec does not guarantee that the iteration order is random,
but it is a property that we have consciously pursued, and so it seems
right to verify that our implementation does indeed randomise.

Update #6719.

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

11 years agoA+C: Pavel Zinovkin (individual CLA)
Brad Fitzpatrick [Thu, 2 Jan 2014 19:00:14 +0000 (11:00 -0800)]
A+C: Pavel Zinovkin (individual CLA)

Generated by addca.

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

11 years agoencoding/hex: add Decode error test case
Shawn Smith [Thu, 2 Jan 2014 18:34:21 +0000 (10:34 -0800)]
encoding/hex: add Decode error test case

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

11 years agotime: add tests for Duration.Nanoseconds, Duration.Minutes, and Duration.Hours
Shawn Smith [Thu, 2 Jan 2014 10:01:18 +0000 (21:01 +1100)]
time: add tests for Duration.Nanoseconds, Duration.Minutes, and Duration.Hours

R=golang-codereviews, rsc, dave
CC=golang-codereviews
https://golang.org/cl/42440043