cabal-install-solver
Safe HaskellSafe-Inferred
LanguageHaskell2010

Distribution.Solver.Modular.Solver

Synopsis

Documentation

solve Source #

Arguments

:: SolverConfig

solver parameters

-> CompilerInfo 
-> Index

all available packages as an index

-> Maybe PkgConfigDb

available pkg-config pkgs

-> (PN -> PackagePreferences)

preferences

-> Map PN [LabeledPackageConstraint]

global constraints

-> Set PN

global goals

-> RetryLog Message SolverFailure (Assignment, RevDepMap) 

Run all solver phases.

In principle, we have a valid tree after validationPhase, which means that every Done node should correspond to valid solution.

There is one exception, though, and that is cycle detection, which has been added relatively recently. Cycles are only removed directly before exploration.

newtype PruneAfterFirstSuccess Source #

Whether to remove all choices after the first successful choice at each level in the search tree.