NAME¶
lisp - CMU Common Lisp programming environment
SYNOPSIS¶
lisp [input-files] [switch-list]
DESCRIPTION¶
lisp Starts up CMU Common Lisp. If
switch-list is empty, then Lisp
will enter a read-eval-print loop using stdin, stdout and stderr. The optional
input-files provide operands for some switches. These switches are
defined:
- -help
- Prints out the command line options and exits.
- --help
- Same as -help.
- -core filename
- Specifies the suspended Lisp image (or `core file') to
start up.
- -lib libpath
- A colon-separated list of directories to be used for the
library: search-list.
- -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.
- -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.
- -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.
- -read-only-space-size
- Requires an argument that should be the number of megabytes
(1048576 bytes) that should be allocated to the read-only space. If not
specified, a platform-specific default is used.
- -static-space-size
- Requires an argument that should be the number of megabytes
(1048576 bytes) that should be allocated to the static-space. If not
specified, a platform-specific default is used. The actual maximum allowed
heap size is platform-specific.
- -control-stack-size
- Requires an argument that should be the number of megabytes
(1048576 bytes) that should be allocated for the control stack. If not
specified, a platform-specific default is used. The actual maximum allowed
heap size is platform-specific.
- -binding-stack-size
- Requires an argument that should be the number of megabytes
(1048576 bytes) that should be allocated for the binding stack. If not
specified, a platform-specific default is used. The actual maximum allowed
heap size is platform-specific. -edit Causes Lisp to enter the
Hemlock editor. A file to edit may be specified by placing the name
of the file between the program name (usually `lisp') and the first
switch.
- -eval expression
- Evaluates the specified Lisp expression during the
start up sequence. The value of the form will not be printed unless it is
wrapped in a form that does output.
- -init filename
- Specifies the name of a file containing user customizations
that is to be loaded each time Lisp starts up (default ~/init or
~/.cmucl-init.) The loader loads any existing compiled binary, or the
".lisp" source if none.
- -hinit filename
- Similar to -init, but specifies the name of the
Hemlock init file (default `~/hemlock-init' or ~/.hemlock-init),
which is loaded only when Hemlock is started.
- -noinit
- Suppresses loading of the init file, and also prevents
-edit from loading the Hemlock init file.
- -nositeinit
- Suppresses loading of the site-init site specific
initialization file.
- -load filename
- Loads the specified file into Lisp before entering Lisp's
read-eval-print loop.
- -slave editor-name
- Specifies that Lisp should start up as a slave Lisp
and try to connect to an editor Lisp. The name of the editor to connect to
must be specified. To find the editor's name, use the Hemlock
`Accept Slave Connections' command. editor-name is of the form
`machine-name:socket', where machine-name is the internet host name
for the machine and socket is the decimal number of the socket to
connect to.
- -debug-lisp-search
- Enables printing of messages indicating how CMUCL is
searching for its core file. This is useful if CMUCL is not finding its
core file for some reason.
- -fpu fpu-mode
- This option is only available on x86 systems. This option
takes the values x87, sse2, or auto, with auto being the default. With the
default value, CMUCL will check to see if the machine running CMUCL
supports SSE2 or not. If so, the SSE2 core file is automatically selected
and used. If not, the x87 core file is used. With this option, the user
can override the detection and select a core. (Note that you cannot run
the SSE2 core on a chip that doesn't not have SSE2. But the x87 core can
run on any machine.)
- --
- If this option is given, CMUCL's argument processing is
stopped, and anything after "--" is placed in
EXT:*COMMAND-LINE-APPLICATION-ARGUMENTS*. This allows the application to
its own processing of any special options.
ENVIRONMENT¶
- CMUCLLIB
- This variable points to the `lib/' directory holding
`lisp.core' and other files used by Lisp at run-time. This can be
overridden by using the -lib commandline option.
- CMUCLCORE
- This variable holds the path to the `lisp.core' that that
should be used. This can be overridden by using the -core commandline
option.
- CMUCL_EMPTYFILE
- [SunOS only] If `df /tmp' shows `swap' as the filesystem
for the `/tmp' directory, then you have a "tmpfs" filesystem. In
this case, you must setenv CMUCL_EMPTYFILE to point into a pathname on a
non-TMPFS filesystem that can be used instead of `/tmp/empty'.
- XKEYSYMDB
- In order to use Motif (and the graphical debugger) with X
servers from non-OSF vendors (like Sun) you may need to set the
environment variable XKEYSYMDB to point to the file `lib/XKeysymDB'.
Otherwise, you will get many error messages every time a new connection is
opened to the CMU CL motifd. This file is read by the X11R5 Xt in order to
augment the keysym database with certain OSF vendor keysyms that Motif
wants to use.
CORE FILE SEARCHING¶
When no core file is specified (either by the CMUCLCORE environment variable or
by the -core option), CMUCL will search in various places to 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 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 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:
- `<bin>'
- `<bin>/../lib/cmucl/lib'
- `<bin>/../lib'
- `/usr/local/lib/cmucl/lib'
-
FILES¶
- /usr/share/doc/cmucl/*
- Various postscript and text documentation files.
- /usr/bin/lisp
- The lisp startup program. This directory should be in
PATH.
- /usr/lib/cmucl/sample-wrapper
- An example shell script that setups up the environment and
run lisp. This is not normally needed unless you want some special
configuration.
- /usr/lib/cmucl/lisp.core
- The suspended Lisp image. But for x86 machines the
suspended core is named lisp-x87.core or lisp-sse2.core, depending on
whether the x87 or sse2 core is used.
- /etc/common-lisp/cmucl/site-init.lisp,generic-site.lisp
- Site specific initialization (see README file.) The
generic-site.lisp file is a template that can be used to create
site-init.lisp. (Note: installation of CMUCL does not create or destroy
any site-init.lisp file.)
- /usr/lib/cmucl/lib/lisp.a
- An archive file of all of the C runtime code. This is
needed when creating and executable image.
- /usr/lib/cmucl/lib/linker.sh,linker-x86.sh
- Shell scripts to perform the necessary linking to create an
executable image.
- /usr/lib/cmucl/hemlock11.*,/usr/lib/cmucl/mh-scan,/usr/lib/cmucl/spell-dictionary.bin
- Hemlock files.
- /usr/lib/cmucl/lib/fonts/
- X11 fonts for Hemlock.
- /usr/lib/cmucl/lib/locale
- This directory contains template files for CMUCL messages.
Translations of the CMUCL messages are also stored here.
- /usr/lib/cmucl/lib/XKeysymDB
- Database of X Keysym names for Motif.
- /usr/lib/cmucl/lib/load-foreign.csh
- Script used by LOAD-FOREIGN to run "ld" on some
platforms.
- /usr/lib/cmucl/lib/contrib
- This directory contains contrib modules, including asdf2
and mk-defsystem.
- /usr/lib/cmucl/lib/ext-formats
- This directory contains lisp files that implement the
various external formats supported by CMUCL.
- /usr/lib/cmucl/lib/subsystems
- This directory contains the subsystems for CMUCL. The
subsystems include CLX, CLM, Gray streams, Hemlock, and Simple
Streams.
- ~/init.lisp,~/.cmucl-init.lisp
- User customization files loaded at lisp startup; either
name is acceptable. Init files can be compiled.
- ~/hemlock-init.lisp,~/.hemlock-init.lisp
- Hemlock initialization file, loaded when Hemlock
starts.
SEE ALSO¶
cmucl(1), README
The ``CMU Common Lisp User's Manual'',
the ``Hemlock User's Manual'', and
the ``Hemlock Command Implementor's Manual''
BUGS¶
Consult
http://www.cons.org/cmucl/support.html for support information,
including mechanisms for bug reporting. Please consult your local CMU CL
maintainer or Common Lisp expert if any to verify that a problem really is a
bug before reporting it.
Known problems with this version:
- --
- Detection of stack overflow is not very graceful. You get
many "map failure" errors on stderr.
- --
- If file descriptors are used up, then Lisp will die.
- --
- Several proposed ANSI Common Lisp (CLtL II) features are
not implemented: Any CLOS features not implemented by PCL, and features
added since the first ANSI draft.
- --
- The interpreter's pre-processing freezes in the macro
definitions in effect at the time an interpreted function is defined.