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

Fixes #7428

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

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

Fixes #6951

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

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

No change to $GOROOT/src, misc formatting.

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

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

Fixes #4504.

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

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

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

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

Update #6373

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

11 years agosyscall: add mlock, munlock, mlockall, munlockall and mprotect to OSX
William Orr [Thu, 27 Feb 2014 18:13:41 +0000 (10:13 -0800)]
syscall: add mlock, munlock, mlockall, munlockall and mprotect to OSX

Fixes #7415

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

11 years agoA+C: Graham King (individual CLA)
Brad Fitzpatrick [Thu, 27 Feb 2014 17:35:06 +0000 (09:35 -0800)]
A+C: Graham King (individual CLA)

Generated by addca.

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

11 years agocmd/gofmt: minor internal cleanups
Robert Griesemer [Thu, 27 Feb 2014 17:00:27 +0000 (09:00 -0800)]
cmd/gofmt: minor internal cleanups

Reflect changes of reflect API.

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

11 years agospec: slightly rephrased wording on parsing ambiguity for composite literals
Robert Griesemer [Thu, 27 Feb 2014 16:57:30 +0000 (08:57 -0800)]
spec: slightly rephrased wording on parsing ambiguity for composite literals

Fixes #4482.

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

11 years agoruntime: fix and improve comments
Dmitriy Vyukov [Thu, 27 Feb 2014 16:27:55 +0000 (20:27 +0400)]
runtime: fix and improve comments

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

11 years agoruntime: disable TestSetPanicOnFault for dragonfly/386
Joel Sing [Thu, 27 Feb 2014 16:26:26 +0000 (03:26 +1100)]
runtime: disable TestSetPanicOnFault for dragonfly/386

This test currently deadlocks on dragonfly/386.

Update #7421

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

11 years agoruntime: disable stack copying
Keith Randall [Thu, 27 Feb 2014 09:45:22 +0000 (01:45 -0800)]
runtime: disable stack copying
TBR=dvyukov

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

11 years agoruntime: fix build on Plan 9
David du Colombier [Thu, 27 Feb 2014 08:22:02 +0000 (09:22 +0100)]
runtime: fix build on Plan 9

warning: src/pkg/runtime/mem_plan9.c:72 param declared and not used: n
src/pkg/runtime/mem_plan9.c:73 name not declared: nbytes
src/pkg/runtime/mem_plan9.c:73 bad in naddr: NAME nbytes<>+0(SB)

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

11 years agoruntime: grow stack by copying
Keith Randall [Thu, 27 Feb 2014 07:28:44 +0000 (23:28 -0800)]
runtime: grow stack by copying

On stack overflow, if all frames on the stack are
copyable, we copy the frames to a new stack twice
as large as the old one.  During GC, if a G is using
less than 1/4 of its stack, copy the stack to a stack
half its size.

TODO
- Do something about C frames.  When a C frame is in the
  stack segment, it isn't copyable.  We allocate a new segment
  in this case.
  - For idempotent C code, we can abort it, copy the stack,
    then retry.  I'm working on a separate CL for this.
  - For other C code, we can raise the stackguard
    to the lowest Go frame so the next call that Go frame
    makes triggers a copy, which will then succeed.
- Pick a starting stack size?

The plan is that eventually we reach a point where the
stack contains only copyable frames.

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

11 years agocmd/gc: do not nop-convert equivalent but different interface types.
Rémy Oudompheng [Thu, 27 Feb 2014 07:07:50 +0000 (08:07 +0100)]
cmd/gc: do not nop-convert equivalent but different interface types.

The cached computed interface tables are indexed by the interface
types, not by the unnamed underlying interfaces

To preserve the invariants expected by interface comparison, an
itab generated for an interface type must not be used for a value
of a different interface type even if the representation is identical.

Fixes #7207.

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

11 years agoA+C: William Orr (individual CLA)
Brad Fitzpatrick [Thu, 27 Feb 2014 04:44:45 +0000 (20:44 -0800)]
A+C: William Orr (individual CLA)

Generated by addca. Manually added gmail address.

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

11 years agoruntime: use monotonic clock for timers on dragonfly.
Shenghou Ma [Thu, 27 Feb 2014 04:15:34 +0000 (23:15 -0500)]
runtime: use monotonic clock for timers on dragonfly.
Update #6007

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

11 years agoruntime: get rid of the settype buffer and lock.
Keith Randall [Wed, 26 Feb 2014 23:52:58 +0000 (15:52 -0800)]
runtime: get rid of the settype buffer and lock.

MCaches now hold a MSpan for each sizeclass which they have
exclusive access to allocate from, so no lock is needed.

Modifying the heap bitmaps also no longer requires a cas.

runtime.free gets more expensive.  But we don't use it
much any more.

It's not much faster on 1 processor, but it's a lot
faster on multiple processors.

benchmark                 old ns/op    new ns/op    delta
BenchmarkSetTypeNoPtr1           24           23   -0.42%
BenchmarkSetTypeNoPtr2           33           34   +0.89%
BenchmarkSetTypePtr1             51           49   -3.72%
BenchmarkSetTypePtr2             55           54   -1.98%

