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

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



    Date: Sun, 6 Mar 88 15:41 EST
    From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>

    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.

I certainly agree with at least the first part of this; I should have
covered at least LET* in the original proposal.  While the next
edition should include all of the areas mentioned above, I think that
the it may be best to explicitly not support some of them if the
current vague definition of "top level" stands.
    
    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.
    
There seems to be a lot of general agreement on this.  Is it a cleanup
or compiler issue (or *the* compiler issue)?

    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.
    
Does this mean that you would oppose anything that didn't include a
fixed definition of "top level"?  If so, do you think that such a fix
is a required part of the standard we're working on or that
standardizing the status quo is preferable to any halfway measures?