[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: Pavel.pa@Xerox.COM
- Subject: Re: EVAL
- From: Alan Bawden <Alan@AI.AI.MIT.EDU>
- Date: Sat, 22 Nov 86 21:20 EST
- Cc: common-lisp@SU-AI.ARPA
- In-reply-to: <861122-170037-2387@Xerox>
Date: 22 Nov 86 17:00 PST
Date: Sat, 22 Nov 86 17:32 EST
From: Alan Bawden <Alan@AI.AI.MIT.EDU>
Right. This demonstrates that LEXICAL-EVAL would have to be a new
special form, rather than simply a function.
Even if it were a special form, what code could the compiler generate
for it? Would the presence of such a special form require turning off
all optimizations having to do with the lexical environment and cause
the compiler to create some sort of run-time environment structure
containing names and such? Yecch.
That would seem to be what you have to do. The variables that are
lexically apparent at the site of the LEXICAL-EVAL would have to be handled
somewhat more carefully than ordinary lexical variables. Presumably by
bundling them up into some kind of explicit environment structure.
In Common Lisp you would also have to include the current function
definitions established by FLET, the current BLOCK names and TAGBODY tags,
and the current macro definitions established by MACROLET.
Please note that I have yet to express an opinion about this.