Spectre is a low-level systems language with contract-based correctness, immutability by default, and hybrid compile-time/runtime precondition enforcement.
Key Takeaways
Contracts evaluate at compile-time where possible; unresolvable checks fall back to runtime automatically, controlled by the guarded construct in release builds.
Avoids SMT solver complexity (no Z3 dependency) while still enforcing type-level invariants and function-level pre/postconditions.
Memory is manually managed via standard allocators (Arena, Stack) or custom allocators, preserving low-level control.
Compiles to QBE IR with experimental LLVM and C99 backends; includes a --translate-c flag to migrate existing C code to Spectre.
The trust keyword explicitly marks impure or unsafe operations; safe standard library wrappers use invariants and preconds to avoid requiring it.