Skip to content
  • Andres Löh's avatar
    Configurable strong/weak flags. · f950e8d7
    Andres Löh authored and tibbe's avatar tibbe committed
    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
    f950e8d7