[Maxima] Re: Special variables!
camm at enhanced.com
Thu Mar 30 10:23:23 CST 2006
Raymond Toy <raymond.toy at ericsson.com> writes:
> >>>>> "Camm" == Camm Maguire <camm at enhanced.com> writes:
> Camm> Perhaps. What I can't remember is whether the old system loaded each
> Camm> file after compiling and before compiling the next.
> Yes, perhaps I'm mistaken. I no longer remember how the build system
> for maxima used to work.
Well, if time permits I might look it up.
> Camm> It's hard to imagine someone actually doing this to posterity. I'm
> Camm> enclosing my list below. The last argument indicates when the
> Camm> variable already exists at binding time as a special. The second to
> Camm> last is the list of explicit local special declarations. I can
> This list is nice. We can ignore all the ones that start with $
> because they're maxima state variables, and thus global. We can
> probably ignore the *foo* because they're already following the naming
> convention and are presumably correct.
> Camm> ;; Note: *ASINX* is special: (*ATANX* *ASINX*) NIL
^^^^^ This binding had
an explicit (declare
*ASINX*)), so is
I can collect other stats if helpful, as this was generated with a
compiler mod for this purpose :-).
> So for *asinx*, what does the NIL mean? What does the (*atanx*
> *asinx*) mean? I believe all uses of *asinx* are correct, BICBW.
Agreed, most likely, given the above.
> Camm> How about this for a procedure? Remove the special
> Camm> declaration, then see where the compiler moans about the
> Camm> variable m being unknown. Then if we can generate a call
> Camm> graph (the .fn files may suffice), any m variables in the
> Camm> callers are declared special. Tedious, but perhaps (almost)
> Camm> automatable. ??
> An interesting idea. That might work, for someone motivated enough to
> do it and even more motivated to track down the bugs where a mistake
> was made. :-(
Separately, what about this comment in lmdcls.lisp:
;;this list should contain all specials required by runtime or more
;;than one macsyma file, except for some specials declared in the macro
;;files, eg displm
$% $%% $%edispflag $%emode $%enumer $%e_to_numlog $%iargs $%piargs
Doesn't this mean that all other files with a declare-top special
should have a declare unspecial at the end?
Camm Maguire camm at enhanced.com
"The earth is but one country, and mankind its citizens." -- Baha'u'llah
More information about the Maxima