benchmark                old ns/op    new ns/op    delta
BenchmarkAllocation          52739        50770   -3.73%
BenchmarkAllocation-2        33957        34141   +0.54%
BenchmarkAllocation-3        33326        29015  -12.94%
BenchmarkAllocation-4        38105        25795  -32.31%
BenchmarkAllocation-5        68055        24409  -64.13%
BenchmarkAllocation-6        71544        23488  -67.17%
BenchmarkAllocation-7        68374        23041  -66.30%
BenchmarkAllocation-8        70117        20758  -70.40%

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

11 years agogo/printer: refine handling of one-line functions
Robert Griesemer [Wed, 26 Feb 2014 21:39:49 +0000 (13:39 -0800)]
go/printer: refine handling of one-line functions

Functions that "fit" on one line and were on one
line in the original source are not broken up into
two lines anymore simply because they contain a comment.

- Fine-tuned use of separating blanks after /*-style comments, so:

( /* extra blank after this comment */ )
(a int /* no extra blank after this comment*/)

- Factored out comment state (from printer state) into commentInfo.
- No impact on $GOROOT/src, misc formatting.

Fixes #5543.

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

11 years agocmd/gc: fix bad checknil with ints on 32 bit compilers
Josh Bleecher Snyder [Wed, 26 Feb 2014 20:25:13 +0000 (12:25 -0800)]
cmd/gc: fix bad checknil with ints on 32 bit compilers

Fixes #7413.

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

11 years agocmd/5a, cmd/5c, cmd/6a, cmd/6c, cmd/8a, cmd/8c, cmd/cc: support for Native Client
Dave Cheney [Wed, 26 Feb 2014 19:57:06 +0000 (06:57 +1100)]
cmd/5a, cmd/5c, cmd/6a, cmd/6c, cmd/8a, cmd/8c, cmd/cc: support for Native Client

From the original description in CL 15770043

The main change here is to consult $GOARCH.

In 6c, when GOOS=nacl, some of the more complex addressing modes must be disabled, and the BP and R15 registers must not be used.

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

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

11 years agocmd/gc: minor code simplification
Ian Lance Taylor [Wed, 26 Feb 2014 18:51:00 +0000 (10:51 -0800)]
cmd/gc: minor code simplification

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

11 years agogo/parser: report error if ParseExpr argument contains extra tokens
Robert Griesemer [Wed, 26 Feb 2014 17:54:01 +0000 (09:54 -0800)]
go/parser: report error if ParseExpr argument contains extra tokens

This partly addresses issue 6099 where a gofmt rewrite is behaving
unexpectedly because the provided rewrite term is not a valid expression
but is silently consumed anyway.

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

11 years agoruntime, net: fixes from CL 68490043 review
Russ Cox [Wed, 26 Feb 2014 17:21:31 +0000 (12:21 -0500)]
runtime, net: fixes from CL 68490043 review

These are mistakes in the first big NaCl CL.

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

11 years agoruntime: remove unnecessary cast in alg.goc
Ian Lance Taylor [Wed, 26 Feb 2014 16:28:26 +0000 (08:28 -0800)]
runtime: remove unnecessary cast in alg.goc

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

11 years agoinclude: fix comment in link.h
Ian Lance Taylor [Wed, 26 Feb 2014 15:38:13 +0000 (07:38 -0800)]
include: fix comment in link.h

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

11 years agocmd/6g, cmd/8g: simplify calls to gvardef
Ian Lance Taylor [Wed, 26 Feb 2014 15:37:10 +0000 (07:37 -0800)]
cmd/6g, cmd/8g: simplify calls to gvardef

The gvardef function does nothing if n->class == PEXTERN, so
we don't need to test for that before calling it.  This makes
the 6g/8g code more like the 5g code and clarifies that the
cases that do not test for n->class != PEXTERN are not buggy.

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

11 years agoruntime: use monotonic clock for openbsd/386 and openbsd/amd64 timers
Joel Sing [Wed, 26 Feb 2014 02:20:36 +0000 (13:20 +1100)]
runtime: use monotonic clock for openbsd/386 and openbsd/amd64 timers

Switch nanotime to a monotonic clock on openbsd/386 and openbsd/amd64.
Also use a monotonic clock when for thrsleep, since the sleep duration
is based on the value returned from nanotime.

Update #6007

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

11 years agocmd/go: remove 'go tool benchcmp' and corresponding special case
Andrew Gerrand [Wed, 26 Feb 2014 02:04:39 +0000 (13:04 +1100)]
cmd/go: remove 'go tool benchcmp' and corresponding special case

See the discussion on the original CL for context:
        https://golang.org/cl/60100043/

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

11 years agolib9/utf: bring C environment up to Unicode 6.3.0
Rob Pike [Wed, 26 Feb 2014 01:49:32 +0000 (17:49 -0800)]
lib9/utf: bring C environment up to Unicode 6.3.0

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

11 years agonet: clean the dregs of NaCL merge
Mikio Hara [Wed, 26 Feb 2014 01:20:49 +0000 (10:20 +0900)]
net: clean the dregs of NaCL merge

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

11 years agoruntime: use monotonic clock for timers on freebsd/amd64,386,arm
Mikio Hara [Wed, 26 Feb 2014 01:19:51 +0000 (10:19 +0900)]
runtime: use monotonic clock for timers on freebsd/amd64,386,arm

