Restructuring our compiler architecture: first slice of the semantic-database transition #226
dannymeijer
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
We are approaching the point where incremental compiler cleanups are no longer enough.
Over the last several releases, the compiler has accumulated semantic facts in too many partially-overlapping places:
That has a recurring cost:
At this point, continuing to evolve the current architecture as-is looks less convincing than it used to.
Proposed direction
The current direction we are considering for the first
0.5architecture slice is:CompilationSessionIn other words, the goal is not “add a new wrapper object.” The goal is to begin a real semantic-database transition.
What this is not
This is not a proposal for:
salsa0.5The likely first step is more conservative than that: start with a custom semantic database around
CompilationSession, prove the ownership model, and then decide later whether a stronger query framework is warranted.What
0.5should proveA good first slice should prove a few things in real code:
If that does not happen, then the transition is probably too cosmetic.
Open questions
These are the main questions where outside eyes would be useful:
Candidates include module/import facts, symbol facts, or typed semantic facts.
CompilationSessionslice feel real instead of decorative?There is already a tracking issue for the eventual
0.5work:This discussion is meant to shape that work before it becomes a concrete implementation push.
Beta Was this translation helpful? Give feedback.
All reactions