Expand description
16-byte tagged value (PUC TValue equivalent). Chosen over 8-byte NaN-boxing on bench evidence — see benches/value_repr.rs and the P02 plan: Lua 5.5’s native i64 forces NaN-boxed integers into 47-bit smis plus range checks, losing 24% on the arithmetic dispatch path.
Modules§
- tag
- P17-D v2 Direction E (E1) — discriminant byte constants for
Value::tag_byte. These match the#[repr(C, u8)]enum’s declaration order; reordering Value variants requires updating these constants in lock-step.
Enums§
- Value
- P17-D v2 Direction E (E1) —
#[repr(C, u8)]makes the discriminant a 1-byte tag at offset 0, with the variant payload starting at offset 8 (after 7 bytes of alignment padding). The total size stays 16 bytes (same as the prior plain Rust enum representation), preserving P02’s arithmetic-fast-path 24% win over NaN-boxing.
Functions§
- f2i_
exact - The float values that convert exactly to i64 (F2Ieq).
Type Aliases§
- Native
Fn - Native (host) function: receives the VM, the absolute stack slot of the function value (its own NativeClosure — read upvalues through it), and the argument count; writes results starting at that slot and returns how many.