Question about declare-top



>>>>> "CY" == C Y  writes:

    CY> In the mactex file, there exists the following statement:
    CY> (declare-top
    CY>  (special lop rop ccol $gcprint texport $labels $inchar
    CY> 	  vaxima-main-dir
    CY> 	  )
    CY>  (*expr tex-lbp tex-rbp))

    CY> What does it mean, from a coding standpoint, to declare these things
    CY> special or "*expr"?  I never quite understood this - I was under the
    CY> impression that this was something that appeared on a "per-file" basis,
    CY> but since most everything was in the "MAXIMA" package these statements
    CY> presumably have a global effect?  Any insight appreciated.

If you look many files with declare-top at the top also have
declare-top at the bottom.  The one at the top declares some variables
as special and then at the bottom makes some not special anymore.

But this isn't possible in Common Lisp.  Once special, it's forever
special.

Also a peek at the declare-top macro seems to indicate that only the
special and unspecial declarations are used.  And unspecial is only
applicable to gcl and acl (excl).

Ray