]> Cypherpunks repositories - gostls13.git/log
gostls13.git
10 years agoundo CL 135230043 / 60812bad3769
Russ Cox [Sat, 30 Aug 2014 04:16:07 +0000 (00:16 -0400)]
undo CL 135230043 / 60812bad3769

broke api check everywhere

««« original CL description
runtime: fix openbsd build

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

»»»

TBR=mdempsky
CC=golang-codereviews
https://golang.org/cl/137010043

10 years agonet: implement query-response fast failover in builtin dns stub resolver
Alex A Skinner [Sat, 30 Aug 2014 04:12:28 +0000 (13:12 +0900)]
net: implement query-response fast failover in builtin dns stub resolver

Speed improvements via code cleanup, and changes to make go dns behave more like glibc resolver.  See https://groups.google.com/forum/#!topic/golang-dev/lV-0aHqxVeo

Fixes #6579.

Benchmark results on linux/amd64

benchmark                                  old ns/op    new ns/op    delta
BenchmarkGoLookupIP                          4831903      2572937  -46.75%
BenchmarkGoLookupIPNoSuchHost               10114105      2419641  -76.08%
BenchmarkGoLookupIPWithBrokenNameServer  20007735624   5004490730  -74.99%

benchmark                                 old allocs   new allocs    delta
BenchmarkGoLookupIP                              287          288    0.35%
BenchmarkGoLookupIPNoSuchHost                    204          102  -50.00%
BenchmarkGoLookupIPWithBrokenNameServer          410          358  -12.68%

benchmark                                  old bytes    new bytes    delta
BenchmarkGoLookupIP                            13181        13271    0.68%
BenchmarkGoLookupIPNoSuchHost                  17260         8714  -49.51%
BenchmarkGoLookupIPWithBrokenNameServer        28160        22432  -20.34%

LGTM=mikioh.mikioh
R=golang-codereviews, mikioh.mikioh, bradfitz, josharian, abursavich
CC=golang-codereviews
https://golang.org/cl/128820043

10 years agoruntime: fix openbsd build
Matthew Dempsky [Sat, 30 Aug 2014 03:51:26 +0000 (20:51 -0700)]
runtime: fix openbsd build

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

10 years agoruntime: rename Sigaltstack to SigaltstackT
Ian Lance Taylor [Fri, 29 Aug 2014 23:11:05 +0000 (16:11 -0700)]
runtime: rename Sigaltstack to SigaltstackT

Avoids a conflict between the type and function sigaltstack.

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

10 years agoundo CL 107150043 / caa2646daa63
Mikio Hara [Fri, 29 Aug 2014 22:52:20 +0000 (07:52 +0900)]
undo CL 107150043 / caa2646daa63

preparing for the syscall package freeze.
the change for issue 8218 is only applied to go.sys/unix.

««« original CL description
syscall: implement setresuid(2) and setresgid(2) on OpenBSD/FreeBSD/DragonflyBSD

Fixes #8218.

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

»»»

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

10 years agonet: ensure identical queries are not sent multiple times in builtin stub resolver
Alex A Skinner [Fri, 29 Aug 2014 22:50:50 +0000 (07:50 +0900)]
net: ensure identical queries are not sent multiple times in builtin stub resolver

Prevents non-rooted queries with > ndots dots from being tried twice on error.
Fixes #8616.

Benchmark results on linux/amd64
benchmark                        old ns/op    new ns/op    delta
BenchmarkGoLookupIPNoSuchHost      8212394      4413293  -46.26%

benchmark                       old allocs   new allocs    delta
BenchmarkGoLookupIPNoSuchHost          216          108  -50.00%

benchmark                        old bytes    new bytes    delta
BenchmarkGoLookupIPNoSuchHost        17460         8726  -50.02%

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

10 years agoruntime: make allp a static array
Russ Cox [Fri, 29 Aug 2014 20:41:08 +0000 (16:41 -0400)]
runtime: make allp a static array

It is anyway, just an allocated one.
Giving it a sized type makes Go access nicer.

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

10 years agoruntime: convert lock*.c to Go
Russ Cox [Fri, 29 Aug 2014 20:20:48 +0000 (16:20 -0400)]
runtime: convert lock*.c to Go

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

10 years agoruntime: include constants and defs_*_*.h types in generated Go defs
Russ Cox [Fri, 29 Aug 2014 20:00:31 +0000 (16:00 -0400)]
runtime: include constants and defs_*_*.h types in generated Go defs

I had to rename Kevent and Sigaction to avoid the functions of the
same (lowercase) name.

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

10 years agocrypto: add Signer
Adam Langley [Fri, 29 Aug 2014 19:36:30 +0000 (12:36 -0700)]
crypto: add Signer

Signer is an interface to support opaque private keys.
These keys typically result from being kept in special hardware
(i.e. a TPM) although sometimes operating systems provide a
similar interface using process isolation for security rather
than hardware boundaries.

This changes provides interfaces for representing them and
alters crypto/tls so that client certificates can use
opaque keys.

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

10 years agotext/template/parse: restore pointer-only receivers for Type on Dot and Nil
Rob Pike [Fri, 29 Aug 2014 17:40:45 +0000 (10:40 -0700)]
text/template/parse: restore pointer-only receivers for Type on Dot and Nil
Needless except that the api tool complains. We could fix that issue instead.

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