For now we don't use CLOCK_MONOTONIC_FAST instead because
it's not supported on prior to 9-STABLE.

Update #6007

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

11 years ago5g, 8g: remove dead code
Josh Bleecher Snyder [Tue, 25 Feb 2014 22:43:53 +0000 (14:43 -0800)]
5g, 8g: remove dead code

maxstksize is superfluous and appears to be vestigial. 6g does not use it.

c >= 4 cannot occur; c = w % 4.

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

11 years agospec: libraries and implementation are now at Unicode 6.3
Rob Pike [Tue, 25 Feb 2014 22:15:49 +0000 (14:15 -0800)]
spec: libraries and implementation are now at Unicode 6.3

LGTM=gri
R=gri
CC=golang-codereviews
https://golang.org/cl/68760043

11 years agoall: nacl import round 2
Russ Cox [Tue, 25 Feb 2014 22:00:08 +0000 (17:00 -0500)]
all: nacl import round 2

These previously reviewed CLs are present in this CL.

---
changeset:   18445:436bb084caed
user:        Russ Cox <rsc@golang.org>
date:        Mon Nov 11 09:50:34 2013 -0500
description:
runtime: assembly and system calls for Native Client x86-64

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

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

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

R≡adg
https://golang.org/cl/15760044

---
changeset:   18448:90bd871b5994
user:        Russ Cox <rsc@golang.org>
date:        Mon Nov 11 09:51:36 2013 -0500
description:
runtime: amd64p32 and Native Client assembly bootstrap

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

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

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

R≡khr
https://golang.org/cl/15820043

---
changeset:   18449:b011c3dc687e
user:        Russ Cox <rsc@golang.org>
date:        Mon Nov 11 09:51:58 2013 -0500
description:
math: amd64p32 assembly routines

These routines only manipulate float64 values,
so the amd64 and amd64p32 can share assembly.

The large number of files is symptomatic of a problem
with package path: it is a Go package structured like a C library.
But that will need to wait for another day.

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

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

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

R≡bradfitz
https://golang.org/cl/15870043

---
changeset:   18450:43234f082eec
user:        Russ Cox <rsc@golang.org>
date:        Mon Nov 11 10:03:19 2013 -0500
description:
syscall: networking for Native Client

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

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

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

R≡rsc
https://golang.org/cl/15780043

---
changeset:   18451:9c8d1d890aaa
user:        Russ Cox <rsc@golang.org>
date:        Mon Nov 11 10:03:34 2013 -0500
description:
runtime: assembly and system calls for Native Client x86-32

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

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

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

R≡rsc
https://golang.org/cl/15800043

---
changeset:   18452:f90b1dd9228f
user:        Russ Cox <rsc@golang.org>
date:        Mon Nov 11 11:04:09 2013 -0500
description:
runtime: fix frame size for linux/amd64 runtime.raise

R≡rsc
https://golang.org/cl/24480043

---
changeset:   18445:436bb084caed
user:        Russ Cox <rsc@golang.org>
date:        Mon Nov 11 09:50:34 2013 -0500
description:
runtime: assembly and system calls for Native Client x86-64

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

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

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

R≡adg
https://golang.org/cl/15760044

---
changeset:   18455:53b06799a938
user:        Russ Cox <rsc@golang.org>
date:        Mon Nov 11 23:29:52 2013 -0500
description:
cmd/gc: add -nolocalimports flag

R≡dsymonds
https://golang.org/cl/24990043

---
changeset:   18456:24f64e1eaa8a
user:        Russ Cox <rsc@golang.org>
date:        Tue Nov 12 22:06:29 2013 -0500
description:
runtime: add comments for playback write

R≡adg
https://golang.org/cl/25190043

---
changeset:   18457:d1f615bbb6e4
user:        Russ Cox <rsc@golang.org>
date:        Wed Nov 13 17:03:52 2013 -0500
description:
runtime: write only to NaCl stdout, never to NaCl stderr

NaCl writes some other messages on standard error
that we would like to be able to squelch.

R≡adg
https://golang.org/cl/26240044

---
changeset:   18458:1f01be1a1dc2
tag:         tip
user:        Russ Cox <rsc@golang.org>
date:        Wed Nov 13 19:45:16 2013 -0500
description:
runtime: remove apparent debugging dreg

Setting timens to 0 turns off fake time.

TBR≡adg
https://golang.org/cl/26400043

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

11 years agosyscall: fix solaris build
Dave Cheney [Tue, 25 Feb 2014 20:56:41 +0000 (07:56 +1100)]
syscall: fix solaris build

Solaris does not define syscall.{Mmap,Munmap}. Move the Mmap test to a new file and exclude solaris as discussed.

LGTM=aram
R=aram, mikioh.mikioh, iant
CC=golang-codereviews
https://golang.org/cl/68720043

11 years agoruntime: add prototype for panicdivide
Keith Randall [Tue, 25 Feb 2014 19:49:37 +0000 (11:49 -0800)]
runtime: add prototype for panicdivide

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

11 years agocrypto/sha1: restore accidental removal of arm build tag
Brad Fitzpatrick [Tue, 25 Feb 2014 18:55:26 +0000 (10:55 -0800)]
crypto/sha1: restore accidental removal of arm build tag

Regression from https://golang.org/cl/68490043/diff/60001/src/pkg/crypto/sha1/sha1block_decl.go

