Fine-grained dependencies in solver input
The modular solver has its own representation for a package (PInfo). In this commit we modify PInfo to keep track of the different kinds of dependencies. This is a bit intricate because the solver also regards top-level goals as dependencies, but of course those dependencies are not part of any 'component' as such, unlike "real" dependencies. We model this by adding a type parameter to FlaggedDeps and go which indicates whether or not we have component information; crucially, underneath flag choices we _always_ have component information available. Consequently, the modular solver itself will not make use of the ComponentDeps datatype (but only using the Component type, classifying components); we will use ComponentDeps when we translate out of the results from the modular solver into cabal-install's main datatypes. We don't yet _return_ fine-grained dependencies from the solver; this will be the subject of the next commit.
Showing
- cabal-install/Distribution/Client/Dependency/Modular/Builder.hs 30 additions, 21 deletions...install/Distribution/Client/Dependency/Modular/Builder.hs
- cabal-install/Distribution/Client/Dependency/Modular/Dependency.hs 63 additions, 10 deletions...tall/Distribution/Client/Dependency/Modular/Dependency.hs
- cabal-install/Distribution/Client/Dependency/Modular/Index.hs 3 additions, 1 deletion...l-install/Distribution/Client/Dependency/Modular/Index.hs
- cabal-install/Distribution/Client/Dependency/Modular/IndexConversion.hs 33 additions, 24 deletions...Distribution/Client/Dependency/Modular/IndexConversion.hs
- cabal-install/Distribution/Client/Dependency/Modular/Linking.hs 9 additions, 8 deletions...install/Distribution/Client/Dependency/Modular/Linking.hs
- cabal-install/Distribution/Client/Dependency/Modular/Preference.hs 4 additions, 4 deletions...tall/Distribution/Client/Dependency/Modular/Preference.hs
- cabal-install/Distribution/Client/Dependency/Modular/Tree.hs 8 additions, 8 deletionscabal-install/Distribution/Client/Dependency/Modular/Tree.hs
- cabal-install/Distribution/Client/Dependency/Modular/Validate.hs 8 additions, 5 deletions...nstall/Distribution/Client/Dependency/Modular/Validate.hs
Loading
Please register or sign in to comment