An alternative architecture was previously considered, in which all actors operate under one global virtual machine. RPCs to linked actors would be simulated on the same stack, but each actor would appear to be running on its own virtual machine. This architecture has some useful benefits; for instance, keeping track of the call stack across actors is much simpler. (This issue is not actually fully solved in my current implementation. The call stack is traced within an actor, but calls that the other actor makes are not fully recorded. ) However, in the separate-VM structure, one has to worry less about stack corruption between actors.
Mason Smith 2008-06-11