]> Cypherpunks repositories - gostls13.git/log
gostls13.git
10 years ago[dev.cc] runtime/cgo: add comment about import _ "unsafe"
Russ Cox [Wed, 12 Nov 2014 19:54:04 +0000 (14:54 -0500)]
[dev.cc] runtime/cgo: add comment about import _ "unsafe"

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

10 years ago[dev.cc] runtime/cgo: fix freebsd build?
Russ Cox [Wed, 12 Nov 2014 04:28:26 +0000 (23:28 -0500)]
[dev.cc] runtime/cgo: fix freebsd build?

Last try and then someone with a FreeBSD has to do it.

TBR=r
CC=golang-codereviews
https://golang.org/cl/171590043

10 years ago[dev.cc] runtime: fix arm5 build
Russ Cox [Wed, 12 Nov 2014 04:24:54 +0000 (23:24 -0500)]
[dev.cc] runtime: fix arm5 build

TBR=r
CC=golang-codereviews
https://golang.org/cl/168600043

10 years ago[dev.cc] runtime/cgo: add missing import _ "unsafe" for //go:linkname
Russ Cox [Wed, 12 Nov 2014 04:19:59 +0000 (23:19 -0500)]
[dev.cc] runtime/cgo: add missing import _ "unsafe" for //go:linkname

Will prod freebsd build along.
Not claiming it will fix it.

TBR=r
CC=golang-codereviews
https://golang.org/cl/171580044

10 years ago[dev.cc] runtime: convert freebsd to Go
Russ Cox [Wed, 12 Nov 2014 04:00:29 +0000 (23:00 -0500)]
[dev.cc] runtime: convert freebsd to Go

It builds.
Don't know if it works, but it's a lot closer than having everything in C.

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

10 years ago[dev.cc] runtime: convert softfloat_arm.c to Go + build fixes
Russ Cox [Wed, 12 Nov 2014 03:30:02 +0000 (22:30 -0500)]
[dev.cc] runtime: convert softfloat_arm.c to Go + build fixes

Also include onM_signalok fix from issue 8995.

Fixes linux/arm build.
Fixes #8995.

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

10 years ago[dev.cc] runtime: bring back mgc0.h
Russ Cox [Tue, 11 Nov 2014 23:50:02 +0000 (18:50 -0500)]
[dev.cc] runtime: bring back mgc0.h

This was recorded as an hg mv instead of an hg cp.
For now a C version is needed for the Go compiler.

TBR=r
CC=golang-codereviews
https://golang.org/cl/174020043

10 years ago[dev.cc] runtime: convert arch-specific .c and .h files to Go
Russ Cox [Tue, 11 Nov 2014 22:09:09 +0000 (17:09 -0500)]
[dev.cc] runtime: convert arch-specific .c and .h files to Go

The conversion was done with an automated tool and then
modified only as necessary to make it compile and run.

vlrt.c was only called from C. Pure delete.

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

LGTM=r
R=r, austin
CC=dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/174860043

10 years ago[dev.cc] runtime: convert operating system support code from C to Go
Russ Cox [Tue, 11 Nov 2014 22:08:54 +0000 (17:08 -0500)]
[dev.cc] runtime: convert operating system support code from C to Go

The conversion was done with an automated tool and then
modified only as necessary to make it compile and run.

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

LGTM=r
R=r
CC=austin, dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/174830044

10 years ago[dev.cc] runtime: convert scheduler from C to Go
Russ Cox [Tue, 11 Nov 2014 22:08:33 +0000 (17:08 -0500)]
[dev.cc] runtime: convert scheduler from C to Go

The conversion was done with an automated tool and then
modified only as necessary to make it compile and run.

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

LGTM=r
R=r, daniel.morsing
CC=austin, dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/172260043

10 years ago[dev.cc] runtime: convert race implementation from C to Go
Russ Cox [Tue, 11 Nov 2014 22:08:14 +0000 (17:08 -0500)]
[dev.cc] runtime: convert race implementation from C to Go

The conversion was done with an automated tool and then
modified only as necessary to make it compile and run.

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

LGTM=r
R=r
CC=austin, dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/172250044

10 years ago[dev.cc] runtime: convert parallel support code from C to Go
Russ Cox [Tue, 11 Nov 2014 22:07:54 +0000 (17:07 -0500)]
[dev.cc] runtime: convert parallel support code from C to Go

The conversion was done with an automated tool and then
modified only as necessary to make it compile and run.

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

LGTM=r
R=r, austin
CC=dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/172250043

10 years ago[dev.cc] runtime: convert defs_$GOOS_$GOARCH.h to Go
Russ Cox [Tue, 11 Nov 2014 22:07:37 +0000 (17:07 -0500)]
[dev.cc] runtime: convert defs_$GOOS_$GOARCH.h to Go

The conversion was done with an automated tool and then
modified only as necessary to make it compile and run.

In a few cases, defs_$GOOS_$GOARCH.go already existed,
so the target here is defs1_$GOOS_$GOARCH.go.

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

