Although I like a hashing GC, I agree it may be too much to change at
this moment.
I am I correct in thinking that pre-hash we have
1. Read-only lisp objects
2. A GC collecter that works like this
a. Walk over all lisp objects, clearing the mark bit.
b. starting at the roots walk the graph of reference as follows
- Mark bit was set.
no action
- Mark bit was not set
set mark bit
recurse over children
c. Walk over all objects freeing those that have not been marked.
Won't we get something extremely purespace-like, by
i) pdumped object are read-only _and have the mark bit set_
ii) in phase a and c walk only over the non-pdumped objects?
The logic I am thinking of is
Having the mark bit already set precludes the GC from writing to the
object, however it also terminates the recursion. That is no problem
as pdumped objects can never point to non-pdumped objects because they
are read-only.
That way you get shareability mostly for free.
We can they delay fancy GC experiments until the pdumper is finished.
Jan