package opam-solver
Install
Dune Dependency
Authors
-
VVincent Bernardoff <vb@luminar.eu.org>
-
RRaja Boujbel <raja.boujbel@ocamlpro.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=01a30e3469c3e8ebc04f56a3330778fa
sha512=c5f00ed4d78b1863717b44e014af1f1e8c4bc9e16ca60f1ac1216d12163d9a3b19721026d0e455429067b8ce90ec646f1be39e3daf0f3710c556da65ec6cd2c0
doc/opam-solver/OpamSolver/index.html
Module OpamSolver
Source
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 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 ->
solution ->
unit
Display a solution
Computes an opam->cudf version map from a set of package
val load_cudf_universe :
OpamTypes.universe ->
?version_map:int OpamTypes.package_map ->
?add_invariant:bool ->
OpamTypes.package_set ->
?depopts:bool ->
build:bool ->
post:bool ->
unit ->
Cudf.universe
Creates a CUDF universe from an OPAM universe, including the given packages. Evaluation of the first 4 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 ->
unit ->
OpamTypes.atom OpamTypes.request
Build a request
val resolve :
OpamTypes.universe ->
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.
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 dependencies :
depopts:bool ->
build:bool ->
post: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 ->
post:bool ->
installed:bool ->
?unavailable:bool ->
OpamTypes.universe ->
OpamTypes.package_set ->
OpamTypes.package list
Same as dependencies
but for reverse dependencies
val dependency_graph :
depopts:bool ->
build:bool ->
post:bool ->
installed:bool ->
?unavailable:bool ->
OpamTypes.universe ->
PkgGraph.t
Check the current set of installed packages in a universe for inconsistencies
val coinstallability_check :
OpamTypes.universe ->
OpamTypes.package_set ->
OpamCudf.conflict option
Checks 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 ->
OpamTypes.package_set ->
OpamTypes.package_set ->
OpamTypes.package_set
coinstallable_subset univ set packages
returns the subset of packages
which are individually co-installable with set
, i.e. that can be installed if set
while set
remains installed. This returns the empty set if set
is already not coinstallable.
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