[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: dumplisp
- To: alms@cambridge.apple.com
- Subject: Re: dumplisp
- From: lynch@aristotle.ils.nwu.edu (Richard Lynch)
- Date: Fri, 1 Feb 91 17:36:10 CST
- Cc: info-macl@cambridge.apple.com
>
> Date: Fri, 1 Feb 91 09:01:26 CST
> From: lynch@aristotle.ils.nwu.edu (Richard Lynch)
>
> According to the manual, dumplisp "executes all the functions on the list
> *save-exit-functions*. This list initially contains a single function that
> closes all windows, takes down and stores the current menu bar, and
> disposes of other pointers to the Macintosh heap. Macintosh Allegro CL
> then performs a garbage collection and dumps the heap image."
>
> This raises some questions:
>
> After the dumplisp finishes, the menubar is restored, and a listener pops
> up. Is this accomplished by executing *restore-lisp-functions* or is this
> hard-wired?
>
>The menubar restoration is performed by *restore-lisp-functions*. The
Is there any way to NOT do the functions in *restore-lisp-functions*, but
have them saved for re-boot. ie, allow the user to choose quit, which
prompts for a save, then does a dumplisp which includes the
*restore-lisp-functions*, but DOESN'T then do those functions.
>listener poping up is a side-effect of entering the top-level-loop,
> which calls (CURRENT-LISTENER), thereby creating a listener if one
>doesn't already exist. [at least, this is how it should work.]
Yes. It does work.
> The menu bar that is saved in this description: If it bears no
> resemblance at all to the *default-menu-bar*, is it restored? Are the
> mac-pointers taken care of?
>
>The menubar restored is the same one that was there when you called
>dumplisp. The code doesn't care anything about *DEFAULT-MENUBAR*.
>When you deinstall a menu (i.e. remove it from the menubar), it has
>no mac-pointers. Hence, the Mac pointers are taken care of by
>deinstalling all the menus in the menubar (and just keeping track
>of the menu objects).
> Is there any way to do a dumplisp and then quit? We tried (dumplisp
> "name") (quit) and the (quit) seemed to have been ignored.
>
>The call to QUIT needs to be eval-enqueued.
This was suggested by another reader, <REM@SUWATSON.stanford.edu>, but alas
it does not work.
At least it does not work if you do:
(eval-enqueue '(dumplisp "test quit") (quit))
[We need to eval-enqueue the dumplisp because it's being called from one of
the menus which it is going to deinstall which then wants a
return-value...Something goes wrong here. (not surprising)]
Thanks though. With your help (and REM's), we've got it all going EXCEPT
the part where quit allows a dumplisp and then a quit. We can live with
that.
"TANSTAAFL" Rich lynch@aristotle.ils.nwu.edu
- Follow-Ups:
- dumplisp
- From: Andrew L. M. Shalit <alms>