package "affine"



>>>>> "Michel" == Michel Talon <talon at lpthe.jussieu.fr> writes:

    Michel> Hello,
    Michel> It seems that package "affine" in maxima 5.17.1 doesn't work at least under
    Michel> cmucl (it worked for me under a previous version, perhaps 5.16.0). 

    Michel> niobe% maxima
    Michel> Maxima 5.17.1 http://maxima.sourceforge.net
    Michel> Using Lisp CMU Common Lisp Snapshot 2008-02 (19E)



    Michel> I have run load(affine) as root in case it would write something, this seems
    Michel> to work, i get:
    Michel> (%i2) load(affine);

[snip]

We no longer compile the files; we just load them.  This was changed
so that maxima wouldn't need write permission.

    Michel> But afterwards using it doesn't work, for example:

    Michel> (%i5)  grobner_basis ([3*x^2+1, y*x]);
    Michel> ; 

    Michel> Maxima encountered a Lisp error:

    Michel>  Error in KERNEL:%COERCE-TO-FUNCTION:  the function MUST-REPLACEP is
    Michel> undefined.

Ok.  Because we don't compile the files any more, the eval-when in
polysmp.lis is never executed.  Adding :execute the the eval-when
situations makes your example work.

Not sure why there's an eval-when there at all.  MUST-REPLACEP was
apparently a macro, but it's now commented out, and polysmp.lisp
defines MUST-REPLACEP as a function.

I guess we need to look at all of the eval-when situations in affine
and see if they need to be adjusted since we don't compile the files
anymore.

Or modify affine.system so the compiled files go into a place where we
*know* we can write.  Either /tmp or, maybe. the directory where the
user's maxima-init.lisp file would go.

Ray