Re: Special variables!



>>>>> "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.

    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

So for *asinx*, what does the NIL mean?  What does the (*atanx*
*asinx*) mean?  I believe all uses of *asinx* are correct, BICBW.

    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. :-(

Ray