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?
20 Journeys
20/20 Passing
10.0 Avg Score
3 Bugs Found
Mar 22, 2026 Last Journey
4 Simple
4 Moderate
12 Complex
#01 Simple

I am arithmetic

Basic arithmetic with function calls, let bindings, and integer operations

arithmeticfunction callslet bindingsint literals +1
#02 Simple

I am a branch

Branching with if/then/else, comparison operators, and multiple function calls

branchingcomparisonfunction callsmultiple functions
#03 Simple

I am recursive

Recursive functions with tree recursion (fib) and tail recursion (gcd)

recursioncomparisonarithmeticfunction calls +1
#04 Simple

I am a struct

Struct construction, field access, nested struct operations, and function calls with struct parameters

struct constructionfield accessnested structsfunction calls
#05 Moderate

I am a closure

Closures with capture, higher-order functions, and partial application

closureshigher ordercapturefunction calls
#06 Moderate

I am a match

Pattern matching on sum types with payload destructuring and exhaustive coverage

pattern matchingsum typesdestructuringexhaustiveness
#07 Moderate

I am a loop

Loop/break and for-in-range iteration with mutable accumulators

loopsrangesbreak continuelet bindings
#08 Moderate

I am generic

Generic functions, generic structs, monomorphization, and type inference

genericsmonomorphizationgeneric structstype inference
#09 Complex

I am a string

String creation, .length() method calls, ARC lifecycle with SSO guards, boolean logic with constant folding

stringsstring methodsarcbranching +3
#10 Complex

I am a list

List creation, .length() method, for-in iteration, list passing to functions, ARC lifecycle

listslist methodsloopsarc +1
#11 Complex

I am a derived trait

Derived Eq trait on structs and sum types with field and tag-based equality

derived traitstrait methodsstruct constructionsum types +1
#12 Complex

I am an option

Option type construction, pattern matching, ? operator propagation, and function composition

option typepattern matchingerror propagationfunction calls
#13 Complex

I am an iterator

Iterator pipeline with .map() and .fold() adapters, closures, and function calls

iteratorsiterator adapterslistsfunction calls +2
#14 Complex

I am a fat pointer

Fat pointer string representation, SSO vs heap discrimination, borrow elision on read-only parameters, aggregate load optimization

stringsarcfunction callsmultiple functions
#15 Complex

I am nested fat

Nested fat pointer collections: list of strings with element-level ARC, for-loop iteration, and multi-use list passing

listsstringsarcfunction calls +1
#16 Complex

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

stringsarcfunction callsmultiple functions
#17 Complex

I am a captured fat pointer

Closure capturing a string (fat pointer) with method dispatch and ARC management

stringsarcclosurescapture +1
#18 Complex

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

stringsstring methodsloopsranges +6
#19 Complex

I am a lifecycle

RC lifecycle through struct creation, ownership transfer, field projection, nested struct destruction, and cross-function RC management

struct constructionfield accessnested structsloops +7
#20 Complex

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

cowstringsstring methodslists +7

Features Covered

arcarithmeticbranchingbreak continuecaptureclosurescomparisoncowderived traitsdestructuringerror propagationexhaustivenessfield accessfunction callsgeneric structsgenericshigher orderint literalsiterator adaptersiteratorslet bindingslist methodslistsloopsmonomorphizationmultiple functionsnested structsoption typepattern matchingrangesrecursionstring methodsstringsstruct constructionsum typestrait methodstype inference

How it works

1 Source
2 Lexer
3 Parser
4 Type Check
5 ARC
6 Codegen

Each journey follows an Ori program through every compiler phase. Click any journey above to see the full pipeline analysis.