Tools

The iris CLI

The IRIS command-line tool is your primary interface. One binary handles running, checking, evolving, and deploying programs.

Command Description
iris run Execute an IRIS program
iris solve Evolve a solution from a specification
iris daemon Run the self-improving daemon
iris check Type-check correctness obligations
iris repl Interactive REPL
iris deploy Generate standalone Rust source

Run a Program

iris run programs/algorithms/factorial.iris 10
# Output: 3628800

Type-Check

Verify correctness obligations without executing:

iris check programs/interpreter/full_interpreter.iris
# [OK] full_interpret: 124/124 obligations satisfied (score: 1.00)

Evolve a Solution

Provide a specification and let IRIS breed a correct implementation:

iris solve spec.iris

Interactive REPL

iris repl

Self-Improving Daemon

Run continuous self-improvement with stagnation detection:

iris daemon 100

Deploy

Generate standalone Rust source:

iris deploy programs/algorithms/factorial.iris -o factorial.rs
# Compile the output with: rustc --edition 2021 -O factorial.rs -o factorial

Build from Source

IRIS is a Rust workspace. Building is straightforward:

# Clone
git clone https://github.com/boj/iris.git
cd iris

# Build (release mode recommended)
cargo build --release

# Run the test suite
cargo test -p iris-types -p iris-bootstrap -p iris-exec --release
cargo test --test test_effects --test test_security --test test_bootstrap_effects --test test_capability_wiring --release

System Requirements

  • Rust 1.75+
  • C compiler (for CLCU library)
  • x86-64 (for AVX-512 CLCU features)

Crate Structure

The workspace is organized into 5 focused crates:

Crate Description
iris-types SemanticGraph, types, values, wire format
iris-bootstrap Bootstrap evaluator + syntax pipeline + LCF proof kernel
iris-exec Execution shim: capabilities, effect runtime, service
iris-evolve Evolution engine, self-improvement daemon
iris-clcu-sys FFI bindings to C CLCU interpreter

Benchmarks

IRIS implements all 10 programs from the Computer Language Benchmarks Game:

Benchmark Description IRIS Approach
n-body Planetary orbit simulation Float64 math, fold, tuples, cross-fragment calls
spectral-norm Spectral norm of infinite matrix Float64, fold, list_nth
fannkuch-redux Pancake flipping puzzle Integer lists, fold, list_take/drop/append
binary-trees Tree allocation + checksum pow, map, fold, list_range
fasta DNA sequence generation String ops, fold, LCG random
reverse-complement DNA reverse complement String ops, fold, str_eq, str_slice
k-nucleotide DNA subsequence frequencies str_slice, fold, map_insert/get
pidigits Compute pi digits Integer arithmetic, Machin’s formula
regex-redux DNA pattern matching str_contains, str_replace (no regex engine)
thread-ring Token passing ring fold, modular arithmetic

Run the benchmarks

# All 10 benchmarks
cargo test --release --test test_benchmarks_game

# Individual benchmark
iris run benchmark/n-body/n-body.iris