SBCL provides extensive support for calling external C code, Foreign Function Interface.
SBCL provides additional garbage collection functionality not specified by ANSI. Weak pointers allow references to objects to be maintained without keeping them from being GCed (garbage collected). And “finalization” hooks are available to cause code to be executed when an object has been GCed.
SBCL supports Gray streams, user-overloadable CLOS classes whose
instances can be used as Lisp streams (e.g. passed as the first
argument to format
). Additionally, the bundled contrib module
sb-simple-streams implements a subset of the Franz Allegro
simple-streams proposal.
SBCL supports a MetaObject Protocol which is intended to be compatible with AMOP; present exceptions to this (as distinct from current bugs) are:
metaobject
class is not present in the class
hierarchy;
standard-object
and funcallable-standard-object
classes are disjoint;
compute-effective-method
only returns one value, not two;
:around
method for compute-slots
specialized on funcallable-standard-class
does not respect the
requested order from a user-supplied primary method.