[Openmcl-devel] Compiler warnings

Ron Garret ron at flownet.com
Wed Oct 21 10:46:15 UTC 2009


On Oct 20, 2009, at 7:47 PM, Jeremy Jones wrote:

> Ron Garret wrote:
>> "If a form is a symbol that is not a symbol macro, then it is the  
>> name
>> of a variable, .... There are three kinds of variables: lexical
>> variables, dynamic variables, and constant variables."
>
> I'm not a language lawyer, but my interpretation is that if x is
> unbound, and you do a toplevel (setf x 1), you're creating a dynamic
> variable but it's not special.

According to the CL spec, dynamic and special are synonymous.

> So there are two subtypes of dynamic
> variables, free variables and special variables.  I claim that CCL is
> conforming to the standard because it only has three toplevel types of
> variables.  A free variable is dynamic because its value is looked up
> in the value cell of a symbol at run time.

One could just as well argue that a free variable is lexical because  
the symbol lookup is done at read-time, not run-time.  If this were  
not the case, global symbol macros could not be lexical (but they are).

rg




More information about the Openmcl-devel mailing list