Releases: sheaf-lang/sheaf
Releases · sheaf-lang/sheaf
v2.0.0
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
Full Changelog: https://github.com/sheaf-lang/sheaf/commits/v2.0.0-rc2
v2.0.0-rc1
Full Changelog: https://github.com/sheaf-lang/sheaf/commits/v2.0.0-rc1
v1.2.0
- 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
--traceand--guardmodes for standalone tracing and debugging - All examples are now standalone and do not require Python
v1.1.0
- Syntax cleanup: quoted arrays (
'[]) are now the canonical way to distinguish lists from tensors. Legacylistform is deprecated. - More syntax purity: also deprecate
lambda(alias forfn) anddict - Protection for special forms (
fn,let,get...) - Many bugfixes in the compiler