Avoids the need to take a config argument and avoids the need to expose the 'is_installed' method.
Progress updates from the solve would get queued. Then the box would open and see that the solve had finished and highlight any problems. Then the queued updates would arrive and remove the highlighting again.
When may_compile is set, we make a fake binary for each source impl, representing the binary that could be produced by compiling it. We use the same logic that 0compile uses to generate the binary XML. In future, we should be able to get 0compile to use this code directly. Based on Tim Cuthbertson's autocompile patches. However, we do not include source dependencies when solving (we just assume that any source implementation can be compiled). This matches what 0compile's autocompile feature does, and avoids pulling in large numbers of extra feeds just in case we need to compile.
- command_qdom is now an Element.t. - Simplified tests with a default scope filter. - Report better errors if solver unit-test input is wrong. - Use Impl.make_command helper in more places. - Removed unused new_attr argument to make_command. - Added helper function Impl.local_dir_of. - Expose Feed.process_group and Element.make_impl functions.
We first collected all implementations of an interface, cached this result, and then filtered depending on whether we wanted source or binary implementations. However, collecting all implementations requires deciding which feeds to look at, and this requires knowing whether we want source or not. Therefore, if we wanted to select both source and binaries of the same interface, we might incorrectly fail to consider some feeds.
GnuPG now requires an agent, even though it doesn't need it for anything and there's no way to stop it trying to connect to it. See: http://stackoverflow.com/questions/27459869/how-to-stop-gpg-2-1-spawning-many-agents-for-unit-testing
… of a dependency