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

Issue: IN-SYNTAX (Version 1)



    Date: Fri, 21 Oct 88 13:59:17 PDT
    From: Jon L White <jonl@lucid.com>

    This issue is far too narrowly focused right now.  For example,

[Reasonable comments ommitted for now.]

    In short, we would all be better off if LOAD and COMPILE-FILE started out 
    in a ***known*** configuration.  I would suggest binding *READ-BASE* to 10,
    *PACKAGE* to USER, and *READTABLE* to a value like (copy-readtable nil).

I'm worried about this because:

   - LISP is unsuitable because you don't know what's in it.
   - USER is unsuitable because
     - it may contain implementation-dependent stuff, including
       shadowed definitions of standard common lisp things.
     - its express purpose is for users to muck around in, so even
       if it starts off clean, it won't stay that way. as such, either
       it will be unreliable to load anything once you've been fooling
       around awhile or you'll have to know not to do some things that
       might screw up loading. either of these is unacceptable.
   - SYSTEM is unsuitable because you can't know what's in it.
   - KEYWORD is unsuitable because it has no functions in it and you'd
     have to use package prefixes anyway.

    ...
    The MIMIMAL proposal -- assuming the name change -- is nearly 
    uncontroversial, and wouldn't preclude subsequent embellishments.
    How about adding *READ-BASE* to it, and considering more standard
    default values?

Something I just thought of (a result of thinking about your message):
In spite of my hesitation about using USER, I have to say that it might
be kinda nice if LOAD could rebind everything to its `standard value' if
we could adopt the STANDARD-VALUE proposal. If that were true, then
people could do LET-STANDARD to affect the value if they really wanted
to, yet not only *PACKAGE*, but also *READTABLE*, *PRINT-BASE*, etc.
could be handled in a reason which was intuitively nice and didn't have
to pick some arbitrary set of variables to bind. Maybe if we did that,
I wouldn't feel a need to push this issue. When you've had a chance to
review that proposal, let me know how you feel about this idea.