This project is mirrored from Pull mirroring updated .
  1. 06 Mar, 2015 1 commit
  2. 01 Jan, 2012 1 commit
  3. 16 Dec, 2011 1 commit
  4. 26 Mar, 2011 1 commit
    • Duncan Coutts's avatar
      Generalise the constraint set ADT in a couple ways · 0094c582
      Duncan Coutts authored
      We now track target packages and only require constraints on those
      targets to be satisfiable. This allows us to overconstrain packages
      that we do not care about, which is useful for excluding broken
      We also now have a more general way of specifying constraints.
      Previously constraints were specified as the conjunction of a version
      range predicate and an optional installed constraint. This form made
      it impossible to express constraints such as "exclude this source
      package". Constraints for a package name are now specified simply by
      a function predicate on the package version and installed/source state.
  5. 04 Mar, 2011 1 commit
  6. 23 Jan, 2011 1 commit
  7. 22 Oct, 2009 1 commit
  8. 19 Dec, 2008 2 commits
    • Duncan Coutts's avatar
      Extend the invariant on the Constraints ADT · 11d79f07
      Duncan Coutts authored
      It now carries around the original version of the database
      purely so that it can do a much more extensive consistency
      check. Packages are never gained or lost, just transfered
      between pots in various slightly tricky ways.
    • Duncan Coutts's avatar
      Fix constraint set handling for installed constraints · bac1eab8
      Duncan Coutts authored
      A rather subtle bug. The code was actually correct but the transitionsTo
      assertion was not accounting for a transition between the case where
      a package's available version had been excluded and then the whole thing
      got excluded by a version constraint. It counted one side as a loss
      without a corresponding gain on the other side.
  9. 06 Oct, 2008 1 commit
  10. 05 Oct, 2008 2 commits
    • Duncan Coutts's avatar
      Handle constraints on paired packages · c2c54a0b
      Duncan Coutts authored
      The trick is that when applying constraints to paired
      packages, the constraint has to exclude both packages at
      once. We exclude the pair together or not at all. If it
      would only exclude one then we discard the constraint.
    • Duncan Coutts's avatar
      Add the notion of paired packages to the Constraints ADT · 7c3337ff
      Duncan Coutts authored
      Packages like base-3 and base-4 are paired. This means they are
      supposed to be treated equivalently in some contexts. Paired
      packages are installed packages with the same name where one
      version depends on the other.
  11. 04 Oct, 2008 2 commits
  12. 31 Aug, 2008 1 commit
  13. 30 Jul, 2008 1 commit
  14. 06 Jun, 2008 1 commit
  15. 29 May, 2008 1 commit
    • Duncan Coutts's avatar
      Switch DependencyResolver to return Progress and String errors · 03cd0c96
      Duncan Coutts authored
      rather than Either and structured error type [Dependency]. The reason
      we cannot use that as a structured error type any more is because
      missing dependencies is not the only failure reason. There are
      several reasons, several of which are pretty complex. For now we'll
      have to do with a human readable message. Perhaps we may be able to
      find a common structured type that the different dep resolvers can
      all agree on. I'm not hopeful however as error reporting seems to be
      closely tied to the dep resolution approach.
  16. 28 May, 2008 1 commit
    • Duncan Coutts's avatar
      First version of the top-down package dependency resolver · bc07102a
      Duncan Coutts authored
      This is a new dependency resolver that produces valid install plans.
      It works in polynomial time however because the search space is 
      exponential in size it is not guaranteed to find a solution even if
      one exists. It works by generating and then exploring the search
      space represented as a lazy tree. It uses constraints to prune
      choices and heuristics when guesses are necessary. Currently it can
      generate install plans for 99% of the packages on hackage. The
      remaining 6 packages should be doable with two extra tricks.
      It is not finished and is not yet usable in practice.