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 givenobject
. 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.