Question about declare-top



C Y wrote:

> --- Raymond Toy  wrote:
> 
> 
>>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.
> 
> 
> Erm.  I suppose since I don't properly understand what "special" means
> in lisp (I'm looking around, but it hasn't sunk in yet) I may be
> worrying about nothing, but if nothing else shouldn't this be on our
> "clean up" list?  Presumably if the original coders wanted them special
> globally they could have done that, so what were they trying to
> accomplish by unspecial?  

I think the idea is this:

If you have programs that are defined within a file F and you use,
as global variables   x, y, z,   you might declare them to be "special".
But you probably don't want them to be special in other files that are
compiled after F.

The closest I've come so far to understanding
> what special means is that it's a global variable which is only legal
> to refer to if it is bound (has a value) but I suppose that's
> incorrect.  

No, it has to do with binding. Special bindings are not lexical, but dynamic.



I must confess I really don't understand their use in the
> current (almost) one package setup, since everything is accessable to
> everything else in that setup.
> 
> Guess it's time to hit PCL again...
>  
> 
>>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).
> 
> 
> Hmm.  Weird.  OK, thanks Ray!  I'll keep digging to see if I can make
> sense out of it.
> 
> Cheers,
> CY
> 
> 
> 		
> __________________________________ 
> Yahoo! Mail Mobile 
> Take Yahoo! Mail with you! Check email on your mobile phone. 
> http://mobile.yahoo.com/learn/mail 
> 
> _______________________________________________
> Maxima mailing list
> Maxima@www.math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima