On Sun, Jun 17, 2012 at 2:25 AM, Arne Goedeke <
e...@laramies.com> wrote:
> Its maybe simply too messy right now. If you have still energy to test
> this stuff, please try running older versions (like before the half
> finished changes I did this week) of both gjalloc and the block_alloc
> branch. Otherwise you can wait until I have sorted these things out.
> Some parts are in transition right now. Sorry again, not trying to
> waste your time with this..
I'm happy to tinker! It's what I do :)
Currently attempting to go back as far as April, as I'm not certain
how the two repositories sync up otherwise. GJAlloc commit 11190f3 and
Pike commit 56f88e7 (this one being immediately before the merge of
7.9). Is my step sequence correct? (Wiping out bin/ was a stupid idea
- some of it is in repository. Wiping it and checking it out from repo
didn't help either, though.)
That eliminates the segfaulting, but it's still not using the new
allocator (same message from configure and same message on startup).
I'd like to try this, as it'd be awesomely cool to be able to run
multiple threads on my multi-core system. Currently only one thread at
a time seems to be able to run, when I do something trivial like:
void spin() {int i=0; while (1) ++i;}
Incidentally, the even more trivial:
void spin() {while (1);}
doesn't even use CPU time. Pike is so awesome that it can optimize
infinite loops! :)
Am I right in thinking that the reason the spinners can't parallelize
is because they're all locking on updating i, and that your new
allocator would change that? Or am I conflating two proposed changes?
I seem to recall there being something about separating local objects
from global ones, a while ago.
Chris Angelico