[E-Lang] A more critical question (was: an example impatience policy )

Mark S. Miller markm@caplet.com
Wed, 21 Mar 2001 12:34:18 -0800


At 11:15 AM Wednesday 3/21/01, Tyler Close wrote:
>One of the main worries that MarkM expressed with Hydro is that it is
>not tightly bound to the rest of the E code base. That he doesn't get
>that this is a good thing is, in my view, the source of E's shipping
>problems.

Rather than "tightly bound", what I said was "evolved separately" and "not 
well integrated".  Although Hydro is separable from Droplets, the two 
evolved together and are well integrated.  I'm not seeking thicker 
interfaces and tighter coupling.  I am seeking consistency and coherence 
between the parts of E, just as you do for the parts of your overall system.

Btw, ELib is separable, and can be shipped and used separately from the E 
language.  However, as with Hydro & Droplets, they evolved together to play 
well together.

Earlier I said:

>                             Can we postpone deciding?
>
>While we examine the overall integration question, we should also ask the 
>earlier question:
>
>Can we define what E is, such that the collections may be provided by Hydro 
>or not, but the language is still the same?  Language design and library 
>design should normally be kept separate, but primitive data types are
>where they intersect.  How much of E do we need to agree on in order for 
>Tyler and E to separately proceed forward before deciding on the Hydro-E 
>question, but where we're proceeding with compatible notions of E? [...]


So it seems we share the same desire.  But we still need to figure out what 
to do.  Starting from Kernel-E, and thereby ignoring the syntax expansion 
issues, it seems the collection classes that are a necessary part of the 
definition of Kernel-E are a string type and an immutable list type, since a 
match clause in an object definition reifies an incoming message into the 
message name and the list of arguments:

    def forwarder {
        match [verb, args] {
            # ...
        }
    }

Within the match clause, Kernel-E must say what kind of things the variables 
"verb" and "args" are bound to, and what messages may be sent to these kinds 
of things.  That's why we can't agree even on what Kernel-E is if we 
disagree on how the value of "args" above would respond to whatever "+" 
expands to.  (Unless the disagreement is moved to a disagreement on what "+" 
expands to, which no one would like.)


                                    VLS & HTTPY


I think it would be great to separate out the VLS ideas into a separate 
HTTPY (or whatever we call it) service.  Steve Jenson has expressed an 
interest in reviving the VLS, and we've talked some about how a revived VLS 
should deal with Firewalls, NATs, delayed lookup, and activation.  Steve, 
you should take a look at some of the old messages about the httpy 
proposals.  Anyone have some thread root URLs for Steve?  Or URLs of key 
messages?


        Cheers,
        --MarkM