sbcl.sbcl/doc
Nikodemus Siivola f0da2f63aa redesign exiting SBCL
Deprecate QUIT. It occupies an uncomfortable niche between processes
 and threads, and doesn't actually do what it says on the tin unless
 you call it from the main thread.

 SIGTERM now uses EXIT, and doesn't depend on sessions.

 WITH-DEADLINE (:SECONDS NIL :OVERRIDE T) can now be used to ignore
 deadlines.

 JOIN-THREAD on the main thread now blocks indefinitely instead of
 claiming the thread did not exit normally.

 New functions:

  * SB-EXT:EXIT. Always exits the process. Takes keywords :CODE,
    :ABORT, and :TIMEOUT. Code is the exit status. Abort controls if
    the exit is clean (unwind, exit-hooks, terminate other threads) or
    dirty. Timeout controls how long to wait for other threads to
    finish.

  * SB-THREAD:RETURN-FROM-THREAD. Normal termination for current
    thread -- equivalent to return from the thread function with the
    specified values. Takes keyword :ALLOW-EXIT, which determines if
    returning from the main thread is an error, or equivalent to
    calling EXIT :CODE 0.

  * SB-THREAD:ABORT-THREAD. Abnormal termination for current thread --
    equivalent to invoking the initial ABORT restart estabilished by
    MAKE-THREAD (previously known as TERMINATE-THREAD, but ANSI
    recommends there to always be an ABORT restart.) Takes keyword
    :ALLOW-EXIT, which determines if aborting the main thread is an
    error, or equivalent to calling EXIT :CODE 1.

  * SB-THREAD:MAIN-THREAD-P. Let's you determine if a given thread is
    the main thread of the process. This is important for some
    functions on some operating systems -- and RETURN-FROM-THREAD and
    ABORT-THREAD also need it.

  * SB-THREAD:MAIN-THREAD. Returns the main thread object. Convenient
    for when you need to eg. load a foreign library in the main
    thread.
2012-04-29 21:18:53 +03:00
..
internals 1.0.34.10: New chapter for internals manual. 2010-01-25 03:47:20 +00:00
internals-notes 1.0.36.36: Update release checklist 2010-03-21 06:32:04 +00:00
manual redesign exiting SBCL 2012-04-29 21:18:53 +03:00
.cvsignore 0.8.6.2: 2003-11-26 15:16:06 +00:00
clean.sh 0.8.14.28: 2004-09-19 19:38:55 +00:00
entities.inc 0.8.6.1: 2003-11-26 02:11:09 +00:00
FOR-CMUCL-DEVELOPERS Initial revision 2000-09-18 01:26:16 +00:00
GIT-FOR-SBCL-HACKERS.txt 1.0.20.29: small FIND fix & win32 build fix 2008-09-24 14:55:13 +00:00
GIT-WORKFLOW.md A git-only SBCL workflow 2011-06-06 09:48:08 +03:00
make-doc.sh 1.0.42.51: disable split html manual building 2010-09-21 15:29:10 +00:00
PACKAGING-SBCL.txt A git-only SBCL workflow 2011-06-06 09:48:08 +03:00
README 1.0.13.22: text tweaks 2008-01-10 15:54:04 +00:00
sbcl-asdf-install.1 0.9.3.23: 2005-08-03 14:24:00 +00:00
sbcl.1 redesign exiting SBCL 2012-04-29 21:18:53 +03:00

SBCL is -- ahem! -- imperfectly documented. What can we say? Help with
documentation might not be refused.:-)

There is a Unix man page, sbcl.1.

There is a user manual in texinfo format, in doc/manual/. (In
binary distributions, the compiled-into-HTML translations are also
included.) 

Much of the documentation for supported extensions is in their Lisp
doc strings. For example, to find out how to use the SAVE-LISP-AND-DIE
function in the SB-EXT package, you can execute
  (documentation 'sb-ext:save-lisp-and-die 'function)
or
  (describe 'sb-ext:save-lisp-and-die)
in SBCL.

The user manual is incomplete, and some of its chapters are just notes
that "this is similar to chapter such-and-such of the CMU CL user
manual". The old CMU CL documentation can still be useful both for
missing chapters of the user manual and for documentation of the
internals of the system. It can be downloaded from
<ftp://sbcl.sourceforge.net/pub/sbcl/cmucl-docs.tar.bz2>.