Next: , Previous: ANSI Conformance, Up: Introduction


1.2 Extensions

SBCL comes with numerous extensions, some in core and some in modules loadable with require. Unfortunately, not all of these extensions have proper documentation yet.

System Definition Tool
asdf is a flexible and popular protocol-oriented system definition tool by Daniel Barlow. see the asdf manual, for more information.
Third-party Extension Installation Tool
asdf-install is a tool that can be used to download and install third-party libraries and applications, automatically handling dependencies, etc.
Foreign Function Interface
sb-alien package allows interfacing with C-code, loading shared object files, etc. See Foreign Function Interface.

sb-grovel can be used to partially automate generation of foreign function interface definitions. See sb-grovel.

Recursive Event Loop
SBCL provides a recursive event loop (serve-event) for doing non-blocking IO on multiple streams without using threads.
Metaobject Protocol
sb-mop package provides a metaobject protocol for the Common Lisp Object System as described in Art of Metaobject Protocol.
Native Threads
SBCL has native threads on x86/Linux, capable of taking advantage of SMP on multiprocessor machines. See Threading.
Network Interface
sb-bsd-sockets is a low-level networking interface, providing both TCP and UDP sockets. xNetworking.
Introspective Facilities
sb-introspect module offers numerous introspective extensions, including access to function lambda-lists.
Operating System Interface
sb-ext contains a number of functions for running external processes, accessing environment variables, etc.

sb-posix module provides a lispy interface to standard POSIX facilities.

Extensible Streams
sb-gray is an implentation of Gray Streams. See Gray Streams.

sb-simple-streams is an implementation of the simple streams API proposed by Franz Inc. See Simple Streams.

Profiling
sb-profile is a exact per-function profiler. See Accurate Profiler.

sb-sprof is a statistical profiler, capable of call-graph generation and instruction level profiling. See Statistical Profiler.

Customization Hooks
SBCL contains a number of extra-standard customization hooks that can be used to tweak the behaviour of the system. See Customization Hooks for Users.

sb-aclrepl provides an Allegro CL -style toplevel for SBCL, as an alternative to the classic CMUCL-style one. See sb-aclrepl.

CLTL2 Compatility Layer
sb-cltl2 module provides compiler-let and environment access functionality described in Common Lisp The Language, 2nd Edition which were removed from the language during the ANSI standardization process.
Executable Fasl Packaging
sb-executable can be used to concatenate multiple fasls into a single executable (though the presense of an SBCL runtime and core image is still required to run it).
Bitwise Rotation
sb-rotate-byte provides an efficient primitive for bitwise rotation of integers, an operation required by eg. numerous cryptographic algorightms, but not available as a primitive in ANSI Common Lisp. See sb-rotate-byte.
Test Harness
sb-rt module is a simple yet attractive regression and unit-test framework.
MD5 Sums
sb-md5 is an implementation of the MD5 message digest algorithm for Common Lisp, using the modular arithmetic optimizations provided by SBCL. See sb-md5.