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

Introduce a real testing suite #13

Closed
thomasvergne opened this issue May 2, 2024 · 0 comments
Closed

Introduce a real testing suite #13

thomasvergne opened this issue May 2, 2024 · 0 comments
Assignees
Labels
backend Related to the compiler and its optimizations documentation Improvements or additions to documentation enhancement New feature or request parser Related to parsing step and all syntax-directed steps typechecker Related to type checking step and extension resolution
Milestone

Comments

@thomasvergne
Copy link
Member

There is a real need to implement a fully-working testing suite for Plume. This may improve the following points:

  • Compiler development: Bugs would be easily fixable or at least easily findable.
  • General stability: Early compiler bugs would be caught by the testing suite and would avoid binary building issues with the GitHub action.

In other words, tests would improve the development quality.

Implementation

Unit testing could be an option, but it is not viable as this would require huge pieces of hand-made AST. So we're rather thinking of a hybrid system:

  • Parser implementation would be verified by unit testing, as this is just parsing validation on raw code
  • Other modules would depend on this parser verification and should use the parser to generate ASTs from raw code instead of manually managing and writing ASTs

Haskell libraries

  • HSpec - Library used to verify parser implementation (combined with Megaparsec extension)
@thomasvergne thomasvergne added documentation Improvements or additions to documentation enhancement New feature or request labels May 2, 2024
@thomasvergne thomasvergne added this to the Plume 1.0 milestone May 2, 2024
@thomasvergne thomasvergne self-assigned this May 2, 2024
@thomasvergne thomasvergne pinned this issue May 16, 2024
@thomasvergne thomasvergne unpinned this issue May 18, 2024
@thomasvergne thomasvergne pinned this issue May 18, 2024
@thomasvergne thomasvergne added 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 Jun 18, 2024
@linear linear bot closed this as not planned Won't fix, can't repro, duplicate, stale Dec 19, 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 documentation Improvements or additions to documentation enhancement New feature or request parser Related to parsing step and all syntax-directed steps typechecker Related to type checking step and extension resolution
Projects
None yet
Development

No branches or pull requests

1 participant