Description Core principles (one-liners)
Make optimizer purely analytical: never materialize data during pattern matching.
Separate concerns: Analysis (trace + match) → IR rewrite (fuse) → Execution (apply kernels).
Define small, stable contracts for each layer (Plan/Node metadata, BufferManager, Backend).
Make fusion selection deterministic, testable, and fast (no I/O).
Treat heavy tests and benchmarks as gated, cached jobs in CI.
Priority roadmap
Stop side-effects in optimizer
Remove any calls to node.execute() inside optimizer/analysis. Replace with metadata-only inspection APIs.
Create two-stage optimizer
analyze(plan) -> Trace + MatchResults
rewrite(plan, match) -> FusedPlan (new node types)
execute(fused_plan, backend, buffer_mgr)
Introduce immutable, hashable Plan representation
deterministic hashing for plan diffs, caching, and baseline comparisons.
Add a small, fast unit test surface
Opt tests: trace generation, pattern detection, rewrite correctness (use mocked backend).
Add integration smoke tests that run fused kernels on tiny matrices (CI quick job).
Add benchmarks & regression checks
Baselines stored as CI artifacts; regress only if delta > threshold.
Plugin backend API
Simple interface for kernels: (inputs, params, output_path, buffer_mgr), so swapping implementations is trivial.
Observability
Trace-level logging, cost model hooks, and per-plan flame profiles.
Reactions are currently unavailable
You can’t perform that action at this time.
Core principles (one-liners)
Priority roadmap
Stop side-effects in optimizer
Create two-stage optimizer
Introduce immutable, hashable Plan representation
Add a small, fast unit test surface
Add integration smoke tests that run fused kernels on tiny matrices (CI quick job).
Add benchmarks & regression checks
Plugin backend API
Observability