#1425 Calling desolve inside a "for...do" makes it loop endlessly

closed
nobody
Lisp Core (472)
6
2008-06-03
2008-06-01
Alexey Beshenov
No

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

(%i1) for i : 1 thru 3 do (print(i));
1
2
3
(%o1) done

(%i2) for i : 1 thru 3 do (desolve('diff(foo(x),x)=1,foo(x)), print(i));
1
1
1
...

Seems to happen with CLISP and SBCL, but not with GCL and CMUCL. Actually, the problem is related to ilt which is called by desolve.

http://www.math.utexas.edu/pipermail/maxima/2008/011592.html

Discussion

  • Robert Dodier
    Robert Dodier
    2008-06-02

    • labels: 929639 --> Lisp Core
     
  • Robert Dodier
    Robert Dodier
    2008-06-02

    Logged In: YES
    user_id=501686
    Originator: NO

    Looks like MDO in src/mlisp.lisp uses a variable (VAR) which is declared special and clobbered by some function called from ilt. Changing the name from VAR to MY-VAR avoids the name collision. I'll commit a patch in a day or two.

     
  • Robert Dodier
    Robert Dodier
    2008-06-03

    Logged In: YES
    user_id=501686
    Originator: NO

    Resolved by r1.65 src/mlisp.lisp which renames VAR in MDO and MDOIN to avoid name collision with special variable of same name. Closing this report as fixed.

     
  • Robert Dodier
    Robert Dodier
    2008-06-03

    • status: open --> closed