Definitions and Terms
- Twins
- Twins are a group of entities created from the same code.
Each twin appears and acts indistinguishable from its siblings.
Together, they represent a single logical entity.
- Twinterpreters
- A group of interpreters acting as one to run a single program.
Each twinterpreter runs only a portion of the program.
However, the twinterpreters interact to create a single runtime environment.
- Twin Object
- Twins representing an entire
object
as their logical entity.
In each twinterpreter, at least one TwinObject exists for a given object
.
Each TwinObject exposes the same attributes, methods and features as its siblings.
However, there is only one Native Twin representing the actual object.
All other twins are :term:`Proxy Twin`s.
- Native Twin
- The twin holding the actual data and methods of a Twin Object group.
It is native to a twinterpreter, which stores its data and executes code.
For the most part, the Native Twin acts like a regular
object
.
However, it is known to its Proxy Twin`s and lives as long as any :term:`Proxy Twin is alive.
- Proxy Twin
- A twin taking the place of a Native Twin in a non-native twinterpreter.
When interacting with a Proxy Twin, those actions are implicitly relayed to the Native Twin.
Client code need not care about the nature of a Proxy Twin - it is a full-fledged paceholder of its twin.
- twinfunction
- A lightweight relative of Twin Object for callables.
Calling a twinfunction follows the same semantics as any operation on a Twin Object.
- kernel
- The underlying connection between two twinterpreter.
Each kernel handles the communication at process level, and provides delegation of primitive commands.