[cap-talk] where(), and a mobile-code JS-over-Python experiment

Karp, Alan H alan.karp at hp.com
Fri Apr 9 09:32:55 PDT 2010


Brian Warner wrote:
> 
> When Carol has a database in her vat Z, and she offers Alice the ability
> to run code close to the database (but not actually in Z, because she
> doesn't want to give Alice the ability to deny DB service to everyone
> else), she creates a second vat Z2 on the same machine as Z, with a
> single empty object C2 inside it. She then gives Alice a reference to
> C2. Alice does "where(C2) -> {stuff(dbref)}", causing all of her complex
> database-using code to leap into Z2. Her code's main "dbref" reference
> remains Far, but it will be a shorter kind of Far than the "dbref" that
> was in vat X.
>
But this approach loses the advantage of turning a sequence of eventual invocations into a sequence of immediate ones.  That's more than a coding convenience or a performance saving.  The transactional nature of a turn gives you guarantees about a sequence of immediate calls that you don't get if they are eventual.

We came up with a different solution to the denial of service problem in e-speak.  It's based on Knuth's observation that, "If your program has no loops, it's finished."  In your case, you can accept any loop- (and recursion) free When blocks.  If the block isn't provably loop-free, then you can fall back to your solution.

________________________
Alan Karp
Principal Scientist
Virus Safe Computing Initiative
Hewlett-Packard Laboratories
1501 Page Mill Road
Palo Alto, CA 94304
(650) 857-3967, fax (650) 857-7029
http://www.hpl.hp.com/personal/Alan_Karp





More information about the cap-talk mailing list