10 years agoruntime: run runtime.init
Russ Cox [Fri, 29 Aug 2014 17:22:31 +0000 (13:22 -0400)]
runtime: run runtime.init

Run it right before main.init.
There is still some runtime initialization that
happens before runtime.init, and some of that
may call into Go code (for example to acquire locks)
so this timing is not perfect, but I believe it is the
best we can do.

This came up because global variables intialized
to func values are done in the generated init code,
not in the linker.

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

10 years agocmd/gc: allow runtime to define a hex integer type for printing
Russ Cox [Fri, 29 Aug 2014 17:22:17 +0000 (13:22 -0400)]
cmd/gc: allow runtime to define a hex integer type for printing

As part of the translation of the runtime, we need to rewrite
C printf calls to Go print calls. Consider this C printf:

        runtime·printf("[signal %x code=%p addr=%p pc=%p]\n",
                g->sig, g->sigcode0, g->sigcode1, g->sigpc);

Today the only way to write that in Go is:

        print("[signal ")
        printhex(uint64(g->sig))
        print(" code=")
        printhex(uint64(g->sigcode0))
        print(" addr=")
        printhex(uint64(g->sigcode1))
        print(" pc=")
        printhex(uint64(g->sigpc))
        print("]\n")

(That's nearly exactly what runtime code looked like in C before
I added runtime·printf.)

This CL recognizes the unexported type runtime.hex as an integer
that should be printed in hexadecimal instead of decimal.
It's a little kludgy, but it's restricted to package runtime.
Other packages can define type hex with no effect at all.

Now we can translate that original printf as the more compact:

        print("[signal ", hex(g->sig), " code=", hex(g->sigcode0),
                " addr=", hex(g->sigcode1), " pc=", hex(g->sigpc), "]\n")

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

10 years agoruntime: implement 64 bit division in Go
Josh Bleecher Snyder [Fri, 29 Aug 2014 16:55:33 +0000 (09:55 -0700)]
runtime: implement 64 bit division in Go

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

10 years agotext/template: add back pointer to Nodes for better error generation
Rob Pike [Fri, 29 Aug 2014 16:54:00 +0000 (09:54 -0700)]
text/template: add back pointer to Nodes for better error generation
ErrorContext now has all the information it needs from the Node,
rather than depending on the template that contains it. This makes
it easier for html/template to generate correct locations in its
error messages.

Updated html/template to use this ability where it is easy, which is
not everywhere, but more work can probably push it through.

Fixes #8577.

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

10 years agoruntime: clean up GC code
Dmitriy Vyukov [Fri, 29 Aug 2014 14:44:38 +0000 (18:44 +0400)]
runtime: clean up GC code
Remove C version of GC.
Convert freeOSMemory to Go.
Restore g0 check in GC.
Remove unknownGCPercent check in GC,
it's initialized explicitly now.

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

10 years agoruntime: fix sprintf index out of bounds
Russ Cox [Fri, 29 Aug 2014 14:29:00 +0000 (10:29 -0400)]
runtime: fix sprintf index out of bounds

Breaks on Plan 9, apparently.
The other systems must not run sprintf during all.bash.
I'd write a test but it's all going away.

TBR=r
CC=0intro, golang-codereviews
https://golang.org/cl/133260044

10 years agoruntime: allow sysvicall functions to be called from Go
Aram Hăvărneanu [Fri, 29 Aug 2014 10:28:09 +0000 (12:28 +0200)]
runtime: allow sysvicall functions to be called from Go

Convert them to Go in the process.

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

10 years agoruntime: allow to call stdcall from Go on windows
Dmitriy Vyukov [Fri, 29 Aug 2014 08:44:07 +0000 (12:44 +0400)]
runtime: allow to call stdcall from Go on windows
I've started with just one function with 8 arguments,
but stdcall is called from nosplit functions
and 8 args overflow nosplit area.

LGTM=aram, alex.brainman
R=golang-codereviews, aram, alex.brainman, dave
CC=golang-codereviews, iant, khr, rsc
https://golang.org/cl/135090043

10 years agoimage/png: do not apply filters if level is NoCompression
Rui Ueyama [Fri, 29 Aug 2014 07:17:48 +0000 (17:17 +1000)]
image/png: do not apply filters if level is NoCompression

PNG filters are applied to get better compression ratio.
It does not make sense to apply them if we are not going
to compress.

LGTM=nigeltao
R=nigeltao
CC=golang-codereviews
https://golang.org/cl/137830043

