On 1/13/08, Juan Jose Garcia-Ripoll
> Same thing applies to the compilation problems. The compiler does not
> require functions to be defined before compiling a file.
Yes, in most cases, functions which are undefined are eventually
called successfully. But there appear to be at least a few which are not.
One example, which, unfortunately, works correctly now,
involves the functions $SET_PARTITIONS and SET-PARTITIONS in:
$SET_PARTITIONS is defined first and it calls SET-PARTITIONS.
When I compiled Maxima via MK:DEFSYSTEM, following these instructions:
the behavior which I observed was that SET-PARTITIONS seemed
to return NIL -- I don't specifically know that SET-PARTITIONS
returned NIL; maybe the function call was replaced with NIL, I can't
tell. But if Maxima is not compiled (only interpreted) then
SET-PARTITIONS is called correctly. As I mentioned, this bug
has now apparently gone away; I don't see it now, maybe I would
have to make a clean rebuild to see it again.
A similar bug which I am still seeing.
Maxima has functions for factoring polynomials and other tasks in:
At the Maxima input prompt, factor(x^2 + 1) should return x^2 + 1.
However in Maxima compiled w/ ECL, it returns 0.
There are functions $RATSIMP which calls FULLRATSIMP which
calls FR1 to do part of the work. In compiled code, $RATSIMP
is called but not FULLRATSIMP. If I define $RATSIMP in the
repl, then FULLRATSIMP is called but not FR1. If FULLRATSIMP
is defined in the interpreter, then FR1 is called. This suggests there
is something amiss in the function calls. It appears that the function
call has been replaced w/ 0 in these cases.
Maybe there is a linking step for ECL which MK:DEFSYSTEM has omitted.
Thanks for your help,