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 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.
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))
(unless (equalp
(lisp-implementation-type)
"SBCL") (quit))
#-sbcl(quit)
Older versions of SBCL don'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 "$@" |#
Unpack the source tarball.
Set INSTALL_ROOT to where you want it to go.
export INSTALL_ROOT=$HOME
Now use this hack so it will look for the core file in the right place
export CC="cc '-DSBCL_HOME=\"$INSTALL_ROOT/lib/sbcl/\"'" sh make.sh sh install.sh
Put this in your .sbclrc
(require 'sb-bsd-sockets) ; needed now because it does not gel well with the path munging by the common-lisp-controller
(load "/usr/share/common-lisp/source/common-lisp-controller/common-lisp-controller.lisp") (common-lisp-controller:init-common-lisp-controller-v4 "sbcl")
Pages in this topic: araneida ASDF-Install Bermuda 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 Sykopomp
Also linked from: ACL-COMPAT asdf Benchmarks Bill Newman Brian Cully BSD sockets buildapp cgn Changes in June 2000 Changes in March 2001 Chemboy chemical-compounds Christophe cirCLe cirCLe Task List CL-AJAX CL-API CL-DTYPE cl-l10n cl-modlisp CL-MPD cl-muproc cl-package-aliases CL-SDL CL-SMTP cl-store cl-tumblr cl-web-crawler cl-yahoo clg CLiki CLiki Installation clisp CLOCC Clon clonsigna CLOS Closure CLVM CLX Common Lisp implementation Common String Community Craig Lanning Cusp Daniel Barlow Date-Calc David Steuber Debian Decaf detachtty evol Express Engine Factorial features FreeBSD Gentoo Geoff Cant Hemlock hunchentoot IOlib IOlib-POSIX ip-interfaces 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 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 phtml PLOKAMI poiu 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 The Proper Way to Do Things thread TIMER Toplevel trivial-sockets trivial-usocket trivial-xmpp Tyler Eaves UFFI UncommonSQL Unicode support USOCKET usocket-udp vcs-tree wilbur-web win32 Wish List XCL
CLiki pages can be edited by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively