man pages section 1: User Commands

Exit Print View

Updated: July 2014

clisp (1)


clisp - blue]ANSI][38] blue]Common Lisp][1] compiler, interpreter and debugger.


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...]]


User Commands                                            CLISP(1)

     clisp - blue]ANSI][38] blue]Common Lisp][1] compiler,
     interpreter and debugger.

     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...]]

     Invokes the blue]Common Lisp][1] interpreter and compiler.

  Interactive Mode
     When called without arguments, executes the
     blue]read-eval-print loop][2], in which expressions are in

     o   blue]READ][3] from the standard input,

     o   blue]EVAL][4]uated by the lisp interpreter,

     o   and their results are blue]PRINT][5]ed to the standard

  Non-Interactive (Batch) Mode
     Invoked with -c, compiles the specified lisp files to a
     platform-independent bytecode which can be executed more

     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 blue]CLISP][6].

         Displays the blue]CLISP][6] version number, as given by
         the function blue]LISP-IMPLEMENTATION-VERSION][7], the
         value of the variable *FEATURES*, as well some other

CLISP 2.49    Last change: Last modified: 2010-07-07            1

User Commands                                            CLISP(1)

         Displays a summary of the licensing information, the
         blue]GNU][8] blue]GPL][9].

         Displays information about the memory image being
         invoked: whether is it suitable for scripting as well as
         the :DOCUMENTATION supplied to EXT:SAVEINITMEM.

     -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 blue]SYMBOL-MACRO][10]

         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/ (file
         in the CLISP sources).

     -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

             the core blue]CLISP][6]

             core plus all the modules with which this
             installation was built, see Section 32.2, "External

         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
         blue]GNU][8] blue]gzip][11].

     -m memory-size
         Sets the amount of memory blue]CLISP][6] tries to grab
         on startup. The amount may be given as

CLISP 2.49    Last change: Last modified: 2010-07-07            2

User Commands                                            CLISP(1)

             measured in bytes

             measured in machine words (4xn on 32-bit platforms,
             8xn 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 blue]CLISP][6] eventually uses the
         entire memory-size.

     -L language
         Specifies the language blue]CLISP][6] 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 blue]environment
         variable][12] LANG, provided the corresponding message
         catalog is installed.  The language may be changed
         dynamically using the blue]SYMBOL-MACRO][10]

     -N locale-dir
         Specifies the base directory of locale files.
         blue]CLISP][6] will search its message catalogs in
         locale-dir/language/LC_MESSAGES/ This directory
         may be changed dynamically using the

     -Edomain encoding
         Specifies the encoding used for the given domain,
         overriding the default which depends on the
         blue]environment variable][12]s LC_ALL, LC_CTYPE, LANG.
         domain can be

CLISP 2.49    Last change: Last modified: 2010-07-07            3

User Commands                                            CLISP(1)

             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
             blue]SYMBOL-MACRO][10]s that have been saved in a
             memory image are ignored: these
             blue]SYMBOL-MACRO][10]s 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 blue]environment
             variable][12]s appropriately for consistency with
             other programs. See Section 31.1, "Customizing CLISP
             Process Initialization and Termination".

         Change verbosity level: by default, blue]CLISP][6]
         displays a banner at startup and a good-bye message when
         quitting, and initializes blue]*LOAD-VERBOSE*][13] and
         blue]*COMPILE-VERBOSE*][14] to blue]T][15], and
         blue]*LOAD-PRINT*][13] and blue]*COMPILE-PRINT*][14] to
         blue]NIL][16], as per [ANSI CL standard]. The first -q
         removes the banner and the good-bye message, the second
         sets variables blue]*LOAD-VERBOSE*][13],
         blue]*COMPILE-VERBOSE*][14] and
         CUSTOM:*SAVEINITMEM-VERBOSE* to blue]NIL][16]. The first
         -v sets variables CUSTOM:*REPORT-ERROR-PRINT-BACKTRACE*,
         blue]*LOAD-PRINT*][13] and blue]*COMPILE-PRINT*][14] to
         blue]T][15], the second sets CUSTOM:*LOAD-ECHO* to
         blue]T][15]. These settings affect the output produced
         by -i and -c options. Note that these settings persist

CLISP 2.49    Last change: Last modified: 2010-07-07            4

