Skip to content

Change way types are stored and represented + allow for more than u16::MAX types #120

@kaleidawave

Description

@kaleidawave

Currently all types are currently held under a single Vec<Type>, and TypeId is pointer into this vector. TypeId is a wrapped for a u16. To support larger files/codebases this needs to increase

  • Currently 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

Metadata

Metadata

Assignees

Labels

architecturetype checking and compiler related general structuringblockingThese issues are blocking the checker being used in projectsbugSomething isn't workingcheckingIssues around checkingcompiler-performanceMaking parsing / type checking / transformations fasterv2Big updates

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions