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:
In other words, "install.sh" installs SBCL under the directory named
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 you install SBCL from binary distribution in other location than
+ "/usr/local", see section 1.2, "Finding ancillary files".
-1.2. Finding ancilliary 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.
- This can happen in three ways:
+ Finding core can happen in three ways:
1. By default, in a location configured when the system was built.
For binary distributions this is in "/usr/local/lib/sbcl".
$ sbcl --core /foo/bar/sbcl.core
- When using this option contrib modules are looked for in the
- directory where the designated core resides, and in "SBCL_HOME".
-
The usual, recommended approach is method #1. Method #2 is useful if
you're installing SBCL on a system in a non-standard location
(e.g. in your user account), instead of installing SBCL on an entire
system. Method #3 is mostly useful for testing or other special
cases.
+ Contributed modules are primarily looked for in "SBCL_HOME", or the
+ directory the core resides in if "SBCL_HOME" is not set.
+ ASDF:*CENTRAL-REGISTRY* serves as an additional fallback for
+ ASDF-based modules.
+
1.3. Anatomy of SBCL
The two files that SBCL needs to run, at minimum, are:
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
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 '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, and x86
+ Solaris.
+
+ :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'").
* Some GCC versions are known to have bugs that affect SBCL
compilation: if the error you're encountering seems related to
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
- OpenBSD 3.4, 3.5 X
- NetBSD X
- Solaris X
- Tru64 X
- Darwin (Mac OS X) 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
+ 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.