<feed xmlns='http://www.w3.org/2005/Atom'>
<title>go/src/runtime/lfstack.go, branch json-isValidNumber</title>
<subtitle>Fork of Go programming language with my patches.</subtitle>
<id>http://git.kilabit.info/go/atom?h=json-isValidNumber</id>
<link rel='self' href='http://git.kilabit.info/go/atom?h=json-isValidNumber'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/'/>
<updated>2022-11-17T23:12:04Z</updated>
<entry>
<title>runtime: fix conflict between lfstack and checkptr</title>
<updated>2022-11-17T23:12:04Z</updated>
<author>
<name>Keith Randall</name>
<email>khr@golang.org</email>
</author>
<published>2022-11-09T01:48:48Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=d6171c9be2a4bd2801841aa006702886c476f217'/>
<id>urn:sha1:d6171c9be2a4bd2801841aa006702886c476f217</id>
<content type='text'>
lfstack does very unsafe things. In particular, it will not
work with nodes that live on the heap. In normal use by the runtime,
that is the case (it is only used for gc work bufs). But the lfstack
test does use heap objects. It goes through some hoops to prevent
premature deallocation, but those hoops are not enough to convince
-d=checkptr that everything is ok.

Instead, allocate the test objects outside the heap, like the runtime
does for all of its lfstack usage. Remove the lifetime workaround
from the test.

Reported in https://groups.google.com/g/golang-nuts/c/psjrUV2ZKyI

Change-Id: If611105eab6c823a4d6c105938ce145ed731781d
Reviewed-on: https://go-review.googlesource.com/c/go/+/448899
Reviewed-by: Austin Clements &lt;austin@google.com&gt;
Reviewed-by: Keith Randall &lt;khr@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Run-TryBot: Keith Randall &lt;khr@golang.org&gt;
</content>
</entry>
<entry>
<title>runtime: validate lfnode addresses</title>
<updated>2018-02-15T21:12:11Z</updated>
<author>
<name>Austin Clements</name>
<email>austin@google.com</email>
</author>
<published>2017-12-04T00:28:28Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=b1d94c118fd163381537a22be4913742103baece'/>
<id>urn:sha1:b1d94c118fd163381537a22be4913742103baece</id>
<content type='text'>
Change-Id: Ic8c506289caaf6218494e5150d10002e0232feaa
Reviewed-on: https://go-review.googlesource.com/85876
Run-TryBot: Austin Clements &lt;austin@google.com&gt;
TryBot-Result: Gobot Gobot &lt;gobot@golang.org&gt;
Reviewed-by: Rick Hudson &lt;rlh@golang.org&gt;
</content>
</entry>
<entry>
<title>runtime: introduce a type for lfstacks</title>
<updated>2017-03-19T22:42:24Z</updated>
<author>
<name>Austin Clements</name>
<email>austin@google.com</email>
</author>
<published>2017-03-07T21:38:29Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=13ae271d5d007dcd630d9f43d6a43016b9af6e5c'/>
<id>urn:sha1:13ae271d5d007dcd630d9f43d6a43016b9af6e5c</id>
<content type='text'>
The lfstack API is still a C-style API: lfstacks all have unhelpful
type uint64 and the APIs are package-level functions. Make the code
more readable and Go-style by creating an lfstack type with methods
for push, pop, and empty.

Change-Id: I64685fa3be0e82ae2d1a782a452a50974440a827
Reviewed-on: https://go-review.googlesource.com/38290
Run-TryBot: Austin Clements &lt;austin@google.com&gt;
TryBot-Result: Gobot Gobot &lt;gobot@golang.org&gt;
Reviewed-by: Brad Fitzpatrick &lt;bradfitz@golang.org&gt;
Reviewed-by: Rick Hudson &lt;rlh@golang.org&gt;
</content>
</entry>
<entry>
<title>runtime: fix stale comment in lfstack</title>
<updated>2016-06-16T19:45:33Z</updated>
<author>
<name>Austin Clements</name>
<email>austin@google.com</email>
</author>
<published>2016-06-16T19:41:33Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=fca9fc52c831ab6af56e30f8c48062a99ded2580'/>
<id>urn:sha1:fca9fc52c831ab6af56e30f8c48062a99ded2580</id>
<content type='text'>
Change-Id: I6ef08f6078190dc9df0b2df4f26a76456602f5e8
Reviewed-on: https://go-review.googlesource.com/24176
Reviewed-by: Rick Hudson &lt;rlh@golang.org&gt;
</content>
</entry>
<entry>
<title>runtime: find a home for orphaned comments</title>
<updated>2016-04-14T18:34:09Z</updated>
<author>
<name>Jeremy Jackins</name>
<email>jeremyjackins@gmail.com</email>
</author>
<published>2016-04-13T09:16:21Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=02b8e6978a86c2f4f3a604e8b05014d127f4020a'/>
<id>urn:sha1:02b8e6978a86c2f4f3a604e8b05014d127f4020a</id>
<content type='text'>
These comments were left behind after runtime.h was converted
from C to Go. I examined the original code and tried to move these
to the places that the most sense.

