<feed xmlns='http://www.w3.org/2005/Atom'>
<title>go/src/pkg/runtime/stack.c, branch main</title>
<subtitle>Fork of Go programming language with my patches.</subtitle>
<id>http://git.kilabit.info/go/atom?h=main</id>
<link rel='self' href='http://git.kilabit.info/go/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/'/>
<updated>2014-09-08T04:08:51Z</updated>
<entry>
<title>build: move package sources from src/pkg to src</title>
<updated>2014-09-08T04:08:51Z</updated>
<author>
<name>Russ Cox</name>
<email>rsc@golang.org</email>
</author>
<published>2014-09-08T04:08:51Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=c007ce824d9a4fccb148f9204e04c23ed2984b71'/>
<id>urn:sha1:c007ce824d9a4fccb148f9204e04c23ed2984b71</id>
<content type='text'>
Preparation was in CL 134570043.
This CL contains only the effect of 'hg mv src/pkg/* src'.
For more about the move, see golang.org/s/go14nopkg.
</content>
</entry>
<entry>
<title>runtime: fix panic/wrapper/recover math</title>
<updated>2014-09-06T17:19:08Z</updated>
<author>
<name>Russ Cox</name>
<email>rsc@golang.org</email>
</author>
<published>2014-09-06T17:19:08Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=8473695797d346f9adf72ee40013a8c8421a7c87'/>
<id>urn:sha1:8473695797d346f9adf72ee40013a8c8421a7c87</id>
<content type='text'>
The gp-&gt;panicwrap adjustment is just fatally flawed.
Now that there is a Panic.argp field, update that instead.
That can be done on entry only, so that unwinding doesn't
need to worry about undoing anything. The wrappers
emit a few more instructions in the prologue but everything
else in the system gets much simpler.

It also fixes (without trying) a broken test I never checked in.

Fixes #7491.

LGTM=khr
R=khr
CC=dvyukov, golang-codereviews, iant, r
https://golang.org/cl/135490044
</content>
</entry>
<entry>
<title>runtime: disable StackCopyAlways</title>
<updated>2014-09-05T21:00:32Z</updated>
<author>
<name>Russ Cox</name>
<email>rsc@golang.org</email>
</author>
<published>2014-09-05T21:00:32Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=277ef8fa07411231761426298c8e489ddef8ef67'/>
<id>urn:sha1:277ef8fa07411231761426298c8e489ddef8ef67</id>
<content type='text'>
I forgot to clear this before submitting.

TBR=khr
CC=golang-codereviews
https://golang.org/cl/132640044
</content>
</entry>
<entry>
<title>runtime: use reflect.call during panic instead of newstackcall</title>
<updated>2014-09-05T20:51:45Z</updated>
<author>
<name>Russ Cox</name>
<email>rsc@golang.org</email>
</author>
<published>2014-09-05T20:51:45Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=f8f630f5ecb5e30c9feadab5277f393c58da71f6'/>
<id>urn:sha1:f8f630f5ecb5e30c9feadab5277f393c58da71f6</id>
<content type='text'>
newstackcall creates a new stack segment, and we want to
be able to throw away all that code.

LGTM=khr
R=khr, iant
CC=dvyukov, golang-codereviews, r
https://golang.org/cl/139270043
</content>
</entry>
<entry>
<title>runtime: convert panic/recover to Go</title>
<updated>2014-09-05T14:04:16Z</updated>
<author>
<name>Keith Randall</name>
<email>khr@golang.org</email>
</author>
<published>2014-09-05T14:04:16Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=8217b4a203daaa7f24590f9369c77b758dad1cd6'/>
<id>urn:sha1:8217b4a203daaa7f24590f9369c77b758dad1cd6</id>
<content type='text'>
created panic1.go just so diffs were available.
After this CL is in, I'd like to move panic.go -&gt; defer.go
and panic1.go -&gt; panic.go.

LGTM=rsc
R=rsc, khr
CC=golang-codereviews
https://golang.org/cl/133530045
</content>
</entry>
<entry>
<title>runtime: use new #include "textflag.h"</title>
<updated>2014-09-05T03:05:18Z</updated>
<author>
<name>Russ Cox</name>
<email>rsc@golang.org</email>
</author>
<published>2014-09-05T03:05:18Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=cb040d59b945437cdca8c8cff525ebbb7261a217'/>
<id>urn:sha1:cb040d59b945437cdca8c8cff525ebbb7261a217</id>
<content type='text'>
I did this just to clean things up, but it will be important
when we drop the pkg directory later.

