briandamgaard
briandamgaard
It's obvious why the stack overflow occurs. The Cheeney-style copying garbage collectors I've seen in Bezanson's projects have always suffered from the foolish bug that the relocate() function calls itself...
Jeff wrote: > How many projects are we talking about here? The main FemtoLisp project and all its so-called tiny variants, e.g., "lisp.c" and "lisp2.c"
Jeff wrote: >we would need to use more heap space, and it might be slower, 1. It does not need more heap space. 2. It does not run slower. Your...
Jeff wrote: > It seems to me the difference is breadth-first vs. depth-first order. > Yes, I see breadth-first order might be better. It's not just a question about being...
Nilern wrote: > It actually isn't a small change. Femtolisp does not have uniform heap > object headers like e.g. Chicken, instead using tagged pointers > also for heap object...
Brian wrote: > All it takes is, that you ensure that all objects on the heap are 8-byte aligned. > That buys you the needed extra tag-value to signal that...
nilern wrote: > The problem is finding the start of the next object in the tospace queue. > If there were just cons cells we could just bump a value_t...
nilern wrote: > Yes, if we have the type at hand. But the Cheney scan pointer > cannot be a tagged pointer, so we don't have the tag bits of...
Brian wrote: > That's not true. You do have the tag bits of the current object. > An object copied into the new heap is complete, but its pointers >...
nilern wrote: > The tag bits of the first field are already > used for the type of the field value. Yes, that's how it is now, but just for...