Skip to content

Conversation

syldium
Copy link
Member

@syldium syldium commented Aug 25, 2024

With the experience of a first version, the time has come to build a more resilient code analyzer that would welcome new features along the way.

Most notably, the analyzer now uses the parser instead of custom wrappers, and creates an output that is more pleasant for the compiler. IO types may still be used outside a regular file system. The compiler is still the sole component in charge of memory layouts.

Not all tests pass, especially those that heavily relies on custom behavior, such as implicit type conversions, std command aliases and structures. Various parts may be re-arranged if something better fit the purpose, especially for import directive handlers, methods and intrinsics.

The database of the analyzer is global to all reefs and shares globally some values such as types and schemas. It rethinks everything around different vectors spilled in order to avoid fighting the borrow checker by partitioning mutable accesses. TypeRef is removed thanks to the global vector indexed by TypeIds.

@syldium syldium added the analyzer The scope is related to the analyzer label Aug 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
analyzer The scope is related to the analyzer
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants