Up

module OpamSolver

: sig

SAT-solver for package dependencies and conflicts

#
module Action : OpamActionGraph.ACTION with type package = OpamTypes.package
#
module ActionGraph : OpamParallel.GRAPH with type V.t = OpamTypes.package OpamTypes.action
#
val empty_universe : OpamTypes.universe

Solver

#
val string_of_request : OpamTypes.atom OpamTypes.request -> string

Convert a request to a string

#
val stats : solution -> OpamTypes.stats

Compute statistics about a solution

#
val new_packages : 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 : solution -> bool

Is the solution empty ?

#
val delete_or_update : solution -> bool

Does the solution implies deleting or updating a package

#
val print_solution : messages:(OpamTypes.package -> string list) -> rewrite:(OpamTypes.package -> OpamTypes.package) -> solution -> unit

Display a solution

#
val cudf_versions_map : OpamTypes.universe -> OpamTypes.package_set -> int OpamPackage.Map.t

Computes an opam->cudf version map from a set of package

#
val load_cudf_universe : ?depopts:bool -> ?build:bool -> ?test:bool -> ?doc:bool -> OpamTypes.universe -> ?version_map:int OpamTypes.package_map -> OpamTypes.package_set -> Cudf.universe

Creates a CUDF universe from an OPAM universe, including the given packages

#
val resolve : ?verbose:bool -> OpamTypes.universe -> requested:OpamTypes.name_set -> orphans:OpamTypes.package_set -> OpamTypes.atom OpamTypes.request -> (solution, OpamCudf.conflict) OpamTypes.result

Given a description of packages, return a solution preserving the consistency of the initial description.

#
val installable : OpamTypes.universe -> OpamTypes.package_set

Keep only the packages that are installable.

#
val dependencies : depopts:bool -> ?build:bool -> ?test:bool -> ?doc:bool -> installed:bool -> ?unavailable: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 -> ?build:bool -> ?test:bool -> ?doc:bool -> installed:bool -> ?unavailable:bool -> OpamTypes.universe -> OpamTypes.package_set -> OpamTypes.package list

Same as dependencies but for reverse dependencies

#
val sequential_solution : OpamTypes.universe -> requested:OpamTypes.name_set -> OpamTypes.package OpamTypes.action list -> (solution, OpamCudf.conflict) OpamTypes.result

Create a sequential solution from a list of actions

end