LGTM=r
R=r
CC=austin, dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/171490043

10 years ago[dev.cc] runtime: convert basic library routines from C to Go
Russ Cox [Tue, 11 Nov 2014 22:07:06 +0000 (17:07 -0500)]
[dev.cc] runtime: convert basic library routines from C to Go

float.c held bit patterns for special float64 values,
hiding from the real uses. Rewrite Go code not to
refer to those values directly.

Convert library routines in runtime.c and string.c.

LGTM=r
R=r, dave
CC=austin, dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/170330043

10 years ago[dev.cc] build: disable API check until all systems build
Russ Cox [Tue, 11 Nov 2014 22:06:41 +0000 (17:06 -0500)]
[dev.cc] build: disable API check until all systems build

Otherwise no system will get an 'ok' until they all do.

LGTM=r, dave
R=r, dave
CC=austin, dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/170320044

10 years ago[dev.cc] runtime: convert assembly files for C to Go transition
Russ Cox [Tue, 11 Nov 2014 22:06:22 +0000 (17:06 -0500)]
[dev.cc] runtime: convert assembly files for C to Go transition

The main change is that #include "zasm_GOOS_GOARCH.h"
is now #include "go_asm.h" and/or #include "go_tls.h".

Also, because C StackGuard is now Go _StackGuard,
the assembly name changes from const_StackGuard to
const__StackGuard.

In asm_$GOARCH.s, add new function getg, formerly
implemented in C.

The renamed atomics now have Go wrappers, to get
escape analysis annotations right. Those wrappers
are in CL 174860043.

LGTM=r, aram
R=r, aram
CC=austin, dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/168510043

10 years ago[dev.cc] runtime: convert signal handlers from C to Go
Russ Cox [Tue, 11 Nov 2014 22:05:55 +0000 (17:05 -0500)]
[dev.cc] runtime: convert signal handlers from C to Go

This code overused macros and could not be
converted automatically. Instead a new sigctxt
type had to be defined for each os/arch combination,
with a common (implicit) interface used by the
arch-specific signal handler code.

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

LGTM=r
R=r
CC=austin, dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/168500044

10 years ago[dev.cc] runtime/cgo: convert from C to Go
Russ Cox [Tue, 11 Nov 2014 22:05:37 +0000 (17:05 -0500)]
[dev.cc] runtime/cgo: convert from C to Go

The conversion was done with an automated tool and then
modified only as necessary to make it compile and run.

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

LGTM=r
R=r
CC=austin, dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/168500043

10 years ago[dev.cc] runtime: convert header files to Go
Russ Cox [Tue, 11 Nov 2014 22:05:19 +0000 (17:05 -0500)]
[dev.cc] runtime: convert header files to Go

The conversion was done with an automated tool and then
modified only as necessary to make it compile and run.

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

LGTM=r
R=r, austin
CC=dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/167550043

10 years ago[dev.cc] runtime: convert memory allocator and garbage collector to Go
Russ Cox [Tue, 11 Nov 2014 22:05:02 +0000 (17:05 -0500)]
[dev.cc] runtime: convert memory allocator and garbage collector to Go

The conversion was done with an automated tool and then
modified only as necessary to make it compile and run.

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

LGTM=r
R=r
CC=austin, dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/167540043

10 years ago[dev.cc] runtime: convert panic and stack code from C to Go
Russ Cox [Tue, 11 Nov 2014 22:04:34 +0000 (17:04 -0500)]
[dev.cc] runtime: convert panic and stack code from C to Go

The conversion was done with an automated tool and then
modified only as necessary to make it compile and run.

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

LGTM=r
R=r, dave
CC=austin, dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/166520043

10 years ago[dev.cc] cmd/dist: adjust for build process without cmd/cc
Russ Cox [Tue, 11 Nov 2014 06:29:05 +0000 (01:29 -0500)]
[dev.cc] cmd/dist: adjust for build process without cmd/cc

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

- Remove references to C compiler directories.
- Remove generation of special header files.
- Remove generation of Go source files from C declarations.

- Compile Go sources before rest of package (was after),
  so that Go compiler can write go_asm.h for use in assembly.

- Move TLS information from cmd/dist (was embedding in output)
  to src/runtime/go_tls.h, which it can be maintained directly.

LGTM=r
R=r, dave
CC=austin, golang-codereviews, iant, khr
https://golang.org/cl/172960043

10 years ago[dev.cc] liblink: resolve bss vs other conflict regardless of order found
Russ Cox [Tue, 11 Nov 2014 06:28:26 +0000 (01:28 -0500)]
[dev.cc] liblink: resolve bss vs other conflict regardless of order found

If the linker finds the same name given a BSS and a non-BSS
symbol, the assumption is that the non-BSS symbol is the
true one, and the BSS symbol is just the best Go can do toward
an "extern" declaration. This has always been the case,
as long as the object files were read in the right order.

The old code worked when the BSS symbol is found before
the non-BSS symbol. This CL adds equivalent logic for when
the non-BSS symbol is found before the BSS symbol.
This comes up when Go must refer to symbols defined in
host object files.

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

10 years ago[dev.cc] cmd/go: adjust go, cgo builds & disable cc
Russ Cox [Tue, 11 Nov 2014 06:27:55 +0000 (01:27 -0500)]
[dev.cc] cmd/go: adjust go, cgo builds & disable cc

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

Make gcToolchain.cc return an error (no C compiler!).

Adjust expectations of cgo, now that cgo does not write any C files
(no C compiler!).

For packages with .s files, invoke Go compiler with -asmhdr go_asm.h
so that assembly files can use it. This applies to all packages but is only
needed today by package runtime.

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

10 years ago[dev.cc] cmd/gc: changes for removing runtime C code
Russ Cox [Tue, 11 Nov 2014 06:27:30 +0000 (01:27 -0500)]
[dev.cc] cmd/gc: changes for removing runtime C code

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

export.c, lex.c:
Add -asmhdr flag to write assembly header file with struct
field offsets and const values. cmd/dist used to construct this
file by interpreting output from the C compiler.
Generate it from the Go definitions instead.
Also, generate the form we need directly, instead of relying
on cmd/dist for reprocessing.

lex.c, obj.c:
If the C compiler accepted #pragma cgo_xxx, recognize
a directive //go:cgo_xxx instead. The effect is the same as
in the C compiler: accumulate text into a buffer and emit in the
output file, where the linker will find and use it.

lex.c, obj.c:
Accept //go:linkname to control the external symbol name
used for a particular top-level Go variable. This makes it
possible to refer to C symbol names but also symbols from
other packages. It has always been possible to do this from
C and assembly. To drive home the point that this should not
be done lightly, require import "unsafe" in any file containing
//go:linkname.

plive.c, reflect.c, subr.c:
Hard-code that interfaces contain only pointers.
This means code handling multiword values in the garbage
collector and the stack copier can be deleted instead of being
converted. This change is already present in the dev.garbage
branch.

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

10 years ago[dev.cc] cmd/cgo: generate only Go source files
Russ Cox [Tue, 11 Nov 2014 06:23:19 +0000 (01:23 -0500)]
[dev.cc] cmd/cgo: generate only Go source files

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

We changed cgo to write the actual function wrappers in Go
for Go 1.4. The only code left in C output files was the definitions
for pointers to C data and the #pragma cgo directives.
Write both of those to Go outputs instead, using the new
compiler directives introduced in CL 169360043.

(Still generating C files in gccgo mode.)

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

10 years ago[dev.cc] reflect: interfaces contain only pointers
Russ Cox [Tue, 11 Nov 2014 06:23:01 +0000 (01:23 -0500)]
[dev.cc] reflect: interfaces contain only pointers

[This CL is part of the removal of C code from package runtime.
See golang.org/s/dev.cc for an overview.]

Adjustments for changes made in CL 169360043.
This change is already present in the dev.garbage branch.

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

10 years ago[dev.cc] cmd/5c, cmd/6c, cmd/8c, cmd/cc: remove
Russ Cox [Tue, 11 Nov 2014 03:40:44 +0000 (22:40 -0500)]
[dev.cc] cmd/5c, cmd/6c, cmd/8c, cmd/cc: remove

Let's just do this up front.
This will break the build (here on the dev.cc branch).
The CLs that follow will take care of fixing it.

Leave behind cmd/cc/lexbody and cmd/cc/macbody for the assemblers.
They'll go away later.

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

10 years ago[dev.cc] create new branch
Russ Cox [Mon, 10 Nov 2014 02:14:36 +0000 (21:14 -0500)]
[dev.cc] create new branch

This branch is for work on converting the remaining C code in
package runtime to Go and then deleting the cc, 5c, 6c, and 8c
directories. It is targeted to land at the beginning of the 1.5 cycle.

The conversion will proceed one GOOS/GOARCH combination
at a time; red lines on the dashboard are expected and okay.

Once Linux and OS X are converted, help with other systems
will be most welcome.

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

10 years agotest: fix nacl build
Russ Cox [Mon, 10 Nov 2014 02:10:49 +0000 (21:10 -0500)]
test: fix nacl build

Disable linkx_run.go and sinit_run.go, because they
exec subprocesses, which NaCl cannot.

TBR=r
CC=golang-codereviews
https://golang.org/cl/171350043

10 years agocmd/internal/objfile: minor edits
Russ Cox [Mon, 10 Nov 2014 01:21:37 +0000 (20:21 -0500)]
cmd/internal/objfile: minor edits

Follow-up in response to comments on
TBR'ed CL 171260043.

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

10 years agoruntime: fix sudog leak in syncsemrelease
Russ Cox [Mon, 10 Nov 2014 01:21:03 +0000 (20:21 -0500)]
runtime: fix sudog leak in syncsemrelease

Manifested as increased memory usage in a Google production system.

Not an unbounded leak, but can significantly increase the number
of sudogs allocated between garbage collections.

I checked all the other calls to acquireSudog.
This is the only one that was missing a releaseSudog.

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

