[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


I originally sent this message about a week before the Hawaii meeting, but the
mailer bounced it.  This describes the hack I came up with that Sandra was
refering to recently (I showed a copy of this message around in Hawaii).



> Date: Wed, 4 Jan 89 19:54 EST
> From: Glenn S. Burke <gsb@ALDERAAN.SCRC.Symbolics.COM>
> (defmacro with-new-frob (... &body body &environment env)
>   `(macrovar-let ((frobs '((,name . ,data) ,@(macrovar 'frobs env))))
>     ,@body))

Assuming the existance of SYMBOL-MACROLET-SEMANTICS:SPECIAL-FORM, I believe
this could be rewritten as

(defmacro with-new-form (... &body body &environment env)
  `(symbol-macrolet ((frobs '((,name . ,data)
			      ,@(multiple-value-bind (expansion macrop)
				    (macroexpand-1 'frobs env)
				  (when macrop expansion)))))

Gosh, it seems like this technique just generally works.  Is this really true?
Anybody want to blow holes in it (Kent, this means you)?  If this does work,
then I think I can remove my objections to flushing COMPILER-LET.