Skip to content
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

Bad install plan selected for keter with GHC 7.8.2 #1877

Closed
snoyberg opened this issue May 19, 2014 · 2 comments
Closed

Bad install plan selected for keter with GHC 7.8.2 #1877

snoyberg opened this issue May 19, 2014 · 2 comments
Assignees

Comments

@snoyberg
Copy link
Collaborator

With a clean package database, I just ran cabal install keter --dry-run using ghc-7.8.2 and cabal-install-1.20.0.1. The full output is available at:

https://gist.github.com/snoyberg/d1b9d1d4e3feae8daad9

The important bits:

bytestring-0.10.2.0 (latest: 0.10.4.0) (new version)
unix-2.7.0.1 (reinstall) changes: bytestring-0.10.4.0 -> 0.10.2.0
unix-2.7.0.1 (reinstall) changes: bytestring-0.10.4.0 -> 0.10.2.0
Warning: The following packages are likely to be broken by the reinstalls:
haskell98-2.0.0.3
ghc-7.8.2
Cabal-1.18.1.3
bin-package-db-0.0.0.0
hpc-0.6.0.1
Use --force-reinstalls if you want to install anyway.

Instead running with --reorder-goals generates a more sensible build plan: https://gist.github.com/snoyberg/1a8362ee40aa5b91675b.

This is likely related to #1855.

kosmikus added a commit to kosmikus/cabal that referenced this issue May 19, 2014
This adds a mechanism in the modular solver to store whether a flag
is "strong" or "weak". A weak flag is deferred during solving, a strong
flag is not.

By default, flags are now weak unless they're manual. This is a change
in behaviour, but I think it's probably the better default, because many
automatic flags are used to figure out what's on the system rather than
to impose hard constraints.

There's a new flag --strong-flags that restores the old behaviour. I do
not think such a global flag is particularly useful, but it may be
of interest to compare build plans between the new and old behaviour.

With these preparations, it's easy to make the distinction between
strong and weak flags more sophisticated. We can either add more
heuristics as to when flags should be treated as strong or weak, or we
can add syntax to .cabal files that allows package authors to specify
explicitly how they intend a flag to behave.

This is related to various cabal-install issues, e.g. haskell#1831, haskell#1864,
and haskell#1877.
@kosmikus kosmikus self-assigned this May 19, 2014
@kosmikus
Copy link
Contributor

As far as I can test, this one is (will be) fixed by #1879.

@hvr hvr added the solver label May 20, 2014
kosmikus added a commit that referenced this issue May 23, 2014
This adds a mechanism in the modular solver to store whether a flag
is "strong" or "weak". A weak flag is deferred during solving, a strong
flag is not.

By default, flags are now weak unless they're manual. This is a change
in behaviour, but I think it's probably the better default, because many
automatic flags are used to figure out what's on the system rather than
to impose hard constraints.

There's a new flag --strong-flags that restores the old behaviour. I do
not think such a global flag is particularly useful, but it may be
of interest to compare build plans between the new and old behaviour.

With these preparations, it's easy to make the distinction between
strong and weak flags more sophisticated. We can either add more
heuristics as to when flags should be treated as strong or weak, or we
can add syntax to .cabal files that allows package authors to specify
explicitly how they intend a flag to behave.

This is related to various cabal-install issues, e.g. #1831, #1864,
and #1877.

(cherry picked from commit 3dcddea)

Conflicts:
	cabal-install/Distribution/Client/Dependency.hs
kosmikus added a commit that referenced this issue May 23, 2014
This adds a mechanism in the modular solver to store whether a flag
is "strong" or "weak". A weak flag is deferred during solving, a strong
flag is not.

By default, flags are now weak unless they're manual. This is a change
in behaviour, but I think it's probably the better default, because many
automatic flags are used to figure out what's on the system rather than
to impose hard constraints.

There's a new flag --strong-flags that restores the old behaviour. I do
not think such a global flag is particularly useful, but it may be
of interest to compare build plans between the new and old behaviour.

With these preparations, it's easy to make the distinction between
strong and weak flags more sophisticated. We can either add more
heuristics as to when flags should be treated as strong or weak, or we
can add syntax to .cabal files that allows package authors to specify
explicitly how they intend a flag to behave.

This is related to various cabal-install issues, e.g. #1831, #1864,
and #1877.

(cherry picked from commit 3dcddea)

Conflicts:
	cabal-install/Distribution/Client/Dependency.hs
	cabal-install/Distribution/Client/Freeze.hs
	cabal-install/Distribution/Client/Setup.hs
@23Skidoo
Copy link
Member

23Skidoo commented Mar 7, 2016

As far as I can test, this one is (will be) fixed by #1879.

Closing then.

@23Skidoo 23Skidoo closed this as completed Mar 7, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants