-
Notifications
You must be signed in to change notification settings - Fork 207
Resolution handler #1068
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
Resolution handler #1068
Conversation
a7ce31a
to
a61d9e9
Compare
fd31a02
to
06381f9
Compare
ec49518
to
5430d93
Compare
685f878
to
1069810
Compare
f28fd37
to
d0b347d
Compare
caa2daf
to
f97a007
Compare
f97a007
to
bee0e97
Compare
109a9dd
to
2154b82
Compare
2154b82
to
6b7285d
Compare
6b7285d
to
638b370
Compare
638b370
to
805bc7d
Compare
805bc7d
to
561a00e
Compare
dd37913
to
fcd1b03
Compare
6e25b2d
to
74e6d42
Compare
250ff12
to
7e78a71
Compare
I think we should drop support for specifying a custom core lib, and only support a custom std lib (when we figure out what the std lib should be). Core should be limited to things that wouldn't be interesting to replace. The compiler depends on core containing a certain set of traits and impls. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall looks good to me! Only changes I'd suggest are organizational:
- keeping the tree structure out of
common
crate since it's part of a pretty specific feature - using less generic names for the dependency graph stuff in common
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's your thinking for keeping this in common
vs in fe
or in the resolver?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is used in both the driver
and fe
crates to format trees. fe
is off the table due to driver
needing it and seeing as this module just deals with the printing of dependency trees I don't think it belongs in the resolver
crate.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The naming in here seems pretty generic, any reason not to have more specific naming, even just at the module level? So that we could have something like dependencies::Graph
or dependency_info::Graph
? Or were you thinking this could potentially be useful for creating lots of different kinds of graphs, not just for dependencies?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this makes sense. the dependency tree formatting stuff could also be moved into that module, which would maybe make things a bit cleaner.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Loving all these consolidations 😎
This adds support for ingot dependencies on the file system. It includes significant changes to the resolver that make it more flexible. The new resolver is used in the driver crate to transitively initialize ingots and their dependencies via the
init_ingot
function. This driver function is used by both the language server and check subcommand to setup the input database. The resolver is also used directly in the tree subcommand to generate a tree representation of dependencies, without the overhead that would come from using theinit_ingot
function.Followup items:
--core
flag.