[ANN] ECL 9.12.1
- The Mingw port does not work with the stable version of the Boehm-Weiser
garbage collector. Users will have to download a more recent version and
build and install it in an accessible location for ECL to compile.
- The OpenBSD port does not support multithreaded builds because the latest
stable version that runs on it does not contain all the required
- --with-cxx is currently broken and ECL does not BUILD with a C++ compiler,
but it can still be USED in C++ programs.
* Platform support:
- Support for Itanium.
- Support for Solaris and SunStudio compiler.
- Support for Microsoft Visual Studio C++ 10 beta.
- Support for Cygwin.
* Visible changes:
- New function EXT:ARRAY-RAW-DATA returns a non-adjustable vector of type
(UNSIGNED-BYTE 8) with the content of an array. The returned array overlaps
with the original, so any change on one will affect the other.
- LOAD works on special files (/dev/null and the like).
- New command line option --version outputs the version number preceded
by the implementation name ("ECL 9.11.1" in this particular release).
- MULTIPLE-VALUE-BIND is optimally replaced with a LET form when the number
of variables is 1.
- ECL now accepts Windows' UNC pathnames.
(with-open-file (s #P"//JUANJO-IMAC/Public Folder/index.html"
(loop for l = (read-line s nil nil)
do (princ l)))
- The default memory limits are increased up to 512Mb for 32 bit images and
4Gb for 64-bits systems.
- The bignums generated by RANDOM did not contain enough random bits.
* Bugs fixed:
- In single-threaded builds, ECL did not properly restore the signal mask
before jumping out of a signal handler.
- Floating point exceptions were sometimes ignored, leading to infinite loops.
- A new configuration flag is added, --with-dffi. This flag allows
deactivating the foreign function interface when the compiler does not
support inline assembly with the GCC syntax and libffi is not available.
- In a multithreaded ECL, when handling a Ctr-C/SIGINT asynchronous interrupt,
the CONTINUE restart was not always available.
- In cygwin, LOAD was unable to load and execute binary files.
- In cygwin, FASL files can not lack a file extension, because dlopen()
then looks for a file ending in ".dll" and fails.
- In cygwin, files that are dlopen'ed must have executable permissions.
- ECL ignored the IGNORABLE declaration.
- The IGNORE/IGNORABLE declarations accept (but ignore) arguments of the
for (FUNCTION function-name).
- SUBTYPEP caused a SIGSEGV when the input was a not finalized class.
- Due to the SUBTYPEP bug, ECL could not compile DEFMETHOD forms whose
arguments referenced non-finalized classes
- When supplied an error value, (EXT:SAFE-EVAL form env &optional err-value)
never returned the output of the evaluated form.
- FIND-SYMBOL accepted string designators instead of just strings, as
mandated by the ANSI specification.
- APPEND copied also the last argument.
- (LOG #C(x x)) now produces a better result when x == 0
- (ATAN #C(0.0 1.0)) no longer produces an infinite recursion.
- Solved a hard to hit bug in DEFCLASS's routine for detecting collisions in
- LOG and LOG1P did not work properly with NaNs under linux.
- ECL had problems combining #. and #n=/#n# reader macros.
- FDEFINITION and SYMBOL-FUNCTION caused an incorrect error condition when
acting on NIL.
- The optimizer for TYPEP did not work when passed three arguments.
- CLOS:SET-FUNCALLABLE-INSTANCE-FUNCTION broke the value if SI:INSTANCE-SIG,
preventing any further access to the instance slots.
- The optimized slot accessors check that the instances are up to date.
- The use of MAKE-INSTANCES-OBSOLETE now forces
to be invoked even if the slots did not change.
- ENSURE-GENERIC-FUNCTION-USING-CLASS does not provide a default method class.
- The socket option TCP_NODELAY option has been fixed: it was improperly using
the socket interface SOL_SOCKET instead of IPPROTO_TCP (Chun Tian)
- sockopt-linger and (setf sockopt-linger) now work as they should, using
the struct linger argument (M. Mondor)
- ASDF:MAKE-BUILD now accepts also a :PROLOGUE-CODE argument with code to
be executed before all lisp files are run.
- C:BUILDER's argument :PROLOGUE-CODE can now be a lisp form. In the case of
standalone programs the prologue code is always executed after cl_boot() has
- QUIT did not work from standalone executables created with neither ASDF
nor with C:BUILDER.
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
Join us December 9, 2009 for the Red Hat Virtual Experience,
a free event focused on virtualization and cloud computing.
Attend in-depth sessions from your desk. Your couch. Anywhere.