Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!ucsd!ames!uhccux!munnari.oz.au!cs.mu.oz.au!ok
From: ok@cs.mu.oz.au (Richard O'Keefe)
Newsgroups: comp.lang.lisp
Subject: Re: Incremental worlds, on conventional processors
Keywords: layered saved images, disk space, Poplog, Harlequin, Lucid, Franz
Message-ID: <2175@munnari.oz.au>
Date: 24 Sep 89 08:34:23 GMT
References: <3391@cbnewsc.ATT.COM> <924@skye.ed.ac.uk>
Sender: news@cs.mu.oz.au
Lines: 21

In article <3391@cbnewsc.ATT.COM> lgm@cbnewsc.ATT.COM (lawrence.g.mayka) writes:
>I am wondering about the Lisp system feature known as "incremental
>worlds" (Symbolics) or "layered saved images" (Poplog).
>What I would like to know is, Why is this feature not more common?
>I used to assume that special hardware a la Symbolics was required,

The problem isn't a hardware problem.  It's a software problem.
Basically, what do you do when your ``world'' contains areas of memory
which are shared with other processes?  Quintus Prolog provides the
DEC-10 Prolog 'save(WorldImage)' and 'restore(WorldImage)' commands;
this used to work just fine in UNIX, and then a customer complained
about problems when he had a frame buffer mapped into the address
space we thought we were managing.  Quintus worked out a way around
that, but in some operating systems (Aegis, VMS, now SunOS 4, others)
it gets weird:  if you have a file mapped into your address space,
should the saved state include a *copy* of the file or a *reference*
to the file?  If the latter, what should you do if the file isn't
there when the saved state is restored?  (This problem hit Quintus on
the Apollos.)  If the former, remember that files can get *very* big.
(Also remember that the operating system may map files into your
address space without telling you.)