Eco Common Lisp

From EDM2
Jump to: navigation, search

Eco Common Lisp, alias ECoLisp, is a Common LISP engine supplied in C source code format that is not intended to be run on its own but rather as an embedded scripting engine for your own programs. It is in other words as much as C library as an LISP implementation. You can use it either internally to write portions of your program in LISP or to provide a LISP scripting engine for the users of your program, it is possible to compile a stand-alone version of the program but it will only contain a small subset of the features that you would expect from a modern stand-alone LISP interpreter. But it is otherwise fairly complete with support for sockets, threads, debugger, trace and CLOS (LISP object-oriented extensions).


Giuseppe Attardi wrote the original ECoLisp based on source code from an old Japanese public domain LISP implementation, and maintained the ECoLisp program for a number of years until he believed it was basically complete as an embedded implementation. As it stands with version 1.2 it is relatively simple, well suited to its intended purpose, written to be portable and delivered only as a mostly generic C source code, the distribution only contained rudimentary ports to common Unices and DOS and could be used on OS/2 and sundry other operating systems with minimal changes mostly to suit the C compiler you were using.


The project was later renamed Embeddable Common-Lisp or ECL, and the maintenance was taken over by the community and since then it got something of a "featuritis", has multiplied in size and gained features with limited or no use in an embedded setting. The problem with the more modern variant is that it makes it more difficult for you to embed and you will have to start with stripping out features you do not need or want. Options such as a stand-alone version of ECL, which is admittedly nice to have in some rare cases but a bit superfluous given that there is an abundance of open source stand-alone Common LISP systems out there, all of which are better suited to the task than ECL. Other new features like the LISP to C translator make no sense for an embedded project, and as with the stand-alone option, if you want a LISP to C translator or compiler there are much more mature options out there.

The code is also less generic in regards to OS's than it was, with a much stronger accent on Linux deployment which differs more and more from the generic UNIX model by the day, and the DOS-OS/2 support, such as it was has been stripped out. So given how complete the original version is, even though the ECL version is much better supported you might want to take a good look at the source code for both versions before deciding on the ECL version as a scripting engine for your project.


  • Eco Common Lisp Version 1.2 - 1995 - There were later releases but they seem lost in time, and reportedly had some problems.
  • ECL - 2015-03-13




  • Taiichi Yuasa and Masami Hagiya (Original authors)
  • Giuseppe Attardi (Original ECoLisp author)
  • Juan Jose Garcia Ripoll (Maintainer 2000 to 2009)
  • Daniel Kochmański (Current maintainer)