10 years agoruntime: convert forcegc helper to Go
Dmitriy Vyukov [Fri, 29 Aug 2014 07:08:10 +0000 (11:08 +0400)]
runtime: convert forcegc helper to Go
Also fix a bunch of bugs:
1. Accesses to last_gc must be atomic (it's int64).
2. last_gc still can be 0 during first checks in sysmon, check for 0.
3. forcegc.g can be unitialized when sysmon accesses it:
        forcegc.g is initialized by main goroutine (forcegc.g = newproc1(...)),
        and main goroutine is unsynchronized with both sysmon and forcegc goroutine.
        Initialize forcegc.g in the forcegc goroutine itself instead.

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

10 years agoruntime: don't allocate a new string in printf
Keith Randall [Fri, 29 Aug 2014 06:26:50 +0000 (23:26 -0700)]
runtime: don't allocate a new string in printf

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

10 years agoruntime: convert closechan/chanlen/chancap to Go
Keith Randall [Fri, 29 Aug 2014 04:35:59 +0000 (21:35 -0700)]
runtime: convert closechan/chanlen/chancap to Go

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

10 years agonet: add more cases to lookup API test
Mikio Hara [Fri, 29 Aug 2014 03:28:31 +0000 (12:28 +0900)]
net: add more cases to lookup API test

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

10 years agoruntime: convert print.c to Go
Russ Cox [Fri, 29 Aug 2014 03:26:40 +0000 (23:26 -0400)]
runtime: convert print.c to Go

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

10 years agotest: add test that caused gccgo to crash on valid code
Ian Lance Taylor [Fri, 29 Aug 2014 02:51:21 +0000 (19:51 -0700)]
test: add test that caused gccgo to crash on valid code

Update #8612

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

10 years agomisc/cgo/test: disable issue 8428 regress test on darwin
Matthew Dempsky [Fri, 29 Aug 2014 02:40:57 +0000 (22:40 -0400)]
misc/cgo/test: disable issue 8428 regress test on darwin

Clang 3.2 and older (as shipped with OS X Mountain Lion and older)
outputs ambiguous DWARF debug info that makes it impossible for us to
reconstruct accurate type information as required for this test.

Fixes #8611.

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

10 years agoruntime: remove holes in FUNCDATA tables
Matthew Dempsky [Fri, 29 Aug 2014 02:08:09 +0000 (19:08 -0700)]
runtime: remove holes in FUNCDATA tables

Shrinks the text segment size by about 1.5% for the "go", "gofmt",
and "camlistored" commands on linux/amd64.

Before:
$ size go gofmt camlistored
   text    data     bss     dec     hex filename
6506842  136996  105784 6749622  66fdb6 go
2376046   85232   90984 2552262  26f1c6 gofmt
17051050  190256  130320 17371626 10911ea camlistored

After:
$ size go gofmt camlistored
   text    data     bss     dec     hex filename
6403034  136996  105784 6645814  656836 go
2331118   85232   90984 2507334  264246 gofmt
16842586  190256  130320 17163162 105e39a camlistored

Fixes #8604.

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

10 years agoruntime: fix Plan 9 build for new C calling convention
Anthony Martin [Thu, 28 Aug 2014 23:02:15 +0000 (16:02 -0700)]
runtime: fix Plan 9 build for new C calling convention

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

10 years agocmd/internal/objfile: fix dissassembly of Plan 9 object files
Anthony Martin [Thu, 28 Aug 2014 23:01:31 +0000 (16:01 -0700)]
cmd/internal/objfile: fix dissassembly of Plan 9 object files

This is a reapplication of CL 93520045 (changeset 5012df7fac58)
since that was lost during the move to an internal package.

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

10 years agocrypto/md5: use go generate to create md5block.go
ChaiShushan [Thu, 28 Aug 2014 22:04:10 +0000 (15:04 -0700)]
crypto/md5: use go generate to create md5block.go

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

10 years agocompress/flate: use go generate to create fixedhuff.go
ChaiShushan [Thu, 28 Aug 2014 22:04:03 +0000 (15:04 -0700)]
compress/flate: use go generate to create fixedhuff.go

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

10 years agostrconv: use go generate to create isprint.go
ChaiShushan [Thu, 28 Aug 2014 21:55:02 +0000 (14:55 -0700)]
strconv: use go generate to create isprint.go

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

10 years agoimage/color/palette: use go generate to create palette.go
ChaiShushan [Thu, 28 Aug 2014 21:49:32 +0000 (14:49 -0700)]
image/color/palette: use go generate to create palette.go

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

10 years agoruntime: fix openbsd/386
Matthew Dempsky [Thu, 28 Aug 2014 21:23:25 +0000 (14:23 -0700)]
runtime: fix openbsd/386

In revision 05c3fee13eb3, openbsd/386's tfork implementation was
accidentally changed in one instruction from using the "params"
parameter to using the "psize" parameter.

While here, OpenBSD's __tfork system call returns a pid_t which is an
int32 on all OpenBSD architectures, so change runtime.tfork's return
type from int64 to int32 and update the assembly implementations
accordingly.

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

10 years agoruntime: move finalizer thread to Go.
Keith Randall [Thu, 28 Aug 2014 20:23:10 +0000 (13:23 -0700)]
runtime: move finalizer thread to Go.

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

10 years agogo/token: implement PositionFor accessors
Robert Griesemer [Thu, 28 Aug 2014 19:16:06 +0000 (12:16 -0700)]
go/token: implement PositionFor accessors

Package addition.

PositionFor permits access to both, positions
adjusted by //line comments (like the Position
accessors), and unadjusted "raw" positions
unaffected by //line comments.

Raw positions are required for correct formatting
of source code via go/printer which until now had
to manually fix adjusted positions.

Fixes #7702.

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

10 years agomime: style, perf, and test updates to case-insensitive lookups
Brad Fitzpatrick [Thu, 28 Aug 2014 18:07:46 +0000 (11:07 -0700)]
mime: style, perf, and test updates to case-insensitive lookups

Only grab the lock once, don't allocate, add more tests.

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

