@chapter Starting and Stopping
@menu
-* Starting SBCL::
-* Stopping SBCL::
-* Command Line Options::
-* Initialization Files::
+* Starting SBCL::
+* Stopping SBCL::
+* Command Line Options::
+* Initialization Files::
+* Initialization and Exit Hooks::
@end menu
@node Starting SBCL
@section Starting SBCL
@menu
-* Running from Shell::
-* Running from Emacs::
-* Shebang Scripts::
+* Running from Shell::
+* Running from Emacs::
+* Shebang Scripts::
@end menu
@node Running from Shell
@section Stopping SBCL
@menu
-* Quit::
+* Quit::
* End of File::
-* Saving a Core Image::
+* Saving a Core Image::
* Exit on Errors::
@end menu
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.
+process, and is also provided as an extension to the user.
@include fun-sb-ext-save-lisp-and-die.texinfo
+@include var-sb-ext-star-save-hooks-star.texinfo
To facilitate distribution of SBCL applications using external
resources, the filesystem location of the SBCL core file being used is
runtime system or the Lisp system.
@menu
-* Runtime Options::
-* Toplevel Options::
+* Runtime Options::
+* Toplevel Options::
@end menu
@node Runtime Options
Size of the dynamic space reserved on startup in megabytes. Default
value is platform dependent.
-@Item --noinform
+@item --control-stack-size @var{megabytes}
+Size of control stack reserved for each thread in megabytes. Default
+value is 2.
+
+@item --noinform
Suppress the printing of any banner or other informational message at
startup. This makes it easier to write Lisp programs which work
cleanly in Unix pipelines. See also the @code{--noprint} and
can be used to customize the lisp environment.
@menu
-* System Initialization File::
-* User Initialization File::
-* Initialization File Semantics::
-* Initialization Examples::
+* System Initialization File::
+* User Initialization File::
+* Initialization File Semantics::
+* Initialization Examples::
@end menu
@node System Initialization File
files follow.
@menu
-* Unix-style Command Line Protocol::
-* Automatic Recompilation of Stale Fasls::
+* Unix-style Command Line Protocol::
+* Automatic Recompilation of Stale Fasls::
@end menu
@node Unix-style Command Line Protocol
@comment node-name, next, previous, up
@subsubsection Unix-style Command Line Protocol
+@vindex sb-ext:*posix-argv*
+@vindex *posix-argv*
Standard Unix tools that are interpreters follow a common command line
protocol that is necessary to work with ``shebang scripts''. SBCL
@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*)
+(let ((script (and (second *posix-argv*)
(probe-file (second *posix-argv*)))))
(when script
;; Handle shebang-line
(declare (ignore char arg))
(read-line stream)))
;; Disable debugger
- (setf *invoke-debugger-hook*
+ (setf *invoke-debugger-hook*
(lambda (condition hook)
(declare (ignore hook))
;; Uncomment to get backtraces on errors
@lisp
(require :asdf)
-;;; If a fasl was stale, try to recompile and load (once).
-(defmethod asdf:perform :around ((o asdf:load-op)
+;;; If a fasl was stale, try to recompile and load (once).
+(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).
(asdf:perform (make-instance 'asdf:compile-op) c)
(call-next-method))))
@end lisp
+
+@node Initialization and Exit Hooks
+@comment node-name, next, previous, up
+@section Initialization and Exit Hooks
+
+SBCL provides hooks into the system initialization and exit.
+
+@include var-sb-ext-star-init-hooks-star.texinfo
+@include var-sb-ext-star-exit-hooks-star.texinfo
+