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