OO File system

Chris Bitmead uid(x22068) Chris.Bitmead@alcatel.com.au
Mon, 05 May 1997 10:23:48 +1000


>KM> As someone mentioned, it is difficult to get started writing code
>KM> with a persistent object system when you don't have one.  However,
>KM> ACL has a "dumplisp" capability that saves the state of an entire
>KM> Lisp process. 
>
>Uh, uhrr..how about tweaking the GC of a favorite free Lisp
>implementation so that it could be used to trace out components from
>those symbols having an `archive' property value, and then
>accumulating the union of these values and storing it in a `common'
>symbol plist entry.  Assuming the GC happened immediately prior to
>image dumping, one could do different dumping operations depending on
>these composite/common properties (e.g. compute a key from the
>symbols' name and plist and then archive the key/value to a SQL server
>via RPC, etc..)  Maybe this sort of thing could be tightly with some
>sort of generational GC so as to archive incrementally?

The trouble is you need the GC to be able to trace through objects
that are in memory and those that are in disk. You might delete a
reference to an object and that might cause a whole lot of stuff on
disk to be be GCed. So the GC has to be looking at things in memory
and on disk to work right.

I don't think this whole issue can be solved properly with any quick
hacks. It has to built into the core of the vm and gc.