User Commands                                            CLISP(1)

         into the blue]read-eval-print loop][2]. Repeated -q and
         -v cancel each other, e.g., -q -q -v -v -v is equivalent
         to -v.

     -on-error action
         Establish global error handlers, depending on action:.PP
             blue]continuable][17] blue]ERROR][18]s are turned
             into blue]WARNING][19]s (with EXT:APPEASE-CERRORS)
             other blue]ERROR][18]s are handled in the default

             blue]ERROR][18]s blue]INVOKE-DEBUGGER][20] (the
             normal blue]read-eval-print loop][2] behavior),
             disables batch mode imposed by -c, -x, and

             blue]continuable][17] blue]ERROR][18]s are appeased,
             other blue]ERROR][18]s are blue]ABORT][21]ed with

             blue]continuable][17] blue]ERROR][18]s are appeased,
             other blue]ERROR][18]s terminate blue]CLISP][6] with
             EXT:EXIT-ON-ERROR (the normal batch mode behavior).

         See also EXT:SET-GLOBAL-HANDLER.

         Start an interactive blue]read-eval-print loop][2] after
         processing the -c, -x, and lisp-file options and on any
         blue]ERROR][18] blue]SIGNAL][22]ed during that

         Disables batch mode.

         Wait for a keypress after program termination.

         Interact better with blue]Emacs][23] (useful when
         running blue]CLISP][6] under blue]Emacs][23] using
         blue]SLIME][24], blue]ILISP][25] et al). With this
         option, blue]CLISP][6] interacts in a way that
         blue]Emacs][23] can deal with:

         o   unnecessary prompts are not suppressed.

         o   The blue]GNU][8] blue]readline][26] library treats
             TAB (see TAB key) as a normal self-inserting

CLISP 2.49    Last change: Last modified: 2010-07-07            5

User Commands                                            CLISP(1)

             character (see Q: A.4.6).

         Do not use blue]GNU][8] blue]readline][26] even when it
         has been linked against. This can be used if one wants
         to paste non-blue]ASCII][27] characters, or when
         blue]GNU][8] blue]readline][26] misbehaves due to
         installation (different versions on the build and
         install machines) or setup (bad TERM blue]environment
         variable][12] value) issues.

         Comply with the [ANSI CL standard] specification even
         where blue]CLISP][6] has been traditionally different by
         setting the blue]SYMBOL-MACRO][10] CUSTOM:*ANSI* to

         Traditional: reverses the residual effects of -ansi in
         the saved memory image.

         Provides a modern view of symbols: at startup the
         blue]*PACKAGE*][28] variable will be set to the
         "CS-COMMON-LISP-USER" package, and the
         blue]*PRINT-CASE*][29] 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-

     -p package
         At startup the value of the variable blue]*PACKAGE*][28]
         will be set to the package named package. The default is
         the value of blue]*PACKAGE*][28] when the image was
         saved, normally blue]"COMMON-LISP-USER"][30].

         Compile when loading: at startup the value of the
         variable CUSTOM:*LOAD-COMPILING* will be set to
         blue]T][15]. Code being blue]LOAD][31]ed will then be
         blue]COMPILE][32]d on the fly. This results in slower
         loading, but faster execution.

         Normally blue]CLISP][6] loads the user blue]"run
         control" (RC)][33] file on startup (this happens after
         the -C option is processed). The file loaded is
         .clisprc.lisp or .clisprc.fas in the home directory
         blue]USER-HOMEDIR-PATHNAME][34], whichever is newer.
         This option, -norc, prevents loading of the RC file.

CLISP 2.49    Last change: Last modified: 2010-07-07            6

User Commands                                            CLISP(1)

     -lp directory
         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.

     -i init-file
         Specifies initialization files to be blue]LOAD][31]ed 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 blue]LOAD][31]ed instead
         of the sources to gain efficiency.

         Imposes batch mode.

     -o outputfile
         Specifies the output file or directory for the
         compilation of the last specified lisp-file.

         Produce a bytecode blue]DISASSEMBLE][35] listing (*.lis)
         of the files being compiled. Useful only for debugging.
         See Section 24.1, "Function COMPILE-FILE" for details.

     -x expressions
         Executes a series of arbitrary expressions instead of a
         blue]read-eval-print loop][2]. The values of the
         expressions will be output to
         blue]*STANDARD-OUTPUT*][36]. 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.

         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
         blue]read-eval-print loop][2]. Before lisp-file is
         loaded, the variable EXT:*ARGS* will be bound to a list
         of strings, representing the arguments.  The first line
         of lisp-file may start with #!, thus permitting
         blue]CLISP][6] to be used as a script interpreter.  If
         lisp-file is -, the blue]*STANDARD-INPUT*][36] is used
         instead of a file.

