Edva is statically typed with zero runtime type information (RTTI). All types are checked and unified at compile time and lowered directly to machine registers or arena-backed layouts.
Int is strictly 64-bit signed (i64) on all target architectures (including 32-bit wasm32). Fixed-width integers provide exact C-ABI and hardware register widths.
Type
Bits
Signed
Minimum Value
Maximum Value
Literal Suffix
i8
8
Yes
\(-128\)
\(127\)
127i8
u8
8
No
\(0\)
\(255\)
255u8
i16
16
Yes
\(-32,768\)
\(32,767\)
1000i16
u16
16
No
\(0\)
\(65,535\)
8080u16
i32
32
Yes
\(-2,147,483,648\)
\(2,147,483,647\)
42i32
u32
32
No
\(0\)
\(4,294,967,295\)
0x80000000u32
Int / i64
64
Yes
\(-9,223,372,036,854,775,808\)
\(9,223,372,036,854,775,807\)
42 or 42i64
u64
64
No
\(0\)
\(18,446,744,073,709,551,615\)
42u64
8.2.1 Integer operations and conversions
Operation
Syntax
Semantics
Arithmetic
+-*/%
Same-width integer arithmetic (/ truncates toward zero; mixing Int with Float promotes to Float)
Bitwise
.&..|..^..!.
Bitwise AND, OR, XOR, and unary one’s-complement NOT (.!.x)
Shifts
.<..>.
Left shift and right shift
Comparisons
==!=<>!<!>
Returns <> (!< is \(\ge\), !> is \(\le\))
Explicit width cast
i16(x), u8(x), Int(x)
Explicit truncation, zero-extension, or sign-extension (no implicit integer widening)