This project is mirrored from https://github.com/haskell/Cabal.
Pull mirroring updated .
- 13 Dec, 2016 7 commits
-
-
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
This is probably too much info for big instantiations, but it's better than nothing. Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
- 09 Dec, 2016 2 commits
-
-
Mikhail Glushenkov authored
[ci skip]
-
Mikhail Glushenkov authored
First create then rename symlinks to fix #4156
-
- 08 Dec, 2016 1 commit
-
-
tulcod authored
-
- 07 Dec, 2016 8 commits
-
-
-
Mikhail Glushenkov authored
[ci skip]
-
Mikhail Glushenkov authored
Update 'bootstrap.sh'.
-
kristenk authored
Revert "Solver: Add missing call to 'simplifyVar'."
-
Mikhail Glushenkov authored
[ci skip]
-
Mikhail Glushenkov authored
-
Mikhail Glushenkov authored
-
(cherry picked from commit e0bf43c3)
-
- 06 Dec, 2016 1 commit
-
-
ttuegel authored
Nix integration
-
- 05 Dec, 2016 4 commits
- 04 Dec, 2016 2 commits
-
-
Mikhail Glushenkov authored
Migrate ConflictSet qpn ↦ ConflictSet
-
Franz Thoma authored
-
- 03 Dec, 2016 2 commits
-
-
kristenk authored
Print final conflict set when search is exhaustive
-
Franz Thoma authored
-
- 02 Dec, 2016 1 commit
-
-
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.
-
- 01 Dec, 2016 5 commits
-
-
Mikhail Glushenkov authored
[ci skip]
-
Mikhail Glushenkov authored
[ci skip]
-
Mikhail Glushenkov authored
Solver: Fix space leak in 'addlinking' (issue #2899).
-
Mikhail Glushenkov authored
Add some missing occurrences of flib in cabal-install.
-
Mikhail Glushenkov authored
Solver: Add missing call to 'simplifyVar'.
-
- 30 Nov, 2016 2 commits
-
-
Mikhail Glushenkov authored
Solver: Avoid removing goal choices from the tree when applying heuristics.
-
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.
-
- 29 Nov, 2016 5 commits
-
-
Franz Thoma authored
The error displayed is the first error, which matches the first conflict set in the non-exhaustive case. In the exhaustive case, however, we display the last conflict set alongside the first error. The change in the error message, »the rest of the dependency tree«, should make it clearer that the error may not come from the final branches of the dependency tree, but that there may be a lot of branches being traversed between the first error and the final conflict set, so they may not be congruent. (Reasoning for displaying the first rather than the last error in the non-exhaustive case: Both the first and the last error may be occur near the leaves, so the conflict set may be incomplete. At the first backjump, however, the conflicts are more likely to be relevant as the solver has made fewer compromises at that point. In the exhaustive case, this is not relevant as the final conflict set is located at the root, so the conflict set contains all the conflicts of a certain path through the tree. This is much more useful than the first conflict set.) Example: ``` > ./.stack-work/install/x86_64-linux-nix/ghc-8.0.1/8.0.1/bin/cabal install --dry-run cabal-install-1.24.0.0 cabal-install-1.22.9.0 Warning: The package list for 'hackage.haskell.org' is 46 days old. Run 'cabal update' to get the latest list of available packages. Resolving dependencies... cabal: Could not resolve dependencies: next goal: cabal-install (user goal) rejecting: cabal-install-1.24.0.0 (constraint from user target requires ==1.22.9.0) rejecting: cabal-install-1.22.9.0 (constraint from user target requires ==1.24.0.0) rejecting: cabal-install-1.22.8.0, cabal-install-1.22.7.0, cabal-install-1.22.6.0, cabal-install-1.22.5.0, cabal-install-1.22.4.0, cabal-install-1.22.3.0, cabal-install-1.22.2.0, cabal-install-1.22.0.1, cabal-install-1.22.0.0, cabal-install-1.20.2.0, cabal-install-1.20.1.0, cabal-install-1.20.0.6, cabal-install-1.20.0.5, cabal-install-1.20.0.4, cabal-install-1.20.0.3, cabal-install-1.20.0.2, cabal-install-1.20.0.1, cabal-install-1.20.0.0, cabal-install-1.18.2.0, cabal-install-1.18.1.0, cabal-install-1.18.0.8, cabal-install-1.18.0.7, cabal-install-1.18.0.6, cabal-install-1.18.0.5, cabal-install-1.18.0.4, cabal-install-1.18.0.3, cabal-install-1.18.0.2, cabal-install-1.18.0.1, cabal-install-1.18.0, cabal-install-1.16.1.0, cabal-install-1.16.0.2, cabal-install-1.16.0.1, cabal-install-1.16.0, cabal-install-0.14.1, cabal-install-0.14.0, cabal-install-0.10.2, cabal-install-0.10.0, cabal-install-0.8.2, cabal-install-0.8.0, cabal-install-0.6.4, cabal-install-0.6.2, cabal-install-0.6.0, cabal-install-0.5.2, cabal-install-0.5.1, cabal-install-0.5.0, cabal-install-0.4.0 (constraint from user target requires ==1.22.9.0) After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: cabal-install (49) ```
-
Franz Thoma authored
-
Franz Thoma authored
-
Franz Thoma authored
Output the last error message in addition to the final conflict set, and give a less technical description of the conflict set for the user message. An example for the expected output is: > cabal install --dry-run DPM CurryDB DAV DSH Digit HList MagicHaskeller bamboo cabal: Could not resolve dependencies: trying: CurryDB-0.1.1.0 (user goal) trying: base-4.8.0.0/installed-1b6... (dependency of CurryDB-0.1.1.0) trying: unix-2.7.1.0/installed-e59... (dependency of process-1.2.3.0/installed-3b1...) trying: directory-1.2.2.0/installed-b49... (dependency of process-1.2.3.0/installed-3b1...) Dependency tree exhaustively searched. I've had most trouble fulfilling the following goals: haskell98 (36850), base (26359), directory (9599), HTF (5092), bamboo (3788), DPM (3452), unix (3208), CurryDB (107)
-
Franz Thoma authored
-