Fixes arm build.

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

11 years agospec: clarify default "true" condition/tag in for/switch statements
Robert Griesemer [Tue, 25 Feb 2014 17:13:37 +0000 (09:13 -0800)]
spec: clarify default "true" condition/tag in for/switch statements

An absent condition/tag in for and switch statements is equivalent
to the predeclared constant true; not simply the expression true
(which might lead to a locally defined true).

Not a language change.

Fixes #7404.

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

11 years agoruntime: fix 386, arm build
Russ Cox [Tue, 25 Feb 2014 16:31:09 +0000 (11:31 -0500)]
runtime: fix 386, arm build

CL 68150047 lost runtime.panicdivide.

TBR=dfc
CC=golang-codereviews
https://golang.org/cl/68610043

11 years agocmd/go: fix bug in remote package discovery
Russ Cox [Tue, 25 Feb 2014 16:22:22 +0000 (11:22 -0500)]
cmd/go: fix bug in remote package discovery

The parser was assuming it would find <body> or </head>.
If the entire response is just <meta> tags, it finds EOF and
treats that as an error. It's not.

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

11 years agonet/http: add Transport.TLSHandshakeTimeout; set it by default
Brad Fitzpatrick [Tue, 25 Feb 2014 16:08:15 +0000 (08:08 -0800)]
net/http: add Transport.TLSHandshakeTimeout; set it by default

Update #3362

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

11 years agodoc/go1.3: note a couple more crypto changes.
Adam Langley [Tue, 25 Feb 2014 15:54:09 +0000 (10:54 -0500)]
doc/go1.3: note a couple more crypto changes.

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

11 years agocmd/go: document new -exec flag on run/test
Russ Cox [Tue, 25 Feb 2014 15:22:27 +0000 (10:22 -0500)]
cmd/go: document new -exec flag on run/test

The new flag was added by CL 68150047 (part of the NaCl replay),
but the change, like the original, omitted documentation of the
new behavior.

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

11 years agoall: merge NaCl branch (part 1)
Dave Cheney [Tue, 25 Feb 2014 14:47:42 +0000 (09:47 -0500)]
all: merge NaCl branch (part 1)

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

This CL is the mostly mechanical changes from rsc's Go 1.2 based NaCl branch, specifically 39cb35750369 to 500771b477cf from https://code.google.com/r/rsc-go13nacl. This CL does not include working NaCl support, there are probably two or three more large merges to come.

CL 15750044 is not included as it involves more invasive changes to the linker which will need to be merged separately.

The exact change lists included are

15050047: syscall: support for Native Client
15360044: syscall: unzip implementation for Native Client
15370044: syscall: Native Client SRPC implementation
15400047: cmd/dist, cmd/go, go/build, test: support for Native Client
15410048: runtime: support for Native Client
15410049: syscall: file descriptor table for Native Client
15410050: syscall: in-memory file system for Native Client
15440048: all: update +build lines for Native Client port
15540045: cmd/6g, cmd/8g, cmd/gc: support for Native Client
15570045: os: support for Native Client
15680044: crypto/..., hash/crc32, reflect, sync/atomic: support for amd64p32
15690044: net: support for Native Client
15690048: runtime: support for fake time like on Go Playground
15690051: build: disable various tests on Native Client

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

11 years agoruntime: use monotonic clock for timers on linux/arm
Mikio Hara [Tue, 25 Feb 2014 14:03:01 +0000 (23:03 +0900)]
runtime: use monotonic clock for timers on linux/arm

Update #6007

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

11 years agosyscall: add mmap test
Mikio Hara [Tue, 25 Feb 2014 14:02:19 +0000 (23:02 +0900)]
syscall: add mmap test

This CL adds a test that calls Mmap and Munmap through Syscall9
as the canary that detects assembly fragment breakage. For now
there is no package test that uses Syscall9 in the standard
library across all Unix-like systems.

Note that the package runtime owns its assembly fragments, so
this canary never works for runtime breakage.

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

11 years agosync: use RunParallel in benchmarks
Dmitriy Vyukov [Tue, 25 Feb 2014 10:39:12 +0000 (14:39 +0400)]
sync: use RunParallel in benchmarks

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

11 years agosyscall: add support for GOOS=solaris
Aram Hăvărneanu [Tue, 25 Feb 2014 10:12:10 +0000 (21:12 +1100)]
syscall: add support for GOOS=solaris

These are only the new files, autogenerated files are in a
different CL to keep the size down.

LGTM=dave, minux.ma, jsing
R=golang-codereviews, dave, jsing, gobot, minux.ma, rsc, iant, mikioh.mikioh
CC=golang-codereviews
https://golang.org/cl/36000043

11 years agosyscall: generate zfiles for GOOS=solaris
Aram Hăvărneanu [Tue, 25 Feb 2014 08:12:19 +0000 (17:12 +0900)]
syscall: generate zfiles for GOOS=solaris

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

11 years agoruntime, net: add support for GOOS=solaris
Aram Hăvărneanu [Tue, 25 Feb 2014 03:31:01 +0000 (22:31 -0500)]
runtime, net: add support for GOOS=solaris

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

11 years agogo/printer: fix alignment of comments in labeled statements
Robert Griesemer [Tue, 25 Feb 2014 03:18:16 +0000 (19:18 -0800)]
go/printer: fix alignment of comments in labeled statements

