Solver algorithms: ------------------ - the solver allows arch changes from/to noarch without complaining. good or bad? - vendow changes are allowed from unknown to known. libzypp doesn't allow that. Feature? - should prune_best_version_arch consider the arch or the vendor this is about an installed package? - repo priorities should influence the order in which package rules are fulfilled. - prune_best_version_arch has a n^2 loop when looking at obsoletes. Should we create an obsoletes index to speed that up? Code cleanup: ------------- - move whatprovides/whatprovidesdata from pool to solver? good: can implement installed(), though I don't know if we need it. bad: need to allocate solver if we just want to look up a provides. can't re-use whatprovides for multiple solver runs with different solvers. - implement unified idarray in pool, so that repos don't have to come with their own idarrays? Would need memory for hash, but unification would be a nice thing. Would also fix solver memory leak with learned rules. Needs some hard numbers abour memory usage. - make bitmap macros inline functions? - rename ID Macros to ID_, e.g. ARCH_NOARCH to ID_ARCH_NOARCH? - support different streams than FILE in repo_ functions? Is it enough that glibc supports FILE overloading, see the undocumented fopencookie()?