[Ecls-list] [ANN] ECL 9.12.1

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Tue Dec 1 09:15:05 UTC 2009

Known issues

- 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.

ECL 9.12.1:

* 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"
                       :direction :input)
      (loop for l = (read-line s nil nil)
            while l
            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
   slot names

 - 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:

   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.

* Sockets:

 - 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
   been invoked.

 - 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)

More information about the ecl-devel mailing list