Module Depsolver


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 =
| Cnf
| Dimacs
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