Expand description
Tagged Stack Implementation
Selects between two implementations based on the tagged-ptr feature flag:
- Default: 40-byte StackValue (5 x u64 struct)
tagged-ptr: 8-byte StackValue (tagged u64 pointer)
Structs§
- Tagged
Stack - Stack state for the tagged value stack
Constants§
- DEFAULT_
STACK_ CAPACITY - Default stack capacity (number of stack values)
- STACK_
VALUE_ SIZE - Size of StackValue in bytes (8 bytes = 1 x u64)
- TAG_
FALSE - Tagged value for Bool false
- TAG_
TRUE - Tagged value for Bool true
Functions§
- is_
tagged_ heap - Check if a tagged value is a heap pointer (not Int, not Bool)
- is_
tagged_ int - Check if a tagged value is an inline integer
- seq_
stack_ ⚠base - Safety
- seq_
stack_ ⚠capacity - Safety
- seq_
stack_ ⚠clone - Safety
- seq_
stack_ ⚠free - Safety
- seq_
stack_ ⚠grow - Safety
- seq_
stack_ new - seq_
stack_ new_ default - seq_
stack_ ⚠set_ sp - Safety
- seq_
stack_ ⚠sp - Safety
- tag_int
- Encode an i64 as a tagged integer.
- untag_
int - Decode a tagged integer back to i64 (arithmetic shift)
Type Aliases§
- Stack
Value - An 8-byte tagged stack value.