10 years agoruntime/cgo: add +build tags to files named for $GOOS
Russ Cox [Mon, 10 Nov 2014 01:20:45 +0000 (20:20 -0500)]
runtime/cgo: add +build tags to files named for $GOOS

These are being built into the runtime/cgo for every
operating system. It doesn't seem to matter, but
restore the Go 1.3 behavior anyway.

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

10 years agocmd/dist: remove old misc/pprof
Russ Cox [Mon, 10 Nov 2014 01:20:26 +0000 (20:20 -0500)]
cmd/dist: remove old misc/pprof

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

10 years agocmd/pprof: install as go tool pprof
Russ Cox [Mon, 10 Nov 2014 01:20:06 +0000 (20:20 -0500)]
cmd/pprof: install as go tool pprof

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

10 years agoundo CL 169000043 / 05b838013df9
Andrew Gerrand [Sun, 9 Nov 2014 22:46:27 +0000 (09:46 +1100)]
undo CL 169000043 / 05b838013df9

This was a mistake. The cmd/api tool
depends on an old version of go/types.

««« original CL description
cmd/api: use golang.org/x/... import paths

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

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

10 years agoundo CL 166380043 / 0b54a0927656
Andrew Gerrand [Sun, 9 Nov 2014 22:39:17 +0000 (09:39 +1100)]
undo CL 166380043 / 0b54a0927656

This was a mistake; the cmd/api tool
depends on an old version of go/types.

««« original CL description
cmd/api: bump go.tools golden CL hash

TBR=bradfitz
R=rsc
CC=golang-codereviews
https://golang.org/cl/166380043
»»»

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

10 years agocmd/api: bump go.tools golden CL hash
Andrew Gerrand [Sun, 9 Nov 2014 22:30:57 +0000 (09:30 +1100)]
cmd/api: bump go.tools golden CL hash

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

10 years agocmd/go: use golang.org/x/... import paths
Andrew Gerrand [Sun, 9 Nov 2014 22:27:25 +0000 (09:27 +1100)]
cmd/go: use golang.org/x/... import paths

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

10 years agoall: use golang.org/x/... import paths
Andrew Gerrand [Sun, 9 Nov 2014 22:15:57 +0000 (09:15 +1100)]
all: use golang.org/x/... import paths

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

10 years agocmd/api: use golang.org/x/... import paths
Andrew Gerrand [Sun, 9 Nov 2014 22:13:04 +0000 (09:13 +1100)]
cmd/api: use golang.org/x/... import paths

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

10 years agolib/codereview: fix with more recent hg revisions.
Adam Langley [Sun, 9 Nov 2014 01:12:23 +0000 (17:12 -0800)]
lib/codereview: fix with more recent hg revisions.

I've Mercurial version 3.2 and hg submit fails with:

  File "/home/agl/devel/go/lib/codereview/codereview.py", line 3567, in get_hg_status
    ret = hg_commands.status(fui, self.repo, *[], **{'rev': [rev], 'copies': True})
  File "/usr/lib/python2.7/site-packages/mercurial/commands.py", line 5714, in status
    fm = ui.formatter('status', opts)
  File "/home/agl/devel/go/lib/codereview/codereview.py", line 3464, in formatter
    return plainformatter(self, topic, opts)
  File "/usr/lib/python2.7/site-packages/mercurial/formatter.py", line 57, in __init__
    if ui.debugflag:
  AttributeError: 'FakeMercurialUI' object has no attribute 'debugflag'

This change dumbly adds a boolean debugflag and that seems to work.

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

10 years agonet/http: fix benchmark goroutine leak
Brad Fitzpatrick [Sat, 8 Nov 2014 18:13:28 +0000 (15:13 -0300)]
net/http: fix benchmark goroutine leak

New detection because of net/http now using TestMain.

Fixes #9033

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

10 years agocmd/go: disable warnings from cmd/cc when building for SWIG
Ian Lance Taylor [Fri, 7 Nov 2014 16:19:19 +0000 (08:19 -0800)]
cmd/go: disable warnings from cmd/cc when building for SWIG

Fixes #9065.

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

10 years agocmd/internal/objfile: add Disasm
Russ Cox [Fri, 7 Nov 2014 01:08:00 +0000 (20:08 -0500)]
cmd/internal/objfile: add Disasm

This was missing from CL 167320043.
Happy to apply comments in a followup.
TBR to fix build.

TBR=r
CC=golang-codereviews
https://golang.org/cl/171260043

10 years agocmd/objdump, cmd/pprof: factor disassembly into cmd/internal/objfile
Russ Cox [Fri, 7 Nov 2014 00:56:55 +0000 (19:56 -0500)]
cmd/objdump, cmd/pprof: factor disassembly into cmd/internal/objfile

Moving so that new Go 1.4 pprof can use it.

The old 'GNU objdump workalike' mode for 'go tool objdump'
is now gone, as are the tests for that mode. It was used only
by pre-Go 1.4 pprof. You can still specify an address range on
the command line; you just get the same output format as
you do when dumping the entire binary (without an address
limitation).

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