10 years agodatabase/sql: use a value type instead of a pointer
Brad Fitzpatrick [Thu, 28 Aug 2014 18:07:29 +0000 (11:07 -0700)]
database/sql: use a value type instead of a pointer

Follow-up to https://golang.org/cl/107020044/
Also add a little comment.

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

10 years agoruntime: compare only until min(len(s1), len(s2))
David Crawshaw [Thu, 28 Aug 2014 16:07:52 +0000 (12:07 -0400)]
runtime: compare only until min(len(s1), len(s2))

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

10 years agospec: move Method expr/value section near selectors
Robert Griesemer [Thu, 28 Aug 2014 15:53:25 +0000 (08:53 -0700)]
spec: move Method expr/value section near selectors

Preparation for fixing issue 5769 (method selectors
do not auto-dereference): The actual fix may require
some cleanups in all these sections, and syntactically,
method expressions and method values are selector
expressions. Moving them next to each other so that
it's easy to see the actual changes (next CL).

No content changes besides the section moves.

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

10 years agocmd/api: more runtime fixes
Russ Cox [Thu, 28 Aug 2014 15:51:09 +0000 (11:51 -0400)]
cmd/api: more runtime fixes

This is getting a little annoying, but once the runtime structs are
being defined in Go, these will go away. So it's only a temporary cost.

TBR=bradfitz
CC=golang-codereviews
https://golang.org/cl/135940043

10 years agodatabase/sql: use slices rather than container/list
Alberto García Hierro [Thu, 28 Aug 2014 15:49:56 +0000 (08:49 -0700)]
database/sql: use slices rather than container/list

Significantly reduces the number of allocations, while also
simplifying the code and increasing performance by a 1-2%.

benchmark                          old ns/op     new ns/op     delta
BenchmarkConcurrentDBExec          13290567      13026236      -1.99%
BenchmarkConcurrentStmtQuery       13249399      13008879      -1.82%
BenchmarkConcurrentStmtExec        8806237       8680182       -1.43%
BenchmarkConcurrentTxQuery         13628379      12756293      -6.40%
BenchmarkConcurrentTxExec          4794800       4722440       -1.51%
BenchmarkConcurrentTxStmtQuery     5040804       5200721       +3.17%
BenchmarkConcurrentTxStmtExec      1366574       1336626       -2.19%
BenchmarkConcurrentRandom          11119120      10926113      -1.74%

benchmark                          old allocs     new allocs     delta
BenchmarkConcurrentDBExec          14191          13684          -3.57%
BenchmarkConcurrentStmtQuery       16020          15514          -3.16%
BenchmarkConcurrentStmtExec        4179           3672           -12.13%
BenchmarkConcurrentTxQuery         16025          15518          -3.16%
BenchmarkConcurrentTxExec          12717          12709          -0.06%
BenchmarkConcurrentTxStmtQuery     15532          15525          -0.05%
BenchmarkConcurrentTxStmtExec      2175           2168           -0.32%
BenchmarkConcurrentRandom          12320          11997          -2.62%

benchmark                          old bytes     new bytes     delta
BenchmarkConcurrentDBExec          2164827       2139760       -1.16%
BenchmarkConcurrentStmtQuery       2418070       2394030       -0.99%
BenchmarkConcurrentStmtExec        1728782       1704371       -1.41%
BenchmarkConcurrentTxQuery         2477144       2452620       -0.99%
BenchmarkConcurrentTxExec          588920        588343        -0.10%
BenchmarkConcurrentTxStmtQuery     790866        796578        +0.72%
BenchmarkConcurrentTxStmtExec      98502         98143         -0.36%
BenchmarkConcurrentRandom          1725906       1710220       -0.91%

LGTM=ruiu, dave, bradfitz
R=golang-codereviews, ruiu, gobot, bradfitz, dave, minux
CC=bradfitz, golang-codereviews
https://golang.org/cl/107020044

10 years agoruntime: fix arm build
David Crawshaw [Thu, 28 Aug 2014 15:47:54 +0000 (11:47 -0400)]
runtime: fix arm build

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

10 years agoruntime: fix build
Russ Cox [Thu, 28 Aug 2014 15:45:30 +0000 (11:45 -0400)]
runtime: fix build

'range hash' makes a copy of the hash array in the stack, creating
a very large stack frame. It's just the right amount that it
uses most but not all of the total stack size. If you have a lot
of environment variables, like the builders, then this is too
much and the g0 stack runs out of space.

TBR=bradfitz
CC=golang-codereviews
https://golang.org/cl/132350043

10 years agomime: Make filename extensions case-insensitive
Jeff R. Allen [Thu, 28 Aug 2014 15:22:54 +0000 (08:22 -0700)]
mime: Make filename extensions case-insensitive

Fixes #8350.

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

10 years agoruntime: convert runtime1.goc, noasm_arm.goc to Go
Russ Cox [Thu, 28 Aug 2014 14:46:59 +0000 (10:46 -0400)]
runtime: convert runtime1.goc, noasm_arm.goc to Go

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

10 years agoruntime: finish converting iface.goc to iface.go
Russ Cox [Thu, 28 Aug 2014 14:36:48 +0000 (10:36 -0400)]
runtime: finish converting iface.goc to iface.go

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

10 years agopng: make the encoder configurable
Jeff R. Allen [Thu, 28 Aug 2014 05:50:13 +0000 (15:50 +1000)]
png: make the encoder configurable

