[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Issues: LET-TOP-LEVEL (version 1) vs DEFMACRO-BODY-LEXICAL-ENVIRONMENT



    Date: 4 Mar 88 13:52 PST
    From: Masinter.pa@Xerox.COM

    I'd given a separate name, DEFMACRO-BODY-LEXICAL-ENVIRONMENT, to the issue of
    the lexical environment of DEFMACRO. I think it is related to, but separate
    from, the LET-TOP-LEVEL issue. LET-TOP-LEVEL is (from my perspective) a
    clarification, while DEFMACRO-BODY-LEXICAL-ENVIRONMENT is a proposal for a
    change.

I agree that these issues should be separated.

    I think we are in general agreement about LET-TOP-LEVEL  with the only
    discussion being wording (is this a "change" or a "clarification", etc., ) which
    can probably be finessed.

I don't think so.  For example, the proposal only mentions LET.  This is
obviously incomplete.  It should at least mention LET*.  But what about
the LAMBDA combination that is almost equivalent to LET?  What about
other binding forms such as DO?  What about other bindings besides
variables, such as MACROLET, FLET, and BLOCK?  I think the proposal
needs much more careful attention to how narrow or broad its scope is
supposed to be.  Understand that I do not object to the change proposed
by this proposal.  I think that that change is going to be part of the
real proposal; I just don't think it makes sense to do that one change
by itself.

More generally, I think this proposal is patching Common Lisp's
ill-defined notion of "top level" instead of fixing it.  While there
are some practical benefits to the patch, as it makes a small increase
in the number of programs that are portable, I don't think it really
solves the problem.  In practical terms, I can't see asking my compiler
people to spend time implementing this when it's obvious that this is
an interim change and something better is, or should be, on its way.
I'd rather they spend their energies elsewhere until Common Lisp has
really got its act together on this "top level form" business, and then
they can implement what is really the right thing.

If this proposal were presented in its current form, I would oppose it.
No amount of wording changes would change my position.  I want to see
a broader proposal.

    DEFMACRO-BODY-LEXICAL-ENVIRONMENT has more problems, because we lack good
    definitions the terms involved in giving a precise definition of when such
    lexical environments can be used. 

Agreed.  See the other mail I sent today for more on that topic.