1. BINARY DISTRIBUTION
1.1. Quick start
- 1.2. Finding ancilliary files
+ 1.2. Finding ancillary files
1.3. Anatomy of SBCL
2. SOURCE DISTRIBUTION
1.1. Quick start:
+ To run SBCL without installing it, from the top of binary distribution
+ directory:
+
+ $ sh run-sbcl.sh
+
The following command installs SBCL and related documentation under
- the "/usr/local" directory:
-
+ the "/usr/local" directory (typically run as root):
+
# INSTALL_ROOT=/usr/local sh install.sh
You can also install SBCL as a user, under your home directory:
$ INSTALL_ROOT=/home/me sh install.sh
In other words, "install.sh" installs SBCL under the directory named
- by the environment variable "INSTALL_ROOT".
+ by the environment variable INSTALL_ROOT.
- If you install SBCL from binary distribution in other location then
- "/usr/local", see section 1.2, "Finding ancilliary files".
+ If INSTALL_ROOT is not specified, SBCL is installed into location
+ configured at build-time: for official binary distributions under
+ "/usr/local" directory.
-1.2. Finding ancilliary files
+ If you install SBCL from binary distribution in other location than
+ "/usr/local", see section 1.2, "Finding ancillary files".
+
+1.2. Finding ancillary files
The SBCL runtime needs to be able to find the ancillary files
associated with it: the "sbcl.core" file, and the contrib modules.
passed their tests. If you need to install by hand, see "install.sh"
for details.
- Documentation concists of a man-page, the SBCL Manual (in info, pdf
+ Documentation consists of a man-page, the SBCL Manual (in info, pdf
and html formats), and a few additional text files.
2. SOURCE DISTRIBUTION
$ sh make.sh
+ To configure SBCL to install to a non-standard location, you can use
+ the --prefix option:
+
+ $ sh make.sh --prefix=/opt/mysbcl
+
+ This also sets the default SBCL_HOME to prefix/lib/sbcl/ for the
+ built binaries.
+
+ To configure SBCL with a non-standard default dynamic-space size,
+ use the --dynamic-space-size option:
+
+ $ sh make.sh --dynamic-space-size=1Gb
+ $ sh make.sh --dynamic-space-size=500Mb
+
+ If mega- or gigabytes are not specified, the number is taken to be
+ in megabytes. The standard default is platform specific.
+
If you don't already have an SBCL binary installed as "sbcl" on your
system, you'll need to tell make.sh what Lisp to use as the
- cross-compilation host. For example, to use CMU CL (assuming has
+ cross-compilation host. For example, to use CMUCL (assuming has
been installed under its default name "lisp") as the
cross-compilation host:
- $ sh make.sh 'lisp -batch'
+ $ sh make.sh --xc-host='lisp -batch -noinit'
The build may take a long time, especially on older hardware. A
successful build ends with a message beginning: "The build seems to
(pushnew x features))
(disable (x)
(setf features (remove x features))))
- ;; Threading support, available on x86 Linux only.
- (enable :sb-thread)
- ;; Slightly smaller core
- (disable :sb-doc)))
+ ;; Threading support.
+ (enable :sb-thread)))
This is the preferred way because it lets local changes interact
cleanly with CVS changes to the main, global source tree.
+ Some features of interest:
+
+ :SB-THREAD
+ Native threads. Enabled by default on x86[-64] Linux only, also
+ available on x86[-64] Max OS X, x86[-64] FreeBSD, x86 Solaris,
+ and PPC Linux.
+
+ :SB-UNICODE
+ Unicode support. Enabled by default. Disabling this feature
+ limits characters to the 8-bit ISO-8859-1 set.
+
+ :SB-XREF-FOR-INTERNALS
+ XREF data for SBCL internals. Not enabled by default, increases
+ core size by 5-6mb.
+
A catalog of available features and their meaning can be found in
"base-target-features.lisp-expr".
Segfaults on Fedora
Try disabling exec-shield. The easiest way is to use
- setarch: "setarch i386 sbcl".
+ setarch: "setarch i386 -R sbcl".
Build crashes mysteriously, machine becomes unstable, etc
Other
- * Check that the host lisp you're building with is known to work
- as an SBCL build host, and the your OS is supported.
-
+ * Check that the host lisp you're building with is known to work as
+ an SBCL build host, and that your operating system is supported.
+
* Try to do a build without loading any initialization files
for the cross-compilation host (for example
"sh make.sh 'sbcl --userinit /dev/null --sysinit /dev/null'").
itself, it's a good idea.) Follow the "CVS Repository" link on
<http://sourceforge.net/projects/sbcl> for instructions.
-2.5. Supported platforms
+2.5. Supported platforms
- Last updated for SBCL 0.8.10.61 (2004-05-28).
+ Last updated for SBCL 0.9.3.74 (2005-08-20).
All of the following platforms are supported in the sense of "should
work", but some things like loading foreign object files may lag
- behind on less-used OS's.
+ behind on less-used operating systems.
Supported toolchains:
SBCL
CMUCL
- OpenMCL
- CLISP (recent versions only)
+ CCL (formerly known as OpenMCL)
ABCL (recent versions only)
+ CLISP (only some versions: 2.44.1 is OK, 2.47 is not)
+ XCL
+
Note that every release isn't tested with every possible host
compiler. You're most likely to get a clean build with SBCL itself
- as host, otherwise OpenMCL on a PPC and CMUCL elsewhere.
+ as host, otherwise CCL on a PPC and CMUCL elsewhere.
Supported operating systems and architectures:
- x86 PPC Alpha Sparc HPPA MIPS MIPSel
- Linux 2.2, 2.4, 2.6 X X X X X X X
- FreeBSD X
+ x86 x86-64 PPC Sparc Alpha MIPS MIPSel
+ Linux 2.6 X X X X X X X
+ Darwin (Mac OS X) X X X
+ Solaris X X
+ FreeBSD X X
+ NetBSD X X
OpenBSD 3.4, 3.5 X
- NetBSD X
- Solaris X
- Tru64 X
- Darwin (Mac OS X) X
+ Windows X
- Some OS's are more equal then others: most of the development and
- testing is done on x86 Linux and *BSD, PPC Linux and Mac OS X.
+ Some operating systems are more equal than others: most of the
+ development and testing is done on x86/x86-64 Linux and x86/PPC
+ Mac OS X.
If an underprivileged platform is important to you, you can help
- by eg. testing during the monthly freeze periods, and most
+ by e.g. testing during the monthly freeze periods, and most
importantly by reporting any problems.
- If you need support beyond what is available on the mailing lists,
- see "Consultants" in the "SUPPORT" file.
+ For further support, see Getting Support and Reporting Bugs
+ in the manual, or
+
+ http://www.sbcl.org/manual/Getting-Support-and-Reporting-Bugs.html
+
+ if you do not have the manual for some reason.