Skip to main content

Module value

Module value 

Source
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§

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