@menu
* Quit::
-* End of File::
-* Exit on Errors::
+* End of File::
+* Saving a Core Image::
+* Exit on Errors::
@end menu
@node Quit
pressing @kbd{Control-D} on an attached terminal, or end of input when
using SBCL as part of a shell pipeline.
+@node Saving a Core Image
+@comment node-name, next, previous, up
+@subsection Saving a Core Image
+
+SBCL has the ability to save its state as a file for later
+execution. This functionality is important for its bootstrapping
+process, and is also provided as an extension to the user.
+
+@include fun-sb-ext-save-lisp-and-die.texinfo
@node Exit on Errors
@comment node-name, next, previous, up
@lisp
;;; If the first user-processable command-line argument is a filename,
;;; disable the debugger, load the file handling shebang-line and quit.
-(let ((script (and (second *posix-argv*) (probe-file (second *posix-argv*)))))
+(let ((script (and (second *posix-argv*)
+ (probe-file (second *posix-argv*)))))
(when script
;; Handle shebang-line
(set-dispatch-macro-character #\# #\!
(declare (ignore char arg))
(read-line stream)))
;; Disable debugger
- (setf *invoke-debugger-hook* (lambda (condition hook)
- (declare (ignore hook))
- ;; Uncomment to get backtraces on errors
- ;; (sb-debug:backtrace 20)
- (format *error-output* "Error: ~A~%" condition)
- (quit)))
+ (setf *invoke-debugger-hook*
+ (lambda (condition hook)
+ (declare (ignore hook))
+ ;; Uncomment to get backtraces on errors
+ ;; (sb-debug:backtrace 20)
+ (format *error-output* "Error: ~A~%" condition)
+ (quit)))
(load script)
(quit)))
@end lisp
(require :asdf)
;;; If a fasl was stale, try to recompile and load (once).
-(defmethod asdf:perform :around ((o asdf:load-op) (c asdf:cl-source-file))
+(defmethod asdf:perform :around ((o asdf:load-op)
+ (c asdf:cl-source-file))
(handler-case (call-next-method o c)
;; If a fasl was stale, try to recompile and load (once).
(sb-ext:invalid-fasl ()