ALU capability (was Re: [E-Lang] Authority -- what is its dual?)

Mark S. Miller markm@caplet.com
Mon, 22 Oct 2001 08:30:10 -0700


[All the forwarded messages in the following thread are forwarded with the 
permission of all the participants.  --MarkM]


At 06:40 AM 10/18/2001 Thursday, Jonathan A Rees wrote:
>But I don't see any relevance to E, so let's do it off of the list.

Hi Jonathan,

I'm surprised you don't see the relevance to E.  Like Smalltalk, E wants 
to be an "everything is an object" language in its heart, though, like 
Smalltalk, it doesn't pull it off.  I don't know if it'll ever pull it off, 
but it would like to.  E shares more philosophy with Joule than with any 
other single language.  Joule does pull this off perfectly, and also has a 
built in rights amplification primitive.

I think E may not be able to transition to pulling this off because of its 
stance on synchronous symmetric equality, and because of its taxonomy of 
reference types.  But even if we can't, I believe it will do us all a lot of 
good to understand this issue better.

Curiously, synchronous rights amplification in E need not be primitive for a 
completely different reason than in Joule.  MarcS noticed that E's 
scheduling rules enable U to test whether B has been invoked during an 
invocation of X by having B cause a side effect that U can observe.  (This 
requires U and B to share state.)  U can then be an Unsealer, and B can be a 
SealedBox created by the corresponding Sealer, and X can be an alleged 
SealedBox.  Although the implementation of this will remain in Java for 
layering reasons, we will transition to a semantics precisely equivalent 
to MarcS' non-primitive implementation in E.

Btw, when MarcS first explained the technique, I was sure it was wrong 
because it didn't seem possible.

If you do decide to discuss this on the list, feel free to start by 
forwarding this message.  Thanks.

I will read your paper.


        Cheers,
        --MarkM