From: Tim Bradshaw
Subject: Re: appropriate use of eval?
Date: 
Message-ID: <chnbpt$8kg@odbk17.prod.google.com>
Brian Seitz wrote:
>
> (defmacro define-spike-dirs (&rest list)
>   (let ((collect))
>     (dolist (x list)
>       (let ((symbolic (eval (first x)))
> 	    (real (eval (second x))))
> 	(push `(buffy:modify-translation "spike" ,symbolic ,real)
> 	      collect)))
>     `(progn ,@collect)))

What on earth makes you think this would work even slightly right?
Those EVALs happen at macro expansion time, so if you have, say, an ENV
call, it will be called at macro expansion time.  If this is in a file
being compiled and then (later) loaded, this will happen at compile
time.  So, say, on a build machine, not the machine where the code is
run.  Is that likely to give you the right answer?

--tim