Change way types are stored and represented + allow for more than u16::MAX types #120
Labels
architecture
type checking and compiler related general structuring
blocking
These issues are blocking the checker being used in projects
bug
Something isn't working
checking
Issues around checking
compiler-performance
Making parsing / type checking / transformations faster
v2
Big updates
Currently all types are currently held under a single
Vec<Type>
, andTypeId
is pointer into this vector. TypeId is a wrapped for a u16. To support larger files/codebases this needs to increaseCurrently the sequential ids require the whole program to be checked (from a starting point). Adding more incremental parts will create problems if an intermediate file is changed.
TypeId
has to be split between libraries/files somehow.Also from Add binary type caching back and think about TypeId #103: Adding versioning or something to the binary format that can be checked on deserialization. This is because new versions of the compiler might have a different representation in byte form (new fields, removed enum members, etc) that isn't compatible to be parsed with binary files generated by older compilers
The text was updated successfully, but these errors were encountered: