diff --git a/code/gc.lisp b/code/gc.lisp index 84c8b0fd47e9e362349e941fccccbe2b1c477075..9e33dca47de349da6c89052da190ea98c2742386 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 20dcfe7eaaf6a77f36e368c0d9a2a613a661794e..605efd56fe4ce59ee931f90256fe26ee238f19f9 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 ddd6ae65f09eda4072a686c3750c9ecad7246e8a..f8593fe073cd4c6d54022dcfe7a678875aaf3206 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 ea715173e77c263a806dd8f53d50c9855230494f..1e83bc0d738581db42198fd177152366cb3a3cfd 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 b976162f636ebaf9ba610a944bd015565d8fb0fe..b5258115c06aad42ae2b4c5e979808d0549bc2cd 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