Introduce SolverId/SolverInstallPlan as solver output.
Currently, dependency solving immediately produces an 'InstallPlan'
which is then consumed by cabal install, or elaborated into
an 'ElaboratedInstallPlan' for cabal new-build. However, this
translation is awkward, because the dependency solver knows nothing
about 'UnitId's, yet an 'InstallPlan' must indexed by 'UnitId's.
So there's a bit of faffing around to generate a "fake" unit id
to satisfy the interface, and then eventually correct it to the
right one.
So this patch starts moving us in a better direction, by introducing
a 'SolverInstallPlan', 'SolverPackage' and 'SolverId', intended
to be generated by the solver. Then 'configureInstallPlan' or
'elaborateInstallPlan' elaborate this representation into the
representation needed by the destination.
The next step will be to generate the 'UnitId' during
'configureInstallPlan', and then we can get rid of the fake map
(so only Solver data types generate a fake identity, which
is only temporary until we generate 'UnitId's.)
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
Showing
- cabal-install/Distribution/Client/Configure.hs 6 additions, 4 deletionscabal-install/Distribution/Client/Configure.hs
- cabal-install/Distribution/Client/Dependency.hs 8 additions, 8 deletionscabal-install/Distribution/Client/Dependency.hs
- cabal-install/Distribution/Client/Dependency/Modular/ConfiguredConversion.hs 9 additions, 12 deletions...ibution/Client/Dependency/Modular/ConfiguredConversion.hs
- cabal-install/Distribution/Client/Dependency/TopDown.hs 8 additions, 30 deletionscabal-install/Distribution/Client/Dependency/TopDown.hs
- cabal-install/Distribution/Client/Dependency/TopDown/Types.hs 6 additions, 6 deletions...l-install/Distribution/Client/Dependency/TopDown/Types.hs
- cabal-install/Distribution/Client/Dependency/Types.hs 2 additions, 2 deletionscabal-install/Distribution/Client/Dependency/Types.hs
- cabal-install/Distribution/Client/Fetch.hs 1 addition, 1 deletioncabal-install/Distribution/Client/Fetch.hs
- cabal-install/Distribution/Client/Freeze.hs 5 additions, 5 deletionscabal-install/Distribution/Client/Freeze.hs
- cabal-install/Distribution/Client/Install.hs 11 additions, 9 deletionscabal-install/Distribution/Client/Install.hs
- cabal-install/Distribution/Client/InstallPlan.hs 51 additions, 2 deletionscabal-install/Distribution/Client/InstallPlan.hs
- cabal-install/Distribution/Client/ProjectPlanning.hs 21 additions, 22 deletionscabal-install/Distribution/Client/ProjectPlanning.hs
- cabal-install/Distribution/Client/Types.hs 52 additions, 0 deletionscabal-install/Distribution/Client/Types.hs
- cabal-install/tests/UnitTests/Distribution/Client/Dependency/Modular/DSL.hs 5 additions, 5 deletions...s/UnitTests/Distribution/Client/Dependency/Modular/DSL.hs
Loading
Please register or sign in to comment