Path: utzoo!attcan!uunet!mcsun!ukc!edcastle!aiai!jeff From: jeff@aiai.uucp (Jeff Dalton) Newsgroups: comp.lang.lisp Subject: Re: Incremental worlds, on conventional processors Keywords: layered saved images, disk space, Poplog, Harlequin, Lucid, Franz Message-ID: <924@skye.ed.ac.uk> Date: 23 Sep 89 16:21:13 GMT References: <3391@cbnewsc.ATT.COM> Sender: news@aiai.ed.ac.uk Reply-To: jeff@aiai.uucp (Jeff Dalton) Organization: AIAI, University of Edinburgh, Scotland Lines: 38 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). For those >who haven't heard of it, this feature enables the programmer to >load a Lisp environment, make all manner of changes (e.g., defining >new functions, building data structures), then save *only those >changes* to a file. Later, the programmer can bring up a Lisp >environment that includes that file, thereby exactly re-creating >the environment's state at the time of the save. [...] > >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, >but I've just found out that Poplog Common Lisp seems to be able >to pull it off on conventional processors. One reason the feature is not more common is that most Lisp implementations do not need it as much as PopLog does. In most Lisps, I can compile a Lisp source file to get an object (or "fasl", for "fast load") file. Since these files can be loaded fairly quickly, and since they can perform the actions necessary to set up a desired state, they are often an acceptable substitute for a saved world. That is, instead of setting up a state and then saving the world, I write a file that sets up the state, compile it, and load it in when needed. Poplog does not have the ability to compile files in this way. Instead, code is compiled as it is loaded (or typed) in, and to save any object code it's necessary to save a world. In some cases, saved worlds are better; in other cases, though, it's better to have compiled files. For example, it there tend to be fewer ordering constraints when loading several compiled files than when trying to restore several saved worlds. Of course, some Lisps have both capabilities. -- Jeff