Announcement of ECL
===================

ECL stands for Embeddable Common-Lisp. The ECL project aims to
produce an implementation of the Common-Lisp language which complies
to the ANSI X3J13 definition of the language.

The term embeddable refers to the fact that ECL includes a lisp to C
compiler, which produces libraries (static or dynamic) that can be
called from C programs. Furthermore, ECL can produce standalone
executables from your lisp code and can itself be linked to your
programs as a shared library.

ECL supports the operating systems Linux, FreeBSD, NetBSD, OpenBSD,
Solaris (at least v. 9), Microsoft Windows and OSX, running on top of
the Intel, Sparc, Alpha and PowerPC processors. Porting to other
architectures should be rather easy.

ECL is currently hosted at SourceForge. The home page of the project
is http://ecls.sourceforge.net, and in it you will find source code
releases, a CVS tree and some useful documentation.


Known issues
============

This release is the first one with the new multithreading library,
which no longer relies on the POSIX mutexes, condition variables and
semaphores. Instead, ECL makes use of libatomic-ops to implement
userspace routines for process communication (mailboxes), resource
sharing (locks, condition variables, counting semaphores) and fast
spinlocks.

Due to the new implementation, it is likely that some corner cases
may appear during use. In this case we would like to ask you to
report a reproducible test case to ECL's bug tracker and we will
provide a solution as soon as possible, with a new release, if
needed.

In addition to this, the following problems persist:

* Cygwin's library is still broken: fork/exec fails to reload the
  cygwin library, or ECL's compiled libraries in a completely random
  fashion. For this reason we recommend using ext:system instead of
  ext:run-program in that platform.

* In Windows ECL comes with bytecodes compiler by default, because C
  compilers are normally not avaiable. Unfortunately several
  libraries out there are not prepared for this. If you plan to use
  quicklisp and have a C compiler accessible to ECL, you may use
  (ext:install-c-compiler) to switch back to the Lisp-to-C compiler.


Changes since last release
==========================

Some highlights of this release are:

* The multithreading library.

* Complete support for MOP.

* Speed improvements in areas such as slot accessors.

* Common Lisp code can now trap and capture Unix interrupts, though
  the processing is asynchronous for all but the critical ones.

* Lots and lots of fixes.

See file src/CHANGELOG or browse it online

http://ecls.cvs.sourceforge.net/viewvc/ecls/ecl/src/CHANGELOG?view=markup


--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain) 
http://juanjose.garciaripoll.googlepages.com