Is it a bug?



On 5/14/08, Alexey Beshenov <al at beshenov.ru> wrote:

> In 5.14.0 (CLISP 2.41) calling desolve inside a "for...do" block makes it loop
>  endlessly. Is it a bug?

Well, this is pretty mysterious ... here is a little more info.
By the way can someone open a bug report? Problems like this
get lost on the mailing list if not resolved right away.

desolve calls laplace and ilt (inverse Laplace transform).
It appears the problem originates from ilt.

This function demonstrates the bug when called.
But translate(foo) makes it go away --- because, I suppose,
the loop is handled differently.

foo () := for i : 1 thru 3 do (ilt (1/s, s, t), print (i));
translate (foo);
:lisp #'$foo
 => #<FUNCTION $FOO NIL (DECLARE (IN-DEFUN $FOO))
  (BLOCK $FOO NIL
   (DO (($I 1 (+ 1 $I))) ((> $I 3) '$DONE)
    (SIMPLIFY
     ($ILT (DIV 1 (TRD-MSYMEVAL $S '$S)) (TRD-MSYMEVAL $S '$S)
      (TRD-MSYMEVAL $T '$T)))
    ($PRINT $I)))>
foo ();
 =>
1
2
3

I am debugging with 5.14.0 + Clisp 2.39 + Linux here.
I don't see the problem with a recent cvs version + Clisp,
SBCL, CMUCL, or GCL (all Linux).

hope this helps

Robert Dodier