Minimum set of primitives?

Kragen kragen@pobox.com
Thu, 19 Mar 1998 23:16:57 -0500 (EST)


On Fri, 20 Mar 1998, Chris Bitmead wrote:
> >         Hum, that gives rise to a non-trivial question: how to handle
> > references, gc and removable media in an hybrid memory/disk system? I
> > mean, what happens if referenced objects are lost? 
> 
> You get an exception if you try to access them.

How do you allocate your store so that, under normal circumstances,
your second hard drive failing will not result in your system running
into exceptions when trying to boot?

I guess `boot' is sort of an undefined term.  I think it should mean
getting enough primitives and enough of the VM loaded to read, compile,
and run Lisp programs.

How do you make media meaningfully movable from one machine to
another?  I guess you need to have some sort of an `external linkage
table' indicating what entry points are expected from the outside
world, and what external undefined references exist.  So you could
have a structure like

(define (fact n) (if (= n 0) 1 (* n (fact (- n 1)))))

which would have a single `entry point', a pointer to the cons whose
car was `define', and `exit points' for the atoms define, fact, n, if,
=, *, and -.

How could one go about making sure that all of these list nodes
actually ended up on the same disk?  If one of the disks is a floppy,
it's not going to be very useful to have the cdr of the cons whose car
is (fact n) pointing onto the hard disk.

Kragen