24 Apr
2010
24 Apr
'10
7:42 a.m.
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. -- Madhu