[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