Remove the solver's scope and encapsulation mechanism
It turns out not to be the right solution for general private dependencies and is just complicated. However we keep qualified goals, just much simpler. Now dependencies simply inherit the qualification of their parent goal. This gets us closer to the intended behaviour for the --independent-goals feature, and for the simpler case of private dependencies for setup scripts. When not using --independent-goals, the solver behaves exactly as before (tested by comparing solver logs for a hard hackage goal). When using --independent-goals, now every dep of each independent goal is qualified, so the dependencies are solved completely independently (which is actually too much still).
Showing
- cabal-install/Distribution/Client/Dependency/Modular/Builder.hs 17 additions, 30 deletions...install/Distribution/Client/Dependency/Modular/Builder.hs
- cabal-install/Distribution/Client/Dependency/Modular/Index.hs 2 additions, 5 deletions...l-install/Distribution/Client/Dependency/Modular/Index.hs
- cabal-install/Distribution/Client/Dependency/Modular/IndexConversion.hs 4 additions, 5 deletions...Distribution/Client/Dependency/Modular/IndexConversion.hs
- cabal-install/Distribution/Client/Dependency/Modular/Package.hs 3 additions, 13 deletions...install/Distribution/Client/Dependency/Modular/Package.hs
- cabal-install/Distribution/Client/Dependency/Modular/Preference.hs 8 additions, 8 deletions...tall/Distribution/Client/Dependency/Modular/Preference.hs
- cabal-install/Distribution/Client/Dependency/Modular/Validate.hs 11 additions, 11 deletions...nstall/Distribution/Client/Dependency/Modular/Validate.hs
Loading
Please register or sign in to comment