[Openmcl-devel] Compiler warnings
Greg Pfeil
greg at clozure.com
Sun Oct 18 07:54:19 PDT 2009
[bringing back to the list, as I forgot to CC them on my last message]
On 18 Oct 2009, at 9:58, Taoufik Dachraoui wrote:
> In our example:
>
> (setf x 1)
> (THE fixnum x)
>
> The form x returns 1 and the type of 1 is fixnum thus I do not
> understand why the compiler
> raise a warning; Suppose that the compiler raises an error instead
> of a warning
> stating that the x is an undeclared free variable; this may be
> reasonable but it is not
> compliant with the standard.
Perhaps if I show you an analogous example at eval-time (as opposed to
compile-time) you will see how the warning that is signaled has
nothing to do with THE.
? (defun the* (type expr)
(declare (ignore type))
expr)
THE*
? (the* 'fixnum x)
> Error: Unbound variable: X
Would you say here that THE* is signaling the error? The function THE*
has not yet been called at the point of the error. The error exists
merely because the form has the undeclared (and thus unbound) variable
X in it.
With (the fixnum x) a similar thing is happening at compile time.
> Please bear with I may be mistaken, but as far as I can see and
> understand, this issue looks
> serious.
Here is the real issue: you think it is possible that you are _not_
mistaken. The people you are conversing with on the list have each
been dealing with the spec since it was written. They are legion and
they are all in agreement that you are wrong. What you should do is
accept that you are wrong, and work on figuring out what your
misunderstanding is. As long as you maintain that you may be correct,
you will have a hard time seeing why you are not.
More information about the Openmcl-devel
mailing list