[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