solver: rewrite backtracking and scoring system
* properly do absolute scoring now, the previous scoring where preference could get reduced could have caused incorrect early pruning of search tree * backtracking is now separated from package state, and first branching point is the decision if a name is left unassigned or if something _has_ to be assigned. this allows multiple future search tree optimizations like handling of common dependencies early. * merge common dependency names early to provide deeper forward checking.cute-signatures
parent
a9d526836e
commit
6ae573887d
|
@ -257,6 +257,11 @@ static inline int list_hashed(const struct list_head *n)
|
|||
return n->next != n && n->next != NULL;
|
||||
}
|
||||
|
||||
static inline int list_empty(const struct list_head *n)
|
||||
{
|
||||
return n->next == n;
|
||||
}
|
||||
|
||||
#define list_entry(ptr, type, member) container_of(ptr,type,member)
|
||||
|
||||
#define list_for_each(pos, head) \
|
||||
|
|
1094
src/solver.c
1094
src/solver.c
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue