Fork of the main cabal repo — http://www.haskell.org/cabal/
goal choice heuristic in modular solver: choose base as early as possible
bugfix: wrong flag choice was sometimes shown in goal reasons
when printing the install plan, show non-default flag assignments
proper fix for default solver option handling
Suggested by Duncan.
restore the index conversion utility function, but as a top-level function
collapse repeated flag choices
In the build phase, we allow the same flag choice to occur multiple times. This makes it easy to handle the situation where the same flag occurs several times in the condition tree, and hence new goals and dependencies might be introduced depending on the choice.
Previously, we have ensured during validation that repeated flag choices are consistent. This behaviour has now been replaced by the new approach to collapse repeated flag choice nodes completely during validation.
The advantage is that the tree is less deep, and that the trace output looks less strange. Repeated flag choices are no longer seen, which I think avoids confusion.
removing dead code for global flag enforcement
This is all covered by the function that enforces package constraints, as global flag constraints are translated into package-specific flag constraints outside of the solver.
in parsing user constraints, require a space to separate the initial package name
add --override-reinstall-check option
This option flag overrides the new destructive reinstalls check, allowing forcing overwriting already installed library versions. The patch also documents this flag and other softer options in the output of printPlanMessages, which is renamed to checkPrintPlan.
treat ghc-prim like base as non-upgradeable in modular solver
Added a check for destructive reinstalls.
Some refactoring in Distribution.Client.Install:
Currently, Cabal will stop if destructive reinstalls are encountered. While this should become default behaviour, there has to be a flag that overrides it.
Added flag --independent-goals (not yet functioning correctly)