Subject: noevalargs (Re: Minpack vs autoload of $jacobian)
From: Raymond Toy
Date: Thu, 22 Jan 2009 20:48:55 -0500
Robert Dodier wrote:
> On 1/21/09, Raymond Toy <raymond.toy at ericsson.com> wrote:
>
>
>> (%i1) load(minpack);
>> (%o1) /apps/public/src/toy/maxima-colnew/share/minpack/minpack.mac
>> (%i2) minpack_lsquares([10*(x[1]-x[2]^2),1-x[2]],[x[1],x[2]],[-1.2,-1]);
>>
>> put: atom must be a symbol or a string:
>> 'linearalgebra
>> -- an error. To debug this try debugmode(true);
>>
>
> Ray, MFUNCALL eventually calls MAPPLY1 which binds the special
> variable NOEVALARGS to T, which prevents evaluation of the
> arguments of "put" in linearalgebra.mac, so the single quotes (MQUOTE)
> are not stripped off 'linearalgebra and 'version, so those arguments are
> not atoms, they're MQUOTE expressions.
>
> That place in MAPPLY1 seems to be the only place NOEVALARGS is
> bound to anything other than NIL. It has been there since r1.1 src/mlisp.lisp
> in cvs.
>
> The presence of (LET ((NOEVALARGS T)) ...) makes autoloaded
> stuff behave differently from stuff loaded explicitly --- that to me
> is an argument for cutting it out.
>
>
That works for me. But I wonder what problem it was intended to solve
way back when.
Can someone with Macsyma see if it behaves the same?
Ray