Skip to content
This repository has been archived by the owner on Oct 16, 2021. It is now read-only.

Latest commit

 

History

History
53 lines (45 loc) · 2.64 KB

definitions.rst

File metadata and controls

53 lines (45 loc) · 2.64 KB

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 :pyobject as their logical entity. In each twinterpreter, at least one TwinObject exists for a given :pyobject. 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 :pyobject. 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.