From 81be19cf361cb5bbb191e3a349db6b3b5462c83d Mon Sep 17 00:00:00 2001
From: pmai <pmai>
Date: Fri, 11 Apr 2003 15:17:45 +0000
Subject: [PATCH] Merged changes made during the 18e freeze period back into
 the main branch.

---
 code/gc.lisp                   |   6 +-
 docs/cmu-user/introduction.tex |  13 +-
 general-info/README            | 214 +++++++++++++++++++++------------
 general-info/lisp.1            |  27 ++++-
 general-info/release-18e.txt   |  21 ++--
 5 files changed, 190 insertions(+), 91 deletions(-)

diff --git a/code/gc.lisp b/code/gc.lisp
index 84c8b0fd4..9e33dca47 100644
--- a/code/gc.lisp
+++ b/code/gc.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/gc.lisp,v 1.33 2003/02/12 18:35:29 cracauer Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/gc.lisp,v 1.34 2003/04/11 15:17:45 pmai Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -209,13 +209,13 @@
 
 ;;; The default value of *BYTES-CONSED-BETWEEN-GCS* and *GC-TRIGGER*.
 ;;; 
-(defconstant default-bytes-consed-between-gcs 2000000)
+(defconstant default-bytes-consed-between-gcs 12000000)
 
 ;;; This variable is the user-settable variable that specifices the
 ;;; minimum amount of dynamic space which must be consed before a GC
 ;;; will be triggered.
 ;;; 
