Ticket #175 (closed task: fixed)
cabal-install needs a new package dependency resolution algorithm
|Reported by:||duncan||Owned by:|
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: