module Diagnostic:sig..end
typerequest =Cudf.package list
The request provided to the solver
type reason =
| |
Dependency of |
(* | Not strictly a un-installability, Dependency (a,vpkglist,pkglist) is used to recontruct the the dependency path from the root package to the offending un-installable package | *) |
| |
Missing of |
(* | Missing (a,vpkglist) means that the dependency
| *) |
| |
Conflict of |
(* | Conflict (a,b,vpkg) means that the package | *) |
type result =
| |
Success of |
(* | If successfull returns a function that will
return the installation set for the given query. Since
not all packages are tested for installability directly, the
installation set might be empty. In this case, the solver can
be called again to provide the real installation set
using the parameter | *) |
| |
Failure of |
(* | If unsuccessful returns a function containing the list of reason | *) |
The result of an installability query
type diagnosis = {
|
result : |
|
request : |
The aggregated result from the solver
type reason_int =
| |
DependencyInt of |
| |
MissingInt of |
| |
ConflictInt of |
type result_int =
| |
SuccessInt of |
| |
FailureInt of |
the low-level result. All integers are sat solver indexes and need to be converted using a projection map. Moreover the result also contains the global constraints index that must filtered out before returing the final result to the user
typerequest_int =int list
val diagnosis : Common.Util.projection ->
Cudf.universe ->
result_int ->
request_int -> diagnosisTurn an integer result into a cudf result
val result : Common.Util.projection ->
Cudf.universe -> result_int -> resultTurn an integer result into a cudf result
val request : Cudf.universe -> request_int -> Cudf.package listTurn an integer request into a cudf request
module ResultHash:Hashtbl.Swith type key = reason
type summary = {
|
mutable missing : |
|
mutable conflict : |
|
mutable unique_missing : |
|
mutable unique_conflict : |
|
mutable unique_selfconflict : |
|
summary : |
|
statistic : |
Collect aggregate information about not installable packages
val default_result : int -> summary
val collect : summary -> diagnosis -> unitcollect summary result. Callback function to collect result
information in the summary data structure. Can be used to build
a custom callback function for Depsolver.listcheck or Depsolver.univcheck
val pp_out_version : Stdlib.Format.formatter -> unitprint output version
val pp_package : ?source:bool ->
?fields:bool ->
Common.CudfAdd.pp -> Stdlib.Format.formatter -> Cudf.package -> unitdefault package pretty printer.
val pp_list : (Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter -> 'a list -> unit
val print_error : ?condense:bool ->
?minimal:bool ->
Common.CudfAdd.pp ->
Cudf.package ->
Stdlib.Format.formatter -> reason list -> unit
val get_installationset : ?minimal:bool -> diagnosis -> Cudf.package listIf the installablity query is successfull, get_installationset return
the associated installation set . If minimal is true (false by default),
the installation set is restricted to the dependency cone of the packages
specified in the installablity query. @Raise Not_found if the result is
a failure.
val is_solution : diagnosis -> boolTrue is the result of an installablity query is successfull. False otherwise
val pp_summary : ?pp:Common.CudfAdd.pp ->
?explain:bool ->
unit -> Stdlib.Format.formatter -> summary -> unitprint a aggregate information of not installable packages.
pp : cudf package printerexplain : if true, print the list of all affected packages associated to
and installation problem.val fprintf : ?pp:Common.CudfAdd.pp ->
?failure:bool ->
?success:bool ->
?explain:bool ->
?minimal:bool ->
?condense:bool ->
Stdlib.Format.formatter -> diagnosis -> unitprintf fmt d print the output of the solver in yaml format
to the formatter fmt.
pp : cudf package printerfailure : print the list of not installable packagessuccess : print the list of installable packagesexplain : for installable packages, print the associated installation set
for not installable packages, print the all dependencies chainsval printf : ?pp:Common.CudfAdd.pp ->
?failure:bool ->
?success:bool -> ?explain:bool -> diagnosis -> unitlike fprintf but print using the standard formatter
val print_dot : ?pp:Common.CudfAdd.pp ->
?condense:bool ->
?addmissing:bool -> ?dir:string -> diagnosis -> unitprint the explanation graph in dot format to the standard formatter