[Ecls-list] Latest changes (some critical)

Juan Jose Garcia Ripoll jlr at mpq.mpg.de
Mon Oct 24 02:29:25 UTC 2005


I have committed quite many changes today. As some of them are critical,
you are advised to keep a copy of your sources before updating from CVS.

 - MULTIPLE-VALUE-SETQ must output only the primary value.

 - MAKE-CONDITION now accepts type specifiers such as '(AND
SIMPLE-CONDITION TYPE-ERROR).

 - LOAD can now load code from streams which are not associated to
files.

 - DISASSEMBLE now signals a TYPE-ERROR condition when the argument is
neither an extended function designator nor a lambda expression.

 - The block name of a function does not involve the the forms in the
lambda list: i.e. (LAMBDA-EXT F (&aux (X (RETURN-FROM F 2)))) is no
longer valid.

 - The bytecodes compiler no longer provides special support for
DOLIST/DOTIMES, thereby simplifying both the compiler and the
interpreter.

 - On systems with GNU libc, we are able to signal and trap floating
point exceptions of the following kinds: overflow, underflow and
division by zero.
   Trapping of these exceptions can be disabled with (SI::TRAP-FPE NIL).
In practice this means overflows in routines like EXP, EXPT, etc, are
now detected.

   And other 10 fixes related to bugs found by Paul Dietz's ANSI
compliance suite, plus a relatively major change which is...

  - IMPORTANT: ECL is now entirely responsible for finding references to
all lisp data. That means that the garbage collector will not scan the
static data region of your program (i.e. variables you define in the C
code or in loaded libraries). If you store lisp data somewhere in an
embedding C program, you have to either keep this data in automatic
variables (i.e. variables from within a function, which are stack
allocated), or register the C global variables with
ecl_register_static_root(), or keep also a reference to that data in a
lisp variable.

Please report any failure when building ECL.

Regards,

Juanjo





More information about the ecl-devel mailing list