10 years agodoc/go1.4.html: leave stack size at 2 kB
Russ Cox [Thu, 6 Nov 2014 20:19:16 +0000 (15:19 -0500)]
doc/go1.4.html: leave stack size at 2 kB

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

10 years agodoc: change "/s/..." links to be on golang.org
Russ Cox [Thu, 6 Nov 2014 20:18:47 +0000 (15:18 -0500)]
doc: change "/s/..." links to be on golang.org

People viewing this locally will not have a /s/ on their local godoc.
tip.golang.org doesn't have one either.

Also change all golang.org links to https, to avoid mixed content
warnings when viewing https://golang.org/.

Fixes #9028.

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

10 years agotest: move linkx and sinit to run.go
Josh Bleecher Snyder [Thu, 6 Nov 2014 20:14:08 +0000 (15:14 -0500)]
test: move linkx and sinit to run.go

The remaining run-only tests will be migrated to run.go in another CL.

This CL will break the build due to issues 8746 and 8806.

Update #4139
Update #8746
Update #8806

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

10 years agoruntime: don't stop bitmap dump at BitsDead
Keith Randall [Thu, 6 Nov 2014 17:30:41 +0000 (09:30 -0800)]
runtime: don't stop bitmap dump at BitsDead

Stack bitmaps need to be scanned past any BitsDead entries.

Object bitmaps will not have any BitsDead in them (bitmap extraction stops at
the first BitsDead entry in makeheapobjbv).  data/bss bitmaps also have no BitsDead entries.

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

10 years agoruntime: fix initial gp->sched.pc in newextram
Russ Cox [Thu, 6 Nov 2014 14:37:04 +0000 (09:37 -0500)]
runtime: fix initial gp->sched.pc in newextram

CL 170720043 missed this one when adding +PCQuantum.

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

10 years agoos: document that users of Fd should keep f alive
Russ Cox [Thu, 6 Nov 2014 14:36:51 +0000 (09:36 -0500)]
os: document that users of Fd should keep f alive

Fixes #9046.

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

10 years agoos/exec: tell lsof not to block
Keith Randall [Thu, 6 Nov 2014 04:25:20 +0000 (20:25 -0800)]
os/exec: tell lsof not to block

For some reason lsof is now hanging on my workstation
without the -b (avoid blocking in the kernel) option.
Adding -b makes the test pass and shouldn't hurt.

I don't know how recent the -b option is.  If the builders
are ok with it, it's probably ok.

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

10 years agobufio: remove unused 'panicked' variable from test
Andrew Gerrand [Thu, 6 Nov 2014 04:22:29 +0000 (15:22 +1100)]
bufio: remove unused 'panicked' variable from test

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

10 years agoruntime: avoid gentraceback of self on user goroutine stack
Russ Cox [Thu, 6 Nov 2014 04:01:48 +0000 (23:01 -0500)]
runtime: avoid gentraceback of self on user goroutine stack

Gentraceback may grow the stack.
One of the gentraceback wrappers may grow the stack.
One of the gentraceback callback calls may grow the stack.
Various stack pointers are stored in various stack locations
as type uintptr during the execution of these calls.
If the stack does grow, these stack pointers will not be
updated and will start trying to decode stack memory that
is no longer valid.

It may be possible to change the type of the stack pointer
variables to be unsafe.Pointer, but that's pretty subtle and
may still have problems, even if we catch every last one.
An easier, more obviously correct fix is to require that
gentraceback of the currently running goroutine must run
on the g0 stack, not on the goroutine's own stack.

Not doing this causes faults when you set
        StackFromSystem = 1
        StackFaultOnFree = 1

The new check in gentraceback will catch future lapses.

The more general problem is calling getcallersp but then
calling a function that might relocate the stack, which would
invalidate the result of getcallersp. Add note to stubs.go
declaration of getcallersp explaining the problem, and
check all existing calls to getcallersp. Most needed fixes.

This affects Callers, Stack, and nearly all the runtime
profiling routines. It does not affect stack copying directly
nor garbage collection.

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

10 years agobufio: fix reading of many blank lines in a row
Russ Cox [Thu, 6 Nov 2014 03:50:24 +0000 (22:50 -0500)]
bufio: fix reading of many blank lines in a row

Fixes #9020.

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

10 years agodoc/go1.4.html: document new subrepo import paths
Russ Cox [Thu, 6 Nov 2014 01:15:48 +0000 (20:15 -0500)]
doc/go1.4.html: document new subrepo import paths

LGTM=r, adg
R=adg, r, 0xjnml, dr.volker.dobler
CC=golang-codereviews
https://golang.org/cl/166980044

10 years agobufio: don't loop generating empty tokens
Rob Pike [Wed, 5 Nov 2014 22:57:46 +0000 (09:57 +1100)]
bufio: don't loop generating empty tokens

The new rules for split functions mean that we are exposed
to the common bug of a function that loops forever at EOF.
Pick these off by shutting down the scanner if too many
consecutive empty tokens are delivered.

