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 acall_jit/offload_callAPI. - Configurable logging (
IRIS_JIT_LOGenv var + runtime API).
- Full expression language with arithmetic, power, modulo, comparisons,
-
Python integration improvements
- Parser, codegen and heuristics now accept
True/Falseliterals. - JIT logging can be toggled from Python.
- Offload decorator extracts return expression automatically.
- Improved tests covering mixed expressions, generator loops, and
logging API.
- Parser, codegen and heuristics now accept
-
Documentation & packaging
- README reorganized to reflect hybrid runtime story and JIT
capabilities. - Node.js maturity warning added.
- README reorganized to reflect hybrid runtime story and JIT
-
CI robustness
- Fixed failing PyO3 tests by removing unreliable
import iris
calls; module is injected directly intosys.modules. - Added corresponding Python scoping fix.
- Fixed failing PyO3 tests by removing unreliable
-
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.pygainedset_jit_logging/get_jit_logging.
Enjoy the speedups and let us know what you build!
Full Changelog: v0.3.0...0.4.0