Does not change src, misc formatting.

Fixes #5623.

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

11 years agonet/http: use TCP Keep-Alives on DefaultTransport's connections
Brad Fitzpatrick [Mon, 24 Feb 2014 23:20:45 +0000 (15:20 -0800)]
net/http: use TCP Keep-Alives on DefaultTransport's connections

Update #3362

Also set a 30 second timeout, instead of relying on the
operating system's timeout, which if often but not always 3
minutes.

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

11 years agocrypto/tls: report TLS version in ConnectionState.
Adam Langley [Mon, 24 Feb 2014 23:01:28 +0000 (18:01 -0500)]
crypto/tls: report TLS version in ConnectionState.

Fixes #7231.

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

11 years agocrypto/tls: pick ECDHE curves based on server preference.
Adam Langley [Mon, 24 Feb 2014 22:57:51 +0000 (17:57 -0500)]
crypto/tls: pick ECDHE curves based on server preference.

Currently an ECDHE handshake uses the client's curve preference. This
generally means that we use P-521. However, P-521's strength is
mismatched with the rest of the cipher suite in most cases and we have
a fast, constant-time implementation of P-256.

With this change, Go servers will use P-256 where the client supports
it although that can be overridden in the Config.

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

11 years agobuild: comment possible ulimit failure in run.bash
Russ Cox [Mon, 24 Feb 2014 21:44:35 +0000 (16:44 -0500)]
build: comment possible ulimit failure in run.bash

Record what's going on in case someone is debugging a failure there.
It's not Go's fault.

Fixes #7381.

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

11 years agonet: add Dialer.KeepAlive option
Brad Fitzpatrick [Mon, 24 Feb 2014 21:14:48 +0000 (13:14 -0800)]
net: add Dialer.KeepAlive option

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

11 years agocmd/ld: fix build for ARMv5.
Shenghou Ma [Mon, 24 Feb 2014 19:53:17 +0000 (06:53 +1100)]
cmd/ld: fix build for ARMv5.
Credit goes to Dave Cheney for debugging the issue.

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

11 years agocmd/gc: fix walkcompare bugs.
Rémy Oudompheng [Mon, 24 Feb 2014 18:51:59 +0000 (19:51 +0100)]
cmd/gc: fix walkcompare bugs.

Revision c0e0467635ec (cmd/gc: return canonical Node* from temp)
exposed original nodes of temporaries, allowing callers to mutate
their types.

In walkcompare a temporary could be typed as ideal because of
this. Additionnally, assignment of a comparison result to
a custom boolean type was broken.

Fixes #7366.

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

11 years agocmd/go: Plan 9 compatible "env" output
Lucio De Re [Mon, 24 Feb 2014 18:48:06 +0000 (19:48 +0100)]
cmd/go: Plan 9 compatible "env" output

Fixes the output of go env so that variables can be set
more accurately when using Plan 9's rc shell. Specifically,
GOPATH may have multiple components and the current
representation is plain wrong. In practice, we probably
ought to change os. Getenv to produce the right result, but
that requires considerably more thought.

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

11 years agocrypto/md5,sha1: add examples for Sum
Rob Pike [Mon, 24 Feb 2014 18:40:55 +0000 (10:40 -0800)]
crypto/md5,sha1: add examples for Sum

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

11 years agotesting: fix bogus benchmark
Dmitriy Vyukov [Mon, 24 Feb 2014 17:12:44 +0000 (21:12 +0400)]
testing: fix bogus benchmark
Fatal must not be called from secondary goroutines.
Fixes #7401.

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

11 years agotesting: improve diagnosis of a potential misuse of RunParallel
Dmitriy Vyukov [Mon, 24 Feb 2014 17:08:37 +0000 (21:08 +0400)]
testing: improve diagnosis of a potential misuse of RunParallel

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

11 years agoruntime: fix heap memory corruption
Dmitriy Vyukov [Mon, 24 Feb 2014 16:53:50 +0000 (20:53 +0400)]
runtime: fix heap memory corruption
With concurrent sweeping finc if modified by runfinq and queuefinalizer concurrently.
Fixes crashes like this one:
http://build.golang.org/log/6ad7b59ef2e93e3c9347eabfb4c4bd66df58fd5a
Fixes #7324.
Update #7396

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

11 years agoruntime: fix potential memory corruption
Dmitriy Vyukov [Mon, 24 Feb 2014 16:53:20 +0000 (20:53 +0400)]
runtime: fix potential memory corruption
Reinforce the guarantee that MSpan_EnsureSwept actually ensures that the span is swept.
I have not observed crashes related to this, but I do not see why it can't crash as well.

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

11 years agoruntime: use RunParallel in more benchmarks
Dmitriy Vyukov [Mon, 24 Feb 2014 16:50:12 +0000 (20:50 +0400)]
runtime: use RunParallel in more benchmarks

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

11 years agotime: use RunParallel in benchmarks
Dmitriy Vyukov [Mon, 24 Feb 2014 16:47:17 +0000 (20:47 +0400)]
time: use RunParallel in benchmarks

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

11 years agomath/big: use RunParallel in benchmarks
Dmitriy Vyukov [Mon, 24 Feb 2014 16:46:56 +0000 (20:46 +0400)]
math/big: use RunParallel in benchmarks

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