Fixes #9020.

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

10 years ago5g: don't generate reg variables for direct-called functions
Austin Clements [Wed, 5 Nov 2014 20:14:47 +0000 (15:14 -0500)]
5g: don't generate reg variables for direct-called functions

The test intended to skip direct calls when creating
registerization variables was testing p->to.type instead of
p->to.name, so it always failed, causing regopt to create
unnecessary variables for these names.

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

10 years agotest: comment out failing cases from sinit.go
Ian Lance Taylor [Tue, 4 Nov 2014 18:20:35 +0000 (10:20 -0800)]
test: comment out failing cases from sinit.go

One failing case this removes is:

var bytes = []byte("hello, world")
var copy_bytes = bytes

We could handle this in the compiler, but it requires special
case for a variable that is initialized to the value of a
variable that is initialized to a string literal converted to
[]byte.  This seems an unlikely case--it never occurs in the
standrd library--and it seems unnecessary to write the code to
handle it.

If we do want to support this case, one approach is
https://golang.org/cl/171840043.

The other failing cases are of the form

var bx bool
var copy_bx = bx

The compiler used to initialize copy_bx to false.  However,
that led to issue 7665, since bx may be initialized in non-Go
code.  The compiler no longer assumes that bx must be false,
so copy_bx can not be statically initialized.

We can fix these with https://golang.org/cl/169040043
if we also pass -complete to the compiler as part of this
test.  This is OK but it's too late in the release cycle.

Fixes #8746.

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

10 years agogc: abort if given an unknown debug (-d) flag
Austin Clements [Tue, 4 Nov 2014 14:43:37 +0000 (09:43 -0500)]
gc: abort if given an unknown debug (-d) flag

The check for unknown command line debug flags in gc was
incorrect: the loop over debugtab terminates when it reaches a
nil entry, but it was only reporting an error if the parser
had passed the last entry of debugtab (which it never did).
Fix this by reporting the usage error if the loop reaches a
nil entry.

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

10 years agomisc/cgo/test: fix freebsd test failure by moving test to its own package.
Alan Donovan [Mon, 3 Nov 2014 18:41:03 +0000 (13:41 -0500)]
misc/cgo/test: fix freebsd test failure by moving test to its own package.

(The assertion depends on a per-package gensym counter whose
value varies based on what else is in the package.)

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

10 years agoruntime: make Go and C mallocgc signatures match
Austin Clements [Mon, 3 Nov 2014 18:26:46 +0000 (13:26 -0500)]
runtime: make Go and C mallocgc signatures match

Previously, the flags argument to mallocgc was an int in Go,
but a uint32 in C.  Change the Go type to use uint32 so these
agree.  The largest flag value is 2 (and of course no flag
values are negative), so this won't change anything on little
endian architectures, but it matters on big endian.

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

10 years agodoc: document go get -f flag in 1.4 release notes
Andrew Gerrand [Mon, 3 Nov 2014 06:01:17 +0000 (17:01 +1100)]
doc: document go get -f flag in 1.4 release notes

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

10 years agomisc: Increase issue 6997's test timeout to prevent spurious failures.
Benoit Sigoure [Sat, 1 Nov 2014 15:28:09 +0000 (08:28 -0700)]
misc: Increase issue 6997's test timeout to prevent spurious failures.

On heavily loaded build servers, a 5 second timeout is too aggressive,
which causes this test to fail spuriously.

LGTM=iant
R=iant
CC=golang-codereviews, sqweek
https://golang.org/cl/170850043

10 years agoA+C: add Benoit Sigoure (individual CLA)
Ian Lance Taylor [Sat, 1 Nov 2014 15:27:55 +0000 (08:27 -0700)]
A+C: add Benoit Sigoure (individual CLA)

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

10 years agonet/http: add missing newline in list of leaked goroutines
Ian Lance Taylor [Fri, 31 Oct 2014 17:20:36 +0000 (10:20 -0700)]
net/http: add missing newline in list of leaked goroutines

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

10 years agodatabase/sql: make TestDrivers not crash on second run
Brad Fitzpatrick [Fri, 31 Oct 2014 16:49:42 +0000 (09:49 -0700)]
database/sql: make TestDrivers not crash on second run

Using -test.cpu=1,1 made it crash before.

Fixes #9024

LGTM=iant
R=adg, iant
CC=golang-codereviews
https://golang.org/cl/169860043

10 years agocmd/go: fixed typo in doc and generator
Gabriel Aszalos [Fri, 31 Oct 2014 16:38:41 +0000 (09:38 -0700)]
cmd/go: fixed typo in doc and generator

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

10 years agoA+C: add Gabriel Aszalos (individual CLA)
Ian Lance Taylor [Fri, 31 Oct 2014 16:37:11 +0000 (09:37 -0700)]
A+C: add Gabriel Aszalos (individual CLA)

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

10 years agosync/atomic: fix comment referencing Value.Store's argument name
Brad Fitzpatrick [Fri, 31 Oct 2014 03:48:57 +0000 (00:48 -0300)]
sync/atomic: fix comment referencing Value.Store's argument name

