]> Cypherpunks repositories - gostls13.git/log
gostls13.git
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

11 years agoos: fix Rename on Plan 9
David du Colombier [Thu, 20 Feb 2014 06:59:38 +0000 (07:59 +0100)]
os: fix Rename on Plan 9

Rename should fail when the directory doesn't match.
It will fix the newly introduced test from cmd/pack
on Plan 9.

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

11 years agonet/http: remove tmp file created in TestMultipartReaderOrder
Alex Brainman [Thu, 20 Feb 2014 06:24:25 +0000 (17:24 +1100)]
net/http: remove tmp file created in TestMultipartReaderOrder

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

11 years agosyscall: terminate error string in exec package on Plan 9
Rob Pike [Thu, 20 Feb 2014 01:17:36 +0000 (17:17 -0800)]
syscall: terminate error string in exec package on Plan 9
Try to prevent messages like this:
        './pack' file does not exist����������������������������������������������������������������������������������������������������
TBR=adonovan

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

11 years agocmd/pack: provide executable name in TestHello
Alex Brainman [Thu, 20 Feb 2014 00:29:37 +0000 (11:29 +1100)]
cmd/pack: provide executable name in TestHello

otherwise go build command adds .exe suffix

Fixes #7362

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

11 years agocmd/pack: another attempt to fix the build for TestHello
Rob Pike [Thu, 20 Feb 2014 00:12:05 +0000 (16:12 -0800)]
cmd/pack: another attempt to fix the build for TestHello
Plan 9 uses single quotes, not double quotes. I should have known.

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

11 years agocmd/pack: don't look for " in output from go env
Rob Pike [Wed, 19 Feb 2014 23:33:47 +0000 (15:33 -0800)]
cmd/pack: don't look for " in output from go env
Windows at least doesn't emit one.
Maybe fix Windows build.

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

11 years agocmd/pack: dump output of command of "go env" command in test
Rob Pike [Wed, 19 Feb 2014 23:01:50 +0000 (15:01 -0800)]
cmd/pack: dump output of command of "go env" command in test
Get more information to help understand build failure on Plan 9.
Also Windows.
(TestHello is failing because GOCHAR does not appear in output.
What does?)

Update #7362

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

11 years agocmd/gc, runtime: enable precisestack by default
Russ Cox [Wed, 19 Feb 2014 22:09:08 +0000 (17:09 -0500)]
cmd/gc, runtime: enable precisestack by default

[Repeat of CL 64100044, after 32-bit fix in CL 66170043.]

Precisestack makes stack collection completely precise,
in the sense that there are no "used and not set" errors
in the collection of stack frames, no times where the collector
reads a pointer from a stack word that has not actually been
initialized with a pointer (possibly a nil pointer) in that function.

The most important part is interfaces: precisestack means
that if reading an interface value, the interface value is guaranteed
to be initialized, meaning that the type word can be relied
upon to be either nil or a valid interface type word describing
the data word.

This requires additional zeroing of certain values on the stack
on entry, which right now costs about 5% overall execution
time in all.bash. That cost will come down before Go 1.3
(issue 7345).

There are at least two known garbage collector bugs right now,
issues 7343 and 7344. The first happens even without precisestack.
The second I have only seen with precisestack, but that does not
mean that precisestack is what causes it. In fact it is very difficult
to explain by what precisestack does directly. Precisestack may
be exacerbating an existing problem. Both of those issues are
marked for Go 1.3 as well.

The reasons for enabling precisestack now are to give it more
time to soak and because the copying stack work depends on it.

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

11 years agocmd/5g, cmd/8g: zero ambiguously live values on entry
Russ Cox [Wed, 19 Feb 2014 22:08:55 +0000 (17:08 -0500)]
cmd/5g, cmd/8g: zero ambiguously live values on entry

The code here is being restored after its deletion in CL 14430048.

I restored the copy in cmd/6g in CL 56430043 but neglected the
other two.

This is the reason that enabling precisestack only worked on amd64.

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

