darcs patch: Add new utils, duplicates, duplicatesBy ... (and 4 more)
All, If you want to play with the new dependency resolver stuff then here is a bunch of patches. Dependency resolvers are now expected to produce a valid InstallPlan. There is new error checking code to tell you all the ways in which the InstallPlan your dep resolver produced, is invalid. The current dep resolver can sometimes produce valid install plans but can easily be persuaded into making invalid ones, especially if you have many broken packages installed. So there's still some work to be done to make the dep resolvers more pluggable and to try to patch up the current dep resolver a bit. Duncan Sun May 4 20:45:30 BST 2008 Duncan Coutts <duncan@haskell.org> * Add new utils, duplicates, duplicatesBy and mergeBy Sun May 4 21:17:42 BST 2008 Duncan Coutts <duncan@haskell.org> * Use the mergeBy from the Utils module Sun May 4 21:18:57 BST 2008 Duncan Coutts <duncan@haskell.org> * Improve InstallPlan error checking and reporting Instead of just reporting that a plan is invalid, produce a detailed list of reasons why it is invalid. This should be useful for people debugging dependency resolvers. Also rename the complete property to closed, since the property is about the set being closed under the dependency relation. Also re-use the PackageIndex functions for checking the validity conditions rather than re-implementing the checks locally. Mon May 5 10:05:13 BST 2008 Duncan Coutts <duncan@haskell.org> * Packages are only invalid if they have more than zero problems. Mon May 5 10:17:43 BST 2008 Duncan Coutts <duncan@haskell.org> * Switch from DepGraph to InstallPlan The dependency resolver has had to be extended in a slightly hacky way to gather the extra information needed by an install plan. In particular it requires the flags to use to configure each package, the actual versions of dependencies to use and all of the installed packages and their closure of dependencies. However the current resolver is fairly naive and so can be easily persuaded into producing an invalid install plan, in which case you'll get a detailed list of reasons as to why it is invalid.
participants (1)
-
Duncan Coutts