CLISP 2.49    Last change: Last modified: 2010-07-07            7

User Commands                                            CLISP(1)

         This option is disabled if the memory image was created
         by EXT:SAVEINITMEM with blue]NIL][16] :SCRIPT argument.
         In that case the blue]LIST][37] EXT:*ARGS* starts with

         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 blue]ANSI[39]][38] blue]Common
     Lisp][1]. 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)
         blue]Information Technology - Programming Language -
     Common Lisp][40]
         [formerly ANSI X3.226-1994 (R1999)].

         get context-sensitive on-line help, see Chapter 25,

     (APROPOS name)
         list the blue]SYMBOL][41]s matching name.

     (DESCRIBE symbol)
         describe the symbol.

         quit blue]CLISP][6].

     EOF (Control+D on blue]UNIX][42])
         leave the current level of the blue]read-eval-print
         loop][2] (see also Section 1.1, "Special Symbols ").

     arrow keys
         for editing and viewing the input history, using the
         blue]GNU][8] blue]readline][26] library.

     TAB key
         Context sensitive:

         o   If you are in the "function position" (in the first

CLISP 2.49    Last change: Last modified: 2010-07-07            8

User Commands                                            CLISP(1)

             symbol after an opening paren or in the first symbol
             after a blue]#'][44]), the completion is limited to
             the symbols that name functions.

         o   If you are in the "filename position" (inside a
             string after blue]#P][45]), the completion is done
             across file names, blue]GNU][8]

         o   If you have not typed anything yet, you will get a
             help message, as if by the help command.

         o   If you have not started typing the next symbol
             (i.e., you are at a whitespace), the current
             function or macro is DESCRIBEd.

         o   Otherwise, the symbol you are currently typing is

     blue]Common Lisp][1] is a programmable programming language.
     --blue]John Foderaro][47].PP When blue]CLISP][6] is invoked,
     the runtime loads the initial memory image and outputs the
     prompt; at which one can start typing blue]DEFVAR][48]s,
     blue]DEFUN][49]s and blue]DEFMACRO][50]s.

     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 blue]COMPILE-FILE][51]; and blue]LOAD][31] it either by
     hand or from the RC file; or save a memory image to avoid
     the blue]LOAD][31] overhead.

     However, sometimes one needs to use some functionality
     implemented in another language, e.g., call a blue]C][52]
     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 blue]CLISP][6]
         implemented in blue]C][52].

CLISP 2.49    Last change: Last modified: 2010-07-07            9

User Commands                                            CLISP(1)

         initial memory image (the part of blue]CLISP][6]
         implemented in lisp)

         site-dependent configuration (should have been
         customized before blue]CLISP][6] was built); see
         Section 31.12, "Customizing CLISP behavior"

         lisp source

         lisp code, compiled by blue]CLISP][6]

         lisp source library information, generated by
         COMPILE-FILE, see Section 24.3, "Function REQUIRE".

         C code, compiled from lisp source by blue]CLISP][6] (see
         Section 32.3, "The Foreign Function Call Facility")

     For the blue]CLISP][6] source files, see Chapter 34, The
     source files of CLISP.

     All blue]environment variable][12]s that blue]CLISP][6] uses
     are read at most once.

         specifies the language blue]CLISP][6] uses to
         communicate with the user. The legal values are
         identical to those of the -L option which can be used to
         override this blue]environment variable][12].

         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 blue]environment variable][12] can be
         overridden with the -Edomain encoding option.

         specifies the language blue]CLISP][6] uses to
         communicate with the user, unless it is already
         specified through the blue]environment variable][12]

CLISP 2.49    Last change: Last modified: 2010-07-07           10

