Skip to content

0.4.0

Latest

Choose a tag to compare

@SSL-ACTX SSL-ACTX released this 03 Mar 07:56
· 114 commits to main since this release
66de455

Iris 0.4.0 – “Hybrid‑Runtime” 🎯

This release turns a proof‑of‑concept actor library into a full
hybrid runtime with a built‑in Cranelift JIT. Python users can now
offload math expressions to native code, and the core actor system
remains lightweight and dependable.

🚀 Highlights

  • JIT first‑class

    • Full expression language with arithmetic, power, modulo, comparisons,
      booleans (and, or, not), ternary, chained comparisons and
      unary minus.
    • Loop support: range() generators, step/predicate filtering,
      constant‑unrolled loops, vectorized sum‑over semantics.
    • Heuristic optimizer that folds constants, simplifies algebra,
      handles math calls and casts, and safely rewrites loops.
    • Python decorator (@iris.offload(strategy='jit')) with fallback to
      original Python and a call_jit/offload_call API.
    • Configurable logging (IRIS_JIT_LOG env var + runtime API).
  • Python integration improvements

    • Parser, codegen and heuristics now accept True/False literals.
    • JIT logging can be toggled from Python.
    • Offload decorator extracts return expression automatically.
    • Improved tests covering mixed expressions, generator loops, and
      logging API.
  • Documentation & packaging

    • README reorganized to reflect hybrid runtime story and JIT
      capabilities.
    • Node.js maturity warning added.
  • CI robustness

    • Fixed failing PyO3 tests by removing unreliable import iris
      calls; module is injected directly into sys.modules.
    • Added corresponding Python scoping fix.
  • Miscellaneous

    • Numerous unit and integration tests added or strengthened.
    • Logging now goes through a centralized hook.
    • Code refactorings and cleanups (unused imports/warnings).

🛠 Upgrade notes

  • The public Rust API (Runtime, Pid, message envelopes) is
    unchanged; only new JIT/pybind features have been added.
  • Python helper iris/jit.py gained set_jit_logging/get_jit_logging.

Enjoy the speedups and let us know what you build!

Full Changelog: v0.3.0...0.4.0