Code Journeys
Watch real Ori programs travel through the compiler pipeline — from source code to binary. Each journey traces lexing, parsing, type checking, ARC analysis, and codegen, exposing exactly what the compiler does at every phase.
What is a Code Journey?I am arithmetic
Basic arithmetic with function calls, let bindings, and integer operations
I am a branch
Branching with if/then/else, comparison operators, and multiple function calls
I am recursive
Recursive functions with tree recursion (fib) and tail recursion (gcd)
I am a struct
Struct construction, field access, nested struct operations, and function calls with struct parameters
I am a closure
Closures with capture, higher-order functions, and partial application
I am a match
Pattern matching on sum types with payload destructuring and exhaustive coverage
I am a loop
Loop/break and for-in-range iteration with mutable accumulators
I am generic
Generic functions, generic structs, monomorphization, and type inference
I am a string
String creation, .length() method calls, ARC lifecycle with SSO guards, boolean logic with constant folding
I am a list
List creation, .length() method, for-in iteration, list passing to functions, ARC lifecycle
I am a derived trait
Derived Eq trait on structs and sum types with field and tag-based equality
I am an option
Option type construction, pattern matching, ? operator propagation, and function composition
I am an iterator
Iterator pipeline with .map() and .fold() adapters, closures, and function calls
I am a fat pointer
Fat pointer string representation, SSO vs heap discrimination, borrow elision on read-only parameters, aggregate load optimization
I am nested fat
Nested fat pointer collections: list of strings with element-level ARC, for-loop iteration, and multi-use list passing
I am fat and moving
Fat pointer ownership transfer across function boundaries, sret returns, borrow elision for read-only parameters, ori_str_rc_dec runtime cleanup, multiple string temporaries lifecycle
I am a captured fat pointer
Closure capturing a string (fat pointer) with method dispatch and ARC management
I am a string builder
String builder patterns using loop-based concatenation, SSO-to-heap promotion, list iteration with string elements, conditional concatenation with separator logic
I am a lifecycle
RC lifecycle through struct creation, ownership transfer, field projection, nested struct destruction, and cross-function RC management
I am copy-on-write
COW fast path (unique append), slow path (shared fork), list push loop with static uniqueness, and seamless slice creation with slice-aware RC cleanup
Features Covered
How it works
Each journey follows an Ori program through every compiler phase. Click any journey above to see the full pipeline analysis.