On 4/24/10 3:42 AM, Madhu wrote:
Helu, here is an unpolished test case to show the problem:
-=-=- (defmacro frob-keyvals-string (string) (with-input-from-string (stream string) `(progn ,@(loop for key = (let ((x (read stream nil stream))) (if (eq x stream) (loop-finish) x)) for val = (read stream) for comment = (read stream) collect (list 'defvar key (list 'quote val) (string comment))))))
(frob-keyvals-string " foo fooval foocomment bar barval barcomment car carval carcomment")
-=-=-
When compiled with COMPILE-FILE in the 2010-04 snapshot, the above snippet appears to recompile the macro definition as many times as there are DEFVARs in the macro expansion.
I can confirm this. I thought it might be the fix for the bug that you reported about compiling a file with COMPILE in it. But that seems not the case. It looks like I might have to do a bit of time-traveling to isolate the problem. This might take a while... Ray