module Depsolver: sig
.. end
Dependency solver. Implementation of the Edos algorithms
type
solver
the solver is an abstract data type associated to a universe
val load : ?check:bool -> Cudf.universe -> solver
initialize the solver. If check
is true (default), then check
for universe consistency (cf. Cudf_checker.is_consistent)
val edos_install : Cudf.universe -> Cudf.package -> Diagnostic.diagnosis
check if the given package can be installed in the universe
val edos_coinstall : Cudf.universe -> Cudf.package list -> Diagnostic.diagnosis
check if the give package list can be installed in the universe
val edos_coinstall_prod : Cudf.universe -> Cudf.package list list -> Diagnostic.diagnosis list
accept a list of list of packages and return the coinstallability test of
* the cartesian product.
val trim : Cudf.universe -> Cudf.universe
remove uninstallable packages from the universe
val find_broken : Cudf.universe -> Cudf.package list
return the list of the broken packages
val univcheck : ?callback:(Diagnostic.diagnosis -> unit) -> Cudf.universe -> int
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 and use the function edos_install
.
Returns the number of broken packages
callback
: : execute a function for each package
val listcheck : ?callback:(Diagnostic.diagnosis -> unit) ->
Cudf.universe -> Cudf.package list -> int
val dependency_closure : ?maxdepth:int ->
?conjunctive:bool -> Cudf.universe -> Cudf.package list -> Cudf.package list
dependency_closure universe l
compute the dependencies closure
of the give package list.
Invariant : l must be a subset of universe
val reverse_dependencies : Cudf.universe -> Cudf.package list Common.CudfAdd.Cudf_hashtbl.t
reverse_dependencies univ l
compute the reverse dependency list of all
packages in l
in the universe univ
val reverse_dependency_closure : ?maxdepth:int -> Cudf.universe -> Cudf.package list -> Cudf.package list
type
enc =
val output_clauses : ?enc:enc -> Cudf.universe -> string
output_clauses enc univ
return a string encoded accordingly to enc
val check_request : Cudf.cudf_doc -> Diagnostic.diagnosis