You can save a LispWorks session, which can be restarted at a later date. This allows you to resume work after restarting your computer.
Saving sessions is intended for users of the LispWorks IDE. The graphical tools described in LispWorks IDE User Guide provide the best way to use and configure session saving. However it is also possible to save a session programmatically, which is described in this section.
When you save a session, LispWorks performs the following three steps:
If a saved session is run later, then it will redo the last step above, but see What is saved and what is not saved for restrictions.
Sessions are stored on disk as LispWorks images, by default within your personal application support folder (the exact directory varies between operating systems).
When you run any other image directly, including a saved session or an image you created with save-image, it runs itself (not the default session).
External connections (including open files, sockets, database connections and COM interfaces) become invalid when the saved session is restarted. In the image from which the session was saved, the connections are not explicitly affected but if these connections are thread-specific, they will be affected because the thread is killed. In recreated Shell tools the command history is recovered but the side effects of those commands are not. Debugger and Stepper windows are not re-opened because they contain the state of threads that have been killed.
You can save a session by calling save-current-session
The first thing that save-current-session does is to execute the action-list "Save Session Before".
If there are non-IDE interfaces on the screen when save-current-session is invoked, there interfaces are destroyed in the first step, and displayed again in the third step. Note that the display will occur in a different thread than the one running the interface before the saving (which was killed in the first step).
If the interface (or any of its children) contains information that is normally destroyed (in some sense) in the destroy-callback, this information can be preserved over a call to save-current-session by defining methods on the generic functions
LispWorks User Guide and Reference Manual - 20 Sep 2017