[zypp-commit] r11912 - in /trunk/sat-solver: applayer/decision.c applayer/decision.h bindings/decision.i bindings/ruby/tests/reasons.rb
Author: kkaempf Date: Tue Dec 9 12:02:04 2008 New Revision: 11912 URL: http://svn.opensuse.org/viewcvs/zypp?rev=11912&view=rev Log: drop 'reason' from decision struct, solver::explain is more informative Modified: trunk/sat-solver/applayer/decision.c trunk/sat-solver/applayer/decision.h trunk/sat-solver/bindings/decision.i trunk/sat-solver/bindings/ruby/tests/reasons.rb Modified: trunk/sat-solver/applayer/decision.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/applayer/decision.c?rev=11912&r1=11911&r2=11912&view=diff ============================================================================== --- trunk/sat-solver/applayer/decision.c (original) +++ trunk/sat-solver/applayer/decision.c Tue Dec 9 12:02:04 2008 @@ -20,13 +20,12 @@ #include "solverdebug.h" Decision * -decision_new( Pool *pool, int op, Id solvable, Id reason, Rule *rule ) +decision_new( Pool *pool, int op, Id solvable, Rule *rule ) { Decision *d = (Decision *)malloc( sizeof( Decision )); d->pool = pool; d->op = op; d->solvable = solvable; - d->reason = reason; d->rule = rule; return d; } @@ -43,7 +42,7 @@ Pool *pool = solver->pool; Repo *installed = solver->installed; Id p, *obsoletesmap = solver_create_decisions_obsoletesmap( solver ); - Id s, r; + Id s; int why; int op; Decision *d; @@ -52,30 +51,10 @@ if (!callback) return; /* no use to iterate without callback */ -#if 0 - if (installed) - { - FOR_REPO_SOLVABLES(installed, p, s) - { - if (solver->decisionmap[p] >= 0) - continue; - if (obsoletesmap[p]) - { - d = decision_new( pool, DECISION_OBSOLETE, s, pool_id2solvable( pool, obsoletesmap[p] ) ); - } - else - { - d = decision_new( pool, DECISION_REMOVE, s, NULL ); - } - callback( d, user_data ); - } - } -#endif for ( i = 0; i < solver->decisionq.count; i++) { p = solver->decisionq.elements[i]; why = solver->decisionq_why.elements[i]; - r = 0; if (p < 0) /* remove */ { @@ -84,7 +63,6 @@ if (obsoletesmap[p]) { op = DECISION_OBSOLETE; - r = obsoletesmap[p]; } else { @@ -93,7 +71,7 @@ } else if (p == SYSTEMSOLVABLE) { - continue; + continue; /* don't report 'keep system solvable installed' decision */ } else /* p > 0 */ { @@ -102,27 +80,18 @@ { Solvable *solv = pool_id2solvable( pool, p ); if (solv->repo == installed) - continue; /* thats a 'keep installed' decision, don't report */ + continue; /* don't report 'keep installed' decision */ } - if (!obsoletesmap[p]) + if (obsoletesmap[p]) { - op = DECISION_INSTALL; + op = DECISION_UPDATE; } else { - int j; - op = DECISION_UPDATE; - for (j = installed->start; j < installed->end; j++) - { - if (obsoletesmap[j] == p) - { - r = j; - break; - } - } + op = DECISION_INSTALL; } } - d = decision_new( pool, op, s, r, why ? solver->rules + why : NULL ); + d = decision_new( pool, op, s, why ? solver->rules + why : NULL ); if (callback( d, user_data )) break; } Modified: trunk/sat-solver/applayer/decision.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/applayer/decision.h?rev=11912&r1=11911&r2=11912&view=diff ============================================================================== --- trunk/sat-solver/applayer/decision.h (original) +++ trunk/sat-solver/applayer/decision.h Tue Dec 9 12:02:04 2008 @@ -31,11 +31,10 @@ enum decisions op; Pool *pool; Id solvable; - Id reason; Rule *rule; } Decision; -Decision *decision_new( Pool *pool, int op, Id solvable, Id reason, Rule *rule ); +Decision *decision_new( Pool *pool, int op, Id solvable, Rule *rule ); void decision_free( Decision *d ); void solver_decisions_iterate( Solver *solver, int (*callback)( const Decision *d, void *user_data ), void *user_data); Modified: trunk/sat-solver/bindings/decision.i URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/decision.i?rev=11912&r1=11911&r2=11912&view=diff ============================================================================== --- trunk/sat-solver/bindings/decision.i (original) +++ trunk/sat-solver/bindings/decision.i Tue Dec 9 12:02:04 2008 @@ -34,8 +34,6 @@ } XSolvable *solvable() { return xsolvable_new( $self->pool, $self->solvable ); } - XSolvable *reason() - { return xsolvable_new( $self->pool, $self->reason ); } Rule *rule() { return $self->rule; } } Modified: trunk/sat-solver/bindings/ruby/tests/reasons.rb URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/ruby/tests/reasons.rb?rev=11912&r1=11911&r2=11912&view=diff ============================================================================== --- trunk/sat-solver/bindings/ruby/tests/reasons.rb (original) +++ trunk/sat-solver/bindings/ruby/tests/reasons.rb Tue Dec 9 12:02:04 2008 @@ -89,7 +89,7 @@ when Satsolver::SOLVER_PROBLEM_SELF_CONFLICT: "self conflict" when Satsolver::SOLVER_PROBLEM_RPM_RULE: "rpm rule" else - "unknown" + "unknown (#{pi})" end end @@ -126,7 +126,7 @@ } solver.each_decision do |d| - puts "Decision: #{d.solvable}: #{d.op_s} (#{d.rule.to_dep(@pool)} | #{d.reason})" + puts "Decision: #{d.solvable}: #{d.op_s} (#{d.rule.to_dep(@pool)})" e = solver.explain( transaction, d) pis = pi_s e.shift rel = e.shift @@ -163,7 +163,7 @@ } solver.each_decision do |d| - puts "Decision: #{d.solvable}: #{d.op_s} (#{d.rule.to_dep(@pool)} | #{d.reason})" + puts "Decision: #{d.solvable}: #{d.op_s} (#{d.rule.to_dep(@pool)})" e = solver.explain( transaction, d) pis = pi_s e.shift rel = e.shift @@ -203,7 +203,7 @@ } solver.each_decision do |d| - puts "Decision: #{d.solvable}: #{d.op_s} (#{d.rule.to_dep(@pool) if d.rule} | #{d.reason})" + puts "Decision: #{d.solvable}: #{d.op_s} (#{d.rule.to_dep(@pool) if d.rule})" e = solver.explain( transaction, d) pis = pi_s e.shift rel = e.shift @@ -223,7 +223,7 @@ @pool.prepare solver = @pool.create_solver( ) - solver.dont_install_recommended = true +# solver.dont_install_recommended = true solver.solve( transaction ) solver.each_to_install { |s| puts "Install #{s}" @@ -239,7 +239,7 @@ puts "job(#{solver.jobrules_start}..#{solver.jobrules_end})" puts "learnt(#{solver.learntrules_start}..#{solver.learntrules_end})" solver.each_decision do |d| - puts " #{d.solvable}\n\t#{d.op_s} (#{d.rule}:#{d.rule.to_dep(@pool) if d.rule} | #{d.reason})" + puts " #{d.solvable}\n\t#{d.op_s} (#{d.rule}:#{d.rule.to_dep(@pool) if d.rule})" e = solver.explain( transaction, d) pis = pi_s e.shift rel = e.shift @@ -278,7 +278,7 @@ } solver.each_decision do |d| - puts "Decision: #{d.solvable}: #{d.op_s} (#{d.rule.to_dep(@pool) if d.rule} | #{d.reason})" + puts "Decision: #{d.solvable}: #{d.op_s} (#{d.rule.to_dep(@pool) if d.rule})" e = solver.explain( transaction, d) pis = pi_s e.shift rel = e.shift @@ -316,7 +316,7 @@ } solver.each_decision do |d| - puts "Decision: #{d.solvable}: #{d.op_s} (#{d.rule.to_dep(@pool) if d.rule} | #{d.reason})" + puts "Decision: #{d.solvable}: #{d.op_s} (#{d.rule.to_dep(@pool) if d.rule})" e = solver.explain( transaction, d) pis = pi_s e.shift rel = e.shift @@ -356,7 +356,7 @@ } solver.each_decision do |d| - puts "Decision: #{d.solvable}: #{d.op_s} (#{d.rule.to_dep(@pool)} | #{d.reason})" + puts "Decision: #{d.solvable}: #{d.op_s} (#{d.rule.to_dep(@pool)})" e = solver.explain( transaction, d) pis = pi_s e.shift rel = e.shift -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org
participants (1)
-
kkaempf@svn.opensuse.org