I am not familiar with the term "remote evaluation".
Do you mean, one lisp causing the evaluation of an expression in
another Lisp? We have implemented a fasl stream based communication
facility that enables several lisps to communicate over sockets. The
mechanism makes remote evaluate simple.
In our Lisp system each Unix Lisp process can have multiple
lightweight processes. As part of a research project (ESPRIT
Chameleon) we have implemented a facility known as Dynamic Software
Migration, to move a running lightweight PROCESS from one Lisp image
to another. This involves turning the state of the process (the stack
etc) into a Lisp datastructure (reification), moving the data
structure to the target Lisp system, and turning the data back into a
running process (reflection). This works for both compiled and
interpreted code.
Some example applications we have built using this facility are:
- An agenda program that migrates round a network interacting with
users arranging meetings.
- An air traffic control simulation where each plane is represented as
a lightweight process and each air traffic control area as a separate
lisp system. As a plane moves from one control area to another it
changes machines.
I hope this has something to do with your meaning of remote execution.
--
chris richardson
----------------
·····@harlqn.co.uk, ..!uunet!mcvax!harlqn.co.uk!chris
Harlequin Ltd, Barrington Hall, Barrington, Cambridge, CB2 5RG, England.
Phone: 0223 872522 (National), +44-223-872522 (International).