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

New backend (elpi 2.0) #269

Merged
merged 52 commits into from
Nov 22, 2024
Merged

New backend (elpi 2.0) #269

merged 52 commits into from
Nov 22, 2024

Conversation

gares
Copy link
Contributor

@gares gares commented Oct 7, 2024

The new backend reorganizes compilation passes so to allocate integers for global constants late, at unit linking time, and avoid relocations (of previously allocated constants). This speeds up compilation substantially. Also the index is built incrementally as units are linked in, reducing startup time (the optimize step is now almost a no-op). A new type checker runs on all units as they are compiled, before spilling that can now use the types computed by the checker (although the current code is still as brittle as before w.r.t. polarity). Types are checked as well. The AST contains locations, and the type checker reports errors with precision. Quotations are expanded early and must produce a new ScopedTerm data type that is still based on names, but with scopes, so that names of different languages don't conflict. Macros are expanded early and are now hygienic (some renaming may be needed and may show up in type errors later on). The HTML printer and elpi-checker.elpi are gone, as well as the API to quote elpi's syntax. An experimental determinacy checker is also part of the backend (off for now).

@gares gares changed the title delay compiling to DBL as long as possible New backend (elpi 2.0) Nov 14, 2024
@gares gares marked this pull request as ready for review November 21, 2024 15:12
@gares gares merged commit 0058048 into master Nov 22, 2024
8 of 9 checks passed
@gares gares deleted the scoped-term branch November 22, 2024 12:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants