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

Known limitations

Honest gaps in the v1.8.0 public release versus the draft spec. Full list lives on the main branch.

Shipped in v1.8.0: chained else if (#117); optional record commas (#111); parse/lex file:line:col (#109); unary - on float (#113); checking-position intfloat and as float/as int (#112); Copy records / clone-at-bind (#118); harness args from CIR (#114); implicit vec<T> and xs[i] (#119 / #120, examples/vec_ops); prelude exp/sin/cos/tanh/sqrt (#115); extern rust scalars (#116).

Shipped in v1.7.3: crisp.toml path deps (foo = { path = "…" }, rewritten into target/rust/Cargo.toml, #105, examples/path_dep); crisp run / test cwd is the crate root, not target/rust (CRISP_CRATE_ROOT, #106).

Shipped in v1.7.2: binop grouping (lo + hi) / 2 (#99), nested type use emits crate:: (#100, examples/nested_types), string match arms (#101), crisp test unique names / bool-str assert_eq! / pub trait Show (#102).

Shipped in v1.7.1: nested-module crate:: paths (#93), float ** / powf (#94), interpolation E0035 spans (#95), while/if assignment (#96).

Shipped in v1.7.0: first-class function values and implicit-closure sugar — holes, trailing last-arg, field/method sections (examples/closures, #72 / #87–#89).

Shipped in v1.6.1: inferred bounds on generic T from use (#84) — operators → Add/Sub/Mul/Div; unique methods → T: Show / T: Measure; E0084 on bad instantiations.

Shipped in v1.6.0: implicit generics (preferred), parametric shapes, pub schemes in crisp.lock — on top of v1.5 loops / LSP / shapes and v1.4 interop.

KNOWN_LIMITATIONS.md → · SPEC_IMPL_DELTA.md →