[Aptitude-devel] Design notes on producing better (or at least more predictable) resolver results.
Daniel Burrows
dburrows at debian.org
Mon Feb 23 07:05:40 UTC 2009
OK, today I've implemented the first critical step towards getting
this put together (and probably the most difficult one). I've written
up a data structure to store tier promotions that makes it possible to
quickly look up the promotions that are "hit" by a particular search
node. It's based on the same ideas as the dense_setset class that we
use to track logical conflicts, but a bit more optimized and with some
abilities that I punted on when I wrote dense_setset (like removing
entries and tracking broken soft dependencies). It's also designed
with an eye to supporting reasoning about replacement versions, once I
get those put in.
The code is in src/generic/problemresolver/promotion_set.h, and the
unit test is tests/test_promotion_set.cc. The test only covers a small
slice of the object's abilities, and the ones that aren't covered are
probably full of bugs. Hopefully I can shake most of the remaining
bugs out over the next couple days.
Happy hacking,
Daniel
More information about the Aptitude-devel
mailing list