Available, as usual, in http://ecls.sourceforge.net
Should people find problems with this release, please do not hesitate
contacting us or reporting it through the mailing list.
- Readtables have a new flag that makes them read-only. Function
(si::readtable-lock readtable &optional new-flag)
either reads the state of this flag (if NEW-FLAG is missing) or
also sets it.
- The compiler now uses cl_core to efficiently access certain lisp
constants (standard packages, standard readtables, etc)
- EXT:OUTPUT-FLOAT-INFINITY works now fine when *print-circle* is T.
- WITH-STANDARD-IO-SYNTAX now also rebinds *print-pprint-dispatch*.
- When printing out data and reading it from a FASL file, the compiler now
uses more strict settings avoiding usual interferences such as the user
changing the readtable or the printing rules.
- The compiler no longer enters the debugger when it finds an error in the
code it compiles.
- C:COMPILER-ERROR no longer derives from ERROR or SERIOUS-CONDITION.
- Trapping of compiler conditions now works even for compiler errors.
- Handlers of compiler errors can now call (ABORT). COMPILE-FILE will
interrupt the compilation process, and the outputs values that signal
the failure to terminate.
- ECL no longer emits compiler notes when deleting unreachable code.
- Compiler messages now show the offending form and file position.
- DEFCONSTANT only had the expected compile-time side effects in the bytecodes
compiler, not in the lisp->C translator.
- New type information propagators for AREF, ASET, +, *, /, -, COS, SIN, ACOS,
ASIN, COSH, ACOSH, ASINH, SINH, ATAN, ATANH, EXP, EXPT, CIS, SQRT, ISQRT and
ABS. allow ECL to produce better code even without an additional
- Code to perform a type inference pass, with which-way information has
been added to ECL. The code is still in a debug phase, with lots of debug
output printed and rather incomplete, but it is by default deactivated and
should not interfere with usual functioning.
- The code for inlining functions has been improved. Some safe inline
expansions that were already available are now actively used thanks to these
- Formerly, by historical reasons, many library functions that take a fixed
number of arguments were declared as functions with a variable number of
arguments. This slows down ECL and prevents detecting certain errors. In an
ongoing effort to solve this problem, the C prototypes of COSH, SINH, CIS,
ACOSH, ASINH and ISQRT now take only one argument (i.e. cl_cosh (cl_object x)
instead of cl_cosh(cl_narg narg, cl_object x, ...))
* Visible changes:
- The toplevel only traps SERIOUS-CONDITIONS.
- "make clean" now wipes out the entire content of the build directory. Please
use this before re-configuring again ECL so that header and configuration
files are properly updated.