In order to support different compression levels, make the
encoder type public, and add an Encoder method to it.

Fixes #8499.

LGTM=nigeltao
R=nigeltao, ruiu
CC=golang-codereviews
https://golang.org/cl/129190043

10 years agoruntime: fix nacl/386 build
Russ Cox [Thu, 28 Aug 2014 03:41:43 +0000 (23:41 -0400)]
runtime: fix nacl/386 build

I changed all the NACL_SYSJMP to NACL_SYSCALL in
an earlier CL, but I missed the fact that NACL_SYSCALL
will push another return PC on the stack, so that the
arguments will no longer be in the right place.
Since we have to make our own call, we also have to
copy the arguments. Do that.

Fixes nacl/386 build.

TBR=minux
CC=golang-codereviews
https://golang.org/cl/135050044

10 years agocmd/cc: translate C Eface type as Go interface{}
Russ Cox [Thu, 28 Aug 2014 03:41:27 +0000 (23:41 -0400)]
cmd/cc: translate C Eface type as Go interface{}

This will allow structs containing Efaces in C to be
manipulated as structs containing real interfaces in Go.
The eface struct is still defined for use by Go code.

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

10 years agocmd/api: fix for Lock⇒Mutex change
Russ Cox [Thu, 28 Aug 2014 03:41:10 +0000 (23:41 -0400)]
cmd/api: fix for Lock⇒Mutex change

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

10 years agoruntime: rename Lock to Mutex
Russ Cox [Thu, 28 Aug 2014 03:32:49 +0000 (23:32 -0400)]
runtime: rename Lock to Mutex

Mutex is consistent with package sync, and when in the
unexported Go form it avoids having a conflcit between
the type (now mutex) and the function (lock).

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

10 years agodebug/elf: support arm64 relocations
Michael Hudson-Doyle [Thu, 28 Aug 2014 03:18:56 +0000 (20:18 -0700)]
debug/elf: support arm64 relocations

This adds the minimal support for AArch64/arm64 relocations
needed to get cgo to work (when an isomorphic patch is applied
to gccgo) and a test.

This change uses the "AAarch64" name for the architecture rather
than the more widely accepted "arm64" because that's the name that
the relevant docs from ARM such as

   http://infocenter.arm.com/help/topic/com.arm.doc.ihi0056b/IHI0056B_aaelf64.pdf

all use.

Fixes #8533.

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

10 years agocmd/5l, cmd/6l, cmd/8l: fix nacl binary corruption bug
Russ Cox [Thu, 28 Aug 2014 02:53:28 +0000 (22:53 -0400)]
cmd/5l, cmd/6l, cmd/8l: fix nacl binary corruption bug

NaCl requires the addition of a 32-byte "halt sled" at the end
of the text segment. This means that segtext.len is actually
32 bytes shorter than reality. The computation of the file offset
of the end of the data segment did not take this 32 bytes into
account, so if len and len+32 rounded up (by 64k) to different
values, the symbol table overwrote the last page of the data
segment.

The last page of the data segment is usually the C .string
symbols, which contain the strings used in error prints
by the runtime. So when this happens, your program
probably crashes, and then when it does, you get binary
garbage instead of all the usual prints.

The chance of hitting this with a randomly sized text segment
is 32 in 65536, or 1 in 2048.

If you add or remove ANY code while trying to debug this
problem, you're overwhelmingly likely to bump the text
segment one way or the other and make the bug disappear.

Correct all the computations to use segdata.fileoff+segdata.filelen
instead of trying to rederive segdata.fileoff.

This fixes the failure during the nacl/amd64p32 build.

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

10 years agoruntime: fix nacl build
Russ Cox [Thu, 28 Aug 2014 02:50:08 +0000 (22:50 -0400)]
runtime: fix nacl build

The NaCl "system calls" were assumed to have a compatible
return convention with the C compiler, and we were using
tail jumps to those functions. Don't do that anymore.

Correct mistake introduced in newstackcall duringconversion
from (SP) to (FP) notation. (Actually this fix, in asm_amd64p32.s,
slipped into the C compiler change, but update the name to
match what go vet wants.)

Correct computation of caller stack pointer in morestack:
on amd64p32, the saved PC is the size of a uintreg, not uintptr.
This may not matter, since it's been like this for a while,
but uintreg is the correct one. (And on non-NaCl they are the same.)

This will allow the NaCl build to get much farther.
It will probably still not work completely.
There's a bug in 6l that needs fixing too.

TBR=minux
CC=golang-codereviews
https://golang.org/cl/134990043

10 years agoruntime: fix arm5 softfloat build
Dave Cheney [Thu, 28 Aug 2014 02:41:32 +0000 (12:41 +1000)]
runtime: fix arm5 softfloat build

runtime._sfloat2 now returns the lr value on the stack, not R0.

Credit to Russ Cox for the fix.

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

10 years agoruntime: fix arm build
Russ Cox [Thu, 28 Aug 2014 02:03:32 +0000 (22:03 -0400)]
runtime: fix arm build

TBR=minux
CC=golang-codereviews
https://golang.org/cl/137810043

10 years agocmd/cc, runtime: preserve C runtime type names in generated Go
Russ Cox [Thu, 28 Aug 2014 01:59:49 +0000 (21:59 -0400)]
cmd/cc, runtime: preserve C runtime type names in generated Go

