SBCL

Steel Bank Common Lisp is an open source / free software Common Lisp implementation. It provides an integrated native compiler, interpreter, and debugger.

SBCL is a fork off of the main branch of CMUCL. SBCL is distinguished from CMUCL by a greater emphasis on maintainability. In particular, the SBCL system can be built directly from its source code, so that the output corresponds to the source code in a controlled, verifiable way, and arbitrary changes can be made to the system without causing bootstrapping problems. SBCL also places less emphasis than CMU CL does on new non-ANSI extensions, or on backward compatibility with old non-ANSI features.

More information at the Sourceforge project page at http://sbcl.sourceforge.net/, and on the SBCL Internals CLiki

Common-Lisp-Controller-compatible SBCL Debian (.deb) packages are part of Debian GNU/Linux 3.0/Woody and Debian GNU/Linux 3.1/Sarge for Alpha, x86, PPC, and SPARC. Later releases will include more architectures.

Local pages

Building 0.8.4 on Sparc

The Sun's assembler doesn't like the GNU syntax used in the SBCL assembler sources, so something like the following is required:

$ ln -s `which gcc` ~/bin/gcc
$ ln -s `which gas` ~/bin/as
$ export COMPILER_PATH=~/bin

Also, when building from CMUCL you need to add the following stanza to src/cold/ansify.lisp:

#+(and cmu sparc) 
(ext:set-floating-point-modes :traps '(:overflow :invalid :divide-by-zero))

SBCL Advocacy Haiku

(unless (equalp
         (lisp-implementation-type)
         "SBCL") (quit))

Scripts

SBCL doesn't tolerate shebang lines (CLISP does). To create an SBCL script, manual/Shebang-Scripts.html suggests using an external trampoline or init hair. That's silly. An executable file without a shebang line defaults to sh. So an SBCL script is simply
$ cat foo
#|
exec sbcl --noinform --load $0 --end-toplevel-options "$@"
|#
(format t "hi~%")
(quit)
$ chmod a+x foo
$ ./foo
hi
$ 
To compile, simply
#|
fasl=`dirname $0`/`basename $0 .lisp`.fasl
[ $fasl -ot $0 ] && sbcl --noinform --eval "(compile-file \"$0\")" --eval "(quit)" > /dev/null
exec sbcl --noinform --load $fasl --end-toplevel-options "$@"
|#

Pages in this topic: araneida   ASDF-Install   CL-XML   CLORB   CloserLookAtCharacters   CMUCL Hints   common-lisp-controller   db-sockets   Entomotomy   Langband   lisp-cgi-utils   NET SBCL SOCKETS   objcffi   OpenGL Bindings   sb-readline   SBCL Internals  


Also linked from: ACL-COMPAT   asdf   Benchmarks   Bill Newman   Brian Cully   BSD sockets   cgn   Changes in June 2000   Changes in March 2001   Chemboy   chemical-compounds   Christophe   cirCLe   cirCLe Task List   CL-AJAX   CL-DTYPE   cl-l10n   cl-modlisp   CL-MPD   cl-muproc   CL-Ncurses   cl-package-aliases   CL-SDL   CL-SMTP   cl-store   cl-tumblr   cl-web-crawler   cl-yahoo   clg   CLiki   CLiki Installation   clisp   CLOCC   Clon   CLOS   Closure   CLVM   CLX   Common Lisp implementation   Common String   Community   Craig Lanning   Cusp   Daniel Barlow   Date-Calc   David Steuber   Debian   detachtty   Edward O'Connor   Express Engine   Factorial   features   FreeBSD   Geiriadur   Gentoo   Geoff Cant   Hemlock   hunchentoot   IOlib   IOlib-POSIX   IPv6   Issue ARRAY-ELEMENT-TYPE-NIL   Issue CLOSE-FILE-OPENED-WITH-SUPERSEDE   Issue DEFINE-COMPILER-MACRO-DECLINE   Issue DEFINE-CONDITION-DOCUMENTATION   Issue DEFINE-CONDITION-SLOT-NAME   Issue DEFINE-CONDITION-WRITERS   Issue DEFMACRO-VALUES   Issue EQUAL-CIRCULAR-LIST   Issue LOOP-FINALLY-VARIABLES   Issue PRINTING-ARRAYS-READABLY   Issue PRINTING-SPACE   Issue STANDARD-PACKAGE-NICKNAMES   Jabberwocky   Juho Snellman   KR   Leonardo Varuzza   lep   Less Recent Changes   Line Reader   Linedit   Linux   Lisp History   Lisp newbie   lispbuilder-sdl   Lisppaste   LMud   ltd   Luigi Panzeri   MacOS X   Marko Kocic   Martin Atzmueller   McCLIM   MD5   mel-base   MT19937   net-telent-date   Nikodemus Siivola   periodic-table   Pg   plokami   Portable Hemlock   portable-clx   Practical Lisp Programming   Proposed ANSI Revisions and Clarifications   psgraph   Pyffi   Python   quick-arrays   reattatchabe slime   Robert Strandh   RT   sb-simple-audio   sb-sprof-ui   SHA1   simple-stream   SLIME   Solaris   Suggested Programming Projects   Teemu Kalvas   thread   TIMER   Toplevel   trivial-sockets   trivial-usocket   Tyler Eaves   UFFI   UncommonSQL   Unicode support   usocket   vcs-tree   wilbur-web   win32   Wish List   XCL   Zach Beane   Zach Smith  

CLiki pages can be edited by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively