This project is mirrored from https://github.com/haskell/Cabal. Pull mirroring updated .
  1. 18 Dec, 2016 3 commits
  2. 14 Dec, 2016 1 commit
  3. 13 Dec, 2016 8 commits
  4. 09 Dec, 2016 2 commits
  5. 08 Dec, 2016 1 commit
  6. 07 Dec, 2016 8 commits
  7. 06 Dec, 2016 1 commit
  8. 05 Dec, 2016 4 commits
  9. 04 Dec, 2016 2 commits
  10. 03 Dec, 2016 2 commits
  11. 02 Dec, 2016 1 commit
    • Franz Thoma's avatar
      Always filter log with first conflict set for printing the first error · b0890b90
      Franz Thoma authored
      Before this change, the behavior in the exhaustive case was to filter
      the log up until the first error with the final conflict set, leading to
      possibly inconsistently filtered error messages.
      
      Now we always use the conflict set from the first error to filter the
      the log, and then display the final conflict set as an additional hint.
      b0890b90
  12. 01 Dec, 2016 5 commits
  13. 30 Nov, 2016 2 commits
    • Mikhail Glushenkov's avatar
      Merge pull request #4131 from grayjay/goal-order · 2d26af4b
      Mikhail Glushenkov authored
      Solver: Avoid removing goal choices from the tree when applying heuristics.
      2d26af4b
    • kristenk's avatar
      Solver: Add missing call to 'simplifyVar'. · adc1fe96
      kristenk authored
      'simplifyVar' removes flag names from the 'Var' type, so that all flags within a
      package are treated as one during backjumping. A more complete fix would involve
      creating a 'SimpleVar' type.
      
      The bug caused the conflict counting heuristic to never prefer flag goals. Flag
      variables in the tree's goals had the flags' original names, and the flag
      variables in the conflict map did not have names, so they could never be equal.
      
      Since this fix changes the goal order, I wanted to test for an unexpected large
      negative impact on solver runtime. I ran the solver on all packages on Hackage
      individually with GHC 8.0.1 and looked for differences of more than 10% between
      master and the branch. There were twelve packages. I reran those packages three
      times and found ten with a significant difference in runtime. Here are the
      average runtimes. None of them hit the backjump limit.
      
      package                         master (seconds)   branch (seconds)   ratio
      clash-ghc                        2.60              3.99               1.54
      hack-middleware-clientsession    8.22              2.54               0.31
      hackage-server                   1.46              1.85               1.26
      hamusic                          5.47              4.55               0.83
      haskore-synthesizer             10.13              7.64               0.75
      language-gcl                     2.54              2.03               0.80
      ms                              36.98              8.02               0.22
      pipes-cereal-plus                1.51              1.66               1.10
      thorn                            8.28              3.08               0.37
      wai-handler-devel                1.72              1.91               1.11
      
      I looked at the diff in the -v3 log for several of them and saw that the solver
      was making some flag choices earlier, as expected.
      
      This isn't much of an improvement, but it at least looks like a safe change.
      adc1fe96