[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: "bound but never used" is brain damaged



The compiler is brain damaged about "bound but never used":
(DEFUN SCREW (&AUX (FOO 69.)) (EVAL (READ)))
(screw) foo --> 105
(compile 'screw) --> Warning: FOO is bound but never used.
(screw) foo --> Barf, FOO is unbound, the sky is falling, etc.

It seems the compiler is trying to do some misguided "optimizing".

I have also observed it to mistakenly decide a variable isn't used
because it is inside a backquoted form, even though it actually IS
used because of being commatose.

What it should say is "Warning: compiler taking liberties with your code!"
Goddamnit, DWIS not DWIM!