Select a compatible set of components to run a program.
See Solver
for the instantiation of this functor on the
actual 0install types.
#
impl
| : Model.impl | ; | (* | The implementation chosen to fill the role | *) |
#
commands
| : Model.command_name list | ; | (* | The commands required | *) |
#
diagnostics
| : diagnostics | ; | (* | Extra information useful for diagnostics | *) |
do_solve model req
finds an implementation matching the given requirements, plus any other implementations needed
to satisfy its dependencies.
Model.get_command
always returns a dummy command for dummy_impl too.
Note: always try without a dummy_impl
first, or it may miss a valid solution.
closest_match
is false).
Request diagnostics-of-last-resort (fallback used when Diagnostics
can't work out what's wrong).
Gets a report from the underlying SAT solver.