Ticket #175 (closed task: fixed)
cabal-install needs a new package dependency resolution algorithm
| Reported by: | duncan | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | cabal-install tool | Version: | 1.2.2.0 |
| Severity: | normal | Keywords: | |
| Cc: | dbueno@… | Difficulty: | normal |
| GHC Version: | 6.4.2 | Platform: | Linux |
Description
The current package dependency algorithm is pretty simple. It's main failing is that it cannot backtrack if it finds the solution is impossible.
What we would like is a new dependency resolution algorithm that can backtrack. We would also like to be able to configure policy issues separately, perhaps as a parameter. It may also be handy to let users or the system add extra version constraints.
The input is the set of available packages and the output is a list of packages to install, and the assignment of configuration flags to use for each one. As for the policy input, this might take the form of a function that picks between possible dependencies in a slot, this could then allow us to make choices like preferring installed packages over the latest available package version, or vica versa.
See also symptoms of the existing system:
