sys-proclaim (Was Re: [Maxima] Testsuite errors in CVS maxima)
Subject: sys-proclaim (Was Re: [Maxima] Testsuite errors in CVS maxima)
From: Raymond Toy
Date: Thu, 23 Mar 2006 09:52:53 -0500
>>>>> "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