<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:verdana,helvetica,sans-serif;font-size:10pt">I was trying to compile-file a bunch of related files in sequence (from within a single PROGN say), and it does not seem like declaring a special variable *var* via (declaim (special *var*)) in an earlier file makes it visible at compile-time to a later file.  I.e., I get an "Undeclared free variable *VAR*" diagnostic when the later file is compiled, if it does something like (let ((*var* ...)) ...).   <br><br>Once I wrap the declaim inside an explicit eval-when, the diagnostic goes away, so it isn't a big deal, but then I don't see the point of (declaim (special *var*)) over a simple (defvar *var*).<br><br>Is this correct, acceptable, or even desired behavior?  The Clozure behavior in this case doesn't seem to be matched in other CLs, e.g. SBCL.<br></div><br>

      </body></html>