11 years agofmt: use RunParallel in benchmarks
Dmitriy Vyukov [Mon, 24 Feb 2014 16:46:25 +0000 (20:46 +0400)]
fmt: use RunParallel in benchmarks

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

11 years agosyscall: regenerate Flock_t to make it compliant with EABI
Mikio Hara [Mon, 24 Feb 2014 16:36:56 +0000 (08:36 -0800)]
syscall: regenerate Flock_t to make it compliant with EABI

Note that current z-files for linux/amd64,386,arm are based on 3.2 kernel.

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

11 years agotesting: diagnose a potential misuse of RunParallel
Dmitriy Vyukov [Mon, 24 Feb 2014 16:32:28 +0000 (20:32 +0400)]
testing: diagnose a potential misuse of RunParallel

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

11 years agonet/http: use RunParallel in benchmarks
Dmitriy Vyukov [Mon, 24 Feb 2014 16:28:14 +0000 (20:28 +0400)]
net/http: use RunParallel in benchmarks

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

11 years agonet/rpc: use RunParallel in benchmarks
Dmitriy Vyukov [Mon, 24 Feb 2014 16:23:35 +0000 (20:23 +0400)]
net/rpc: use RunParallel in benchmarks

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

11 years agoruntime: fix double symbol definition
Dmitriy Vyukov [Mon, 24 Feb 2014 16:23:03 +0000 (20:23 +0400)]
runtime: fix double symbol definition
runfinqv is already defined the same way on line 271.
There may also be something to fix in compiler/linker wrt diagnostics.
Fixes #7375.

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

11 years agoruntime: stack allocate Panic structure during runtime.panic
Dave Cheney [Mon, 24 Feb 2014 16:09:19 +0000 (11:09 -0500)]
runtime: stack allocate Panic structure during runtime.panic

Update #7347

When runtime.panic is called the *Panic is malloced from the heap. This can lead to a gc cycle while panicing which can make a bad situation worse.

It appears to be possible to stack allocate the Panic and avoid malloc'ing during a panic.

Ref: https://groups.google.com/d/topic/golang-dev/OfxqpklGkh0/discussion

LGTM=minux.ma, dvyukov, rsc
R=r, minux.ma, gobot, rsc, dvyukov
CC=golang-codereviews
https://golang.org/cl/66830043

11 years agoruntime: use monotonic clock for timers (linux/386, linux/amd64)
Jay Weisskopf [Mon, 24 Feb 2014 15:57:46 +0000 (10:57 -0500)]
runtime: use monotonic clock for timers (linux/386, linux/amd64)

This lays the groundwork for making Go robust when the system's
calendar time jumps around. All input values to the runtimeTimer
struct now use the runtime clock as a common reference point.
This affects net.Conn.Set[Read|Write]Deadline(), time.Sleep(),
time.Timer, etc. Under normal conditions, behavior is unchanged.

Each platform and architecture's implementation of runtime·nanotime()
should be modified to use a monotonic system clock when possible.

Platforms/architectures modified and tested with monotonic clock:
  linux/x86     - clock_gettime(CLOCK_MONOTONIC)

Update #6007

LGTM=dvyukov, rsc
R=golang-codereviews, dvyukov, alex.brainman, stephen.gutekanst, dave, rsc, mikioh.mikioh
CC=golang-codereviews
https://golang.org/cl/53010043

11 years agotime: explicitely mention Tickers have to be stopped
Patrick Mézard [Mon, 24 Feb 2014 15:18:40 +0000 (10:18 -0500)]
time: explicitely mention Tickers have to be stopped

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

11 years agogdb: Add partial python3 + go1.2 support to runtime-gdb.py
Shane Hansen [Mon, 24 Feb 2014 15:13:27 +0000 (10:13 -0500)]
gdb: Add partial python3 + go1.2 support to runtime-gdb.py

Update #6963 Fixes pretty printing maps and updates
functions for interacting with $len(). goroutine $n bt
remains not working. Tested on gdb using python 2 and 3.
Fixes #7052
Update #6963
Fixes #6698

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

11 years agocodereview: remove unused upload_options.revision
Patrick Mézard [Mon, 24 Feb 2014 15:11:37 +0000 (10:11 -0500)]
codereview: remove unused upload_options.revision

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

11 years agonet/http: don't pile up defers in b.N loop
Robert Daniel Kortschak [Mon, 24 Feb 2014 14:17:07 +0000 (18:17 +0400)]
net/http: don't pile up defers in b.N loop

One defer was not removed in CL61150043.

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

11 years agoruntime/race: fix finalizer tests
Dmitriy Vyukov [Mon, 24 Feb 2014 14:12:46 +0000 (18:12 +0400)]
runtime/race: fix finalizer tests
After "runtime: combine small NoScan allocations" finalizers
for small objects run more non deterministically.
TestRaceFin episodically fails on my darwin/amd64.

LGTM=khr
R=golang-codereviews, khr, dave
CC=golang-codereviews
https://golang.org/cl/56970043

11 years agosyscall: add fcntl test
Mikio Hara [Mon, 24 Feb 2014 11:35:01 +0000 (20:35 +0900)]
syscall: add fcntl test

Also updates documentation.

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

