(define-page :getting-sbcl "Getting started with SBCL" "getting" getting-sbcl)
(defun getting-sbcl ()
"SBCL is available in source and binary form for "
((:|a| :|href| ,(page-link :ports)) "a number of different architectures")
". This page describes how to get SBCL installed and how to start
using it. For more complete installation instructions, please see the
" ((:|a| :|href|
"INSTALL") " document that comes with SBCL.")
(:|h2| "Installing a binary")
"SBCL is available in binary form for many architectures. To
obtain the latest binary release for your system, visit the "
((:|a| :|href| ,(page-link :ports)) "platform support")
" page and click on the green square which indicates your
platform. When the binary is downloaded, unpack the tarball:"
"bzip2 -cd sbcl-0.8.13-x86-linux-binary.tar.bz2 | tar xvf -")
"replacing " (:|code| "sbcl-0.8.13-x86-linux-binary.tar.bz2")
" with the name of the tarball you downloaded. Then enter the
directory which was unpacked, and run the installation script to
install SBCL in your " (:|code| "/usr/local") " directory:"
(:|h2| "Running SBCL")
"Make sure that " (:|code| "/usr/local/bin") " is in your " (:|code| "PATH") ". Then run SBCL by invoking \"sbcl\", which should
produce a banner like this:"
"This is SBCL 0.8.13, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
"To quit SBCL, type " (:|code| "(quit)") ".")
(:|h2| "Installing to a different prefix")
"You can install SBCL to a different directory prefix by setting
the " (:|code| "INSTALL_ROOT") " environment variable before running
the installation script:"
"INSTALL_ROOT=/my/sbcl/prefix sh install.sh")
"To start SBCL, you need to set the SBCL_HOME environment
variable to point at a subdirectory of the place you installed SBCL:"
"export SBCL_HOME=/my/sbcl/prefix/lib/sbcl # for bash / zsh
setenv SBCL_HOME /my/sbcl/prefix/lib/sbcl # for csh / tcsh")
"Make sure that " (:|code| "/my/sbcl/prefix/bin") " is in your "
(:|code| "PATH") " and invoke SBCL as described above.")
(:|h2| "Using SBCL with Emacs")
(:|p| "If you are going to use SBCL to develop Common Lisp, you
will want a development environment which is more human friendly than
the basic SBCL read-eval-print-loop. Such an environment is provided
by " ((:|a| :|href| "http://www.common-lisp.net/project/slime/")
"SLIME") ", the Superior Lisp Interaction Mode for Emacs. SLIME
provides many features, including an enhanced REPL with symbol
completion and command-line history and interactive support for
compiling and debugging code.")
(:|h2| "Compiling SBCL from Source")
(:|p| "SBCL can be compiled from source code using another
ANSI-compliant Common Lisp implementation. As of SBCL 0.8.13, the
following compilers are known to work:"
(:|li| "SBCL itself")
(:|li| "CMU Common Lisp, tested with 18e and 19a")
(:|li| "OpenMCL 0.14.1")
(:|li| "CLISP 2.33.2"))
"To compile SBCL, first unpack the source tarball and enter the
directory it makes. Then make sure that your system's " (:|code|
"make") " is a GNU make or set the GNUMAKE environment variable
"export GNUMAKE=gnumake # for bash / zsh
setenv GNUMAKE gnumake # for csh / tcsh")
"Then you will need to invoke the build shell script with the
appropriate argument for the host Common Lisp you are using:"
((:|table| :|class| "build-command-table")
(:|td| (:|code| "sh make.sh")))
(:|td| (:|code| "sh make.sh \"lisp -batch\"")))
(:|td| (:|code| "sh make.sh \"openmcl --batch\"")))
(:|td| (:|code| "sh make.sh \"clisp\""))))
(:|strong| "Important:") " It is highly recommended that you run
the make.sh script in either a very fast terminal such as xterm (the
GNOME terminal and the OS X terminal are too slow) or that you run it
in a detached GNU screen session (use C-a d to detach the session and
screen -r to resume it). The SBCL compile produces lots of output and
your system's terminal program " (:|emph| "will") " likely slow down
the compile in a drastic manner.")
(:|p| "To install the SBCL binary you have built, see the
installation instructions above.")))