[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Top-level EVAL-WHEN
Date: Monday, 7 April 1986 09:17-EST
From: BACH::GREEK <greek%bach.decnet at hudson.dec.com>
Reply-To: BACH::GREEK <greek%bach.decnet at hudson.dec.com>
To: common-lisp <common-lisp at su-ai.ARPA>
Re: Top-level EVAL-WHEN
I didn't quite understand Rob's point, but no one is excluding EVAL-WHEN
buried in a top-level PROGN (as is typically generated by complex
macros). This is because all of the forms inside a top-level PROGN
are "promoted" to top-level forms.
If I define a macro DEF-FROB which has some code in its body, I want to
be able to use this defining macro within a let:
(let ((foo ...))
(def-frob my-frob (x) ...))
If non-top-level EVAL-WHEN's are prohibited, then users cannot define
defining macros which expand into code containing EVAL-WHEN's unless
those macros are only used at top level. I don't think that anyone
considers the body of a let to be at top level; if they do, then where
does top-level stop? One way to look at my proposal is as saying
"everywhere is top-level." I see no need for defining the notion of
top-level, and see good reasons not to.
Rob