89 lines (60 with data), 3.0 kB
Announcement of ECLS v0.4
ECLS stands for Embeddable Common-Lisp "Spain", and I usually read it
as "e-klos". It is a an implementation of the Common-Lisp language
which aims to comply to the ANSI X3J13 definition of the language.
ECLS 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 an up to date documentation.
Notes about ECLS 0.4
This release represents a major improvement over previous ones in
the number of supported platforms:
- Debian Linux on Intel
- Debian Linux on PowerPC
- FreeBSD 4.x on Intel
- Cygwin on Microsoft Windows 2000
Besides, the code has been revised and porting should now be easier.
* Errors fixed:
- Fixnum product would overflow: (* 65536 32768) => negative number.
- Bit fiddling operations with negative fixnums now work (i.e.
LOGAND, LOGOR, LOGBITP, etc).
- When a PRINT-OBJECT method prints a circular structure which is itself
in another circular structure, the stack that keeps temporary data
may get deleted.
- Format clause "~<" now accepts any number of text segments.
- Format clause "~E" should not add spurious zeros past the decimal
dot. I.e. (format nil "~13,6,2,7E" 3.14159) should output "
3141590.E-06", not "3141590.0E-06". Similar problem happened to
"~F", which added a traling zero even when number of decimal
positions was specified as zero.
* System design and portability:
- Ported to Debian Linux PPC and Cygwin.
- Small changes allow a static build of the executable in platforms
where either dlopen() does not work, or ld does not allow
undefined symbols in libraries.
- Remove unportable code of the type "va_list d = cs".
- Simplify gathering of &rest and &key arguments in compiled code.
- Make the interpreter stack public, with variables and functions
prefixed with "cl_stack*".
- Remove the Invocation History Stack, and implement it as a "linked
list" of frame records on top of the interpreter stack. This
avoids previous size limitations.
- Compile code onto the interpreter stack instead of using a stack
of its own.
- Use the interpreter stack to simplify the implementations of the
printer and of the formater.
* Visible changes and ANSI compatibility:
- MAKE-PATHNAME now accepts all combinations denoted by ANSI. Namely,
(MAKE-PATHNAME :directory :wild), etc.
- :UNSPECIFIC is only allowed in pathname's version and in a logical
- MSDOS style namestrings, such as "c:/my/path/to/this/file.txt" and
"//c/my/path/to/this/file.txt" finally work. Beware that these
paths are also allowed under Unix, even though they cause errors
when trying to access files. Besides (EQUALP #P"c:/foo/file.txt"
#P"//c/path/file.txt") => NIL
- (DECLARE (OPTIMIZE DEBUG)) is ignored, but no warning is printed.
- Implemented WITH-STANDARD-IO-SYNTAX.