~/.ecl, ~/.eclrc
Default initialization files loaded at startup unless the option --norc is provided (if they exist).
ecl [{-? | --help}]
[{-v | --version}]
[{--debug | --nodebug}]
[--dir
dir]
[--load
file]
[--shell
file]
[--eval
expr]
[{--rc | --norc}]
[--c-stack
size]
[--lisp-stack
size]
[--heap-size
size]
[--frame-stack
size]
[[-o
ofile]
[-c
[cfile]]
[-h
[hfile]]
[--data
[datafile]]
[-s]
[-q]
--compile
file]
[[-o
ofile]
--link
file+]
[--input-encoding
external-format]
[--output-encoding
external-format]
[--error-encoding
external-format]
[--encoding
external-format]
[{--trap-fpe | --no-trap-fpe}]
ECL (Embeddable Common-Lisp) is an interpreter of the Common-Lisp language as described in the X3J13 ANSI specification, featuring CLOS (Common-Lisp Object System), conditions, loops, etc. plus a translator to C, which can produce standalone executables.
ECL supports the operating systems Linux, FreeBSD, NetBSD, OpenBSD, OS X, Solaris and Windows, running on top of the Intel, Sparc, Alpha, PowerPC and ARM processors.
The current ECL implementation features:
•
|
A bytecode compiler and interpreter. |
|---|---|
•
|
Compiles Lisp also with any C/C++ compiler |
•
|
Can build standalone executables and libraries |
•
|
ASDF, Sockets, Gray streams, MOP, and other useful components |
•
|
Extremely portable |
•
|
A reasonable license |
ecl without any argument starts the interactive lisp session.
-?, --help
Shows the help prompt without running the ECL.
Prints the current version of ECL, without running the ECL.
--debug
Turned on by default, this enables the debugging in the setup phase, so that you can debug your files.
--nodebug
Run without debugging setup phase, meaning that errors prevent ECL from starting up.
--dir directory
Use directory as a system directory.
--load file
Load source file before loading the .rc file and starting the toplevel.
--shell file
Executes the given file and exits, without providing a read-eval-print loop. If you want to use lisp as a scripting language, you can write #!${exec_prefix}/bin/ecl --shell on the first line of the file to be executed, and then ECL will be automatically invoked.
--eval file
Evaluate the file before loading the .rc file and starting the Top Level.
--rc
Load configuration files at startup (default).
--norc
Do not load configuration files at startup.
--c-stack size
Set C stack size in bytes for C compiler.
--lisp-stack size
Set stack size in bytes for bytecodes interpreter.
--heap-stack size
Set heap size in bytes.
--frame-stack size
Set frame stack size in bytes for runtime control structures.
-o file
Provide the output target file for compilation.
-c cfile
When compiling name the intermediary *.c file cfile and do not delete it afterwards.
-h hfile
When compiling name the intermediary *.h file hfile and do not delete it afterwards.
--data [datafile]
Dumps compiler data into datafile or, if not supplied, into a file named after the source file, but with .data as extension.
-s
Produce a linkable object file. It cannot be loaded with (load), but it can be used to build libraries or standalone executable programs.
-q
Short for quiet -- produce less notes.
--compile file
Translates file to C and invokes the local C compiler to produce a native code program.
--link file+
Create standalone executable from Lisp files file+.
--input-encoding encoding
Specify the external encoding for standard input.
--output-encoding encoding
Specify the external encoding for standard output.
--error-encoding encoding
Specify the external encoding for standard error.
--encoding encoding
Specify the external encoding for standard input, output, trace and error.
--trap-fpe
Make ECL debugger catch floating point exception.
--no-trap-fpe
Disable ECL debugger floating point exception catching.
~/.ecl, ~/.eclrc
Default initialization files loaded at startup unless the option --norc is provided (if they exist).
9 releases since Debian 4.0 (Etch); the text changed 4 times.
--c-stack since Arch Linux 2026-11-01;
--compile since Arch Linux 2026-11-01;
--data since Arch Linux 2026-11-01;
--debug since Arch Linux 2026-11-01;
--dir since Arch Linux 2026-11-01;
--encoding since Arch Linux 2026-11-01;
--error-encoding since Arch Linux 2026-11-01;
--eval since Arch Linux 2026-11-01;
--frame-stack since Arch Linux 2026-11-01;
--heap-stack since Arch Linux 2026-11-01;
--help since Debian 10 (Buster);
--input-encoding since Arch Linux 2026-11-01;
--link since Arch Linux 2026-11-01;
--lisp-stack since Arch Linux 2026-11-01;
--load since Arch Linux 2026-11-01;
--no-trap-fpe since Debian 10 (Buster);
--nodebug since Debian 10 (Buster);
--norc since Debian 10 (Buster);
--output-encoding since Arch Linux 2026-11-01;
--rc since Arch Linux 2026-11-01;
--shell since Arch Linux 2026-11-01;
--trap-fpe since Debian 10 (Buster);
-? since Debian 10 (Buster);
-c since Arch Linux 2026-11-01;
-h since Arch Linux 2026-11-01;
-o since Arch Linux 2026-11-01.
--hp until Debian 11 (Bullseye);
--nodp until Debian 11 (Bullseye);
--version until Debian 11 (Bullseye);
-debug until Debian 11 (Bullseye);
-dir until Debian 9 (Stretch);
-norc until Debian 9 (Stretch).