[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
eval and other topics
- To: miller@ACORN.CS.ROCHESTER.EDU
- Subject: eval and other topics
- From: Kent M Pitman <KMP@SCRC-STONY-BROOK.ARPA>
- Date: Wed, 26 Nov 86 17:04 EST
- Cc: kmp@SCRC-STONY-BROOK.ARPA, Common-Lisp@SU-AI.ARPA
- In-reply-to: <861126155002.1.MILLER@CASHEW.CS.ROCHESTER.EDU>
Date: Wed, 26 Nov 86 15:50 EST
From: Brad Miller <miller@ACORN.CS.ROCHESTER.EDU>
... While I certainly concur that a lexical eval is not a particularly good
idea as far as a compiler writer is concerned (because it is very hard, and
very inefficient), I think it is a TERRIFIC idea for USERS. I've needed the
functionality several times, and each workaround is a total hack that has to be
explained in about a page of extra documentation so the next poor slob that has
to maintain my code can figure out why I wrote such dreadful code in the first
place (and what it does). ...
I (and I'm sure others on this list) would be very interested to see a sketch,
explanation, or example of a place where you think LEXICAL-EVAL was essential.
Personally, I can think of no places (other than in debuggging or situations
closely related to debugging) where it was either essential or even appropriate.
I seriously doubt that I can be convinced that it is a "terrific" idea for
users in any case. The whole point of lexicality is to allow static analysis.
The whole-point of LEXICAL-EVAL is to allow a Turing-powerful piece of code
to modify the lexical environment in arbitrary ways, potentially thwarting
many (probably most) useful kinds of static analysis which one might contemplate.
The compiler is not pathological here -- any tool which tried to do program
understanding (including macros, translators, optimizers, and human programmers)
would have to expect trouble in the face of this primitive. I don't find this