|
|
- (eval-and-compile
- (require 'slime))
-
- (define-slime-contrib slime-snapshot
- "Save&restore memory images without disconnecting"
- (:authors "Helmut Eller <heller@common-lisp.net>")
- (:license "GPL v3")
- (:swank-dependencies swank-snapshot))
-
- (defun slime-snapshot (filename &optional background)
- "Save a memory image to the file FILENAME."
- (interactive (list (read-file-name "Image file: ")
- current-prefix-arg))
- (let ((file (expand-file-name filename)))
- (when (and (file-exists-p file)
- (not (yes-or-no-p (format "File exists %s. Overwrite it? "
- filename))))
- (signal 'quit nil))
- (slime-eval-with-transcript
- `(,(if background
- 'swank-snapshot:background-save-snapshot
- 'swank-snapshot:save-snapshot)
- ,file))))
-
- (defun slime-restore (filename)
- "Restore a memory image stored in file FILENAME."
- (interactive (list (read-file-name "Image file: ")))
- ;; bypass event dispatcher because we don't expect a reply. FIXME.
- (slime-net-send `(:emacs-rex (swank-snapshot:restore-snapshot
- ,(expand-file-name filename))
- nil t nil)
- (slime-connection)))
-
- (provide 'slime-snapshot)
|