Greetings!
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
(special *ATANX*
*ASINX*)), so is
presumably OK.
^^^^ This
binding was
not a
pre-existing
special.
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
(declaim
(special
$% $%% $%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?
Take care,
> Ray
>
>
>
--
Camm Maguire camm at enhanced.com
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah