Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite the entire compiler codebase #30

Open
12 tasks
thomasvergne opened this issue Jul 2, 2024 · 0 comments
Open
12 tasks

Rewrite the entire compiler codebase #30

thomasvergne opened this issue Jul 2, 2024 · 0 comments
Assignees
Labels
backend Related to the compiler and its optimizations enhancement New feature or request parser Related to parsing step and all syntax-directed steps question Further information is requested typechecker Related to type checking step and extension resolution
Milestone

Comments

@thomasvergne
Copy link
Member

thomasvergne commented Jul 2, 2024

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
  • Compiling down LLIR to C language

Semantics:

  • HLIR: High Level Intermediate Representation
  • MLIR: Medium Level Intermediate Representation
  • LLIR: Low Level Intermediate Representation
@thomasvergne thomasvergne added enhancement New feature or request question Further information is requested backend Related to the compiler and its optimizations parser Related to parsing step and all syntax-directed steps typechecker Related to type checking step and extension resolution labels Jul 2, 2024
@thomasvergne thomasvergne added this to the Plume 1.0 milestone Jul 2, 2024
@thomasvergne thomasvergne self-assigned this Jul 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend Related to the compiler and its optimizations enhancement New feature or request parser Related to parsing step and all syntax-directed steps question Further information is requested typechecker Related to type checking step and extension resolution
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant