Age | Commit message (Collapse) | Author | Files | Lines |
|
Mostly this just removes typedefs from the universe-specific tier types
and adds #includes for tier.h. The tier limits object was rewritten
somewhat more, to account for the new terminology ("levels") and to make
the integers explciitly represent structural levels, not tiers.
|
|
the current run of aptitude started. (Closes: #556042)
This is done by filtering them out of the initial set of dependencies
that the root node is initialized with.
NOTE: I still need to convince myself that we can't somehow end up
reactivating a dependency that should have been skipped. However,
we might really need to legitimately activate it...something to think
over, anyway. (I particularly suspect that the weird behavior of
Conflicts might be a problem)
|
|
This almost eliminates the time we were spending comparing dep solvers
(according to profiling, it's now down to 5% of the run time). There
are several parts to this commit:
(1) Making Boost a dependency of aptitude. This involved changing
the configure script, writing a README about it, and writing a
short shell script to verify that the configure script is up to
date.
(2) Redesigning the dep-solvers set so that all mutation goes through
a member function. The set needs to cache its hash value for the
sake of speed, and having mutation go through member functions
lets us invalidate the cache.
(3) Writing hash functions for the major resolver structures (that
is: the concrete package, version, dep, and tier objects in both
implementations, the choice object, and the solver_information
and dep_solvers objects in the search graph).
(4) Changing the std::set that we were using to collect identical
dep_solvers objects to a boost::unordered_set.
|
|
plain integers.
This allows us to classify solutions in a more fine-grained way. In
particular, it provides a not-horrible way to integrate apt pin
priorities into the resolver's decisions, by making them a subordinate
level of ranking to the main tiering system.
The current plan is that the first level of tiering is the only one the
user sees (by default) and the only one that can be directly configured.
The subordinate levels are filled in automatically (pin priorities are
all I have in mind now, but I don't discount the possibility of
introducing more levels in the future).
|
|
|
|
|
|
This tree version is still BROKEN. This commit changes a bunch of code mechanically,
and completely fixes all the subdirectories and files through download_screen in
the top-level directory.
Some unfortunate namespace choices in cwidget showed up here. widgets and config
should probably be merged into the cwidget namespace, and I've created namespace
aliases that pretend this happened as I go through the .cc files. Luckily, that
change can largely be accounted for automatically.
|
|
|
|
|
|
|
|
|