uintptr or uint64 in the runtime C were turning into uint in the Go,
bool was turning into uint8, and so on. Fix that.

Also delete Go wrappers for C functions.
The C functions can be called directly now
(but still eventually need to be converted to Go).

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

10 years agocmd/{addr2line,objdump}: fix finding pclntab and symtab for pe and plan9obj
Matthew Dempsky [Thu, 28 Aug 2014 01:01:17 +0000 (18:01 -0700)]
cmd/{addr2line,objdump}: fix finding pclntab and symtab for pe and plan9obj

Broken by 8b5fc7c59d05.

Update #8092

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

10 years agocmd/{ld,link,objdump}, runtime, debug/gosym: move linker-defined symbols into runtime...
Matthew Dempsky [Thu, 28 Aug 2014 00:15:05 +0000 (20:15 -0400)]
cmd/{ld,link,objdump}, runtime, debug/gosym: move linker-defined symbols into runtime package

Fixes #8092.

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

10 years agoruntime: fix plan9 build
Russ Cox [Wed, 27 Aug 2014 21:38:01 +0000 (17:38 -0400)]
runtime: fix plan9 build

sighandler now returns its value on the stack.

TBR=0intro
CC=golang-codereviews
https://golang.org/cl/135900043

10 years agoruntime: fix solaris build
Russ Cox [Wed, 27 Aug 2014 18:52:25 +0000 (14:52 -0400)]
runtime: fix solaris build

nanotime1 is not a Go function and must not store its result at 0(FP).
That overwrites some data owned by the caller.

TBR=aram
CC=golang-codereviews
https://golang.org/cl/138730043

10 years agoruntime: fix windows signal handlers
Russ Cox [Wed, 27 Aug 2014 18:43:07 +0000 (14:43 -0400)]
runtime: fix windows signal handlers

Windows needs the return result in AX, but runtime.sighandler
no longer stores it in AX. Load it back during the assembly trampoline.

TBR=brainman
CC=golang-codereviews
https://golang.org/cl/133980043

10 years agoruntime: give nosplit functions 32 more bytes of headroom
Russ Cox [Wed, 27 Aug 2014 18:08:26 +0000 (14:08 -0400)]
runtime: give nosplit functions 32 more bytes of headroom

The Go calling convention uses more stack space than C.
On 64-bit systems we've been right up against the limit
(128 bytes, so only 16 words) and doing awful things to
our source code to work around it. Instead of continuing
to do awful things, raise the limit to 160 bytes.
I am prepared to raise the limit to 192 bytes if necessary,
but I think this will be enough.

Should fix current link-time stack overflow errors on
        - nacl/arm
        - netbsd/amd64
        - openbsd/amd64
        - solaris/amd64
        - windows/amd64

TBR=r
CC=golang-codereviews, iant
https://golang.org/cl/131450043

10 years agoruntime: restore header to first goroutine in Stack
Brad Fitzpatrick [Wed, 27 Aug 2014 16:31:32 +0000 (09:31 -0700)]
runtime: restore header to first goroutine in Stack

It appears to have been accidentally lost when converting
Stack from C to Go in https://golang.org/cl/129510043

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

10 years agocmd/cc, runtime: convert C compilers to use Go calling convention
Russ Cox [Wed, 27 Aug 2014 15:32:17 +0000 (11:32 -0400)]
cmd/cc, runtime: convert C compilers to use Go calling convention

To date, the C compilers and Go compilers differed only in how
values were returned from functions. This made it difficult to call
Go from C or C from Go if return values were involved. It also made
assembly called from Go and assembly called from C different.

This CL changes the C compiler to use the Go conventions, passing
results on the stack, after the arguments.
[Exception: this does not apply to C ... functions, because you can't
know where on the stack the arguments end.]

By doing this, the CL makes it possible to rewrite C functions into Go
one at a time, without worrying about which languages call that
function or which languages it calls.

This CL also updates all the assembly files in package runtime to use
the new conventions. Argument references of the form 40(SP) have
been rewritten to the form name+10(FP) instead, and there are now
Go func prototypes for every assembly function called from C or Go.
This means that 'go vet runtime' checks effectively every assembly
function, and go vet's output was used to automate the bulk of the
conversion.

Some functions, like seek and nsec on Plan 9, needed to be rewritten.

Many assembly routines called from C were reading arguments
incorrectly, using MOVL instead of MOVQ or vice versa, especially on
the less used systems like openbsd.
These were found by go vet and have been corrected too.
If we're lucky, this may reduce flakiness on those systems.

Tested on:
        darwin/386
        darwin/amd64
        linux/arm
        linux/386
        linux/amd64
If this breaks another system, the bug is almost certainly in the
sys_$GOOS_$GOARCH.s file, since the rest of the CL is tested
by the combination of the above systems.

LGTM=dvyukov, iant
R=golang-codereviews, 0intro, dave, alex.brainman, dvyukov, iant
CC=golang-codereviews, josharian, r
https://golang.org/cl/135830043

10 years agoruntime: changes to g->atomicstatus (nee status) to support concurrent GC
Rick Hudson [Wed, 27 Aug 2014 15:15:47 +0000 (11:15 -0400)]
runtime: changes to g->atomicstatus (nee status) to support concurrent GC

