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.)