[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Top-level EVAL-WHEN
- To: "BACH::GREEK" <greek%bach.decnet@HUDSON.DEC.COM>
- Subject: Top-level EVAL-WHEN
- From: Rob MacLachlan <RAM@C.CS.CMU.EDU>
- Date: Mon, 07 Apr 1986 22:40:00 -0000
- Cc: common-lisp <common-lisp@SU-AI.ARPA>
- In-reply-to: Msg of 7 Apr 1986 09:17-EST from BACH::GREEK <greek%bach.decnet at hudson.dec.com>
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