summaryrefslogtreecommitdiff
path: root/src/solver.c
AgeCommit message (Collapse)AuthorFilesLines
2011-08-05solver: move topology sorting to solver codeTimo Teräs1-38/+92
this allows quite some optimizations to running time and memory requirements.
2011-08-01solver: generate proper error messagesTimo Teräs1-185/+181
* the solver no longer does look-ahead locking of names (could be possibly optimized later); instead names are now always ordered strictly to properly detect the package names which are unsolveable * basic error tests added, so we can see the most likely problem in dependencies easily
2011-07-27solver: don't consider package that we can't haveTimo Teräs1-2/+26
Packages that need (re-)installation but which are not available, are excluded now properly.
2011-07-27solver: permutate each preferred solution firstTimo Teräs1-57/+55
The first found solution is the most preferred one then.
2011-07-26solver: new package selection logic (which is not yet used)Timo Teräs1-0/+563
* basic code for a backtracking, forward checking dependency satisfier * works better when there are tricky dependencies to solve (when can't just upgrade everything to most preferred versions) * the new code always evaluates all of 'world' constraints (old code just does incremental updates based on heuristics) * is probably somewhat slower than old code (probably unnoticeable difference in most cases) * makes easier to write support for provides and repository pinning * test applet and a bunch of test cases added which uses the new code * from the old feature set install_if is not yet implemented