This release has three important focuses: performance improvements in various fronts (garbage collection and hash tables), extending the run-process function and important fixes to let ECL work better with Slime. Note however that now at least Slime from last week's CVS is needed and that future versions of Slime will require at least this version of ECL to work.
See file src/CHANGELOG or browse it online
Downloading ECL: http://ecls.sf.net/download.html
When the moment of producing a release approaches, there is always the inherent feeling that everything will go wrong. But sometimes it goes even worse.
In this case I have been waiting several days to produce a stable release of ECL, watching at our compiler farm and feeling very happy about the results (http://ecls.sf.net/logs.html). What I had not realized is that, first, our CVS repository had gotten out of sync with the GIT repository. That is bad by itself. But second, the testing farm had been running obsolete executables for several days.... read more
Among other novelties, it includes support for OS X 10.6 or Snow Leopard, full support for the latest versions of Solaris, weak pointers, and a new model for handling signals.
However, until we transition to the upcoming release of the Boehm-Weiser library, the
following problems persist:
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.
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.... read more
As usual, available at the project homepage
See http://ecls.cvs.sourceforge.net/viewvc/ecls/ecl/src/CHANGELOG?view=markup for the list of changes.
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.
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.
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.... read more
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.... read more
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.... read more
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.... read more
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
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... read more
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.
There have been a lot of problems with the ECL wiki, one of them related to authentification. In the end I have managed to create a new wikispace using SourceForge's resources. This should solve most problems, since users who want to edit content in the wiki must just get a valid SourceForge account.
The new wiki is here: http://ecls.wiki.sourceforge.net/ I have already moved some pages. The other ones have been superseded by the newer manual which is now linked from the main page. This manual documents ECL, the library, internals, embedding ECL and extensions, but there are many parts which still need revision, as I have not had time to work on this for the last five months.... read more
With minimal effort, I have been able to port ASDF-Install to ECL and use it at least to install split-sequence and rt. The patches have been posted to the ECL and ASDF-Install mailing lists, and can be browsed here
ECL's port of ASDF has a nice feature, contributed by Michael Goffioul, which is the ability to build a single FASL, shared library or executable from a ASDF definition file. In a future we expect to further integrate this with the function REQUIRE and with ASDF-Install...... read more
For interested people, I uploaded a new version of my LISP Shell utility program on the ECL SourceForge project page. This time, it comes with an installer for easy installation/removal.
Main changes are:
- includes the code editor
- 2 windows layout (shell + tabbed editor)
- enhanced calltips in the shell (with documentation for bytecoded
- integration with CLHS for documentation
- includes a CLHS->CHM convertor
Michael Goffioul's LISP shell, combining ECL with a GUI based on .NET and RDNZL is now available at the ECL project page. The link is
Here is the official announcement
and details about how to run it:
Michael Goffioul has created a lisp shell using ECL as lisp engine and RDNZL (http://weitz.de/rdnzl/) and .NET for the GUI. It includes things like syntax highliting, dynamic autocompletion and command line history, and in a near future a code editor. More details in the mailing list, but here it goes a screenshot:
(The original screenshot, located in
has suffered the Slashdot effect)
Before going away for several weeks, I packed the current sources and made a new release. It is available both at Sourceforge
and using CVS from common-lisp.net (See pages above).
ECL is now officially supported on the OSX/Intel platform. The source code is available as anonymous CVS only (See http://ecls.sf.net/cvs.html)
The initial port by Brad Beveridge has been complemented with some configuration flags that remove the need to use Darwinports and which port the SBCL-SOCKETS package to OSX. ECL on OSX/Intel passes Paul Dietz' test suite with about 36 failures, which is more or less what other the other ports do.... read more
The CVS server in Sourceforge has been causing us problems since the very beginning, with both anonymous and developers access failing every now and then.
Motivated by this, and also because it feels like the right place to host this project, ECL has been partially moved to the Common-Lisp.net server.
Dustin Long has written a nice little article about how to embed ECL in a visual basic application, so as to provide a graphical toplevel. The project is not yet perfect, but it is a good introduction for newbies to ECL's possibilities:
Motivated by Michael Goffioul's success in writing a Win32 application, Paul Ruetz has contributed a small applet (just 111 lines fully in lisp!) which links ECL with the recent QT4 library producing a nice example that works both in Linux and in Windows.
The full package is mirrored in the ECL webpages:
The second package contains a ready-to-run executable that is distributed without guarantee of any kind.... read more
Apart from important bugs being fixed, this release makes slightly better use
of the Boehm-Weiser garbage collector, thereby reducing memory use. Typically,
in a linux/x86 box this can be as little as 6Mb of which 2.7Mb are shared
libraries (including both lisp and C libraries).
Another highlight of this release are the improvements in the foreign function
interface. First of all, callbacks are now supported for all architectures
using compiled code. Second, we have new, nonportable code for dynamically
accessing C/C++ functions in shared libraries, as well as creating callbacks on
the fly. Due to the need for assembly code, this is currently supported on the
Intel-x86 architecture only, but can be extended to other ports.... read more