Problem with $EV and $SOLVERADCAN [ECL port]



> >>>>> "Goffioul" == Goffioul Michael  writes:
> 
>     Goffioul> I don't have such a working system (only have 
> ECL installed). Could
>     Goffioul> anybody
>     Goffioul> tell me what should happen in $EV when the 
> top-level DO-loop finds
>     Goffioul> $SOLVERADCAN?
> 
>     Goffioul> In my case:
>     Goffioul> 	- the IF statement doesn't execute: 
> (ATOM (CAR L)) is true
>     Goffioul> 	- the COND statement goes to second clause
>     Goffioul> 	- the OR statement goes to second 
> alternative (LET)
>     Goffioul> 	- (MEVAL (CAR L)) returns NIL
> 
> FWIW, CMUCL does the same thing.
> 
> Then, as you report, (symbolp fl) is T, and the code $nounify's nil,
> which apparently works on CMUCL.  
> 
> What happens if you just don't nounify if fl is nil?  If I do this
> with CMUCL, ev returns
> 
>                                        log(125)
> (%o1)                          [f(x) = --------]
>                                         log(5)

It does the same. However, now if $SOLVERADCAN is T internally, FL will
also be T and you'll try to nounify T, hence changing its property list.
My question is more: is it normal that maxima tries to change the plist
of symbols in the COMMON-LISP package? is this the expected behavior?

Moreover, with the current code, I don't think that an expression like:
ev(solve(5^f(x)=125), solveradcan) has any effect on the internal value
of the $SOLVERADCAN variable (or maybe I'm missing something).

Michael.