Change-Id: I8769d60234c0113d682f9de3bd8d6c34c450c188
Reviewed-on: https://go-review.googlesource.com/21969
Reviewed-by: Matthew Dempsky &lt;mdempsky@google.com&gt;
Run-TryBot: Matthew Dempsky &lt;mdempsky@google.com&gt;
TryBot-Result: Gobot Gobot &lt;gobot@golang.org&gt;
</content>
</entry>
<entry>
<title>Revert "runtime: merge lfstack{Pack,Unpack} into one file"</title>
<updated>2016-04-07T14:05:24Z</updated>
<author>
<name>Dave Cheney</name>
<email>dave@cheney.net</email>
</author>
<published>2016-04-07T14:05:06Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=9cc9e95b288648d796d92f0b92cb713b35f20062'/>
<id>urn:sha1:9cc9e95b288648d796d92f0b92cb713b35f20062</id>
<content type='text'>
This broke solaris, which apparently does use the upper 17 bits of the address space.

This reverts commit 3b02c5b1b66df9cdb23d5a3243bb37b2c312ea1b.

Change-Id: Iedfe54abd0384960845468205f20191a97751c0b
Reviewed-on: https://go-review.googlesource.com/21652
Reviewed-by: Dave Cheney &lt;dave@cheney.net&gt;
</content>
</entry>
<entry>
<title>runtime: merge lfstack{Pack,Unpack} into one file</title>
<updated>2016-04-07T09:17:22Z</updated>
<author>
<name>Dave Cheney</name>
<email>dave@cheney.net</email>
</author>
<published>2016-04-06T21:29:22Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=3b02c5b1b66df9cdb23d5a3243bb37b2c312ea1b'/>
<id>urn:sha1:3b02c5b1b66df9cdb23d5a3243bb37b2c312ea1b</id>
<content type='text'>
Merge the remaining lfstack{Pack,Unpack} implemetations into one file.

unsafe.Sizeof(uintptr(0)) == 4 is a constant comparison so this branch
folds away at compile time.

Dmitry confirmed that the upper 17 bits of an address will be zero for a
user mode pointer, so there is no need to sign extend on amd64 during
unpack, so we can reuse the same implementation as all othe 64 bit
archs.

Change-Id: I99f589416d8b181ccde5364c9c2e78e4a5efc7f1
Reviewed-on: https://go-review.googlesource.com/21597
Run-TryBot: Dave Cheney &lt;dave@cheney.net&gt;
TryBot-Result: Gobot Gobot &lt;gobot@golang.org&gt;
Reviewed-by: Minux Ma &lt;minux@golang.org&gt;
</content>
</entry>
<entry>
<title>runtime: remove unused return value from lfstackUnpack</title>
<updated>2016-04-06T21:04:43Z</updated>
<author>
<name>Dave Cheney</name>
<email>dave@cheney.net</email>
</author>
<published>2016-04-06T08:43:23Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=0c81248bf46f611b56e3ab38b4d83e449b3c8636'/>
<id>urn:sha1:0c81248bf46f611b56e3ab38b4d83e449b3c8636</id>
<content type='text'>
None of the two places that call lfstackUnpack use the second argument.
This simplifies a followup CL that merges the lfstack{Pack,Unpack}
implementations.

Change-Id: I3c93f6259da99e113d94f8c8027584da79c1ac2c
Reviewed-on: https://go-review.googlesource.com/21595
Run-TryBot: Dave Cheney &lt;dave@cheney.net&gt;
Reviewed-by: Brad Fitzpatrick &lt;bradfitz@golang.org&gt;
</content>
</entry>
<entry>
<title>runtime: fix vet warning about println</title>
<updated>2015-11-12T05:19:58Z</updated>
<author>
<name>Matthew Dempsky</name>
<email>mdempsky@google.com</email>
</author>
<published>2015-11-12T04:49:37Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=3073797c37e168f3671880c683a228f9f8f942e3'/>
<id>urn:sha1:3073797c37e168f3671880c683a228f9f8f942e3</id>
<content type='text'>
lfstack.go:19: println call ends with newline

Change-Id: I2a903eef80a5300e9014999c2f0bc5d40ed5c735
Reviewed-on: https://go-review.googlesource.com/16836
Run-TryBot: Matthew Dempsky &lt;mdempsky@google.com&gt;
TryBot-Result: Gobot Gobot &lt;gobot@golang.org&gt;
Reviewed-by: Andrew Gerrand &lt;adg@golang.org&gt;
</content>
</entry>
<entry>
<title>runtime: break atomics out into package runtime/internal/atomic</title>
<updated>2015-11-10T17:38:04Z</updated>
<author>
<name>Michael Matloob</name>
<email>matloob@golang.org</email>
</author>
<published>2015-11-02T19:09:24Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=67faca7d9c54b367aee5fdeef2d5dd609fcf99d0'/>
<id>urn:sha1:67faca7d9c54b367aee5fdeef2d5dd609fcf99d0</id>
<content type='text'>
This change breaks out most of the atomics functions in the runtime
into package runtime/internal/atomic. It adds some basic support
in the toolchain for runtime packages, and also modifies linux/arm
atomics to remove the dependency on the runtime's mutex. The mutexes
have been replaced with spinlocks.

all trybots are happy!
In addition to the trybots, I've tested on the darwin/arm64 builder,
on the darwin/arm builder, and on a ppc64le machine.

Change-Id: I6698c8e3cf3834f55ce5824059f44d00dc8e3c2f
Reviewed-on: https://go-review.googlesource.com/14204
Run-TryBot: Michael Matloob &lt;matloob@golang.org&gt;
Reviewed-by: Russ Cox &lt;rsc@golang.org&gt;
</content>
</entry>
</feed>
