-
Notifications
You must be signed in to change notification settings - Fork 710
Resolving dependencies for wai repo on GHC 7.6.3 times out with Travis #3453
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
/cc @kosmikus |
I started looking into this issue. There is no solution, because there is a conflict between The test requires It would be nice to have cabal fail faster, especially when there is a conflict involving so few packages. |
@grayjay Thank you, that information was very useful. For my immediate needs, I've disabled benchmark building for GHC 7.6.3 (yesodweb/wai@7127092), which works around this issue nicely, and we get testing of the wai repo with 7.6.3 again. |
@grayjay is the problem because solver tries |
cabal tries |
@grayjay Sorry, only now looking.
Isn't this exactly what |
@kosmikus
I tried your count-conflicts branch, and it finished in about 8 minutes. The final conflict set was |
@grayjay Oh right. I had indeed discovered that in most of the cases where count-conflicts is still slow, the removal of choices in the heuristics phase is the culprit. I think we can/should fix this by switching to a scoring approach, as we've discussed elsewhere. Then we can more easily defer choices without completely removing them. |
I'm unfamiliar with how the solver works internally and therefore have no On Fri, May 27, 2016 at 10:25 AM, Andres Löh [email protected]
|
I looked into why #3092 added
deferWeakFlagChoices to handle stanzas as well as flags.
I think there is a bug in I also noticed that the weak/trivial field on the stanza choice node has a different meaning in other parts of the code. Here it means that the stanza has no dependencies: cabal/cabal-install/Distribution/Solver/Modular/Tree.hs Lines 53 to 55 in 48a1de5
|
@grayjay The fact that "weak" and "trivial" are mixed up is deliberate. In index conversion, trivial flags and stanzas should get the flag set. Later, it's only relevant for deferral, and since all trivial entities should be weak, it should be safe to set the flag for additional entities that we want to be deferred. I think I agree that More generally, I think we should prefer rather than defer choices for which we know that at most a single option can be taken. |
https://github.com/dmwit/universe solving is quite slow with ghc-7.0.4, and takes ages with Let's see if your changes for this issue would improve EDIT:
|
@phadej it seems that universe is nicely handled by I didn't have 7.2.2 readily available, so I tested with 7.2.1 instead. Here are times on my machine (with other things running next to it, so not overly reliable, but the relative speedup should be definitive enough): https://gist.github.com/kosmikus/c411abf4390dfd1adbcc16f6b665eb43
(I'm a bit surprised that you got 3m22s for 7.2.2. I didn't think my machine to be that slow.) |
@kosmikus, great to hear! (I haven't waited for ghc-7.2.2, all times were for ghc-7.0.2) |
@phadej I've finally turned this into a PR, so you can test it yourself if you like. |
We have regular build failures on the wai repo due to the build timing out, e.g. https://travis-ci.org/yesodweb/wai/jobs/132019472. I don't know if there is legitimately no build plan, or if the solver is simply having difficulty finding one. I've kicked off some dependency solving on one of my servers to try to determine if there's a workaround. Nonetheless, taking over 10 minutes to solve dependencies is surprising.
Reproduction:
Expected:
The text was updated successfully, but these errors were encountered: