ecl -- Embeddable Common Lisp
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.
- -v, --version,
- 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 kilobytes for C compiler.
- --lisp-stack size
- Set stack size in kilobytes for bytecodes interpreter.
- --heap-stack size
- Set heap size in kilobytes.
- --frame-stack size
- Set frame size in kilobytes 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.
The original version was developed by Giuseppe Attardi starting
from the Kyoto Common Lisp implementation by Taiichi Yuasa, Masami Hagiya.
Further development was lead by Juan Jose Garcia Ripoll. The current
maintainers of ECL are Daniel Kochmański and Marius Gerbershagen, who
can be reached at the ECL mailing list.
- ~/.ecl, ~/.eclrc
- Default initialization files loaded at startup unless the option
--norc is provided (if they exist).
- ANSI Common Lisp standard X3.226-1994
- The Common Lisp HyperSpec
Unfortunately it is possible that there are some bugs in the
program. In case you find any bug, please report it as an issue (after
making sure that it hasn't been reported or fixed) to official gitlab
repository:
https://gitlab.com/embeddable-common-lisp/ecl/issues
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
Please report bugs, comments, suggestions to the ecl mailing list:
ecl-devel@common-lisp.net
(or use gitlab).