[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: draft of alternate proposal for EVAL-WHEN-NON-TOP-LEVEL
- To: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
- Subject: Re: draft of alternate proposal for EVAL-WHEN-NON-TOP-LEVEL
- From: sandra%defun@cs.utah.edu (Sandra J Loosemore)
- Date: Tue, 7 Mar 89 12:37:07 MST
- Cc: Sandra J Loosemore <sandra%defun@cs.utah.edu>, Eric Benson <eb@lucid.com>, pierson@mist.encore.com, cl-compiler@sail.stanford.edu
- In-reply-to: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>, Tue, 7 Mar 89 13:30 EST
> Date: Tue, 7 Mar 89 13:30 EST
> From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
>
> Here is the criterion I prefer to use: a form is non-top-level if its
> lexical environment cannot be fully constructed at compile time or if it
> is not manifestly executed at load time exactly once. In other words,
> the form is enclosed in a variable binding, a block, a tagbody, a loop,
> or a conditional.
I would also add "in a FUNCTION special form", although it's unlikely
that anybody would put one directly at top-level. Also, what about
things like CATCH and UNWIND-PROTECT that alter the dynamic
environment?
As other people have noted before, it seems like we are arriving at a
very complicated idea of "top-level" that has very little to do with
people's intuitive notions on the subject. It makes me wonder if
perhaps we shouldn't retreat to a minimalist position where PROGN is
the only special case.
-Sandra
-------