Dependency solver. Implementation of the Edos algorithms
the solver is an abstract data type associated to a universe
Turn a result from Diagnostic_int into one of Diagnostic
Turn a request from Diagnostic_int into one of Diagnostic
check if the given package can be installed in the universe
check if the give package list can be installed in the universe
univcheck
check if all packages in the universe can be installed.
Since not all packages are directly tested for installation, if a packages
is installable, the installation might be empty. To obtain an installation
set for each installable packages, the correct procedure is to iter on the
list of packages.
listcheck ~callback:c solver l
check if all packages in l
can be
installed.
Invariant : l is a subset of universe can be installed in the solver universe.
check_request
check if there exists a solution for the give cudf document
if ?cmd is specified, it will be used to call an external cudf solver to
satisfy the request.
if ?criteria is specified it will be used as optimization criteria.
if ?explain is specified and there is no solution for the give request, the
result will contain the failure reason.
Same as check_request
, but allows to specify any function to call the
external solver. It should raise Depsolver.Unsat
on failure