11 years agocmd/pack: add 'c' command to create archive
Russ Cox [Wed, 19 Feb 2014 22:08:44 +0000 (17:08 -0500)]
cmd/pack: add 'c' command to create archive

When Go 1.3 is released, this will keep existing
Go 1.2 build scripts that use 'go tool pack grc' working.
For efficiency, such scripts should be changed to
use 6g -pack instead, but keeping the old behavior
available enables a more graceful transition.

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

11 years agoapi: update next.txt
Russ Cox [Wed, 19 Feb 2014 20:56:42 +0000 (15:56 -0500)]
api: update next.txt

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

11 years agocmd/gc: fix printf format in typecheck.c
Rob Pike [Wed, 19 Feb 2014 20:50:50 +0000 (15:50 -0500)]
cmd/gc: fix printf format in typecheck.c
There are probably more of these, but bound and len are 64 bits so use %lld
in message about array index out of bounds.
Fixes the 386 build.

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

11 years agocmd/pack: use log.SetPrefix to make log calls more compact and consistent
Rob Pike [Wed, 19 Feb 2014 19:42:34 +0000 (11:42 -0800)]
cmd/pack: use log.SetPrefix to make log calls more compact and consistent
Taking my own advice from a review of addr2line.

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

11 years agocmd/addr2line: reimplement in Go
Russ Cox [Wed, 19 Feb 2014 19:33:11 +0000 (14:33 -0500)]
cmd/addr2line: reimplement in Go

We never updated libmach for the new object file format,
so it the existing 'go tool addr2line' is broken.
Reimplement in Go to fix.

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

11 years agocmd/gc: fix array index out of bounds error message
Rick Arnold [Wed, 19 Feb 2014 19:29:36 +0000 (11:29 -0800)]
cmd/gc: fix array index out of bounds error message

The error message was previously off by one in all cases.

Fixes #7150.

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

11 years agocrypto/x509: add example of using a custom root list.
Adam Langley [Wed, 19 Feb 2014 16:18:35 +0000 (11:18 -0500)]
crypto/x509: add example of using a custom root list.

Fixes #6267.

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

11 years agocrypto/tls: improve documentation for ServerName.
Adam Langley [Wed, 19 Feb 2014 16:17:09 +0000 (11:17 -0500)]
crypto/tls: improve documentation for ServerName.

Users of the low-level, Client function are frequenctly missing the
fact that, unless they pass a ServerName to the TLS connection then it
cannot verify the certificates against any name.

This change makes it clear that at least one of InsecureSkipVerify and
ServerName should always be set.

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

11 years agocmd/go: skip writing dwarf debug info for ephemeral binaries
Russ Cox [Wed, 19 Feb 2014 15:01:15 +0000 (10:01 -0500)]
cmd/go: skip writing dwarf debug info for ephemeral binaries

Update #6853

For an ephemeral binary - one created, run, and then deleted -
there is no need to write dwarf debug information, since the
binary will not be used with gdb. In this case, instruct the linker
not to spend time and disk space generating the debug information
by passing the -w flag to the linker.

Omitting dwarf information reduces the size of most binaries by 25%.
We may be more aggressive about this in the future.

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

11 years agocmd/ld: drop gcargs, gclocals symbols from symbol table
Russ Cox [Wed, 19 Feb 2014 15:00:44 +0000 (10:00 -0500)]
cmd/ld: drop gcargs, gclocals symbols from symbol table

Update #6853

Every function now has a gcargs and gclocals symbol
holding associated garbage collection information.
Put them all in the same meta-symbol as the go.func data
and then drop individual entries from symbol table.

Removing gcargs and gclocals reduces the size of a
typical binary by 10%.

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

11 years agocmd/gc: fix handling of append with -race.
Rémy Oudompheng [Wed, 19 Feb 2014 07:19:27 +0000 (08:19 +0100)]
cmd/gc: fix handling of append with -race.

Also re-enable race tests in run.bash.

Fixes #7334.

LGTM=rsc
R=rsc, dvyukov, iant, bradfitz, dave
CC=golang-codereviews
https://golang.org/cl/65740043

