Zixir is a three-tier language and runtime (Elixir + Zig + Python) with a working core: parser, Zig codegen, JIT execution, native compilation, engine NIFs, type inference, LSP, package manager, workflow/observability/cache, and optional Python NIF and GPU paths. The foundation is solid; advanced features (Python NIF, GPU) depend on optional toolchains and are documented with their caveats.
Parser — Complete:
- Literals: integers, floats, strings, booleans
- Variables and
letbindings - Binary operations and comparison operators
- Arrays:
[1.0, 2.0, 3.0] - Comments, if/else, function definitions, pattern-matching syntax, pipe
|>, lambdas
Zig Backend — Complete:
- Generates Zig from AST; type mapping (Int→i64, Float→f64, etc.)
- Script-level JIT:
mix zixir run file.zrparses, generates Zig, compiles with Zig, runs the binary and prints the last expression result - File compilation to native binaries:
mix zixir compile file.zr - Engine calls in JIT:
engine.list_sum,engine.list_product,engine.dot_product,engine.string_countwith correct array/slice handling in generated Zig
Engine (Zig NIFs) — Complete:
engine.list_sum([Float]),engine.list_product([Float]),engine.dot_product([Float], [Float]),engine.string_count(String)(and additional operations as listed in implementation status)
CLI:
mix zixir run <file.zr>— JIT run (compile + execute, prints result)mix zixir compile <file.zr>— compile to binarymix zixir check <file.zr>— type checkmix zixir repl— interactive REPL (JIT evaluation)mix zixir.run <file.zixir>— interpreter run viaZixir.eval(alternative entry point)
Python Port — Working:
Zixir.call_python/3via ports; located inlib/zixir/python/
Python FFI (NIF) — Optional:
- Port-based default; NIF path (PythonNIF +
priv/python_nif.zig) when NIF is built;Zixir.Pythonauto-selects. Requires NIF binary to be built for NIF path.
- Type representation, inference infrastructure, type variable generation
- Inference and type checking used by compiler and
mix zixir check
- Role: Optional optimization layer between type checking and codegen; optimizes the numeric/hot path. Does not call Python; Python is the specialist tier for library calls (see docs/MLIR_AND_PYTHON.md).
- With Beaver (Unix): Real MLIR when
{:beaver, "~> 0.4"}is in deps. - Without Beaver: AST-level passes (constant folding, CSE, LICM, vectorization hints, inlining) in
Zixir.Compiler.MLIR. Used when the full pipeline is run viaZixir.Compiler.compile/2. - Note:
mix zixir runuses the short path (parse → Zig); for MLIR optimizations useZixir.Compiler.compile/2withmlir: true.
- Detection (CUDA/ROCm/Metal); codegen, compile, and launcher execution when toolchain (nvcc/hipcc/Metal SDK) is available
- LSP:
mix zixir.lsp— language server for diagnostics and editor support - VS Code: TextMate grammar and LSP; bundled extension in
.vscode/(install from location: select the.vscodefolder, not repo root). Seedocs/VSCODE_INTEGRATION.md.
- Package Manager:
Zixir.Package— resolve, install (Git/path), list, cache;zixir.tomlmanifest - Workflow: Steps, retries, checkpoints, sandboxing
- Observability: Logging, metrics, tracing, alerts
- Cache: ETS + disk caching
- Quality/Drift: Validation, detection, auto-fix
- Experiment: A/B testing framework, statistics
| Feature | Status | Notes |
|---|---|---|
| Parser | Complete | Recursive descent; tokenization, expressions, control flow, comprehensions |
| Zig Backend | Complete | Codegen, functions, optimization passes; JIT and file compilation working |
| Engine NIFs | Complete | 20+ Zig operations (sum, product, dot, etc.) |
| Type System | Complete | Inference, lambda/map/struct types |
| MLIR | Optional | Phase 4: Beaver (Unix) for full MLIR; else AST optimizations (CSE, constant folding, LICM). See docs/MLIR_AND_PYTHON.md. |
| Quality/Drift | Complete | Validation, detection, auto-fix |
| Experiment | Complete | A/B testing framework, statistics |
| Python Port | Working | Zixir.call_python/3 via ports |
| Python FFI | Optional | Port default; NIF when built (PythonNIF + priv/python_nif.zig) |
| GPU | Optional | Detection + codegen + compile + run; requires nvcc/hipcc/Metal SDK |
| Package Manager | Complete | Resolve, install Git/path, list, cache; zixir.toml |
| LSP | Ready | mix zixir.lsp + VS Code integration |
| CLI/REPL | Working | mix zixir run, compile, check, repl |
| Portable CLI | Working | zixir_run.sh / zixir_run.bat from release |
| Workflow | Complete | Steps, retries, checkpoints, sandboxing |
| Observability | Complete | Logging, metrics, tracing, alerts |
| Cache | Complete | ETS + disk caching |
- Pattern matching: Parsed; code generation may be limited for all constructs.
- List comprehensions: Parsed; execution path may be limited.
- Maps/dictionaries: Parsed; map support is minimal in codegen.
- Python NIF: Requires building the NIF binary; port is the default.
- GPU: Requires platform toolchain (nvcc/hipcc/Metal SDK).
You can:
- Write Zixir programs with variables, arithmetic, arrays, and engine calls.
- Run scripts with JIT:
mix zixir run examples/enterprise_test.zr(prints result, e.g.28.75). - Compile to native binaries with
mix zixir compile. - Use the REPL for experimentation.
- Get syntax highlighting and LSP in VS Code (install extension from
.vscodefolder). - Use
Zixir.Packagefor dependencies (resolve, install from Git/path,zixir.toml). - Call Python via ports (and via NIF when built).
- Use GPU codegen/compile/run when the appropriate toolchain is installed.
- Keep docs in sync — PROJECT_ANALYSIS, README, and COMPILER_SUMMARY should agree on what is implemented and what is optional.
- VS Code — Document “Install Extension from Location” using the
.vscodefolder (seedocs/VSCODE_INTEGRATION.md).
- High: Maintain and test core pipeline (parser, Zig backend, JIT run, engine NIFs); keep LSP and docs accurate.
- Medium: Expand test coverage for Zig codegen and JIT; complete pattern-matching/list-comp codegen where needed.
- Low: Optional Python NIF and GPU toolchain support for users who need them.
Assessment: Zixir has a functional core (parser, Zig backend, JIT execution, native compilation, engine NIFs, type system, LSP, package manager, workflow/observability/cache). Optional or toolchain-dependent features (Python NIF, GPU) are documented with their requirements.
Recommendation: Focus on stability of the core pipeline and clarity of documentation; treat Python NIF and GPU as optional extras with clear setup instructions.
Report updated: February 2026
Aligned with: lib/, examples/, docs/, .vscode/, test/