Skip to content

Releases: sheaf-lang/sheaf

v2.0.0

02 Apr 08:14

Choose a tag to compare

Complete rewrite in Rust, with no Python in the execution path. The language semantics remain unchanged: all V1 code runs in V2.

  • New architecture: Sheaf source compiles directly to StableHLO MLIR, IREE runtime statically linked and called through FFI.
  • Transparent JIT compilation: pure functions compile automatically on first call, with content-hash caching in __sheaf__
  • Automatic differentiation via value-and-grad
  • DeviceBuffer: compiled functions pass tensors between IREE calls without host round-trips
  • Multiple dtype support: f32 (default), bf16, i32 via cast or literal annotation

Full Changelog: v1.2.0...v2.0.0

v2.0.0-rc2

21 Mar 11:14

Choose a tag to compare

v2.0.0-rc1

18 Mar 12:33

Choose a tag to compare

v1.2.0

02 Apr 08:11

Choose a tag to compare

  • Sheaf programs are now mostly independent from Python, most missing primitives for imperative control have been added.
  • I/O module: (io "load" ...) / (io "save" ...) with safetensors and JSON. Entropy source (io "entropy")
  • Support f-strings: (print "loss={:.4f}" loss)
  • Support string escape sequences: \n, \t, \", \\
  • New primitives: filter, find, index-of, argmax, argmin, arange, eye, index-update, int, float, sort, chars, rms-norm, do, while
  • Error messages: suggestions for common mistakes (def -> defn, lambda -> fn, import -> use), paren balancer with culprit detection
  • REPL has --trace and --guard modes for standalone tracing and debugging
  • All examples are now standalone and do not require Python

v1.1.0

02 Apr 08:11

Choose a tag to compare

  • Syntax cleanup: quoted arrays ('[]) are now the canonical way to distinguish lists from tensors. Legacy list form is deprecated.
  • More syntax purity: also deprecate lambda (alias for fn) and dict
  • Protection for special forms (fn, let, get...)
  • Many bugfixes in the compiler

v1.0.0

02 Apr 08:10

Choose a tag to compare

First stable release (jan 13th 2026)