noevalargs (Re: Minpack vs autoload of $jacobian)



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