Repository navigation
v0.1.0
Ignis v0.1.0 Release Notes
Release Date: January 2026
This is the first release of the Ignis compiler (ignisc.rs), a from-scratch rewrite in Rust that compiles Ignis source code to C, then to native executables via GCC.
Highlights
- Full compilation pipeline: Ignis → AST → HIR → LIR → C → executable
- Multi-module system with import/export support
- Static type system with inference and explicit annotations
- Borrow checker for reference safety
Language Features
Types
- Integers:
i8,i16,i32,i64,u8,u16,u32,u64 - Floats:
f32,f64 boolean,char(Unicode code point, 4 bytes),string,void- Arrays with compile-time bounds checking
- References (
&T,&mut T) and pointers (*T,*mut T)
Expressions
- Arithmetic, comparison, logical, and bitwise operators
- Compound assignment (
+=,-=,*=,/=, etc.) - Shift operators (
<<,>>) - Type casts (
expr as Type) - Char literals with escape sequences and Unicode (
'\u{XXXX}')
Control Flow
if/else if/elsewhileandforloopsbreakandcontinuereturn
Declarations
- Functions with typed parameters and return types
let/let mutvariable bindingsconstcompile-time constantsexterndeclarations for FFIexportfor module-level visibility
Modules
import x, y from "path"syntax- Automatic dependency resolution and topological compilation
- Standard library with
std::io,std::string,std::math
Compiler Features
- Semantic analysis: name resolution, type checking, borrow checking
- Bidirectional type inference: literals adapt to expected types
- Const evaluation: compile-time evaluation of constant expressions
- Diagnostics: detailed error messages with source locations
- Debug flags:
--dump-ast,--dump-hir,--dump-lir,--dump-types,--dump-defs - Optimizations:
-Oflag passes optimization to GCC
CLI
ignis build <file.ign> # Compile to executable
ignis build <file.ign> --emit-c # Output C code only
ignis build <file.ign> -O # Enable optimizations
ignis build-std # Build standard libraryKnown Limitations
- Borrow checker does not track mutations through compound expressions (
arr[i],*ptr, field access) - No generics, traits, or enums yet
- No closures or first-class functions
- Runtime bounds checking is limited
Documentation
docs/LANGUAGE_REFERENCE_v0.1.md- Complete language referencedocs/ABI_v0.1.md- C ABI and type mappings
Full Changelog: https://github.com/Ignis-lang/ignis/commits/v0.1.0