freenode/#clasp - IRC Chatlog
Search
14:27:35
drmeister
I hit a bit of a roadblock in image save/load with Boehm - it's still possible in MPS.
14:29:16
drmeister
The problem with Boehm is 1. I need to put data and code close together for RIP relative addressing 2. So I need to put literal vectors into GC managed memory along with lots of code 3. I want the GC to ignore the code - it contains no pointers and I expect it will slow things down 4. So with Boehm I need to write my own marking procedure.
14:30:55
drmeister
5. There's a comment in the boehm header file that appears to have huge implications for this - I don't know how to get around it. They say that the marking function should only mark about 100 bytes of pointers before returning. I have no idea how I do that with things like simple-vector. I need to investigate what ECL does in this case.
14:34:13
drmeister
"do it in smaller pieces"???? How would I save the how much marking work I've done for any particular object and then pick up later?
14:37:08
drmeister
I don't see how it can work - other than for objects that it doesn't handle everything is scanned conservatively.
14:42:11
drmeister
What I need is something where I can say "for this object - only scan up to this point".
14:45:36
drmeister
ECL marks fields of well defined objects in a simple way in its marking function - ECL doesn't worry about overflowing the mark stack because the well defined objects only have a few fields to mark.
14:46:02
drmeister
I'm assuming for the moment that when it doesn't handle an object that boehm marks the entire object conservatively.
14:46:57
drmeister
If Code_O objects had small literal vectors (not something I can guarantee) then I could handle them like a well defined object.
14:47:36
drmeister
I should check the size of literal vectors. They are unbounded and there is no easy way to bound them.