MiniZinc 3.0 Roadmap
- Parsing to CST/AST
- Lowering to HIR
-
Typechecking
- Including inst of partiality tuple
- Topological sorting
- Lowering to THIR
- Type specialisation
- Rewriting domains into constraints (other than basic var domains)
- Erasing enums
- Erase records
- Erase option types
- Optimize par where clauses in generators
- Rewrite var where clauses
- Rewrite output items into output only string variables
-
Detecting total array access
-
Detect when array access uses variable bounded by
index_setcall - Detect common expression used for array access variable bound and array index set
-
Detect when array access uses variable bounded by
- Rewriting capturing lambda functions
- Run the existing interpreter with the THIR
-
Lowering to MIR (totalisation)
- Basic expressions
- Case expressions
- Lambda functions
- Short circuiting lets/comprehensions
- Half-reification specialisation (look at usages of variables to choose positive/negative context)
- Mode analysis (analysing the functions and annotating the arguments as monotone/antitone)
- Pretty printing of MIR
- Run MIR with old interpreter
-
Interpretation
- Data structures
- Solver connection
- Solution processing