Re: Special variables!



>>>>> "Camm" == Camm Maguire <camm at enhanced.com> writes:

    Camm> ;; Note: *ASINX* is special: (*ATANX* *ASINX*) NIL
    >> 

    Camm>                                          ^^^^^ This binding had
    Camm>                                                an explicit (declare
    Camm>                                                (special *ATANX*
    Camm>                                                *ASINX*)), so is
    Camm>                                                presumably OK.
                                         
    Camm>                                                            ^^^^ This
    Camm>                                                            binding was
    Camm>                                                            not a
    Camm>                                                            pre-existing
    Camm>                                                            special. 

Ah, ok.  Now I know how to interpret the results.  The note that the
binding was not a pre-existing special is kind of spurious.  The code
does

 (let ((*asinx* nil))
   (declare (special *asinx*))
   ...)

which is perfectly valid.

    Camm> I can collect other stats if helpful, as this was generated with a

Depends on what the stats are. :-)

    Camm> Separately, what about this comment in lmdcls.lisp:

    Camm> ;;this list should contain all specials required by runtime or more
    Camm> ;;than one macsyma file, except for some specials declared in the macro
    Camm> ;;files, eg displm

    Camm> (declaim
    Camm>  (special
    Camm>   $% $%% $%edispflag $%emode $%enumer $%e_to_numlog $%iargs $%piargs
    Camm>   ...

    Camm> Doesn't this mean that all other files with a declare-top special
    Camm> should have a declare unspecial at the end?

Don't know.  It would certainly be nice if we collected all the
specials in one place, and used the *foo* convention, except for
things like *asinx* which are only used in one file, in certain
functions.

This list is missing VAR, which is a special used in lots of different
files, which are interrelated.

Ray