noria: error: 2:10: typecheck: unknown local variable 'missing'
Compiler Pipeline
Sample compilation of examples/basic/factorial.noria: click a
stage for per-pass output from a local just build run.
Native binary
Current MVP
The compiler supports i32 and bool, local variables,
assignment, arithmetic, comparisons, if / else,
while loops, functions, recursion, lexical scoping, static type
checking, LLVM IR generation, optional LLVM optimization, and native macOS
executable output.
examples/basic/showcase_bool_scope_loop.noria
fn adjust(value: i32) -> i32 {
let result: i32 = value;
let small: bool = result < 10;
if small {
let bonus: i32 = 5;
result = result + bonus;
} else {
let penalty: i32 = 2;
result = result - penalty;
}
return result;
}
fn main() -> i32 {
let i: i32 = 0;
let total: i32 = 0;
while i < 5 {
total = total + adjust(i * 3);
i = i + 1;
}
return total;
}
Why I Built This
A compiler is where software and hardware meet. Building Noria meant tracing that path myself and
not treating any stage as a black box.
End-to-end ownership.
I learn best when I can follow a whole system from input to output. Noria
sharpened that habit: every bug belongs to a stage, and every stage has tests.
Self-directed depth.
No course deadline or internship brief, I picked a hard, long-horizon problem that I can continue to explore in my own time.
Better instincts in production work.
Debugging across layers: is this a type error, a codegen bug, or a toolchain
issue? These skills transfer directly into shipping production code at scale.
Noria V2 (In Development)
Extending the i32/bool MVP to floats, I/O, strings, arrays,
and structs: sequenced so each phase ends compiling and tested.