User Commands                                            CLISP(1)

         CLISP_LANGUAGE or the -L option.  It also specifies the
         locale determining the character set in use, unless
         already specified through the blue]environment
         variable][12] LC_CTYPE.  The value may begin with a
         two-letter ISO 639 language code, for example en, de,

         used for determining the value of the function

         is used to find the interactive command interpreter
         called by EXT:SHELL.

         determines the screen size recognized by the pretty

         for blue]SHORT-SITE-NAME][53] and
         blue]LONG-SITE-NAME][53] in config.lisp.

         for CUSTOM:CLHS-ROOT in config.lisp.

         for CUSTOM:IMPNOTES-ROOT in config.lisp.

         for editor-name in config.lisp.


     See Section 21.1.1, "Initialization of Standard Streams".

     See attributes(5) for descriptions of the following

CLISP 2.49    Last change: Last modified: 2010-07-07           11

User Commands                                            CLISP(1)

     |Availability   | runtime/clisp    |
     |Stability      | Uncommitted      |
         CLISP impnotes
         blue]CMU CL][54] - cmucl(1)
         blue]Emacs][23] - emacs(1)
         blue]XEmacs][55] - xemacs(1)

     When you encounter a bug in blue]CLISP][6] or in its
     documentation (this manual page or CLISP impnotes), please
     report it to the blue]CLISP][6] blue]SourceForge bug

     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 blue]CLISP][6] 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,
         then load the appropriate linking set by either base or
         full blue]gdb][57] 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

      1. What is your platform (uname -a on a blue]UNIX][42]
         system)? Compiler version?  blue]GNU][8] blue]libc][58]
         version (on blue]GNU][8]/blue]Linux][59])?

      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 blue]CLISP][6]? (What command, options

CLISP 2.49    Last change: Last modified: 2010-07-07           12

User Commands                                            CLISP(1)


      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.

     o   Enhance the compiler so that it can inline local

     o   Embed blue]CLISP][6] in blue]VIM][60].

     Bruno Haible <blue]]>
         The original author and long-time maintainer.

     Michael Stoll <blue]-]>
         The original author.

     Sam Steingold <blue]]>
         Co-maintainer since 1998.

         See COPYRIGHT (file in the CLISP sources)  for the list
         of other contributors and the license.

     Copyright (C) 1992-2010 Bruno Haible
     Copyright (C) 1998-2010 Sam Steingold

      1. Common Lisp

      2. read-eval-print loop
         [set $man.base.url.for.relative.links]/sec_25-1-1

      3. READ

      4. EVAL

      5. PRINT

      6. CLISP

CLISP 2.49    Last change: Last modified: 2010-07-07           13

User Commands                                            CLISP(1)


      8. GNU

      9. GPL

         [set $man.base.url.for.relative.links]/mac_define-

     11. gzip

     12. environment variable

     13. *LOAD-VERBOSE*


     15. T

     16. NIL

     17. continuable
         [set $man.base.url.for.relative.links]/clhs/glo

     18. ERROR

     19. WARNING


     21. ABORT

     22. SIGNAL

     23. Emacs

CLISP 2.49    Last change: Last modified: 2010-07-07           14

User Commands                                            CLISP(1)

     24. SLIME

     25. ILISP

     26. readline

     27. ASCII

     28. *PACKAGE*

     29. *PRINT-CASE*

         [set $man.base.url.for.relative.links]/sec_11-1-2-2

     31. LOAD

     32. COMPILE

     33. "run
              control" (RC)




     37. LIST

     38. ANSI

     39. The American National Standards Institute

     40. Information Technology - Programming Language - Common

CLISP 2.49    Last change: Last modified: 2010-07-07           15

User Commands                                            CLISP(1)

     41. SYMBOL

     42. UNIX

     43. Win32

     44. #'
         [set $man.base.url.for.relative.links]/sec_2-4-8-2

     45. #P
         [set $man.base.url.for.relative.links]/sec_2-4-8-14

     46. bash

     47. John Foderaro

     48. DEFVAR

     49. DEFUN

     50. DEFMACRO


     52. C


     54. CMU CL

     55. XEmacs

     56. SourceForge bug tracker

     57. gdb

     58. libc

CLISP 2.49    Last change: Last modified: 2010-07-07           16

User Commands                                            CLISP(1)

     59. Linux

     60. VIM

     This software was built from source available at  The original
     community source was downloaded from

     Further information about this software can be found on the
     open source community website at

CLISP 2.49    Last change: Last modified: 2010-07-07           17