Embeddable Common-Lisp

Recent Content

ECL git repositories changed

posted on 2009-07

Sourceforge.net now supports GIT repositories. This is great because now we do not need to keep our GIT mirrors together with the web pages, but rather host them where they should be.

There is more information at webpage http://ecls.sourceforge.net/download.html including the new addresses of the mirrors, how to browse source code, etc. Please update your copies or clone the repositories again. The old repos are being discontinued.

Please note that due to a limitation in Sourceforge.net, a project can in principle have only one repository. We are currently violating this restriction, having three repos, ecl, ecl-doc and ecl-test, for the project, the documentation and the regression tests. The only problem with this is that the list of repos is empty in the "official" project page, and that in order to browse the repositories you have to use the addresses we provide at the downloads page.

ECL supports libffi

posted on 2009-07

ECL's foreign function interface now builds also with libffi, a library to dynamically build function calls and callbacks (http://sourceware.org/libffi/) This enlarge the list of platforms and processors for which ECL can potentially use a dynamic foreign function interface even without the C compiler.

The code is currently available in our git and CVS repositories. Help and feedback is welcome in debugging or improving this implementation.

ECL 9.6.0 has been released

posted on 2009-06

Important changes related to the usability of the debugger and inspector, debugging of compiled C code, handling of floating point exceptions and creation and manipulation of NaNs and infinities, among other things. Please reade the Changelog.

Support for Solaris/Intel has been added. The windows ports are right now broken. Please stay with 9.4.0 if support for those platforms is needed, until we fix the problems. Remaining ports, such as OSX, Linux, *BSD are working fine.

ECL 9.4.0

posted on 2009-04

This release is the first one with a new design of ECL, which includes changes in the way streams are implemented, support for full Unicode character set, safety against interrupts and serious performance improvements.

Known issues:

  • Threads and Unicode currently do not work in the Windows port.

Please read the changelog http://common-lisp.net/cgi-bin/viewcvs.cgi/ecl/src/CHANGELOG?root=ecl&view=markup to get a feeling of the many fixes and improvements.

In particular I want to remark the new module, BYTECMP, which implements bytecodes compilations. By configuring this module as a built-in part of ECL (--with-bytecmp=builtin) you will be able to ship ECL to places that lack a C compiler, while still being able to use COMPILE and COMPILE-FILE.

Further information and links to the download mirrors, at http://ecls.sourceforge.net

ECL 8.12

posted on 2008-12

This release is the last one before a major redesign of ECL, which will affect issues like Unicode streams and handling of interrupts.

This is also the first one to follow the new numbering scheme, inspired by that of Ubuntu. The release number follows the scheme year.month.[0-9], where the last digit marks the patch release. The numbering is now incorporated in the library names, so that different versions of ECL may coexit on the same system.

ECL gaining Unicode support

posted on 2008-10

Until now, ECL accepted strings made of extended characters, with codes up to 21 bits. This feature was accessible when built with --enable-unicode, but it wasn't really useful because these strings could not be written or read from files.

As part of the effort to make ECL safer with respect to threads and interrupts, we had to change the way C streams are implemented. It didn't seem that much implementing different input-output formats.

And indeed it was not. The change involves right now fixes in the code for handling readtables, the code for printing symbols and other places, and it is probably incomplete. Nevertheless, as the screenshot shows https://sourceforge.net/project/screenshots.php?group_id=30035 it seems to work :-)

ECL 0.9l

posted on 2008-08

This release is relevant for various reasons. First of all, several important bugs have been fixed which now allow Maxima to be built using ECL. Second, there have been serious improvements in performance coming mainly from a better garbage collector scheme (incremental with generations) and a threaded interpreter. In some cases this results in a factor 2 reduction in execution time.

More details and download of source code at http://ecls.sourceforge.net

Project: automated testing of libraries with ECL

posted on 2008-08

Dear lispers,

this message is for not only for ECL users looking for a place to contribute, but also for developers of libraries that want them to be tested with our implementation of Common Lisp.

We have reached a point where the ANSI compatibility test suite is not enough. Undocumented or undefined behavior that changes between releases may cause some libraries to break in unexpected ways -- we have plenty of messages in the mailing list about them.

So my idea is to add new directories to ecl-test for automating the downloading and testing of other libraries on a daily, weekly or monthly basis, depending on how things move on.

As a guidance you may have a look at how ecl-test/ansi is implemented: Makefile checks for the existence of that directory and otherwise checks out with cvs a fresh new copy of the test suite. Tests are then loaded and run, and the output is logged into output/ecl/ansi.log. We could have similar directories for cffi, babel, flexi-streams, and other packages. It should not be that difficult.

However, given that this is to be run on at least five different platforms, a few restrictions apply:

1) Source code can only be retrieved using cvs, ftp or wget/curl 2) Running the tests should not take more than half an hour on a computer with few resources: 512Mb, P4 (this is a typical configuration for my virtual machines) 3) The test suite should be comprehensive enough. 4) If possible, libraries should not have other dependencies. 5) One should only test stable releases.

If neither of these points is satisfied, then I do not see the point on going any further. However, not all restrictions are equally important. Points 1 and 3 are crucial, and 3 most so: why running a test suite when it is not able to produce a meaningful answer? Point 4 is not so relevant. If it cannot be satisfied by all libraries then the design might become a bit more complex. Point 5 can be negotiated: libraries that wish to be tested before release could be configured to look for an almost stable branch of the code.

What I provide is a rather powerful computer (quad-core, 64 bits, 8GB), running kvm with at least the following virtual machines:

  • Windows XP + Microsoft Visual Studio 2008
  • Ubuntu Linux 64bits
  • Fedora 32bits
  • FreeBSD
  • NetBSD
  • OpenBSD

Interested parties should contact us at the mailing list.


ECLM 2008 talk

posted on 2008-04

I have uploaded a copy of the talk I gave two days ago at the European Common Lisp Meeting in Amsterdam. It can be reached here http://ecls.wiki.sourceforge.net/space/showimage/eclm2008.pdf

I would like to thank Edi and Arthur again for giving me the oportunity to present ECL in this fabulous Lisp meeting full of interesting talks -- and by that I am not meaning this one ;-) but all those examples of real-life use of Common Lisp

Note that some of the things presented in my talk have not yet been committed into ECL or are in some obscure branch of CVS. They will become part of the coming releases, one of which, 0.9k, I expect to prepare soon.

It would also be nice if someone contributed with some of the challenges enumerated in the last transparencies or came up with new ideas to improve this implementation.


ECL 0.9j

posted on 2007-12

A new version of ECL has been released. It fixes a lot of bugs and contains some improvements, such as finalization, an implementation of serve-event, or condition variables. As usual, interested people should direct to the ECL project homepage http://ecls.sourceforge.net for further information or to download the software.