11 years agosyscall: make mkerrors.sh work with clang
Mikio Hara [Mon, 24 Feb 2014 07:34:51 +0000 (16:34 +0900)]
syscall: make mkerrors.sh work with clang

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

11 years agosyscall: consolidate test cases for Unix-like systems
Mikio Hara [Mon, 24 Feb 2014 05:41:10 +0000 (14:41 +0900)]
syscall: consolidate test cases for Unix-like systems

As per request from minux in CL 61520049, this CL consolidates
existing test cases for Unix-like systems into one file except
Linux-specific credential test.

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

11 years agonet/http: fix comment in connectMethod's key format
Anfernee Yongkun Gui [Mon, 24 Feb 2014 05:18:41 +0000 (21:18 -0800)]
net/http: fix comment in connectMethod's key format

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

11 years agomisc/cgo/testso: don't use TLS variables on Darwin and OpenBSD.
Shenghou Ma [Mon, 24 Feb 2014 01:37:43 +0000 (20:37 -0500)]
misc/cgo/testso: don't use TLS variables on Darwin and OpenBSD.
Fix build for 10.6 Darwin builders and OpenBSD builers.

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

11 years agocmd/gc: diagnose "make([]T, non-integer)" correctly.
Shenghou Ma [Sun, 23 Feb 2014 21:31:48 +0000 (16:31 -0500)]
cmd/gc: diagnose "make([]T, non-integer)" correctly.
Fixes #7223.

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

11 years agocmd/ld: don't emit unreachable dynimport symbols in ELF symtab.
Shenghou Ma [Sun, 23 Feb 2014 21:20:40 +0000 (16:20 -0500)]
cmd/ld: don't emit unreachable dynimport symbols in ELF symtab.
Fix build for Dragonfly BSD.
Fixes #7318.
Fixes #7367.

LGTM=jsing, iant
R=jsing, iant, mikioh.mikioh
CC=golang-codereviews
https://golang.org/cl/64340043

11 years agoos/exec: explicitly mention Cmd.Wait() has to be called eventually
Patrick Mézard [Sun, 23 Feb 2014 20:53:02 +0000 (12:53 -0800)]
os/exec: explicitly mention Cmd.Wait() has to be called eventually

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

11 years agoA+C: Patrick Mézard (individual CLA)
Rob Pike [Sun, 23 Feb 2014 20:52:23 +0000 (12:52 -0800)]
A+C: Patrick Mézard (individual CLA)

Generated by addca.

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

11 years agotesting: improve introduction to package comment
Rob Pike [Fri, 21 Feb 2014 22:35:54 +0000 (14:35 -0800)]
testing: improve introduction to package comment
Fixes #7361.

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

11 years agocrypto/tls: enforce that either ServerName or InsecureSkipVerify be given.
Adam Langley [Fri, 21 Feb 2014 20:56:41 +0000 (15:56 -0500)]
crypto/tls: enforce that either ServerName or InsecureSkipVerify be given.

crypto/tls has two functions for creating a client connection: Dial,
which most users are expected to use, and Client, which is the
lower-level API.

Dial does what you expect: it gives you a secure connection to the host
that you specify and the majority of users of crypto/tls appear to work
fine with it.

Client gives more control but needs more care. Specifically, if it
wasn't given a server name in the tls.Config then it didn't check that
the server's certificates match any hostname - because it doesn't have
one to check against. It was assumed that users of the low-level API
call VerifyHostname on the certificate themselves if they didn't supply
a hostname.

A review of the uses of Client both within Google and in a couple of
external libraries has shown that nearly all of them got this wrong.

Thus, this change enforces that either a ServerName or
InsecureSkipVerify is given. This does not affect tls.Dial.

See discussion at https://groups.google.com/d/msg/golang-nuts/4vnt7NdLvVU/b1SJ4u0ikb0J.

Fixes #7342.

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

11 years agoA+C: Jay Weisskopf (individual CLA)
Russ Cox [Fri, 21 Feb 2014 20:28:44 +0000 (15:28 -0500)]
A+C: Jay Weisskopf (individual CLA)

Generated by addca.

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

11 years agoreflect: better error for walking through nil embedded struct pointer
Russ Cox [Fri, 21 Feb 2014 18:51:22 +0000 (13:51 -0500)]
reflect: better error for walking through nil embedded struct pointer

The old error was "call of reflect.Value.Field on ptr Value".

http://play.golang.org/p/Zm-ZbQaPeR

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

11 years agoA+C: Apisak Darakananda (individual CLA)
Brad Fitzpatrick [Fri, 21 Feb 2014 18:22:56 +0000 (10:22 -0800)]
A+C: Apisak Darakananda (individual CLA)

Generated by addca.

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

11 years agoruntime/debug: add SetPanicOnFault
Russ Cox [Thu, 20 Feb 2014 21:18:05 +0000 (16:18 -0500)]
runtime/debug: add SetPanicOnFault

SetPanicOnFault allows recovery from unexpected memory faults.
This can be useful if you are using a memory-mapped file
or probing the address space of the current program.

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

11 years agoruntime: use goc2c as much as possible
Russ Cox [Thu, 20 Feb 2014 20:58:47 +0000 (15:58 -0500)]
runtime: use goc2c as much as possible

