[Ecls-list] Latest bugfixes
Juan Jose Garcia Ripoll
worm at arrakis.es
Wed May 5 01:49:04 UTC 2004
Hi,
I have devoted the last weekends to fixing a horrible bug that was
spotted months ago by Paul Dietz' test suite. The bug involves the
optimizer for tail recursive calls, which was a very old code based on
function names and not on function identity. In other words, the
optimizer thought that the following had a tail recursive call
(defun foo (z)
(labels ((f1 (x) ;; instance 1
(labels ((f1 (y) 2)) ;; instance 2
(f1 x))))
(f1 z)))
Since the optimizer was based on function names, it thought that (f1 x)
involved "instance 2" instead of "instance 1".
Fixing this was not easy, and I also used this opportunity to simplify
and unify the code that handles DEFMACRO, DEFUN and local functions
produced by LAMBDA, FLET and LABELS.
I still have to fix one more bug involving elaborated combinations of
FLET and LABELS, and hope to produce a new release of ECL afterwards. In
the mean time, the new changes are available in CVS.
Best regards,
Juanjo
More information about the ecl-devel
mailing list