[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Mobile Lua - coming on strong
- From: Jay Carlson <nop@...>
- Date: Tue, 15 Nov 2011 11:16:55 -0500
On Mon, Nov 14, 2011 at 7:05 PM, Stefan Reich
> "Mobility", here, is defined as the ability of any program to move to
> another computer at any time while preserving its full inner state
> (code+data+threads). (Outside connections, naturally, may have to be
> recreated after moving.)
You may be interested in Obliq. http://lucacardelli.name/Obliq.html
(start with the slides)
Obliq allows closures to pass over the network, but it preserves
lexical scoping. In Lua terms:
local myio = io
local fn = myio.open("/etc/passwd")
In this case, the value of myio is copied as an upvalue of root.
However, to preserve meaning, myio continues to refer to io on the
sending machine; it's replaced with a proxy if necessary. So the same
result will be printed whether computeServer is part of the same
process, a different local process, or a remote process: it prints the
first line of /etc/passwd on your machine.
computeServer may expose local objects as an argument to root.
You may want to borrow liberally from E ( http://erights.org/ ) as well.