Every change to g->atomicstatus is now done atomically so that we can
ensure that all gs pass through a gc safepoint on demand. This allows
the GC to move from one phase to the next safely. In some phases the
stack will be scanned. This CL only deals with the infrastructure that
allows g->atomicstatus to go from one state to another. Future CLs
will deal with scanning and monitoring what phase the GC is in.

The major change was to moving to using a Gscan bit to indicate that
the status is in a scan state. The only bug fix was in oldstack where
I wasn't moving to a Gcopystack state in order to block scanning until
the new stack was in place. The proc.go file is waiting for an atomic
load instruction.

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

10 years agoCONTRIBUTORS: add Rick Hudson (Google CLA)
Russ Cox [Wed, 27 Aug 2014 15:10:01 +0000 (11:10 -0400)]
CONTRIBUTORS: add Rick Hudson (Google CLA)

TBR=rlh
CC=golang-codereviews
https://golang.org/cl/131410043

10 years agocmd/gc: fix undefined behaviour warnings in mparith3.c
Dave Cheney [Wed, 27 Aug 2014 05:23:38 +0000 (15:23 +1000)]
cmd/gc: fix undefined behaviour warnings in mparith3.c

Update #8527

Fixes two warnings:

src/cmd/gc/mparith3.c:255:10: runtime error: shift exponent 52 is too large for 32-bit type 'int'
src/cmd/gc/mparith3.c:254:14: runtime error: shift exponent 52 is too large for 32-bit type 'int'

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

10 years agotime: use go generate rather than Makefile (windows only)
Rob Pike [Tue, 26 Aug 2014 21:45:53 +0000 (14:45 -0700)]
time: use go generate rather than Makefile (windows only)
Also make genzabbrs.go more self-contained.
Also run it (on Linux; does that matter?) to update the table.

LGTM=rsc
R=rsc, alex.brainman
CC=golang-codereviews
https://golang.org/cl/128350044

10 years agounicode: use go generate instead of make to create tables.go
Rob Pike [Tue, 26 Aug 2014 21:43:03 +0000 (14:43 -0700)]
unicode: use go generate instead of make to create tables.go

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

10 years agoA+C: Joe Shaw (individual CLA)
Brad Fitzpatrick [Tue, 26 Aug 2014 21:24:04 +0000 (14:24 -0700)]
A+C: Joe Shaw (individual CLA)

Generated by a+c.

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

10 years agoruntime: name hi and lo parts of ret in assembly
Josh Bleecher Snyder [Tue, 26 Aug 2014 19:38:18 +0000 (12:38 -0700)]
runtime: name hi and lo parts of ret in assembly

Makes vet happy.

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

10 years agodoc/cmd.html: close a tag.
Oling Cat [Tue, 26 Aug 2014 12:26:48 +0000 (05:26 -0700)]
doc/cmd.html: close a tag.

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

10 years agoruntime: convert Stack to Go.
Rémy Oudompheng [Tue, 26 Aug 2014 06:34:46 +0000 (08:34 +0200)]
runtime: convert Stack to Go.

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

10 years agoruntime: convert int64tofloat64, uint64tofloat64 to Go
Dave Cheney [Tue, 26 Aug 2014 05:39:04 +0000 (05:39 +0000)]
runtime: convert int64tofloat64, uint64tofloat64 to Go

I noticed that 5g doesn't flush the float64 result back to the stack, hence the change in the function signature. I'm wondering if I should also change the signature for the other two functions.

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

10 years agoruntime,sync: Convert procPin and procUnpin functions to Go.
Sanjay Menakuru [Tue, 26 Aug 2014 05:01:52 +0000 (09:01 +0400)]
runtime,sync: Convert procPin and procUnpin functions to Go.

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

10 years agonet/http: fix data race in test
Brad Fitzpatrick [Tue, 26 Aug 2014 04:50:42 +0000 (21:50 -0700)]
net/http: fix data race in test

I can't reproduce the race, but this should fix it.

Fixes #8483

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

10 years agoio: document that Readers and Writers must not retain buffers
Brad Fitzpatrick [Tue, 26 Aug 2014 04:38:39 +0000 (21:38 -0700)]
io: document that Readers and Writers must not retain buffers

There are both many callers and many implementations of these
interfaces, so make the contract explicit. Callers generally
assume this, and at least the standard library and other
implementations obey this, but it's never stated explicitly,
making it somewhat risky to assume.

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

10 years agocmd/go: add missing doc for GOOS and GOARCH
ChaiShushan [Tue, 26 Aug 2014 03:01:43 +0000 (20:01 -0700)]
cmd/go: add missing doc for GOOS and GOARCH

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

10 years agoregexp: fix imports in the middle of the license header
Caleb Spare [Mon, 25 Aug 2014 23:42:15 +0000 (16:42 -0700)]
regexp: fix imports in the middle of the license header

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

10 years agoliblink: introduce way to avoid pc-relative addressing
Russ Cox [Mon, 25 Aug 2014 22:45:29 +0000 (18:45 -0400)]
liblink: introduce way to avoid pc-relative addressing

For Solaris. Sigh.

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

10 years agocmd/gofmt: don't permit -w with stdin
Robert Griesemer [Mon, 25 Aug 2014 22:29:47 +0000 (15:29 -0700)]
cmd/gofmt: don't permit -w with stdin

