Public release v1.10.0 · Spec v0.2.0-draft · Star on GitHub

Documentation

Language overview, CLI, known limitations, and links into the draft specification on GitHub. Prefer the tutorial if you are new.

Latest version

✓ v1.10.0 (public release)

Requires Rust 1.85+. Install with cargo install crisp-lang --locked. Spec remains v0.2.0-draft — treat “spec-complete” claims cautiously. v1.10.0: xs[lo..hi] copies to vec<T> (#159); extern rust vec<str> / vec<bool> (#158); nested vec<vec<T>> parses; trait impl set E0092, dyn Trait E0091 (#59). v1.9.0: extern rust vec<float> / vec<int> (#153); OS prelude env_* / path_* / fs_write (#151); src/lib.crp emits Cargo [lib] (#152). v1.8.1: as float + expr (#140); unbraced else newline (#145); parenthesized index emit (#142); let mut / mut params for index writes (#141); harness .len() (#144); nested-module tests (#143); module-qualified fn stubs (#146). v1.8.0: else if, optional record commas, parse/lex file:line:col, unary - on float, checking-position int→float, Copy records, harness args from CIR, implicit vec<T> and xs[i], prelude exp/sin/cos/tanh/sqrt, extern rust scalars (#109–#120). v1.7.3: path deps (#105); crisp run cwd is the crate root (#106).

Architecture in one line

.crp → resolve → typeck → ownership → CIR → Rust → rustc → native

See the README for philosophy, sealed crates, and repository layout.