LGTM=bradfitz
R=r, bradfitz
CC=golang-codereviews
https://golang.org/cl/132600043
</content>
</entry>
<entry>
<title>runtime: make entersyscall/exitsyscall safe for stack splits</title>
<updated>2014-09-03T21:42:35Z</updated>
<author>
<name>Russ Cox</name>
<email>rsc@golang.org</email>
</author>
<published>2014-09-03T21:42:35Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=5ea69978fd07abdd4bb5ed63dfb38700389493c6'/>
<id>urn:sha1:5ea69978fd07abdd4bb5ed63dfb38700389493c6</id>
<content type='text'>
It is fundamentally unsafe to grow the stack once someone
has made a call to syscall.Syscall. That function takes 6 uintptr
arguments, but depending on the call some are pointers.
In fact, some might be pointers to stack values, and we don't know which.
That makes it impossible to copy the stack somewhere else.
Since we want to delete all the stack splitting code, relying only
on stack copying, make sure that Syscall never needs to split the stack.

The only thing Syscall does is:
        call entersyscall
        make the system call
        call exitsyscall

As long as we make sure that entersyscall and exitsyscall
can live in the nosplit region, they won't ask for more stack.

Do this by making entersyscall and exitsyscall set up the
stack guard so that any call to a function with a split check
will cause a crash. Then move non-essential slow-path
work onto the m stack using onM and mark the rest of the
work nosplit. The linker will verify that the chain of nosplits
fits in the total nosplit budget.

LGTM=iant
R=golang-codereviews, iant
CC=dvyukov, golang-codereviews, khr, r
https://golang.org/cl/140950043
</content>
</entry>
<entry>
<title>runtime: Start and stop individual goroutines at gc safepoints</title>
<updated>2014-09-03T16:06:36Z</updated>
<author>
<name>Rick Hudson</name>
<email>rlh@golang.org</email>
</author>
<published>2014-09-03T16:06:36Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=56bd176e1d5f0145936128c0dc1f931cc5a84c0b'/>
<id>urn:sha1:56bd176e1d5f0145936128c0dc1f931cc5a84c0b</id>
<content type='text'>
Code to bring goroutines to a gc safepoint one at a time,
do some work such as scanning, and restart the
goroutine, and then move on to the next goroutine.
Currently this code does not do much useful work
but this infrastructure will be critical to future
concurrent GC work.

Fixed comments reviewers.

LGTM=rsc
R=golang-codereviews, rsc, dvyukov
CC=golang-codereviews
https://golang.org/cl/131580043
</content>
</entry>
<entry>
<title>runtime: convert select implementation to Go.</title>
<updated>2014-09-02T21:13:29Z</updated>
<author>
<name>Keith Randall</name>
<email>khr@golang.org</email>
</author>
<published>2014-09-02T21:13:29Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=1d8fa7fa5db01cde6e764af29d4c2fb80bad9d8c'/>
<id>urn:sha1:1d8fa7fa5db01cde6e764af29d4c2fb80bad9d8c</id>
<content type='text'>
LGTM=rsc
R=golang-codereviews, bradfitz, iant, khr, rsc
CC=golang-codereviews
https://golang.org/cl/139020043
</content>
</entry>
<entry>
<title>runtime: convert traceback*.c to Go</title>
<updated>2014-09-02T19:12:53Z</updated>
<author>
<name>Russ Cox</name>
<email>rsc@golang.org</email>
</author>
<published>2014-09-02T19:12:53Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=fa2af441f1d7f2daccf40e1e350e8a8bfdcfb9e8'/>
<id>urn:sha1:fa2af441f1d7f2daccf40e1e350e8a8bfdcfb9e8</id>
<content type='text'>
The two converted files were nearly identical.
Instead of continuing that duplication, I merged them
into a single traceback.go.

Tested on arm, amd64, amd64p32, and 386.

LGTM=r
R=golang-codereviews, remyoudompheng, dave, r
CC=dvyukov, golang-codereviews, iant, khr
https://golang.org/cl/134200044
</content>
</entry>
</feed>
