Package-level declarations
Types
A_Continuation is an interface that specifies the operations specific to continuations in Avail. It's a sub-interface of A_BasicObject, the interface that defines the behavior that all AvailObjects are required to support.
A_Function is an interface that specifies the operations specific to Avail functions. It's a sub-interface of A_BasicObject, the interface that defines the behavior that all AvailObjects are required to support.
A_RawFunction is an interface that specifies the operations specific to function implementations in Avail.
A_RegisterDump is an interface for register dumps created for reification within an L2Chunk, generated by the L2Generator.
A compiled code object is created whenever a block is compiled. It contains instructions and literals that encode how to perform the block. In particular, its main feature is a tuple of nybbles that encode L1Operations and their operands.
A continuation acts as an immutable execution stack. A running fiber conceptually operates by repeatedly replacing its continuation with a new one (i.e., one derived from the previous state by nybblecode execution rules), performing necessary side-effects as it does so.
A ContinuationRegisterDumpDescriptor instance holds a collection of AvailObject and Long slots for use by an L2Chunk. It's typically stored in the A_Continuation.registerDump slot of an A_Continuation. The interpretation of its fields depends on the L2Chunk that's both creating and consuming it.
A function associates compiled code with a referencing environment that binds the code's free variables to variables defined in an outer lexical scope. In this way, a function constitutes a proper closure.
This is a special case of a CompiledCodeDescriptor that specifies a Primitive to be attempted, and only if it fails (if that's possible for the specific primitive) should it fall back on running the L1 instructions.