Name
clisp — ANSI Common Lisp compiler, interpreter and debugger.
Description
Invokes the Common Lisp interpreter and compiler.
When called without arguments, executes the read-eval-print loop,
in which expressions are in turn READ from the standard input,
EVALuated by the lisp interpreter,
and their results are PRINTed to the standard output.
Invoked with -c,
compiles the specified lisp files to a platform-independent
bytecode
that can be executed more efficiently.
Options
- -h
--help - Displays a help message on how to invoke CLISP.
- --version
- Displays the CLISP version number,
as given by the function LISP-IMPLEMENTATION-VERSION,
the value of the variable *FEATURES*,
as well some other information.
- --license
- Displays a summary of the licensing information,
the GNU GPL.
- -B lisp-lib-dir
- 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
SYMBOL-MACRO *LIB-DIRECTORY*.
- -K
linking-set
- Specifies the linking set 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 base, full.
The default is base.
- -M
mem-file
- 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 GNU gzip.
- -m
mem-size
Sets the amount of memory CLISP
tries to grab on startup. The amount may be given as
- nnnnnnn
- measured in bytes
- nnnnK
nnnnKB - measured in kilobytes
- nM
nMB - measured in megabytes
The default is 2 megabytes.
The argument is constrained above 100 KB.
This version of CLISP
is not likely to actually use the entire
mem-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.
- -L language
Specifies the language CLISP
uses to communicate with the user.
This may be
one of english, german, french, spanish, dutch, russian.
Other languages may be specified through the environment variable
LANG,
provided the corresponding message catalog is installed.
The language may be changed dynamically using the symbol macro
*current-language*.
- -N locale-dir
- Specifies the base directory of locale files.
CLISP will search its message catalogs in
locale-dir/language/LC_MESSAGES/clisp.mo.
This directory may be changed dynamically using the symbol macro
*current-language*.
- -Edomain encoding
Specifies the encoding used for the given domain,
overriding the default which depends on the environment variables
LC_ALL, LC_CTYPE, LANG.
domain can be
- -q
--quiet
--silent
-v
--verbose - Change verbosity level: by default, CLISP displays a
banner at startup and a good-bye message when quitting, and initializes
*LOAD-VERBOSE* and *COMPILE-VERBOSE* to T, and
*LOAD-PRINT* and *COMPILE-PRINT* to NIL, as per [ANSI CL standard].
The first -q removes the banner and the good-bye message,
the second sets variables *LOAD-VERBOSE* and *COMPILE-VERBOSE* to
NIL. -v sets variables *LOAD-PRINT* and
*COMPILE-PRINT* to T. These settings affect the output produced by
-i and
-c options.
Note that these settings persist into the read-eval-print loop.
Repeated -q and -v cancel each other, e.g.,
-q -q -v -v -v is equivalent to -v.
- -interactive-debug
- Override the batch mode imposed by
-c,
-x, and
lisp-file
and allow interactive handling of ASSERT and friends.
- -repl
- Start an interactive read-eval-print loop after
processing the -c,
-x, and
lisp-file options.
- -w
- Wait for a keypress after program termination.
- -I
- Be ILISP-friendly.
ILISP is an alternative Emacs interface to Common Lisp systems.
With this option, CLISP interacts in a way that ILISP can deal with.
Currently the only effect of this is that unnecessary prompts are
not suppressed.
Furthermore, the GNU readline library treats
Tab as a normal self-inserting
character, so you should always use this option when you invoke
CLISP from Emacs.
- -ansi
- Comply with the [ANSI CL standard] specification
even where CLISP has been traditionally different.
It sets the symbol macro *ansi* to T.
See Section 29.9, “Extensions-1.9. Maximum ANSI CL compliance” for details.
- -traditional
- Traditional: reverses the residual effects of
-ansi
in the saved memory image.
- -p package
- At startup the value of the variable *PACKAGE*
will be set to the package named package.
The default is the package which was active when the image was
saved,
normally “COMMON-LISP-USER”.
- -C
- Compile when loading: at startup the value of the
variable *LOAD-COMPILING*
will be set to T.
Code being LOADed will then be COMPILEd on the fly.
This results in slower loading, but faster execution.
- -norc
- Normally CLISP loads the user
“run
control” (RC) file on startup (this happens after the
-C option is
processed).
The file loaded is
${HOME}/.clisprc.lisp
or ${HOME}/.clisprc.fas,
whichever is newest. This option, -norc, prevents
loading of the RC file.
- -i
init-file
- Specifies initialization files to be LOADed
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.
- -c lisp-file
- Compiles the specified lisp-files to bytecode
(*.fas). The compiled files can then be
LOADed instead of the sources to gain efficiency.
- -o
outputfile
- Specifies the output file or directory for the
compilation of the last specified lisp-file.
- -l
- A bytecode DISASSEMBLE listing
(*.lis)
of the files being compiled will be produced.
Useful only for debugging purposes.
See the documentation of COMPILE-FILE for details.
- -x
expressions
- Executes a series of arbitrary expressions instead
of a read-eval-print loop.
The values of the expressions will be output to *STANDARD-OUTPUT*.
Due to the argument processing done by the shell,
the expressions must be enclosed in double
quotes, and double quotes and backslashes must be escaped with
backslashes.
- lisp-file [ argument ... ]
- Loads and executes a lisp-file, as described in
Script execution.
There will be no read-eval-print loop.
Before lisp-file is loaded, the variable *ARGS*
will be bound to a list of strings, representing the arguments.
The first line of lisp-file may start with #!,
thus permitting CLISP to be used as a script interpreter.
If lisp-file is -,
the *STANDARD-INPUT* is used instead of a file.
If lisp-file is the empty string ""
or "--", the normal read-eval-print loop is
entered, and the rest of the arguments is still available
in *ARGS*, for parsing by the
init-function
of the current image.
This option must be the last one.
No RC file will be executed.
Usage
- help
- get context-sensitive on-line help, see
Chapter 25, Environment
[CLHS-25].
- (APROPOS name)
- list
the symbols related to name.
- (exit)
(quit)
(bye) - quit
CLISP.
- EOF
(Control-D on UNIX)
- leave the current level of the read-eval-print loop
(see also Section 1.1, “Special Symbols
[CLHS-1.4.1.3]”).
- arrow keys
- for editing and viewing the input history, using the
GNU readline library.
- Tab key
Context sensitive:
- If you are in the "function
position" (in the first symbol after an opening paren or in the
first symbol after a #'), the completion is
limited to the symbols that name functions.
- If you are in the "filename position" (inside a
string after #P), the completion is done
across file names,
bash-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.
Environment
All environment variables that CLISP uses are read
at most once.
- CLISP_LANGUAGE
- specifies the language CLISP uses to communicate
with the user. The legal values are identical to those of the -L
option which can be used to override this environment variable.
- LC_CTYPE
- specifies the locale which determines the character
set in use. The value can be of the form
language or
language_country or
language_country.charset,
where language is a two-letter ISO 639
language code (lower case), country is a
two-letter ISO 3166 country code (upper case).
charset is an optional character set
specification, and needs normally not be given because the character
set can be inferred from the language and country.
This environment variable can be overridden with the
-E option.
- LANG
- specifies the language CLISP
uses to communicate with the user, unless it is already specified
through the environment variable CLISP_LANGUAGE or the
-L option.
It also specifies the locale determining the character set in use, unless
already specified through the environment variable LC_CTYPE.
The value may begin with a two-letter ISO 639 language code, for example
en, de, fr.
- HOME
USER - are used for determining the value of the function
USER-HOMEDIR-PATHNAME.
- SHELL
COMSPEC - is used to find the interactive command interpreter
called by SHELL.
- TERM
- determines the screen size recognized by the pretty
printer.
- ORGANIZATION
- for SHORT-SITE-NAME and LONG-SITE-NAME in
config.lisp.
- CLHSROOT
- for clhs-root in
config.lisp.
- EDITOR
- for editor-name in
config.lisp.
- LOGICAL_HOST_host_FROM
LOGICAL_HOST_host_TO
LOGICAL_HOST_host - for LOAD-LOGICAL-PATHNAME-TRANSLATIONS
Bugs
When you encounter a bug in CLISP, please report it to the
CLISP
mailing list or the
SourceForge bug tracker.
When submitting a bug report, please specify the
following information:
- What is your platform (uname -a
on a UNIX system)? Compiler version?
GNU libc version (on GNU/Linux)?
- Where did you get the sources? When?
(Absolute dates are preferred over the relative ones).
- How did you build CLISP? (What command, options &c.)
Please do a clean build (remove your build directory and build
CLISP with "./configure --build build" or at
least do a "make distclean"
before "make").
If you are reporting a crash (segmentation fault, bus error, core
dump etc), please do
"./configure --with-debug --build build-g"
and report the backtrace.
- If you are using pre-built binaries, 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.
- What is the output of
"clisp
--version"?
- Please supply the full output (copy and paste) of
all the error messages, as well as detailed instructions on how to
reproduce them.
Known bugs, some of which may be platform-dependent, include
Projects
- Write on-line documentation.
- Enhance the compiler so that it can inline local
functions.
- Specify a portable set of window and graphics
operations.
- Add Multi-Threading capabilities, via OS
threads.
CLISP Authors
CLISP project was started in late 1980-ies by Bruno Haible and
Michael Stoll, both in Germany.
See COPYRIGHT
for the list of other contributors and the license.