The current compiler lacks some stability because of its messiness. The new compiler should be entirely commented and documented in order to improve contributions and updates. Doing such a step implies rewriting everything from scratch and then bringing current features step-by-step.
[ ] Parsing basic expressions and declarations
[ ] Parsing full Plume AST
[ ] Clean module resolution
[ ] Namespace resolution
[ ] Type checker
[ ] Pattern matching and conditional expressions' exhaustiveness checking
[ ] Closure conversion
[ ] Transition to monomorphic MLIR
[ ] ANF conversion to get rid of let-in expressions and multi-level-depth expressions
[ ] Lowering to LLIR
[ ] Translating CFG statements into their well-formed representation
The current compiler lacks some stability because of its messiness. The new compiler should be entirely commented and documented in order to improve contributions and updates. Doing such a step implies rewriting everything from scratch and then bringing current features step-by-step.
Semantics: