- clisp [[-h] | [--help]] [--version] [--license] [-help-image] [-B lisp-lib-dir] [-b] [-K linking-set] [-M mem-file] [-m memory-size] [-L language] [-N locale-dir] [-Edomain encoding] [[-q] | [--quiet] | [--silent] | [-v] | [--verbose]] [-on-error action] [-repl] [-w] [-I] [-disable-readline] [[-ansi] | [-traditional]] [-modern] [-p package] [-C] [-norc] [-lp directory...] [-i init-file...] [-c [-l] lisp-file [-o output-file]...] [-x expressions...] [lisp-file [argument...]]
When called without arguments, executes the m[blue]read-eval-print loopm, in which expressions are in turn
- • m[blue]READm from the standard input,
- • m[blue]EVALmuated by the lisp interpreter,
- • and their results are m[blue]PRINTmed to the standard output.
Non-Interactive (Batch) Mode
Invoked with -c, compiles the specified lisp files to a platform-independent bytecode which can be executed more efficiently.
Invoked with -x, executes the specified lisp expressions.
Invoked with lisp-file, runs the specified lisp file.
- Displays a help message on how to invoke m[blue]CLISPm.
- Displays the m[blue]CLISPm version number, as given by the function m[blue]LISP-IMPLEMENTATION-VERSIONm, the value of the variable *FEATURES*, as well some other information.
- Displays a summary of the licensing information, the m[blue]GNUm m[blue]GPLm.
- Displays information about the memory image being invoked: whether is it suitable for scripting as well as the :DOCUMENTATION supplied to EXT:SAVEINITMEM.
- Specifies the installation directory. This is the directory containing the linking sets and other data files. This option is normally not necessary, because the installation directory is already built-in into the clisp executable. Directory lisp-lib-dir can be changed dynamically using the m[blue]SYMBOL-MACROm CUSTOM:*LIB-DIRECTORY*.
- Print the installation directory and exit immediately. The namestring of CUSTOM:*LIB-DIRECTORY* is printed without any quotes. This is mostly useful in module Makefiles, see, e.g., modules/syscalls/Makefile.in (file in the CLISP sources).
to be run. This is a directory (relative to the
lisp-lib-dir) containing at least a main executable (runtime) and an initial
memory image. Possible values are
- the core m[blue]CLISPm
- core plus all the modules with which this installation was built, see Section 32.2, "External Modules".
The default is base.
- Specifies the initial memory image. This must be a memory dump produced by the EXT:SAVEINITMEM function by this clisp runtime. It may have been compressed using m[blue]GNUm m[blue]gzipm.
Sets the amount of memory
tries to grab on startup. The amount may be given as
- measured in bytes
- measured in machine words (4×n on 32-bit platforms, 8×n on 64-bit platforms)
- measured in kilobytes
- measured in kilowords
- measured in megabytes
- measured in megawords
The default is 3 megabytes. The argument is constrained above 100 KB.
This version of m[blue]CLISPm is not likely to actually use the entire memory-size since garbage-collection will periodically reduce the amount of used memory. It is therefore common to specify 10 MB even if only 2 MB are going to be used.
- Specifies the language m[blue]CLISPm uses to communicate with the user. This may be one of english, german, french, spanish, dutch, russian, danish. Other languages may be specified through the m[blue]environment variablem LANG, provided the corresponding message catalog is installed. The language may be changed dynamically using the m[blue]SYMBOL-MACROm CUSTOM:*CURRENT-LANGUAGE*.
- Specifies the base directory of locale files. m[blue]CLISPm will search its message catalogs in locale-dir/language/LC_MESSAGES/clisp.mo. This directory may be changed dynamically using the m[blue]SYMBOL-MACROm CUSTOM:*CURRENT-LANGUAGE*.
Specifies the encoding used for the given domain, overriding the default which depends on the
- affecting CUSTOM:*DEFAULT-FILE-ENCODING*
- affecting CUSTOM:*PATHNAME-ENCODING*
- affecting CUSTOM:*TERMINAL-ENCODING*
- affecting CUSTOM:*FOREIGN-ENCODING*
- affecting CUSTOM:*MISC-ENCODING*
- affecting all of the above.
Note that the values of these m[blue]SYMBOL-MACROms that have been saved in a memory image are ignored: these m[blue]SYMBOL-MACROms are reset based on the OS environment after the memory image is loaded. You have to use the RC file, CUSTOM:*INIT-HOOKS* or init function to set them on startup, but it is best to set the aforementioned m[blue]environment variablems appropriately for consistency with other programs. See Section 31.1, "Customizing CLISP Process Initialization and Termination".
- Change verbosity level: by default, m[blue]CLISPm displays a banner at startup and a good-bye message when quitting, and initializes m[blue]*LOAD-VERBOSE*m and m[blue]*COMPILE-VERBOSE*m to m[blue]Tm, and m[blue]*LOAD-PRINT*m and m[blue]*COMPILE-PRINT*m to m[blue]NILm, as per [ANSI CL standard]. The first -q removes the banner and the good-bye message, the second sets variables m[blue]*LOAD-VERBOSE*m, m[blue]*COMPILE-VERBOSE*m and CUSTOM:*SAVEINITMEM-VERBOSE* to m[blue]NILm. The first -v sets variables CUSTOM:*REPORT-ERROR-PRINT-BACKTRACE*, m[blue]*LOAD-PRINT*m and m[blue]*COMPILE-PRINT*m to m[blue]Tm, the second sets CUSTOM:*LOAD-ECHO* to m[blue]Tm. These settings affect the output produced by -i and -c options. Note that these settings persist into the m[blue]read-eval-print loopm. Repeated -q and -v cancel each other, e.g., -q -q -v -v -v is equivalent to -v.
Establish global error handlers, depending on
- m[blue]continuablem m[blue]ERRORms are turned into m[blue]WARNINGms (with EXT:APPEASE-CERRORS) other m[blue]ERRORms are handled in the default way
- m[blue]ERRORms m[blue]INVOKE-DEBUGGERm (the normal m[blue]read-eval-print loopm behavior), disables batch mode imposed by -c, -x, and lisp-file,
- m[blue]continuablem m[blue]ERRORms are appeased, other m[blue]ERRORms are m[blue]ABORTmed with EXT:ABORT-ON-ERROR
- m[blue]continuablem m[blue]ERRORms are appeased, other m[blue]ERRORms terminate m[blue]CLISPm with EXT:EXIT-ON-ERROR (the normal batch mode behavior).
See also EXT:SET-GLOBAL-HANDLER.
Start an interactive
after processing the
options and on any
m[blue]SIGNALmed during that processing.
Disables batch mode.
- Wait for a keypress after program termination.
Interact better with
(useful when running
et al). With this option,
interacts in a way that
can deal with:
- • unnecessary prompts are not suppressed.
- • The m[blue]GNUm m[blue]readlinem library treats TAB (see TAB key) as a normal self-inserting character (see Q: A.4.6).
- Do not use m[blue]GNUm m[blue]readlinem even when it has been linked against. This can be used if one wants to paste non-m[blue]ASCIIm characters, or when m[blue]GNUm m[blue]readlinem misbehaves due to installation (different versions on the build and install machines) or setup (bad TERM m[blue]environment variablem value) issues.
- Comply with the [ANSI CL standard] specification even where m[blue]CLISPm has been traditionally different by setting the m[blue]SYMBOL-MACROm CUSTOM:*ANSI* to m[blue]Tm.
- Traditional: reverses the residual effects of -ansi in the saved memory image.
- Provides a modern view of symbols: at startup the m[blue]*PACKAGE*m variable will be set to the "CS-COMMON-LISP-USER" package, and the m[blue]*PRINT-CASE*m will be set to :DOWNCASE. This has the effect that symbol lookup is case-sensitive (except for keywords and old-style packages) and that keywords and uninterned symbols are printed with lower-case preferrence. See Section 11.5, "Package Case-Sensitivity".
- At startup the value of the variable m[blue]*PACKAGE*m will be set to the package named package. The default is the value of m[blue]*PACKAGE*m when the image was saved, normally m[blue]"COMMON-LISP-USER"m.
- Compile when loading: at startup the value of the variable CUSTOM:*LOAD-COMPILING* will be set to m[blue]Tm. Code being m[blue]LOADmed will then be m[blue]COMPILEmd on the fly. This results in slower loading, but faster execution.
- Normally m[blue]CLISPm loads the user m[blue]"run control" (RC)m file on startup (this happens after the -C option is processed). The file loaded is .clisprc.lisp or .clisprc.fas in the home directory m[blue]USER-HOMEDIR-PATHNAMEm, whichever is newer. This option, -norc, prevents loading of the RC file.
- Specifies directories to be added to CUSTOM:*LOAD-PATHS* at startup. This is done after loading the RC file (so that it does not override the command-line option) but before loading the init-files specified by the -i options (so that the init-files will be searched for in the specified directories). Several -lp options can be given; all the specified directories will be added.
- Specifies initialization files to be m[blue]LOADmed at startup. These should be lisp files (source or compiled). Several -i options can be given; all the specified files will be loaded in order.
Compiles the specified
(*.fas). The compiled files can then be
m[blue]LOADmed instead of the sources to gain efficiency.
Imposes batch mode.
- Specifies the output file or directory for the compilation of the last specified lisp-file.
- Produce a bytecode m[blue]DISASSEMBLEm listing (*.lis) of the files being compiled. Useful only for debugging. See Section 24.1, "Function COMPILE-FILE" for details.
Executes a series of arbitrary expressions instead of a
m[blue]read-eval-print loopm. The values of the expressions will be output to
m[blue]*STANDARD-OUTPUT*m. Due to the argument processing done by the shell, the
must be enclosed in double quotes, and double quotes and backslashes must be escaped with backslashes.
Imposes batch mode.
lisp-file [ argument ... ]
Loads and executes a
lisp-file, as described in
Section 32.6.2, "Scripting with CLISP". There will be no
m[blue]read-eval-print loopm. Before
is loaded, the variable
will be bound to a list of strings, representing the
The first line of
may start with
#!, thus permitting
to be used as a script interpreter.
is used instead of a file.
This option is disabled if the memory image was created by EXT:SAVEINITMEM with m[blue]NILm :SCRIPT argument. In that case the m[blue]LISTm EXT:*ARGS* starts with lisp-file.
This option must be the last one.
No RC file will be executed.
Imposes batch mode.
As usual, -- stops option processing and places all remaining command line arguments into EXT:*ARGS*.
The language implemented is
m[blue]Common Lispm. The implementation mostly conforms to the
ANSI Common Lisp standard, see
Section 31.10, "Maximum ANSI CL compliance".
[ANSI CL] ANSI CL standard1994. ANSI INCITS 226-1994 (R1999)
m[blue]Information Technology - Programming Language - Common Lispm
[formerly ANSI X3.226-1994 (R1999)].
COMMAND LINE USER ENVIRONMENT
- get context-sensitive on-line help, see Chapter 25, Environment.
- list the m[blue]SYMBOLms matching name.
- describe the symbol.
- quit m[blue]CLISPm.
EOF (Control+D on m[blue]UNIXm)
- leave the current level of the m[blue]read-eval-print loopm (see also Section 1.1, "Special Symbols ").
- for editing and viewing the input history, using the m[blue]GNUm m[blue]readlinem library.
- • If you are in the "function position" (in the first symbol after an opening paren or in the first symbol after a m[blue]#'m), the completion is limited to the symbols that name functions.
- • If you are in the "filename position" (inside a string after m[blue]#Pm), the completion is done across file names, m[blue]GNUm m[blue]bashm-style.
- • If you have not typed anything yet, you will get a help message, as if by the help command.
- • If you have not started typing the next symbol (i.e., you are at a whitespace), the current function or macro is DESCRIBEd.
- • Otherwise, the symbol you are currently typing is completed.
USING AND EXTENDING CLISP
m[blue]Common Lispm is a programmable programming language. ---m[blue]John Foderarom.PP When m[blue]CLISPm is invoked, the runtime loads the initial memory image and outputs the prompt; at which one can start typing m[blue]DEFVARms, m[blue]DEFUNms and m[blue]DEFMACROms.
To avoid having to re-enter the same definitions by hand in every session, one can create a lisp file with all the variables, functions, macros, etc.; (optionally) compile it with m[blue]COMPILE-FILEm; and m[blue]LOADm it either by hand or from the RC file; or save a memory image to avoid the m[blue]LOADm overhead.
However, sometimes one needs to use some functionality implemented in another language, e.g., call a m[blue]Cm library function. For that one uses the Foreign Function Interface and/or the External Modules facility. Finally, the truly adventurous ones might delve into Extending the Core.
- startup driver (an executable or, rarely, a shell script) which remembers the location of the runtime and starts it with the appropriate arguments
- main executable (runtime) - the part of m[blue]CLISPm implemented in m[blue]Cm.
- initial memory image (the part of m[blue]CLISPm implemented in lisp)
- site-dependent configuration (should have been customized before m[blue]CLISPm was built); see Section 31.12, "Customizing CLISP behavior"
- lisp source
- lisp code, compiled by m[blue]CLISPm
- lisp source library information, generated by COMPILE-FILE, see Section 24.3, "Function REQUIRE".
- C code, compiled from lisp source by m[blue]CLISPm (see Section 32.3, "The Foreign Function Call Facility")
For the m[blue]CLISPm source files, see Chapter 34, The source files of CLISP.
INPUT AND OUTUT
See Section 21.1.1, "Initialization of Standard Streams".
When you encounter a bug in m[blue]CLISPm or in its documentation (this manual page or CLISP impnotes), please report it to the m[blue]CLISPm m[blue]SourceForge bug trackerm.
Before submitting a bug report, please take the following basic steps to make the report more useful:
- 1. Please do a clean build (remove your build directory and build m[blue]CLISPm with ./configure --cbc build or at least do a make distclean before make).
- 2. If you are reporting a "hard crash" (segmentation fault, bus error, core dump etc), please do ./configure --with-debug --cbc build-g ; cd build-g; gdb lisp.run, then load the appropriate linking set by either base or full m[blue]gdbm command, and report the backtrace (see also Q: A.1.1.10).
- 3. If you are using pre-built binaries and experience a hard crash, the problem is likely to be in the incompatibilities between the platform on which the binary was built and yours; please try compiling the sources and report the problem if it persists.
When submitting a bug report, please specify the following information:
- 1. What is your platform (uname -a on a m[blue]UNIXm system)? Compiler version? m[blue]GNUm m[blue]libcm version (on m[blue]GNUm/m[blue]Linuxm)?
- 2. Where did you get the sources or binaries? When? (Absolute dates, e.g., "2006-01-17", are preferred over the relative ones, e.g., "2 days ago").
- 3. How did you build m[blue]CLISPm? (What command, options &c.)
- 4. What is the output of clisp --version?
- 5. Please supply the full output (copy and paste) of all the error messages, as well as detailed instructions on how to reproduce them.
- • Enhance the compiler so that it can inline local functions.
- • Embed m[blue]CLISPm in m[blue]VIMm.
Bruno Haible <m[blue]http://www.haible.de/bruno/m>
- The original author and long-time maintainer.
Michael Stoll <m[blue]http://www.faculty.iu-bremen.de/mstoll/m>
- The original author.
Sam Steingold <m[blue]http://sds.podval.org/m>
- Co-maintainer since 1998.
- See COPYRIGHT (file in the CLISP sources) for the list of other contributors and the license.
Copyright © 1992-2010 Bruno Haible
Copyright © 1998-2010 Sam Steingold
- Common Lisp
- [set $man.base.url.for.relative.links]/sec_25-1-1
- [set $man.base.url.for.relative.links]/mac_define-symbol-macro
- [set $man.base.url.for.relative.links]/basedefs/xbd_chap08.html
- [set $man.base.url.for.relative.links]/clhs/glo
- [set $man.base.url.for.relative.links]/sec_11-1-2-2
- The American National Standards Institute
- Information Technology - Programming Language - Common Lisp
- [set $man.base.url.for.relative.links]/sec_2-4-8-2
- [set $man.base.url.for.relative.links]/sec_2-4-8-14
- John Foderaro
- CMU CL
SourceForge bug tracker