Xazz v0.3.0
What's Changed
v0.3.0 — Typed IR compiler-architecture milestone.
This release is about core compiler abstraction rather than feature count: a
static Typed IR now sits between the AST and the Polars/Burn backends,
eliminating the old double-interpretation (the runtime no longer re-parses the
source to interpret the raw AST).
Highlights
- Typed IR (
xazz-core::ir):ColType/Schema/TypedExpr/
DataOp/MLOp/SideOp/Step(order-preserving tags) /PipelineNode. - Double-parse removed: the type checker produces diagnostics and the IR
in a single walk (analyze_program/compile_ir); the runtime consumes that
IR once. The oldexecute_var_decl-style interpreter was deleted (-606 lines). - IR optimizer (
xazz-compiler::opt): constant folding, consecutive
Selectmerge, predicate pushdown — enabled viaxazz-exec --opt, proven
semantics-preserving by Polars execution-equivalence tests. - Direct-buffer tensor bridge: contiguous Float64/Float32 columns are read
straight from Arrow buffers (cont_slice), removing per-column intermediate
copies; the remaining copy boundaries are documented in the memory model. - DP composition accounting:
PrivacyBudgetnow tracks (ε, δ) jointly
(Laplace pure ε-DP, Gaussian consumes δ too);XAZZ_DP_DELTA_BUDGETadded. - Execution timeout hardening in
xazz-runner(XAZZ_EXEC_TIMEOUT_SECS).
Confirmed: subprocess isolation is not an OS sandbox. - God-runtime split:
xazz-execdecomposed intolower/dl/dp/
chart+ a thinruntimeorchestrator (1433 → 720 lines). - Version management unified: single workspace version (0.3.0),
xazz-server
adopted the workspace version/edition; internal path-dep version pins removed. - Prior Unreleased work (guardrails, DL engine, checker, audit log, Visual IDE,
--opt, etc.) is included in this release.
Included Binaries
| Binary | Role |
|---|---|
xazz |
CLI entry point |
xazz-runner |
IPC bridge (process isolation + timeout) |
xazz-exec |
Typed-IR consuming runtime (Polars + Burn) |
xazz-server |
API + bundled Visual IDE server |
Installation
- Download the archive for your platform
- Extract — all binaries and the IDE land in
xazz/ - Add
xazz/to yourPATH - Run
xazz --help
⚠️ All three binaries must remain in the same directory.