package opam-solver
Install
dune-project
Dependency
Authors
-
David Allsopp
-
VVincent Bernardoff <vb@luminar.eu.org>
-
RRaja Boujbel <raja.boujbel@ocamlpro.com>
-
KKate Deplaix <kit-ty-kate@outlook.com>
-
RRoberto Di Cosmo <roberto@dicosmo.org>
-
TThomas Gazagnaire <thomas@gazagnaire.org>
-
LLouis Gesbert <louis.gesbert@ocamlpro.com>
-
FFabrice Le Fessant <Fabrice.Le_fessant@inria.fr>
-
AAnil Madhavapeddy <anil@recoil.org>
-
GGuillem Rieu <guillem.rieu@ocamlpro.com>
-
RRalf Treinen <ralf.treinen@pps.jussieu.fr>
-
FFrederic Tuong <tuong@users.gforge.inria.fr>
Maintainers
Sources
md5=0fb8e9f62683772592b1bc2d80a763b8
sha512=1c617b1c1656817a47ef65d02fc990357476f6c1b406c02717e5ff702a2c42e9f3818c2ddd54470926b2c5344c1c285216471a684d261be7a3ec84b05a32e726
doc/opam-solver/OpamSolver/index.html
Module OpamSolverSource
Entry point to the solver, conversion of opam package universes to Cudf, dependencies computation. Front-end to Dose.
Solver
Convert a request to a string
Compute statistics about a solution
Return the new packages in the solution
Return removed new packages in the solution
Return all packages appearing in the solution
Pretty-printing of statistics
val print_solution :
messages:(OpamTypes.package -> string list) ->
append:(OpamTypes.package -> string) ->
requested:OpamTypes.name_set ->
reinstall:OpamTypes.package_set ->
available:OpamTypes.package_set ->
?skip:OpamTypes.package OpamPackage.Map.t ->
solution ->
unitDisplay a solution. skip skips printing the actions on the given packages and replaces their names in other places where they appear
Serialize a solution
Computes an opam->cudf version map from an universe
val load_cudf_universe :
OpamTypes.universe ->
?version_map:int OpamTypes.package_map ->
OpamTypes.package_set ->
?add_invariant:bool ->
?depopts:bool ->
build:bool ->
post:bool ->
unit ->
Cudf.universeCreates a CUDF universe from an OPAM universe, including the given packages. Evaluation of the first 3 arguments is staged. Warning: when depopts is true, the optional dependencies may become strong dependencies.
Use add_invariant if you expect to call the solver and need the switch invariants to be respected; remember in that case to call Cudf.remove_package universe OpamCudf.opam_invariant_package before exporting the results
val request :
?criteria:OpamTypes.solver_criteria ->
?install:OpamTypes.atom list ->
?upgrade:OpamTypes.atom list ->
?remove:OpamTypes.atom list ->
?deprequest:OpamTypes.atom OpamFormula.formula ->
?all:OpamTypes.atom list ->
unit ->
OpamTypes.atom OpamTypes.requestBuild a request. all defaults to all atoms concerned by any action, and is used for limiting the solution to the relevant packages, an empty list implying all actions are relevant (no trimming)
val resolve :
OpamTypes.universe ->
OpamTypes.atom OpamTypes.request ->
(solution, OpamCudf.conflict) OpamTypes.resultGiven a description of packages, return a solution preserving the consistency of the initial description.
Returns the graph of atomic actions (rm, inst) from a solution
Keep only the packages that are installable.
Like installable, but within a subset and potentially much faster
val dependency_sort :
depopts:bool ->
build:bool ->
post:bool ->
OpamTypes.universe ->
OpamTypes.package_set ->
OpamTypes.package listSorts the given package set in topological order (as much as possible, beware of cycles in particular if post is true)
val dependency_graph :
depopts:bool ->
build:bool ->
post:bool ->
installed:bool ->
unavailable:bool ->
OpamTypes.universe ->
PkgGraph.tCheck the current set of installed packages in a universe for inconsistencies
val coinstallability_check :
OpamTypes.universe ->
OpamTypes.package_set ->
OpamCudf.conflict optionChecks the given package set for complete installability ; returns None if they can all be installed together
Checks if the given atoms can be honored at the same time in the given universe
val coinstallable_subset :
OpamTypes.universe ->
?add_invariant:bool ->
OpamTypes.package_set ->
OpamTypes.package_set ->
OpamTypes.package_setcoinstallable_subset univ set packages returns the subset of packages which are individually co-installable with set, i.e. that can be installed while set remains installed. This returns the empty set if set is already not coinstallable. `add_invariant` defaults to true
Dumps a cudf file containing all available packages in the given universe, plus version bindings (as '#v2v' comments) for the other ones.
Filters actions in a solution. Dependents of a removed actions are removed to keep consistency unless recursive is set to false