List view
Replace ad-hoc string/regex/template surgery in `_normalize.py` and `_vectorize.py` with a parse-once typed expression IR. Subsumes the architectural drivers behind #22 (ExpressionString), #5 (NormalizedRhs naming), #30 (helpers as IR macros), #88 (`$`-placeholders / repeated-axis selectors), and #111 (alias-body CSE). Goal: every alias/rate/equation body is parsed once into a small AST (Sym, Subscript[AxisIndex], Apply, Reduce, Literal); all current passes (helper expansion, template substitution, alias inlining, repeated-axis resolution, vectorization) become tree visitors; CSE and constant folding become single IR passes; serialization for cached `CompiledRhs` becomes trivial.
No due date•2/7 issues closedWheel building, PyPI publishing, clean-room deployment testing, and release infrastructure.
No due date•3/3 issues closedCompile-layer improvements: meta threading through CompiledRhs, helper serialization, and internal plumbing needed before provider integration.
No due date•3/3 issues closedflepimop2 provider package: adapter upgrades, system.option() adoption, operator wiring, and metadata passthrough. Blocked on flepimop2 #131 (SystemABC mixing hook) and #173/#174 (EngineABC hooks).
No due date•8/9 issues closedAdd a `constraints` block to the spec schema that filters the Cartesian product of axis coordinates during template expansion. Eliminates empty compartments without manual state splitting. Refs #31.
No due date•2/5 issues closedReplaces https://github.com/ACCIDDA/op_system/issues/13 Blocked by https://github.com/ACCIDDA/op_system/pull/14
No due date•3/12 issues closed