Package runtime's C functions written to be called from Go
started out written in C using carefully constructed argument
lists and the FLUSH macro to write a result back to memory.

For some functions, the appropriate parameter list ended up
being architecture-dependent due to differences in alignment,
so we added 'goc2c', which takes a .goc file containing Go func
declarations but C bodies, rewrites the Go func declaration to
equivalent C declarations for the target architecture, adds the
needed FLUSH statements, and writes out an equivalent C file.
That C file is compiled as part of package runtime.

Native Client's x86-64 support introduces the most complex
alignment rules yet, breaking many functions that could until
now be portably written in C. Using goc2c for those avoids the
breakage.

Separately, Keith's work on emitting stack information from
the C compiler would require the hand-written functions
to add #pragmas specifying how many arguments are result
parameters. Using goc2c for those avoids maintaining #pragmas.

For both reasons, use goc2c for as many Go-called C functions
as possible.

This CL is a replay of the bulk of CL 15400047 and CL 15790043,
both of which were reviewed as part of the NaCl port and are
checked in to the NaCl branch. This CL is part of bringing the
NaCl code into the main tree.

No new code here, just reformatting and occasional movement
into .h files.

LGTM=r
R=dave, alex.brainman, r
CC=golang-codereviews
https://golang.org/cl/65220044

11 years agocmd/pack: fix match
Russ Cox [Thu, 20 Feb 2014 20:50:30 +0000 (15:50 -0500)]
cmd/pack: fix match

Match used len(ar.files) == 0 to mean "match everything"
but it also deleted matched things from the list, so once you
had matched everything you asked for, match returned true
for whatever was left in the archive too.

Concretely, if you have an archive containing f1, f2, then
        pack t foo.a f1
would match f1 and then, because len(ar.files) == 0 after
deleting f1 from the match list, also match f2.

Avoid the problem by recording explicitly whether match
matches everything.

LGTM=r, dsymonds
R=r, dsymonds
CC=golang-codereviews
https://golang.org/cl/65630046

11 years agocmd/gc: explain 'nointerface' method failure
Russ Cox [Thu, 20 Feb 2014 20:42:08 +0000 (15:42 -0500)]
cmd/gc: explain 'nointerface' method failure

The message used to say that there was a type
mismatch, which is not necessarily true.

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

11 years agocmd/gc: make embedded, unexported fields read-only.
Chris Manghane [Thu, 20 Feb 2014 19:32:55 +0000 (11:32 -0800)]
cmd/gc: make embedded, unexported fields read-only.

Fixes #7363.

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

11 years agocmd/ld: fix off-by-one error in DWARF .debug_line transcription
Josh Bleecher Snyder [Thu, 20 Feb 2014 17:06:32 +0000 (09:06 -0800)]
cmd/ld: fix off-by-one error in DWARF .debug_line transcription

The liblink refactor changed the DWARF .debug_line flow control. The mapping was off by one pcline entry. The fix here preserves pc until it can be compared to pcline.pc.

Sample dwarfdump .debug_line output for main.main from the program in issue 7351, before liblink (correct):

0x0000003c: 00 Extended: <9> 02 DW_LNE_set_address( 0x0000000000002000 )
0x00000047: 03 DW_LNS_advance_line( 6 )
0x00000049: 01 DW_LNS_copy
            0x0000000000002000      1      7      0 is_stmt

0x0000004a: 8b address += 21,  line += 1
            0x0000000000002021      1      8      0 is_stmt

0x0000004b: 02 DW_LNS_advance_pc( 153 )
0x0000004e: 03 DW_LNS_advance_line( 1 )
0x00000050: 01 DW_LNS_copy
            0x00000000000020ba      1      9      0 is_stmt

After liblink (off by one entry):

0x00001bbf: 00 Extended: <9> 02 DW_LNE_set_address( 0x0000000000002000 )
0x00001bca: 02 DW_LNS_advance_pc( 33 )
0x00001bcc: 03 DW_LNS_advance_line( 6 )
0x00001bce: 01 DW_LNS_copy
            0x0000000000002021      1      7      0 is_stmt

0x00001bcf: 02 DW_LNS_advance_pc( 153 )
0x00001bd2: 03 DW_LNS_advance_line( 1 )
0x00001bd4: 01 DW_LNS_copy
            0x00000000000020ba      1      8      0 is_stmt

0x00001bd5: 02 DW_LNS_advance_pc( 153 )
0x00001bd8: 03 DW_LNS_advance_line( 1 )
0x00001bda: 01 DW_LNS_copy
            0x0000000000002153      1      9      0 is_stmt

After this CL (the line 9 pc offset changed due to intervening compiler changes):

0x00001d07: 00 Extended: <9> 02 DW_LNE_set_address( 0x0000000000002000 )
0x00001d12: 03 DW_LNS_advance_line( 6 )
0x00001d14: 01 DW_LNS_copy
            0x0000000000002000      1      7      0 is_stmt

0x00001d15: 8b address += 21,  line += 1
            0x0000000000002021      1      8      0 is_stmt

0x00001d16: 02 DW_LNS_advance_pc( 189 )
0x00001d19: 03 DW_LNS_advance_line( 1 )
0x00001d1b: 01 DW_LNS_copy
            0x00000000000020de      1      9      0 is_stmt

Fixes #7351.

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