[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
re: COMPILER-LET-CONFUSION, v3
- To: cl-compiler@SAIL.STANFORD.EDU
- Subject: re: COMPILER-LET-CONFUSION, v3
- From: Kim A. Barrett <IIM@ECLA.USC.EDU>
- Date: Thu 9 Feb 89 11:24:33-PST
- Cc: kmp@SCRC-STONY-BROOK.ARPA, iim@ECLA.USC.EDU
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
-------