Lisp.
@menu
-* ANSI Conformance::
-* Extensions::
-* Idiosyncrasies::
-* Development Tools::
-* More SBCL Information::
-* More Common Lisp Information::
-* History and Implementation of SBCL::
+* ANSI Conformance::
+* Extensions::
+* Idiosyncrasies::
+* Development Tools::
+* More SBCL Information::
+* More Common Lisp Information::
+* History and Implementation of SBCL::
@end menu
@code{sb-mop} package provides a metaobject protocol for the Common
Lisp Object System as described in @cite{Art of Metaobject Protocol}.
+@item Extensible Sequences
+SBCL allows users to define subclasses of the @code{sequence}
+class. @xref{Extensible Sequences}.
+
@item Native Threads
SBCL has native threads on x86/Linux, capable of taking advantage
of SMP on multiprocessor machines. @xref{Threading}.
implementation.
@menu
-* Declarations::
-* FASL Format::
-* Compiler-only Implementation::
-* Defining Constants::
-* Style Warnings::
+* Declarations::
+* FASL Format::
+* Compiler-only Implementation::
+* Defining Constants::
+* Style Warnings::
@end menu
@node Declarations
runs into this undefined behavior. Many implementations of Common Lisp
try to help the programmer around this annoyance by silently accepting
the undefined code and trying to do what the programmer probably
-meant.
+meant.
SBCL instead treats the undefined behavior as an error. Often such
code can be rewritten in portable ANSI Common Lisp which has the
e.g.
@itemize
-
+
@item
@code{defmethod} without a preceding @code{defgeneric};
-
+
@item
multiple @code{defun}s of the same symbol in different units;
-
+
@item
special variables not named in the conventional @code{*foo*} style,
and lexical variables unconventionally named in the @code{*foo*} style
@section Development Tools
@menu
-* Editor Integration::
-* Language Reference::
-* Generating Executables::
+* Editor Integration::
+* Language Reference::
+* Generating Executables::
@end menu
@node Editor Integration
@uref{http://ilisp.cons.org/} provided similar functionality, but it
does not support modern SBCL versions.} (Superior Lisp Interaction
Mode for Emacs) together with Emacs is recommended for use with
-SBCL, though other options exist as well.
+SBCL, though other options exist as well.
SLIME can be downloaded from
@uref{http://www.common-lisp.net/project/slime/}.
@section More SBCL Information
@menu
-* SBCL Homepage::
-* Online Documentation::
-* Additional Documentation Files::
-* Internals Documentation::
+* SBCL Homepage::
+* Online Documentation::
+* Additional Documentation Files::
+* Internals Documentation::
@end menu
@node SBCL Homepage
@section More Common Lisp Information
@menu
-* Internet Community::
-* Third-party Libraries::
-* Common Lisp Books::
+* Internet Community::
+* Third-party Libraries::
+* Common Lisp Books::
@end menu
@node Internet Community
@item Practical Common Lisp, by Peter Seibel
An excellent introduction to the language, covering both the basics
and ``advanced topics'' like macros, CLOS, and packages. Available
-both in print format and on the web: @uref{http://www.gigamonkeys.com/book/}.
+both in print format and on the web: @uref{http://www.gigamonkeys.com/book/}.
@item Paradigms Of Artificial Intelligence Programming, by Peter Norvig
Good information on general Common Lisp programming, and many
forms, such as symbols which are @code{boundp}. More complicated forms
are evaluated by calling @code{compile} and then calling @code{funcall}
on the returned result.
-
+
The direct ancestor of SBCL is the x86 port of CMUCL. This port was in
some ways the most cobbled-together of all the CMUCL ports, since a
number of strange changes had to be made to support the register-poor