11 years agocmd/gc: reject incorrect use of fallthrough.
Rémy Oudompheng [Wed, 19 Feb 2014 06:55:03 +0000 (07:55 +0100)]
cmd/gc: reject incorrect use of fallthrough.

Fixes #6500.

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

11 years agoreflect: improve documentation of IsNil
Rob Pike [Wed, 19 Feb 2014 06:33:59 +0000 (22:33 -0800)]
reflect: improve documentation of IsNil
IsNil isn't quite the same as == nil, as this snippet shows:

// http://play.golang.org/p/huomslDZgw
package main

import "fmt"
import "reflect"

func main() {
        var i interface{}
        v := reflect.ValueOf(i)
        fmt.Println(v.IsValid(), i == nil)
        fmt.Println(v.IsNil())
}

The fact that IsNil panics if you call it with an untyped nil
was not apparent. Verbiage added for clarity.

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

11 years agocmd/ld: remove Plan 9 symbol table
Russ Cox [Wed, 19 Feb 2014 04:41:15 +0000 (23:41 -0500)]
cmd/ld: remove Plan 9 symbol table

Update #6853

Nothing reads the Plan 9 symbol table anymore.
The last holdout was 'go tool nm', but since being rewritten in Go
it uses the standard symbol table for the binary format
(ELF, Mach-O, PE) instead.

Removing the Plan 9 symbol table saves ~15% disk space
on most binaries.

Two supporting changes included in this CL:

debug/gosym: use Go 1.2 pclntab to synthesize func-only
symbol table when there is no Plan 9 symbol table

debug/elf, debug/macho, debug/pe: ignore final EOF from ReadAt

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

11 years agomisc/emacs: add support for ff-find-other-file
Dominik Honnef [Wed, 19 Feb 2014 03:23:55 +0000 (22:23 -0500)]
misc/emacs: add support for ff-find-other-file

c-mode classically uses ff-find-other-file to toggle between headers
and implementation. For Go it seemingly makes sense to jump between
implementation and test.

While there's no enforced mapping of file names for tests, the mapping
in this CL seems to be very common at least throughout the standard
library, and ff-find-other-file fails gracefully when the mapping
doesn't apply.

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

11 years agomisc/emacs: actually use point argument that is passed to godef--call
Dominik Honnef [Wed, 19 Feb 2014 02:51:47 +0000 (21:51 -0500)]
misc/emacs: actually use point argument that is passed to godef--call

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

11 years agocmd/link: change cloneProg to return the cloned value
Rick Arnold [Wed, 19 Feb 2014 01:59:44 +0000 (17:59 -0800)]
cmd/link: change cloneProg to return the cloned value

The code was returning the original value rather than the cloned value
resulting in the tests not being repeatable.

Fixes #7111.

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

11 years agocrypto/rc4: test the portable version too
Brad Fitzpatrick [Tue, 18 Feb 2014 23:16:07 +0000 (15:16 -0800)]
crypto/rc4: test the portable version too

Prevent bitrot. (similar to the previous sha1 and md5 CLs)

Fixes #6642

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

11 years agoapi: whitelist change to unicode.Version
Brad Fitzpatrick [Tue, 18 Feb 2014 21:38:47 +0000 (13:38 -0800)]
api: whitelist change to unicode.Version

Unbreaks the build.

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

11 years agodoc/go1.3.txt: unicode upgrade to 6.3.0
Rob Pike [Tue, 18 Feb 2014 19:50:38 +0000 (11:50 -0800)]
doc/go1.3.txt: unicode upgrade to 6.3.0

LGTM=mpvl
R=mpvl
CC=golang-codereviews
https://golang.org/cl/65550044

11 years agounicode: upgrade to Unicode 6.3.0
Marcel van Lohuizen [Tue, 18 Feb 2014 19:12:59 +0000 (20:12 +0100)]
unicode: upgrade to Unicode 6.3.0

This is a relatively minor change.

This does not result in changes to go.text/unicode/norm. The go.text
packages will therefore be relatively unaffected. It does make the
way for an upgrade to CLDR 24, though.

The tests of all.bash pass, as well as the tests in go.text after
this update.

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