Skip to content
Snippets Groups Projects
Commit ffe4f242 authored by Andres Löh's avatar Andres Löh Committed by tibbe
Browse files

Configurable strong/weak flags.

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 3dcddea4)

Conflicts:
	cabal-install/Distribution/Client/Dependency.hs
	cabal-install/Distribution/Client/Freeze.hs
	cabal-install/Distribution/Client/Setup.hs
parent e6d9daa7
No related branches found
No related tags found
No related merge requests found
Showing
with 78 additions and 46 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment