Re: lambda-returning defmacro, capture
- From: "Alex Mizrahi" <udodenko@xxxxxxxxxxxxxxxxxxxxx>
- Date: Wed, 13 Dec 2006 22:49:18 +0200
(message (Hello 'Juho)
(you :wrote :on '(13 Dec 2006 19:26:15 GMT))
(
JS> No, it is undefined behaviour. The standard specifies (in 3.1.2.1.1)
JS> three kinds of variables, none of which VARR fits. The standard also
JS> doesn't specify what should be done for non-variables that are used
JS> syntactically like variables.
no, it IS a variable.
the standard defines what unbound variable is, but is it dynamic, lexical or
constant variable unbound? :)
looks like (setf (symbol-value 'varr) 1) creates a global binding, so it's
not a unbound variable.
i think you can assume that it's a dynamic variable when referenced in
top-level, since description of what dynamic varibles is is very vague :)
JS> It happens that all implementations I know of have chosen the same
JS> behaviour for this, and interpret VARR as referring to the value slot
JS> of the symbol (though sometimes with warnings of an undefined variable
JS> being used).
which ones produce warning? i've checked acl, lispworks, clisp and sbcl --
no one produces warnings.
i'm not sure, but i think unless we assume that this interpretation of
standard is correct, we can find a contradiction in standard -- that is much
worse than simply 'undefined behaviour'.
)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"People who lust for the Feel of keys on their fingertips (c) Inity")
.
- Follow-Ups:
- Re: lambda-returning defmacro, capture
- From: Juho Snellman
- Re: lambda-returning defmacro, capture
- References:
- Re: lambda-returning defmacro, capture
- From: Andreas Thiele
- Re: lambda-returning defmacro, capture
- From: Pascal Bourguignon
- Re: lambda-returning defmacro, capture
- From: Alex Mizrahi
- Re: lambda-returning defmacro, capture
- From: Juho Snellman
- Re: lambda-returning defmacro, capture
- Prev by Date: Re: merits of Lisp vs Python
- Next by Date: Re: lambda-returning defmacro, capture
- Previous by thread: Re: lambda-returning defmacro, capture
- Next by thread: Re: lambda-returning defmacro, capture
- Index(es):
Relevant Pages
|