-(defvar *bytes-consed-between-gcs* default-bytes-consed-between-gcs
+(defparameter *bytes-consed-between-gcs* default-bytes-consed-between-gcs
   "This number specifies the minimum number of bytes of dynamic space
    that must be consed before the next gc will occur.")
 ;;;
diff --git a/docs/cmu-user/introduction.tex b/docs/cmu-user/introduction.tex
index 20dcfe7ea..605efd56f 100644
--- a/docs/cmu-user/introduction.tex
+++ b/docs/cmu-user/introduction.tex
@@ -91,9 +91,17 @@ switches:
   disables the printing of the startup banner.
 
 \item[\code{-core}] requires an argument that should be the name of a
-  core file.  Rather than using the default core file
-  (\file{lib/lisp.core}), the specified core file is loaded.
+  core file.  Rather than using the default core file, which is searched
+  in a number of places, according to the initial value of the
+  \code{library:} search-list, the specified core file is loaded.  This
+  switch overrides the value of the \code{CMUCLCORE} environment variable,
+  if present.
   
+\item[\code{-lib}] requires an argument that should be the path to the
+  CMUCL library directory, which is going to be used to initialize the
+  \code{library:} search-list, among other things.  This switch overrides
+  the value of the \code{CMUCLLIB} environment variable, if present.
+
 \item[\code{-dynamic-space-size}] requires an argument that should be
   the number of megabytes (1048576 bytes) that should be allocated to
   the heap.  If not specified, a platform-specific default is used.
@@ -132,6 +140,7 @@ switches:
 \item[\code{-nositeinit}] accepts no arguments and specifies that the
   site init file should not be loaded during the normal start up
   sequence. 
+
 \item[\code{-load}] accepts an argument which should be the name of a
   file to load into Lisp before entering Lisp's read-eval-print loop.
   
diff --git a/general-info/README b/general-info/README
index ddd6ae65f..f8593fe07 100644
--- a/general-info/README
+++ b/general-info/README
@@ -1,90 +1,154 @@
 ================ C M U C L =============================================
-        
-  CMUCL is a free, high performance implementation of the Common Lisp
-  programming language which runs on most major Unix platforms. It
-  mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
-  sophisticated native code compiler; a powerful foreign function
-  interface; an implementation of CLOS; the Common Lisp Object System;
-  which includes multimethods and a metaobject protocol; a source-level
-  debugger and code profiler; and an Emacs-like editor implemented in
-  Common Lisp. CMUCL is maintained by a team of volunteers collaborating
-  over the Internet, and is in the public domain.
+
+   CMUCL is a free, high performance implementation of the Common Lisp
+   programming language which runs on most major Unix platforms. It
+   mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
+   sophisticated native code compiler; a powerful foreign function
+   interface; an implementation of CLOS; the Common Lisp Object System;
+   which includes multimethods; a metaobject protocol; a source-level
+   debugger and code profiler; and an Emacs-like editor implemented in
+   Common Lisp. CMUCL is maintained by a team of volunteers collaborating
+   over the Internet, and is mostly in the public domain.
 
 
 === Installation instructions ==========================================
 
-  For each supported platform there are two gzipped tar archives, one
-  containing the base system, and the other (with extra in the name)
-  containing optional additional files supporting CLX, Hemlock, Gray
-  streams and so on.
-  
-  For the Solaris/SPARC platform, the release binaries should work with
-  SunOS 5.5, 5.7 and 5.8 (also known respectively as Solaris 2.5,
-  Solaris 7 and Solaris 8). If you have an UltraSPARC processor you can
-  get the v9 binaries, which use instructions which are only present on
-  SPARC-v9 implementations; otherwise you should get the binaries
-  without v9 in the name of the tarball. If you have an UltraSPARC the
-  command uname -m will say sun4u, if you have an older machine such as
-  a SparcStation it will probably say sun4m.
-  
-  Download the gzipped tar archives corresponding to your platform. You
-  can check the integrity of the files you have downloaded by comparing
-  the output of md5sum <filename> with that given in the file
-  md5sums.txt.
-  
-  The release tarballs extract to the following directory structure:
-  
-     bin/lisp
-     lib/cmucl/lib/lisp.core
-     doc/cmucl/README (this file)
-     man/man1/cmucl.1
-     ...
-  
-  This allows you to install CMUCL directly under /usr/local, for
-  example using
-  
-     cd /usr/local
-     tar xzf /path/to/cmucl-18d-<platform>.tar.gz
-     
-  or alternatively, install under a directory in /opt, for example
-  
-     mkdir /opt/cmucl-18d
-     cd /opt/cmucl-18d
-     tar xzf /path/to/cmucl-18d-<platform>.tar.gz
-  
-  In the second case you will need to create a shell script to invoke
-  CMUCL. Copy the file /opt/cmucl-18d/bin/sample-wrapper to a directory
-  in your PATH (naming it cmucl for example), and replace both
-  occurrences of <<your-cmucl-path>> by /opt/cmucl-18d. Make sure that
-  this shell script is executable (using "chmod +x scriptname").
-  
-  You can now invoke CMUCL: this should display a banner then show a
-  prompt (the default prompt is an asterisk).
-  
-     % cmucl
-     CMU Common Lisp 18d, running on myhost
-     See <URL:http://www.cons.org/cmucl/support.html> for information.
-     Loaded subsystems:
-        Python 1.0, target SPARCstation/Solaris 2
-        CLOS based on PCL version:  September 16 92 PCL (f)
-     * (format t "~&Hello, world!~%")
-     Hello, world!
-     NIL
-     * 
-  
-  You may wish to edit your site initialization file (in
-  /usr/local/lib/cmucl/site-init.lisp).
-
-   
+   For each supported platform (see below for platform-specific
+   information) there are two gzipped tar archives, one containing the
+   base system, and the other (with extra in the name) containing
+   optional additional files supporting CLX, Hemlock, the Motif
+   interface, and so on. Alternatively, you can download the slightly
+   smaller bzipped archives (with the .bz2 filename extension), which
+   contain the same data but were compressed using the bzip2 program.
+
+   Download the archives corresponding to your platform. You can check
+   the integrity of the files you have downloaded by comparing the
+   output of md5sum <filename> with that given in the file md5sums.txt.
+
+   The release tarballs extract to the following directory structure:
+
+      bin/lisp
+      lib/cmucl/lib/lisp.core
+      doc/cmucl/README (this file)
+      man/man1/cmucl.1
+      ...
+
+   This allows you to install CMUCL directly under /usr/local, for
+   example using
+
+      cd /usr/local
+      tar xzf /path/to/cmucl-18e-<platform>.tar.gz
+
+   or alternatively, install under a directory in /opt, for example
+
+      mkdir /opt/cmucl-18e
+      cd /opt/cmucl-18e
+      tar xzf /path/to/cmucl-18e-<platform>.tar.gz
+
+   You can now invoke CMUCL: this should display a banner then show a
+   prompt (the default prompt is an asterisk).
+
+      % lisp
+      CMU Common Lisp 18e, running on orion
+      With core: /prj/cmucl/release-18e/linux/lisp/lisp.core
+      Dumped on: Thu, 2003-04-03 15:47:12+02:00 on orion
+      See <http://www.cons.org/cmucl/> for support information.
+      Loaded subsystems:
+          Python 1.1, target Intel x86
+	 CLOS 18e (based on PCL September 16 92 PCL (f))
+      * (format t "~&Hello, world!~%")
+      Hello, world!
+      NIL
+      *
+
+   To load precompiled subsystems (assuming that you installed the
+   -extra- tarball), just use REQUIRE:
+
+      * (require :gray-streams)
+      * (require :clx)
+      * (require :clm)
+      * (require :hemlock)
+
+   DEFSYSTEM is not included with CMUCL, but can be obtained from
+   <URL:http://clocc.sf.net/>. It may be installed as a subsystem by
+   compiling it (using the function COMPILE-FILE), and moving the
+   resulting defsystem.FASL file to
+      /usr/local/lib/cmucl/lib/subsystems/defsystem-library.FASL
+   (where FASL is the file extension of compiled lisp files on your
+   system, for instance .sparcf or .x86f). You can then say
+
+      * (require :defsystem)
+
+   to load the DEFSYSTEM facility into your running lisp.
+
+
+   You may wish to edit your site initialization file (in
+   /usr/local/lib/cmucl/site-init.lisp).
+
+=== Platform-specific notes ============================================
+
+   +++ Solaris/SPARC
+   The release binaries are known to work with SunOS 5.7 and 5.8
+   (also known respectively as Solaris 7 and Solaris 8), and should
+   work on any later versions.
+
+   If you have an UltraSPARC processor you can get the v9 binaries,
+   which use instructions which are only present on SPARC-v9 (also called
+   v8plus for 32bit binaries) implementations; otherwise you should get
+   the binaries without v9 in the name of the tarball, which only require
+   a SPARC-v8 implementation.
+
+   If you have an UltraSPARC the command uname -m will say sun4u, if you
+   have an older machine such as a SparcStation it will probably say sun4m.
+   If it says sun4c, sun4d or only sun4, you have a machine with only a
+   SPARC-v7 implementation, and thus will need custom-built binaries.
+
+
+   +++ Linux/x86
+   The release binaries should work with any Pentium or better processor.
+   The binaries were built against version 2.1 of the GNU C library
+   (glibc2.1), but should run on systems using version 2.2. They should
+   run with any Linux kernel after 2.0 (but beware early kernels in the
+   2.4 series, which had poor virtual memory characteristics). There
+   are known problems running CMUCL on kernels using some of the
+   "highmem" patches: in particular the CONFIG_2GB patch seems to
+   conflict with the memory map used by the release binaries. The
+   CONFIG_1GB and CONFIG_64GB options work fine.
+
+   CMUCL is known not to run under libsafe, whose system call
+   interposition mechanism interferes with the foreign function
+   interface.
+
+
+   +++ FreeBSD/x86
+   The release binaries should work with any Pentium or better processor.
+   The binaries were built on FreeBSD 4.7, but should run on any of the
+   4.x releases. 
+
+
+   +++ OpenBSD/x86
+   The release binaries should work with any i486 or better processor.
+   The binaries were built on OpenBSD 3.1.
+
+
+   +++ Other platforms
+   Binaries for other platforms supported by 18e sources might be made
+   available by contributors at later dates, the details of which were
+   not available at release time.  Especially binaries for Irix/MIPS
+   and Linux/Alpha are likely to be available.  Please see the README
+   file distributed with those binaries for details on platform-specific
+   notes for those platforms.
+
+
 
 === Further information ================================================
 
    The best source for information on CMUCL is the web site,
    <URL:http://www.cons.org/cmucl/>. You will find pointers to
    documentation and tips on using CMUCL, and information regarding
-   mailing lists and bug reporting. 
+   mailing lists and bug reporting.
 
    Enjoy using CMUCL!
 
 
-2001-12-18
+2003-04-08
diff --git a/general-info/lisp.1 b/general-info/lisp.1
index ea715173e..1e83bc0d7 100644
--- a/general-info/lisp.1
+++ b/general-info/lisp.1
@@ -6,7 +6,7 @@
 .\" If you want to use this code or any part of CMU Common Lisp, please contact
 .\" Scott Fahlman or slisp-group@cs.cmu.edu.
 .\"
-.\"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/general-info/lisp.1,v 1.9 2003/01/30 15:46:42 toy Exp $
+.\"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/general-info/lisp.1,v 1.10 2003/04/11 15:17:45 pmai Exp $
 .\"
 .\" **********************************************************************
 .\"
@@ -34,6 +34,23 @@ Specifies the suspended Lisp image (or `core file') to start up.
 .BR \-lib " libpath"
 A colon-separated list of directories to be used for the library: search-list.
 .TP
+.BR \-batch
+Causes Lisp to run in batch mode, where all input is directed from
+standard-input.
+A unix return code of 0 is returned upon encountering an EOF, while any
+unhandled error condition will cause an immediate exit with a return code
+of 1, instead of entering the debugger.
+.TP
+.BR \-quiet
+Causes Lisp to start up silently, disabling printing of the herald, and causing
+most unnecessary noise, like GC messages, load messages, etc. to be suppressed.
+.TP
+.BR \-dynamic-space-size
+Requires an argument that should be the number of megabytes (1048576 bytes)
+that should be allocated to the heap.  If not specified, a platform-specific
+default is used.  The actual maximum allowed heap size is platform-specific.
+Currently, this option is only available for the x86 and sparc platforms. 
+.TP
 .BR \-edit
 Causes Lisp to enter the 
 .I Hemlock
@@ -123,12 +140,14 @@ find a possible core file.
 When the environment variable CMUCLLIB is set or the -lib option is
 given, the lisp core file is searched in the places specified
 therein.  This is a colon-separated list of directories, just like
-PATH.  This is of directories is searched in order for a file named
+PATH.  This list of directories is searched in order for a file named
 `lisp.core'.  The first one found will be the core to be used.
 
 When the CMUCLLIB is not set and -lib is not given, a set of default
-paths is used.  Let the lisp C executable be located at `<bin>/lisp'.
-Then the following directories are searched for the core file:
+paths is used to initialize the library: search-list, and this list is
+also used to search for the core file.  Let the lisp C executable be
+located at `<bin>/lisp'.  Then the following directories are searched
+for the core file:
 
 .TP 10n
 .BR `<bin>'
diff --git a/general-info/release-18e.txt b/general-info/release-18e.txt
index b976162f6..b5258115c 100644
--- a/general-info/release-18e.txt
+++ b/general-info/release-18e.txt
@@ -1,7 +1,5 @@
 ========================== C M U C L  18 e =============================
 
-[--- WORK IN PROGRESS --- DO NOT DISTRIBUTE ---]
-
 The CMUCL project is pleased to announce the release of CMUCL 18e.
 This is a major release which contains numerous enhancements and
 bugfixes from the 18d release.
@@ -22,9 +20,9 @@ New in this release:
      - Karatsuba multiplier added to give faster multiplication for
        big bignums.
      - Better support for linking foreign libraries. You can now dump
-       cores with foreign libraries and reload the core without having
-       to reload the libraries. Available if the feature
-       :linkage-table is present.
+       cores with foreign libraries and reload this core and the
+       libraries, without having to reload code that uses those
+       libraries.  Available if the feature :linkage-table is present.
      - A cross-referencing facility has been added to the compiler,
        providing WHO-CALLS, WHO-BINDS, WHO-REFERENCES, WHO-SETS
        information. See the corresponding chapter of the User's Manual
@@ -39,8 +37,11 @@ New in this release:
      - Access to the hardware cycle counters on Pentium and UltraSPARC
        processors has been added, and is reported by the TIME macro.
      - On Linux, it is possible to read and write files larger than 2GiB
-       (Large File Support implementation). Full support for this
-       requires a 2.4 or a 2.2 kernel with LFS patches.
+       (Large File Support implementation) using the low-level functions
+       in the UNIX package.  Use of ANSI CL functions to process such files
+       may work, but the code base hasn't been audited for this.
+       Full support for this requires a 2.4 or a 2.2 kernel with LFS
+       patches.
 
   * Numerous ANSI compliance fixes:
      - SYMBOL-MACROLET signals an error when an attempt is made to
@@ -150,6 +151,12 @@ New in this release:
        code has been fixed.
 
   * Other changes:
+     - The default value for EXT:*BYTES-CONSED-BETWEEN-GCS* has been
+       increased from 2000000 to 12000000, which should improve GC
+       performance for many applications out of the box.  Of course
+       people are encouraged to tune the GC parameters to match their
+       application requirements (e.g. interactive response times),
+       and their hardware environment.
      - The sparc port has experimental support for native 64-bit
        integers (unsigned-byte 64) and (signed-byte 64) on sparc v9
        (64-bit) architectures.  Enabled if the feature :sparc-v8plus
-- 
GitLab