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