sys-proclaim (Was Re: [Maxima] Testsuite errors in CVS maxima)



>>>>> "Raymond" == Raymond Toy <raymond.toy at ericsson.com> writes:

>>>>> "David" == David Billinghurst <Billinghurst> writes:
    David> I am seeing some testsuite errors with CVS maxima with
    David> gcl-2.6.7 / Redhat EL3 / x86_64.

    David> An error break in rtest6 and rexamples is due to

    David> (%i1) integrate(x^(5/4)/(x+1)^(5/2),x,0,inf);
 
    David> Maxima encountered a Lisp error:
 
    David> Error in PROGN [or a callee]: Error in do-arg-count-error: 
    David> DESTRUCTURING-BIND NIL NIL (L
    David> D
    David> AL
    David> C) 4 4


    Raymond> Hmm.  I don't have this problem with cmucl or clisp.  If you trace
    Raymond> batapp, bata0, and bxm, you can see the problem.  bxm returns the list
    Raymond> (((rat simp) -5 2) 1 1 1), which should be assigned to c.  bata0 is
    Raymond> supposed to return 2 values:  ((RAT SIMP) 5 4) and (((RAT SIMP) -5 2)
    Raymond> 1 1 1), but it actually only returns the first.

    Raymond> I don't understand why gcl only returns 1 value.

Ah, it's because sys-proclaim.lisp says bata0 returns just one value.

Fixing that makes this integral work.

Is sys-proclaim really needed?  I know gcl uses it, but it seems to be
a maintenance headache, and a great source of potential bugs, as we
can see now.

I notice that src/Makefile has a target to regenerate sys-proclaim,
which works by removing all of binary files for gcl and compiling
everything again.  This seems ok, except it takes a fair amount of
time.  When I do this, the resulting sys-proclaim file is incorrect
because it has references to the new MT19937 package (for random
number generation) but the package isn't defined when sys-proclaim is
compiled.  Yuck.

How are we supposed to handle this?

Ray