Fixes #9029

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

10 years agocmd/go: fix minor typo
Nathan P Finch [Thu, 30 Oct 2014 20:20:43 +0000 (13:20 -0700)]
cmd/go: fix minor typo

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

10 years agoA+C: Nathan P Finch (individual CLA)
Brad Fitzpatrick [Thu, 30 Oct 2014 20:19:29 +0000 (17:19 -0300)]
A+C: Nathan P Finch (individual CLA)

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

10 years agoA+C: add Jed Denlea (Fastly corporate CLA)
Brad Fitzpatrick [Thu, 30 Oct 2014 20:15:43 +0000 (13:15 -0700)]
A+C: add Jed Denlea (Fastly corporate CLA)

LGTM=iant
R=golang-codereviews, iant
CC=adg, golang-codereviews
https://golang.org/cl/165170043

10 years agomisc/cgo/test: fix bad C test code that fails on some configurations
Alan Donovan [Thu, 30 Oct 2014 18:08:55 +0000 (14:08 -0400)]
misc/cgo/test: fix bad C test code that fails on some configurations

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

10 years agocmd/cgo: avoid worklist nondeterminism.
Alan Donovan [Thu, 30 Oct 2014 18:01:14 +0000 (14:01 -0400)]
cmd/cgo: avoid worklist nondeterminism.

+ Regression test.

Fixes #9026.

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

10 years agodoc/go1.4.html: tweak http.Transport.DialTLS wording
Brad Fitzpatrick [Thu, 30 Oct 2014 13:58:31 +0000 (10:58 -0300)]
doc/go1.4.html: tweak http.Transport.DialTLS wording

It doesn't simplify, because it wasn't even possible before.

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

10 years agodoc/go1.4.html: fix typo
Mikio Hara [Thu, 30 Oct 2014 05:15:00 +0000 (14:15 +0900)]
doc/go1.4.html: fix typo

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

10 years agotag go1.4beta1
Andrew Gerrand [Thu, 30 Oct 2014 01:33:57 +0000 (12:33 +1100)]
tag go1.4beta1

TBR=rsc
R=r, rsc
CC=golang-codereviews
https://golang.org/cl/164240043

10 years agocmd/objdump: disable test failing on arm5 go1.4beta1
Russ Cox [Thu, 30 Oct 2014 01:02:58 +0000 (21:02 -0400)]
cmd/objdump: disable test failing on arm5

TBR=adg
CC=golang-codereviews
https://golang.org/cl/167890043

10 years agoruntime: change top-most return PC from goexit to goexit+PCQuantum
Russ Cox [Thu, 30 Oct 2014 00:37:44 +0000 (20:37 -0400)]
runtime: change top-most return PC from goexit to goexit+PCQuantum

If you get a stack of PCs from Callers, it would be expected
that every PC is immediately after a call instruction, so to find
the line of the call, you look up the line for PC-1.
CL 163550043 now explicitly documents that.

The most common exception to this is the top-most return PC
on the stack, which is the entry address of the runtime.goexit
function. Subtracting 1 from that PC will end up in a different
function entirely.

To remove this special case, make the top-most return PC
goexit+PCQuantum and then implement goexit in assembly
so that the first instruction can be skipped.

Fixes #7690.

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

10 years agoruntime: make TestCgoExternalThreadPanic run on windows
Alex Brainman [Wed, 29 Oct 2014 23:24:37 +0000 (10:24 +1100)]
runtime: make TestCgoExternalThreadPanic run on windows

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

10 years agodoc/go1.4.html: final library changes
Rob Pike [Wed, 29 Oct 2014 22:35:48 +0000 (15:35 -0700)]
doc/go1.4.html: final library changes
First draft now complete.

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

10 years agocmd/objdump: use cmd/internal/objfile
Russ Cox [Wed, 29 Oct 2014 22:07:24 +0000 (18:07 -0400)]
cmd/objdump: use cmd/internal/objfile

This removes a bunch of ugly duplicate code.
The end goal is to factor the disassembly code
into cmd/internal/objfile too, so that pprof can use it,
but one step at a time.

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

10 years agodoc/go1.4.html: gccgo status
Rob Pike [Wed, 29 Oct 2014 20:07:34 +0000 (13:07 -0700)]
doc/go1.4.html: gccgo status

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

10 years agoruntime: fix line number in first stack frame in printed stack trace
Russ Cox [Wed, 29 Oct 2014 19:14:24 +0000 (15:14 -0400)]
runtime: fix line number in first stack frame in printed stack trace

Originally traceback was only used for printing the stack
when an unexpected signal came in. In that case, the
initial PC is taken from the signal and should be used
unaltered. For the callers, the PC is the return address,
which might be on the line after the call; we subtract 1
to get to the CALL instruction.

Traceback is now used for a variety of things, and for
almost all of those the initial PC is a return address,
whether from getcallerpc, or gp->sched.pc, or gp->syscallpc.
In those cases, we need to subtract 1 from this initial PC,
but the traceback code had a hard rule "never subtract 1
from the initial PC", left over from the signal handling days.

