0.8.9.7:
[sbcl.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index be9e1c4..28da68d 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,10 +1,13 @@
 IF YOU HAVE A BINARY DISTRIBUTION:
 
 IF YOU HAVE A BINARY DISTRIBUTION:
 
-The two files that SBCL needs to run are sbcl and sbcl.core.
+The two files that SBCL needs to run, at minimum, are sbcl and sbcl.core.
 They are in 
        src/runtime/sbcl
 and
        output/sbcl.core
 They are in 
        src/runtime/sbcl
 and
        output/sbcl.core
+In addition, there are a number of modules that extend the basic sbcl
+functionality, in
+        contrib/
 
 sbcl is a standard executable, built by compiling and linking an
 ordinary C program. It provides the runtime environment for the
 
 sbcl is a standard executable, built by compiling and linking an
 ordinary C program. It provides the runtime environment for the
@@ -17,24 +20,38 @@ stuff.
 In order to get a usable system, you need to run sbcl in a way that
 it can find sbcl.core. There are three ways for it to find
 sbcl.core:
 In order to get a usable system, you need to run sbcl in a way that
 it can find sbcl.core. There are three ways for it to find
 sbcl.core:
-  1. by default, in /usr/lib/sbcl.core or /usr/local/lib/sbcl.core
+
+  1. by default, in /usr/lib/sbcl/sbcl.core or /usr/local/lib/sbcl/sbcl.core
+     (depending on the SBCL_HOME C preproccessor #define at compile-time)
   2. by environment variable: 
   2. by environment variable: 
-     $ export SBCL_HOME=/foo/bar/
+     $ export SBCL_HOME=/foo/bar/lib/sbcl
      $ sbcl
   3. by command line option:
      $ sbcl --core /foo/bar/sbcl.core"
      $ sbcl
   3. by command line option:
      $ sbcl --core /foo/bar/sbcl.core"
-The usual, recommended approach is method #1. Method #2 is useful if
-you're installing SBCL on a system in your user account, instead of
-installing SBCL on an entire system. Method #3 is mostly useful for
-testing or other special cases.
+
+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.
 
 So: the standard installation procedure is
   1. Copy sbcl.core to /usr/lib or /usr/local/lib.
   2. Copy sbcl to /usr/bin or /usr/local/bin.
 
 So: the standard installation procedure is
   1. Copy sbcl.core to /usr/lib or /usr/local/lib.
   2. Copy sbcl to /usr/bin or /usr/local/bin.
-  3. Optionally copy sbcl.1 to /usr/man/man1 or /usr/local/man/man1.
-The script install.sh does these for you (choosing the /usr/local
-subdirectory) in each case.
+  3. Copy the contrib modules that you're using (if any) to the same place
+      as sbcl.core
+  4. Optionally copy sbcl.1 to /usr/man/man1 or /usr/local/man/man1.
+
+The script install.sh does all of this for you, including compilation
+of all contrib modules it can find, and installation of all those that
+pass their tests.  You should set the INSTALL_ROOT environment
+variable to /usr or /usr/local as appropriate before starting
+install.sh: e.g.
 
 
+   # INSTALL_ROOT=/usr/local sh install.sh
+or
+   $ INSTALL_ROOT=/home/me/sbcl sh install.sh
+(if your INSTALL_ROOT is XYZ, SBCL_HOME should be set to
+XYZ/lib/sbcl).
 
 IF YOU HAVE A SOURCE DISTRIBUTION:
 
 
 IF YOU HAVE A SOURCE DISTRIBUTION:
 
@@ -43,6 +60,7 @@ This software has been built successfully on these systems:
                os = Debian GNU/Linux 2.1 with libc >= 2.1
                        host lisp = CMU CL 2.4.17
                        host lisp = SBCL itself
                os = Debian GNU/Linux 2.1 with libc >= 2.1
                        host lisp = CMU CL 2.4.17
                        host lisp = SBCL itself
+                       host lisp = CLISP CVS as of end of April
                os = RedHat Linux 6.2
                        host lisp = SBCL itself
                os = FreeBSD 3.4 or 4.0
                os = RedHat Linux 6.2
                        host lisp = SBCL itself
                os = FreeBSD 3.4 or 4.0
@@ -50,11 +68,26 @@ This software has been built successfully on these systems:
                        host lisp = SBCL itself
                os = OpenBSD 2.6, 2.7, 2.8, 2.9, and 3.0
                        host lisp = SBCL itself
                        host lisp = SBCL itself
                os = OpenBSD 2.6, 2.7, 2.8, 2.9, and 3.0
                        host lisp = SBCL itself
-It is known not to build under CLISP because of (as of early June 2002)
-bugs in the CLISP garbage collector, and it is known not to build under
-other systems like OpenMCL because of (as of early June 2002) remaining
-dependencies of SBCL bootstrapping on CMUCLisms like the representation
-of BYTE. 
+       cpu = alpha
+               os = Debian GNU/Linux 2.2 with libc >= 2.1
+                       host lisp = SBCL itself
+               os = Tru64 5.1
+                       host lisp = SBCL itself
+       cpu = sparc
+               os = Debian GNU/Linux 2.2 with libc >= 2.2
+                       host lisp = SBCL itself
+               os = Solaris 8
+                       host lisp = SBCL itself
+       cpu = powerpc
+               os = Debian GNU/Linux 2.2 with libc >= 2.1
+                       host lisp = OpenMCL 0.12
+                       host lisp = SBCL itself
+               os = MacOS X.2
+                       host lisp = OpenMCL 0.13.6
+                       host lisp = SBCL itself
+       cpu = mips and mipsel
+               os = Debian GNU/Linux 3.0
+                       host lisp = SBCL itself
 
 Reports of other systems that it works on (or doesn't work on, for
 that matter), or help in making it run on more systems, would be
 
 Reports of other systems that it works on (or doesn't work on, for
 that matter), or help in making it run on more systems, would be
@@ -99,16 +132,18 @@ To build the system binaries:
   1. Make sure that you have enough RAM+swap to build SBCL, as
      per the CAUTION note above. (As of version 0.6.0, the most
      memory-intensive operation in make.sh is the second call to
   1. Make sure that you have enough RAM+swap to build SBCL, as
      per the CAUTION note above. (As of version 0.6.0, the most
      memory-intensive operation in make.sh is the second call to
-     GENESIS, which makes the Lisp image grow to nearly 128 Mb RAM+swap.
-  2. If the GNU make command is not available under the name "gmake",
-     then define the environment variable GNUMAKE to a name where it can
-     be found.
+     GENESIS, which makes the Lisp image grow to around 128 Mb RAM+swap.
+  2. If the GNU make command is not available under the names "gmake"
+     or "make", then define the environment variable GNUMAKE to a name
+     where it can be found.
   3. If you like, you can tweak the *FEATURES* set for the resulting
      Lisp system, enabling or disabling features like documentation
   3. If you like, you can tweak the *FEATURES* set for the resulting
      Lisp system, enabling or disabling features like documentation
-     strings or extra debugging code. The preferred way to do this is
-     by creating a file "customize-target-features.lisp", containing
-     a lambda expression which is applied to the default *FEATURES*
-     set and which returns the new *FEATURES* set, e.g.
+     strings, threads, or extra debugging code (see
+     "base-target-features.lisp-expr" for a list of recognized
+     *FEATURES*).  The preferred way to do this is by creating a file
+     "customize-target-features.lisp", containing a lambda expression
+     which is applied to the default *FEATURES* set and which returns
+     the new *FEATURES* set, e.g.
        (LAMBDA (LIST)
          (ADJOIN :SB-SHOW
                  (REMOVE :SB-DOC
        (LAMBDA (LIST)
          (ADJOIN :SB-SHOW
                  (REMOVE :SB-DOC
@@ -128,9 +163,7 @@ To build the system binaries:
        13 hours on a 133MHz Pentium (P54C) with 48Mb RAM, running OpenBSD 2.6.
      Around the 48Mb mark, the build process is starved for RAM:
      on my 48Mb OpenBSD machine with nothing else running, it
        13 hours on a 133MHz Pentium (P54C) with 48Mb RAM, running OpenBSD 2.6.
      Around the 48Mb mark, the build process is starved for RAM:
      on my 48Mb OpenBSD machine with nothing else running, it
-     spent about 2/3 of its wall clock time swapping. Anything which 
-     substantially increases memory use, like running X11, Emacs, or, 
-     God forbid, Netscape, can increase the build time substantially.
+     spent about 2/3 of its wall clock time swapping. 
 
 Now you should have the same src/runtime/sbcl and output/sbcl.core
 files that come with the binary distribution, and you can install
 
 Now you should have the same src/runtime/sbcl and output/sbcl.core
 files that come with the binary distribution, and you can install