darcs patch: Add new utils, duplicates, duplicatesBy ... (and 4 more)

Duncan Coutts duncan at haskell.org
Mon May 5 05:36:41 EDT 2008


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 at haskell.org>
  * Add new utils, duplicates, duplicatesBy and mergeBy

Sun May  4 21:17:42 BST 2008  Duncan Coutts <duncan at haskell.org>
  * Use the mergeBy from the Utils module

Sun May  4 21:18:57 BST 2008  Duncan Coutts <duncan at 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 at haskell.org>
  * Packages are only invalid if they have more than zero problems.

Mon May  5 10:17:43 BST 2008  Duncan Coutts <duncan at 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.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/x-darcs-patch
Size: 41503 bytes
Desc: A darcs patch for your repository!
Url : http://www.haskell.org/pipermail/cabal-devel/attachments/20080505/03415543/attachment-0001.bin


More information about the cabal-devel mailing list