Change gentraceback to take a flag that specifies whether
we are tracing a trap.

Change traceback to default to "starting with a return PC",
which is the overwhelmingly common case.

Add tracebacktrap, like traceback but starting with a trap PC.

Use tracebacktrap in signal handlers.

Fixes #7690.

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

10 years agoruntime: update comment for Callers
Russ Cox [Wed, 29 Oct 2014 19:14:04 +0000 (15:14 -0400)]
runtime: update comment for Callers

Attempt to clear up confusion about how to turn
the PCs reported by Callers into the file and line
number people actually want.

Fixes #7690.

LGTM=r, chris.cs.guy
R=r, chris.cs.guy
CC=golang-codereviews
https://golang.org/cl/163550043

10 years agodoc/go1.4.html: half of the small library changes
Rob Pike [Wed, 29 Oct 2014 15:15:58 +0000 (08:15 -0700)]
doc/go1.4.html: half of the small library changes

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

10 years agofmt: fix one-letter typo in doc.go
Rob Pike [Wed, 29 Oct 2014 13:53:05 +0000 (06:53 -0700)]
fmt: fix one-letter typo in doc.go
Stupid mistake in previous CL.

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

10 years agocmd/objdump: skip extld test on plan9
Russ Cox [Wed, 29 Oct 2014 04:03:17 +0000 (00:03 -0400)]
cmd/objdump: skip extld test on plan9

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

10 years agoruntime: fix windows build
Russ Cox [Wed, 29 Oct 2014 04:02:29 +0000 (00:02 -0400)]
runtime: fix windows build

TBR=austin
CC=golang-codereviews
https://golang.org/cl/167820043

10 years agocmd/gc: fix build - remove unused variables in walkprint
Russ Cox [Wed, 29 Oct 2014 03:45:01 +0000 (23:45 -0400)]
cmd/gc: fix build - remove unused variables in walkprint

TBR=austin
CC=golang-codereviews
https://golang.org/cl/162420043

10 years agocmd/objdump: disassemble local text symbols
Ian Lance Taylor [Wed, 29 Oct 2014 03:25:55 +0000 (23:25 -0400)]
cmd/objdump: disassemble local text symbols

Fixes #8803.

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

10 years agocmd/gc: fix internal compiler error in struct compare
Russ Cox [Wed, 29 Oct 2014 03:22:46 +0000 (23:22 -0400)]
cmd/gc: fix internal compiler error in struct compare

Fixes #9006.

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

10 years agofmt: fix documentation for %g and %G
Rob Pike [Wed, 29 Oct 2014 03:19:03 +0000 (20:19 -0700)]
fmt: fix documentation for %g and %G
It now echoes what strconv.FormatFloat says.

Fixes #9012.

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

10 years agodoc/go1.4.html: GODEBUG and assembler changes
Rob Pike [Wed, 29 Oct 2014 03:12:17 +0000 (20:12 -0700)]
doc/go1.4.html: GODEBUG and assembler changes

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

10 years agoruntime: add GODEBUG invalidptr setting
Russ Cox [Wed, 29 Oct 2014 01:53:31 +0000 (21:53 -0400)]
runtime: add GODEBUG invalidptr setting

Fixes #8861.
Fixes #8911.

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

10 years agoruntime: fix unrecovered panic on external thread
Russ Cox [Wed, 29 Oct 2014 01:53:09 +0000 (21:53 -0400)]
runtime: fix unrecovered panic on external thread

Fixes #8588.

LGTM=austin
R=austin
CC=golang-codereviews, khr
https://golang.org/cl/159700044

10 years agocmd/gc: avoid use of goprintf
Russ Cox [Wed, 29 Oct 2014 01:52:53 +0000 (21:52 -0400)]
cmd/gc: avoid use of goprintf

goprintf is a printf-like print for Go.
It is used in the code generated by 'defer print(...)' and 'go print(...)'.

Normally print(1, 2, 3) turns into

        printint(1)
        printint(2)
        printint(3)

but defer and go need a single function call to give the runtime;
they give the runtime something like goprintf("%d%d%d", 1, 2, 3).

Variadic functions like goprintf cannot be described in the new
type information world, so we have to replace it.

Replace with a custom function, so that defer print(1, 2, 3) turns
into

        defer func(a1, a2, a3 int) {
                print(a1, a2, a3)
        }(1, 2, 3)

(and then the print becomes three different printints as usual).

Fixes #8614.

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

10 years agoos: fix write on Plan 9
David du Colombier [Tue, 28 Oct 2014 21:44:59 +0000 (22:44 +0100)]
os: fix write on Plan 9

In CL 160670043 the write function was changed
so a zero-length write is now allowed. This leads
the ExampleWriter_Init test to fail.

The reason is that Plan 9 preserves message
boundaries, while the os library expects systems
that don't preserve them. We have to ignore
zero-length writes so they will never turn into EOF.

This issue was previously discussed in CL 7406046.

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