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

re: COMPILER-LET-CONFUSION, v3



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).

kab

--------

> 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)))))
     ,@body))

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. 

kab
-------