Embeddable Common Lisp

Last updated
Embeddable Common Lisp
Paradigms Multi-paradigm: procedural, functional, object-oriented, meta, reflective, generic
Family Lisp
Designed by Giuseppe Attardi
Developers Daniel Kochmański, Marius Gerbershagen
First appeared1 January 1995;30 years ago (1995-01-01)
Stable release
23.9.9 [1]   OOjs UI icon edit-ltr-progressive.svg / 9 September 2023
Typing discipline Dynamic, strong
Implementation language C, Common Lisp
Platform ARM, x86
OS Unix-like, Android, Windows
License LGPL 2.1+
Website ecl.common-lisp.dev
Influenced by
Lisp, Common Lisp, C

Embeddable Common Lisp (ECL) is a small implementation of the ANSI Common Lisp programming language that can be used stand-alone or embedded in extant applications written in C. [2] It creates OS-native executables and libraries (i.e. Executable and Linkable Format (ELF) files on unix) from Common Lisp code, and runs on most platforms that support a C compiler. The ECL runtime is a dynamically loadable library for use by applications. It is distributed as free software under a GNU Lesser Public License (LGPL) 2.1+.

It includes a runtime system, and two compilers, a bytecode interpreter allowing applications to be deployed where no C compiler is expected, and an intermediate language type, which compiles Common Lisp to C for a more efficient runtime. The latter also features a native foreign function interface (FFI), that supports inline C as part of Common Lisp. Inline C FFI combined with Common Lisp macros, custom Lisp setf expansions and compiler-macros, result in a custom compile-time C preprocessor.

References

  1. "ECL 23.9.9 release".
  2. Weitz, Edmund (2016-01-01). Common Lisp Recipes: A Problem-Solution Approach. Apress. ISBN   978-1-4842-1176-2 . Retrieved 2025-09-05.