Skip to content

Conversation

g-r-a-n-t
Copy link
Collaborator

@g-r-a-n-t g-r-a-n-t commented Mar 28, 2025

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 the init_ingot function.

Followup items:

  • Readd support for --core flag.
  • Language server support for config dependency list updates.
  • Spans in config diagnostics.
  • Support for git urls.

@g-r-a-n-t g-r-a-n-t marked this pull request as draft March 28, 2025 18:24
@g-r-a-n-t g-r-a-n-t marked this pull request as ready for review April 9, 2025 18:55
@g-r-a-n-t g-r-a-n-t force-pushed the resolution-handler branch 2 times, most recently from a7ce31a to a61d9e9 Compare April 10, 2025 03:36
@g-r-a-n-t g-r-a-n-t force-pushed the resolution-handler branch 5 times, most recently from fd31a02 to 06381f9 Compare April 22, 2025 15:58
@g-r-a-n-t g-r-a-n-t force-pushed the resolution-handler branch 3 times, most recently from ec49518 to 5430d93 Compare April 28, 2025 19:59
@g-r-a-n-t g-r-a-n-t force-pushed the resolution-handler branch 2 times, most recently from 685f878 to 1069810 Compare May 6, 2025 20:59
@g-r-a-n-t g-r-a-n-t force-pushed the resolution-handler branch 3 times, most recently from f28fd37 to d0b347d Compare May 20, 2025 16:52
@g-r-a-n-t g-r-a-n-t force-pushed the resolution-handler branch from caa2daf to f97a007 Compare May 22, 2025 17:19
@g-r-a-n-t g-r-a-n-t force-pushed the resolution-handler branch from f97a007 to bee0e97 Compare June 2, 2025 12:46
@g-r-a-n-t g-r-a-n-t force-pushed the resolution-handler branch from 109a9dd to 2154b82 Compare June 16, 2025 22:17
@g-r-a-n-t g-r-a-n-t force-pushed the resolution-handler branch from 2154b82 to 6b7285d Compare June 24, 2025 04:41
@g-r-a-n-t g-r-a-n-t force-pushed the resolution-handler branch from 6b7285d to 638b370 Compare July 3, 2025 16:42
@g-r-a-n-t g-r-a-n-t force-pushed the resolution-handler branch from 638b370 to 805bc7d Compare July 14, 2025 15:35
@g-r-a-n-t g-r-a-n-t force-pushed the resolution-handler branch from 805bc7d to 561a00e Compare July 22, 2025 01:52
@g-r-a-n-t g-r-a-n-t force-pushed the resolution-handler branch 6 times, most recently from dd37913 to fcd1b03 Compare August 19, 2025 16:08
This was referenced Aug 26, 2025
@g-r-a-n-t g-r-a-n-t force-pushed the resolution-handler branch 4 times, most recently from 6e25b2d to 74e6d42 Compare August 26, 2025 22:35
@sbillig
Copy link
Collaborator

sbillig commented Aug 30, 2025

Readd support for --core flag.

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.

Copy link
Collaborator

@micahscopes micahscopes left a 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

Copy link
Collaborator

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?

Copy link
Collaborator Author

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.

Copy link
Collaborator

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?

Copy link
Collaborator Author

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.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Loving all these consolidations 😎

@g-r-a-n-t g-r-a-n-t merged commit 71363e7 into argotorg:master Sep 2, 2025
5 checks passed
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.

3 participants