Module OpamSolver

module OpamSolver: sig .. end
SAT-solver for package dependencies and conflicts


Solver


val string_of_request : OpamTypes.atom OpamTypes.request -> string
Convert a request to a string
val stats : OpamTypes.solution -> OpamTypes.stats
Compute statistics about a solution
val new_packages : OpamTypes.solution -> OpamTypes.package_set
Return the new packages in the solution
val string_of_stats : OpamTypes.stats -> string
Pretty-printing of statistics
val solution_is_empty : OpamTypes.solution -> bool
Is the solution empty ?
val delete_or_update : OpamTypes.solution -> bool
Does the solution implies deleting or updating a package
val print_solution : messages:(OpamTypes.package -> string list) ->
rewrite:(OpamTypes.package -> OpamTypes.package) ->
OpamTypes.solution -> unit
Display a solution
val resolve : ?verbose:bool ->
OpamTypes.universe ->
OpamTypes.atom OpamTypes.request ->
(OpamTypes.solution, string) OpamTypes.result
Given a description of packages, return a solution preserving the consistency of the initial description. An empty list : No solution found. The last argument is the set of installed packages.

Every element in the solution list satisfies the problem given. For the ordering, the first element in the list is obtained by upgrading from its next element.

val installable : OpamTypes.universe -> OpamTypes.package_set
Keep only the packages that are installable.
val dependencies : depopts:bool ->
installed:bool ->
OpamTypes.universe -> OpamTypes.package_set -> OpamTypes.package list
Return the topological sort of the transitive dependency closures of a collection of packages.
val reverse_dependencies : depopts:bool ->
installed:bool ->
OpamTypes.universe -> OpamTypes.package_set -> OpamTypes.package list
Same as bdependencies but for reverse dependencies
val sequential_solution : OpamTypes.package OpamTypes.action list -> OpamTypes.solution
Create a sequential solution from a list of actions