s->provides = repo_addid_dep(pd->repo, s->provides, rel2id(pool, s->name, s->evr, REL_EQ, 1), 0);
s->supplements = repo_fix_legacy(pd->repo, s->provides, s->supplements);
+ /* see bugzilla bnc#190163 */
const char *flavor = findKernelFlavor(pd, s);
if (flavor)
{
|| !r->w2) /* rule is assertion */
continue;
- /* see addwatches(solv, r) */
+ /* see addwatches_rule(solv, r) */
r->n1 = solv->watches[nsolvables + r->w1];
solv->watches[nsolvables + r->w1] = r - solv->rules;
* add watches (for rule)
*/
-static void
-addwatches(Solver *solv, Rule *r)
+static inline void
+addwatches_rule(Solver *solv, Rule *r)
{
int nsolvables = solv->pool->nsolvables;
{
POOL_DEBUG(SAT_DEBUG_PROPAGATE, "propagate for decision %d level %d\n", -pkg, level);
solver_printruleelement(solv, SAT_DEBUG_PROPAGATE, 0, -pkg);
- if (0)
- solver_printwatches(solv, SAT_DEBUG_SCHUBI);
}
for (rp = watches + pkg; *rp; rp = nrp)
queue_push(&solv->learnt_pool, 0);
if (whyp)
*whyp = learnt_why;
+ solv->stats_learned++;
return rlevel;
}
Id lastweak;
POOL_DEBUG(SAT_DEBUG_UNSOLVABLE, "ANALYZE UNSOLVABLE ----------------------\n");
+ solv->stats_unsolvable++;
oldproblemcount = solv->problems.count;
oldlearntpoolcount = solv->learnt_pool.count;
{
/* at least 2 literals, needs watches */
watch2onhighest(solv, r);
- addwatches(solv, r);
+ addwatches_rule(solv, r);
}
solv->decisionmap[p > 0 ? p : -p] = p > 0 ? level : -level;
queue_push(&solv->decisionq, p);
}
break;
}
+ POOL_DEBUG(SAT_DEBUG_STATS, "solver statistics: %d learned rules, %d unsolvable\n", solv->stats_learned, solv->stats_unsolvable);
+
POOL_DEBUG(SAT_DEBUG_STATS, "done solving.\n\n");
queue_free(&dq);
}
queue_init(&redoq);
goterase = 0;
- /* disable all erase jobs (continuing weak "keep uninstalled" rules) */
+ /* disable all erase jobs (including weak "keep uninstalled" rules) */
for (i = solv->jobrules, r = solv->rules + i; i < solv->updaterules; i++, r++)
{
if (!r->w1)
}
solv->recommendations.count = recocount;
}
+
+ POOL_DEBUG(SAT_DEBUG_STATS, "final solver statistics: %d learned rules, %d unsolvable\n", solv->stats_learned, solv->stats_unsolvable);
queue_free(&redoq);
}