Nitpick Integer Type Family

Nitpick provides highly explicit, strictly sized integer types to ensure absolute determinism across all platforms. Standard C types like int or long do not exist.

1. Signed Integers

Standard two’s-complement signed integers. * int1 (used primarily in bitfields) * int2, int4, int8, int16, int32, int64 * Large Integers: int128, int256, int512, int1024, int2048, int4096 * Note: The massive sizes (128–4096) are implemented via native LLVM arbitrary precision integers (Large BigInt Math / LBIM). They inherit all of Nitpick’s strict division-by-zero and sticky error propagation safety features and are designed for high-security cryptography (e.g., lattice-based cryptography).

Literals: Suffix with the exact type name (e.g., 42i32, -100i4096).

Usage Example:

int32:user_count = 42i32;
int4096:crypto_key = -1i4096;

2. Unsigned Integers

Literals: Suffix with u followed by the bit width (e.g., 42u32, 0xFFu64).

Usage Example:

uint64:memory_address = 0xDEADBEEFu64;

3. Strict Determinism

Unlike C/C++, integer overflow in Nitpick is aggressively tracked. You can use the --verify-overflow compiler flag to mathematically prove (via the Z3 SMT solver) that integer arithmetic cannot overflow or underflow across the defined data ranges.