Also: use 0x644 file permission if a new file
is created (should not happen anymore, though).

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

10 years agounicode/maketables: add -output flag, buffer output, use gofmt
Rob Pike [Mon, 25 Aug 2014 21:56:35 +0000 (14:56 -0700)]
unicode/maketables: add -output flag, buffer output, use gofmt
Simplify the invocation (and speed it up substantially) in preparation
for move to go generate.

LGTM=bradfitz, mpvl
R=mpvl, bradfitz, josharian
CC=golang-codereviews
https://golang.org/cl/135790043

10 years agostrings, bytes: document behavior of Replace when old is empty
Caleb Spare [Mon, 25 Aug 2014 21:42:27 +0000 (14:42 -0700)]
strings, bytes: document behavior of Replace when old is empty

Fixes #8143.

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

10 years agocmd/go: clean up a couple of inconsequential nits in generate
Rob Pike [Mon, 25 Aug 2014 20:47:38 +0000 (13:47 -0700)]
cmd/go: clean up a couple of inconsequential nits in generate
Post-submit glitches caught by reviewers.

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

10 years agoruntime: restore scavenger constants
Dmitriy Vyukov [Mon, 25 Aug 2014 19:30:39 +0000 (23:30 +0400)]
runtime: restore scavenger constants
Once and for all.
Broken in cl/108640043.
I've messed it before. To test scavenger-related changes
one needs to alter the constants during final testing.
And then it's very easy to submit with the altered constants.

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

10 years agoruntime: restore nacl timens
Dmitriy Vyukov [Mon, 25 Aug 2014 19:24:18 +0000 (23:24 +0400)]
runtime: restore nacl timens
Deleted in cl/123700044.
I am not sure whether I need to restore it,
or delete rest of the uses...

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

10 years agonet/http: populate Request.Close in ReadRequest
Brad Fitzpatrick [Mon, 25 Aug 2014 18:44:08 +0000 (11:44 -0700)]
net/http: populate Request.Close in ReadRequest

Fixes #8261

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

10 years agocrypto/cipher: add CFB test vectors.
Adam Langley [Mon, 25 Aug 2014 18:40:10 +0000 (11:40 -0700)]
crypto/cipher: add CFB test vectors.

Fixes #8576.

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

10 years agocmd/gc, runtime: treat slices and strings like pointers in garbage collection
Russ Cox [Mon, 25 Aug 2014 18:38:19 +0000 (14:38 -0400)]
cmd/gc, runtime: treat slices and strings like pointers in garbage collection

Before, a slice with cap=0 or a string with len=0 might have its
base pointer pointing beyond the actual slice/string data into
the next block. The collector had to ignore slices and strings with
cap=0 in order to avoid misinterpreting the base pointer.

Now, a slice with cap=0 or a string with len=0 still has a base
pointer pointing into the actual slice/string data, no matter what.
The collector can now always scan the pointer, which means
strings and slices are no longer special.

Fixes #8404.

LGTM=khr, josharian
R=josharian, khr, dvyukov
CC=golang-codereviews
https://golang.org/cl/112570044

10 years agocmd/go: add GOOS and GOARCH to generate
Rob Pike [Mon, 25 Aug 2014 18:35:55 +0000 (11:35 -0700)]
cmd/go: add GOOS and GOARCH to generate
Fixes test failure in build, probably a good idea anyway.

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

10 years agocmd/go: add simple test for generate's line parser
Rob Pike [Mon, 25 Aug 2014 18:07:08 +0000 (11:07 -0700)]
cmd/go: add simple test for generate's line parser

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

10 years agoencoding/json: make ,string work when encoding pointer fields
Brad Fitzpatrick [Mon, 25 Aug 2014 17:32:46 +0000 (10:32 -0700)]
encoding/json: make ,string work when encoding pointer fields

It was respected by unmarshal, but not marshal, so they didn't
round-trip.

Fixes #8582

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

10 years agoruntime: round channel size in allocation instead of using system-specific pad field
Russ Cox [Mon, 25 Aug 2014 17:31:55 +0000 (13:31 -0400)]
runtime: round channel size in allocation instead of using system-specific pad field

Followup to CL 128700043.

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

10 years agoruntime: remove dedicated scavenger thread
Dmitriy Vyukov [Mon, 25 Aug 2014 16:59:52 +0000 (20:59 +0400)]
runtime: remove dedicated scavenger thread
A whole thread is too much for background scavenger that sleeps all the time anyway.
We already have sysmon thread that can do this work.
Also remove g->isbackground and simplify enter/exitsyscall.

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

10 years agoruntime: add comment
Dmitriy Vyukov [Mon, 25 Aug 2014 16:26:32 +0000 (20:26 +0400)]
runtime: add comment
Explain why it's safe to allocate chans with flagNoScan.

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

10 years agoruntime: convert timers to Go
Dmitriy Vyukov [Mon, 25 Aug 2014 16:25:22 +0000 (20:25 +0400)]
runtime: convert timers to Go

LGTM=rsc
R=golang-codereviews, ruiu, rsc, daniel.morsing
CC=golang-codereviews, khr
https://golang.org/cl/123700044

10 years agoruntime: convert async semaphores to Go
Dmitriy Vyukov [Mon, 25 Aug 2014 16:12:26 +0000 (20:12 +0400)]
runtime: convert async semaphores to Go

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