2007/6/19, ngaba@petra.hos.u-szeged.hu <ngaba@petra.hos.u-szeged.hu>:
Yes, alpm_resolvedeps is still negligent, but sync.c is quite a black box for me;-) It creates some pseudo transactions/stuffs, probably one of them prevent pacman from fault ;-). I don't create a patch for resolvedeps, because in my "dream" alpm_checkdeps can add missing dependencies from sync repos if requested with much smaller overhead... (And maybe it should be able to do topo sort too, because it computes the dependency edges...) You may say, that we shouldn't create such "super-function", but we cannot store and reuse some crutial computation results now (because of current data structures...)
Indeed, there is a lot of duplicated job here, I think we all agree on that. But having everything in one function is indeed as worse :d There is probably a way to avoid this. If the only way is using other data structure (you mean graph here?), maybe it could be discussed here. When is pacman rewritten using the kernel list implementation, and on top of that, other structures like graph more adapted to packages, and doing what Dan said there : http://www.archlinux.org/pipermail/pacman-dev/2007-June/008544.html ;-)