Confusion exists as to whether load-time-value should see lexical macros defined surrounding a use of load-time-value. The question is whether this definition should have FOO return a constant list of one random number, or whether the code is incorrect:
(defun foo ()
(macrolet ((listify-this (x) `(list ,x)))
(load-time-value (listify-this (random 50)))))
full-eval sees listify-this but the compiler does not, and 3 of 3 other Lisps (CCL,ABCL,CLISP) say that "listify-this" is undefined in their evaluator.
jyknight and I decided that the spec is unclear. The proposal(s) contain double-speak, saying that compile-file performs "normal semantic processing such as macroexpansion." It does not say whether _that_ processing is performed in a null lexical environment. You would have to read into it that the compiler should nullify the environment; but such "reading in" is to read something that is just not there.
*However* it then goes on to say that COMPILE and EVAL both evaluate <form> in a null environment, which in that unambiguous phrasing is completely at odds with seeing lexical macros.
That leads one to conclude that the problem is in full-eval and not the compiler, based on the premise that CLHS would not have mandated that compile-file behave differently in that regard.
Anyway it's a trivial change and I just wanted to mention it.