-
Notifications
You must be signed in to change notification settings - Fork 695
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
internal error: could not construct a valid install plan #4980
Comments
I guess the key information is
IOW, the (ancient) package I'm not sure if it's ever a good idea for What if we filtered out the current package name from the implicit |
Sounds like a good idea. |
It looks like the solver failed to detect the cycle because of #4161 (It currently only checks for cycles between multiple packages). If it had detected the cycle, it could have tried the installed version of binary instead. I think there are some cases where packages use their installed versions in their setup scripts, at least indirectly through a dependency on Cabal, so I think we need to support that type of self-dependency. There was some discussion of this issue in #4154 (comment). |
…askell#4161). The solver already detected cycles involving more than one package, but it allowed dependencies between components within a package. This commit treats a dependency between a package's setup script and library as a cycle in order to allow the solver to backtrack and try to break the cycle. A more thorough solution would involve tracking all dependencies between components, as in This commit also fixes the internal error in issue haskell#4980.
…askell#4161). The solver already detected cycles involving more than one package, but it allowed dependencies between components within a package. This commit treats a dependency between a package's setup script and library as a cycle in order to allow the solver to backtrack and try to break the cycle. A more thorough solution would involve tracking all dependencies between components, as in haskell#4087. This commit also fixes the internal error in issue haskell#4980.
…askell#4161). The solver already detected cycles involving more than one package, but it allowed dependencies between components within a package. This commit treats a dependency between a package's setup script and library as a cycle in order to allow the solver to backtrack and try to break the cycle. A more thorough solution would involve tracking all dependencies between components, as in haskell#4087. This commit also fixes the internal error in issue haskell#4980.
#5023 fixed the internal error, but we should probably also filter the implicit setup-depends, and possibly prevent packages from directly depending on different versions of the same package in the solver (See #5023 (comment)). |
This could be a duplicate of another bug, but I'm not sure; I'm recording this here in case it isn't:
Given the following simple cabal file
cabal
runs into an internal error:/cc @grayjay
The text was updated successfully, but these errors were encountered: