Brisk icon indicating copy to clipboard operation
Brisk copied to clipboard

Rewrite TypeChecker

Open spotandjake opened this issue 1 year ago • 0 comments

The current type checker while it works somewhat, it was made on the basis of what I needed at the time with little research into actual type checkers.

We want to rewrite it completly from scratch to support Type Intersection, Polymorphism and Proper Type Compatibility Checks.

What we need to determine:

  • Does Brisk use structural equality or Nominal typing or A Mix of both this is very important currently brisk Mainly uses Nominal typechecking with a hint of Structural typing I really like this approach but I feel like we need to write out and prove the rules before they can be trusted.
  • Helper functions, A lot of the work a typechecker has todo is the same and just runs of different nodes we need to determine what helpers we need and how they work.
  • Wasm Alias Types, Currently we have a massive file that defines the type Defintions for all the wasm Aliases we use this works but sucks for maintainability, correctness and it is a lot of extra code in the compiler some things to consider are generating this from the spec or our wasmBuilder, or figuring out a way to define this in the language itself.

spotandjake avatar Jan 04 '23 07:01 spotandjake