[ANN] ECL 9.8.1 released

Discussion of Common Lisp
Post Reply
jjgarcia
Posts: 38
Joined: Mon Oct 13, 2008 2:48 pm

[ANN] ECL 9.8.1 released

Post by jjgarcia » Sat Aug 08, 2009 5:30 am

Announcement of ECL v9.8.1
==========================

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 Common-Lisp.net and 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.

ECL 9.8.1:
==========

* Important notes:

- The GMP library had to be patched to build with latest versions of GCC.
Since our patch only covers the main header and there might be some corners
left, it is recommended to build ECL against a better maintained version of
the library, such as MPIR or the versions supplied by your operating system.

- ECL now builds properly on a large number of platforms, including Windows
with and without Microsoft compilers. However, not always are all the
configuration options available or well supported. The fault is not always
ECL's, but also the libraries it depends on. Some of these problems are
detailed below, some are to be found. As a guide, the minimally supported
flags for each platform are those use for the automated testing process
http://ecls.sourceforge.net/logs.html

* Ports:

- The Windows/MSVC port now boots also when built without support for Unicode.

- The Windows/mingw32 port builds without threads. For multithreading, the
user will have to build version 7.2-alpha2 of the garbage collector
manually and build ECL with it.

- The NetBSD port builds with default values using the garbage collector
in the pkgsrc distribution.

- The Solaris port (Intel and Sparc) now builds with the given libraries (GMP
and Boehm).

* Compiler:

- The compiler now understands FFI types :int{8,16,32,64}-t.

- The FFI code emitted to convert from a lisp type to :uint or :unsigned-int
rejected bignum inputs, even if they were in the range from 0 to UINT_MAX.
Similar problem with :int

* Visible changes:

- New functions ecl_make_int(), ecl_make_long(), ecl_to_int(),
ecl_to_long(), ecl_to_bool(), ecl_make_bool(), convert between C types
and cl_object.

- The C structures ecl_array, ecl_vector, ecl_base_string and ecl_string have
changed. Instead of using bitfields for hasfillp and adjustable we now
use a single integer field, and handle the bits manually. See the
new macros ECL_ADJUSTABLE_ARRAY_P and ECL_ARRAY_HAS_FILL_POINTER_P.

- Four new command-line arguments, --encoding, --input-encoding,
--output-encoding and --error-encoding, allow the user to change the
external formats of the default streams.

- For places defined with the simple form of DEFSETF, SETF now produces
a simpler expansion, without a surrounding LET* form.

- The dynamic FFI is now implemented using libffi. This extends the portability
and removes the previous, error prone implementation.

- A new function, (SI:SAFE-EVAL form env &optional error-value), can be used
to evaluate lisp forms in a safe way. If supplied three values, when an
error happens, it returns ERROR-VALUE; otherwise it will invoke a debugger.

- Two new functions, ecl_read_from_cstring(s) and
ecl_read_from_cstring_safe(s,v) read an object from a C string (char *). The
first one is unsafe and will enter a debugger when there is a syntax
error. The second one will return V when an error happens.

- Modules which are loaded with REQUIRE, but which belong to ECL, are now
registered with ASDF and can be used in dependencies.

* Bugs fixed:

- SI:GET-LIBRARY-PATHNAME did not work properly in Windows.

- STEP did not work properly because the bytecompiler introduced an extra
opcode after STEPCALL.

- --enable-slow-config works again.

- EXT:CHDIR was broken when using Unicode.

Harnon
Posts: 78
Joined: Wed Jul 30, 2008 9:59 am

Re: [ANN] ECL 9.8.1 released

Post by Harnon » Sun Aug 09, 2009 1:04 pm

Is there any know problems with ecl when building mingw with the alpha2 garbage collector?

jjgarcia
Posts: 38
Joined: Mon Oct 13, 2008 2:48 pm

Re: [ANN] ECL 9.8.1 released

Post by jjgarcia » Mon Aug 10, 2009 1:12 pm

Harnon wrote:Is there any know problems with ecl when building mingw with the alpha2 garbage collector?
Not that I know, but I have not investigated the issue myself. The recommendation of using 7.2a2 actually comes from the Boehm-Weiser garbage collector developers. They actually claim that moving to that vesion should be interesting for _all_ ports.

Post Reply