[DRE-commits] [ruby-dep-selector] 08/17: Patch: port to libgecode >= 4.0 (Closes: #710104)

Hleb Valoshka tsfgnu-guest at moszumanska.debian.org
Thu Jun 25 21:36:15 UTC 2015


This is an automated email from the git hooks/post-receive script.

tsfgnu-guest pushed a commit to branch master
in repository ruby-dep-selector.

commit 643a405e7c009f234990c83bfded532532dc998d
Author: Hleb Valoshka <375gnu at gmail.com>
Date:   Thu Jun 25 15:59:02 2015 +0300

    Patch: port to libgecode >= 4.0 (Closes: #710104)
---
 .../0002-Port-to-libgecode-4.0-Closes-710104.patch | 108 +++++++++++++++++++++
 debian/patches/series                              |   1 +
 2 files changed, 109 insertions(+)

diff --git a/debian/patches/0002-Port-to-libgecode-4.0-Closes-710104.patch b/debian/patches/0002-Port-to-libgecode-4.0-Closes-710104.patch
new file mode 100644
index 0000000..78f0e01
--- /dev/null
+++ b/debian/patches/0002-Port-to-libgecode-4.0-Closes-710104.patch
@@ -0,0 +1,108 @@
+From: =?utf-8?q?C=C3=A9dric_Boutillier?= <boutil at debian.org>
+Date: Tue, 26 Nov 2013 15:18:56 +0100
+Subject: Port to libgecode >= 4.0 (Closes: #710104)
+
+* Port to libgecode >= 4.0 (Closes: #710104)
+  - Restart class has been renamed to RBS which needs an Engine (chose DFS)
+  - instances of RBS need a Search::Cutoff (arbitraly chose Geometric)
+  - variable selection are now functions and need brackets
+  - statistics about memory are not available in gecode (by default)
+---
+ ext/dep_gecode/dep_selector_to_gecode.cpp | 43 ++++++++++++++++---------------
+ ext/dep_gecode/dep_selector_to_gecode.h   |  2 +-
+ 2 files changed, 23 insertions(+), 22 deletions(-)
+
+diff --git a/ext/dep_gecode/dep_selector_to_gecode.cpp b/ext/dep_gecode/dep_selector_to_gecode.cpp
+index 794d4af..1adf906 100644
+--- a/ext/dep_gecode/dep_selector_to_gecode.cpp
++++ b/ext/dep_gecode/dep_selector_to_gecode.cpp
+@@ -386,30 +386,30 @@ void VersionProblem::Finalize()
+         DEBUG_STREAM.flush();
+     }
+     // This branching starts as far as possible from the solution, in order to exercise the optimization functions.
+-    branch(*this, disabled_package_variables, INT_VAR_SIZE_MIN, INT_VAL_MAX);
+-    branch(*this, package_versions, INT_VAR_SIZE_MIN, INT_VAL_MIN);
+-    branch(*this, total_required_disabled, INT_VAL_MAX);
+-    branch(*this, total_induced_disabled, INT_VAL_MAX);
+-    branch(*this, total_suspicious_disabled, INT_VAL_MAX);
+-    branch(*this, total_disabled, INT_VAL_MAX);
+-    branch(*this, at_latest, INT_VAR_SIZE_MIN, INT_VAL_MIN);
+-    branch(*this, total_preferred_at_latest, INT_VAL_MIN);
+-    branch(*this, total_not_preferred_at_latest, INT_VAL_MIN);
++    branch(*this, disabled_package_variables, INT_VAR_SIZE_MIN(), INT_VAL_MAX());
++    branch(*this, package_versions, INT_VAR_SIZE_MIN(), INT_VAL_MIN());
++    branch(*this, total_required_disabled, INT_VAL_MAX());
++    branch(*this, total_induced_disabled, INT_VAL_MAX());
++    branch(*this, total_suspicious_disabled, INT_VAL_MAX());
++    branch(*this, total_disabled, INT_VAL_MAX());
++    branch(*this, at_latest, INT_VAR_SIZE_MIN(), INT_VAL_MIN());
++    branch(*this, total_preferred_at_latest, INT_VAL_MIN());
++    branch(*this, total_not_preferred_at_latest, INT_VAL_MIN());
+ #else // USE_DUMB_BRANCHING
+     if (debugLogging) {
+         DEBUG_STREAM << debugPrefix << "    Adding branching (BEST)" << std::endl;
+         DEBUG_STREAM.flush();
+     }
+     // This branching is meant to start with most probable solution
+-    branch(*this, disabled_package_variables, INT_VAR_SIZE_MIN, INT_VAL_MIN);
+-    branch(*this, package_versions, INT_VAR_SIZE_MIN, INT_VAL_MAX);
+-    branch(*this, total_required_disabled, INT_VAL_MIN);
+-    branch(*this, total_induced_disabled, INT_VAL_MIN);
+-    branch(*this, total_suspicious_disabled, INT_VAL_MIN);
+-    branch(*this, total_disabled, INT_VAL_MIN);
+-    branch(*this, at_latest, INT_VAR_SIZE_MIN, INT_VAL_MAX);
+-    branch(*this, total_preferred_at_latest, INT_VAL_MAX);
+-    branch(*this, total_not_preferred_at_latest, INT_VAL_MAX);
++    branch(*this, disabled_package_variables, INT_VAR_SIZE_MIN(), INT_VAL_MIN());
++    branch(*this, package_versions, INT_VAR_SIZE_MIN(), INT_VAL_MAX());
++    branch(*this, total_required_disabled, INT_VAL_MIN());
++    branch(*this, total_induced_disabled, INT_VAL_MIN());
++    branch(*this, total_suspicious_disabled, INT_VAL_MIN());
++    branch(*this, total_disabled, INT_VAL_MIN());
++    branch(*this, at_latest, INT_VAR_SIZE_MIN(), INT_VAL_MAX());
++    branch(*this, total_preferred_at_latest, INT_VAL_MAX());
++    branch(*this, total_not_preferred_at_latest, INT_VAL_MAX());
+ #endif // USE_DUMB_BRANCHING
+ 
+     if (debugLogging) {
+@@ -617,7 +617,9 @@ VersionProblem * VersionProblem::InnerSolve(VersionProblem * problem, int &iterc
+     DEBUG_STREAM << "Creating solver" << std::endl << std::flush;
+ #endif
+     VersionProblem *best_solution = NULL;
+-    Restart<VersionProblem> solver(problem);
++    Search::Options o;
++    o.cutoff = Search::Cutoff::geometric();
++    RBS<DFS,VersionProblem> solver(problem, o);
+ 
+ #ifdef MEMORY_DEBUG
+     DEBUG_STREAM << "Starting Solve" << std::endl << std::flush;
+@@ -638,7 +640,7 @@ VersionProblem * VersionProblem::InnerSolve(VersionProblem * problem, int &iterc
+                 DEBUG_STREAM << problem->debugPrefix << "Trial Solution #" << itercount << "===============================" << std::endl;
+                 const Search::Statistics & stats = solver.statistics();
+                 DEBUG_STREAM << problem->debugPrefix << "Solver stats: Prop:" << stats.propagate << " Fail:" << stats.fail << " Node:" << stats.node;
+-                DEBUG_STREAM << " Depth:" << stats.depth << " memory:" << stats.memory << std::endl;
++                DEBUG_STREAM << " Depth:" << stats.depth << std::endl;
+                 solution->Print(DEBUG_STREAM);
+             }
+         }
+@@ -653,7 +655,6 @@ VersionProblem * VersionProblem::InnerSolve(VersionProblem * problem, int &iterc
+         std::cerr << "Time: " << elapsed_time << "ms ";
+         const Search::Statistics & final_stats = solver.statistics();
+         std::cerr << "Stats: " << itercount << " steps, ";
+-        std::cerr << final_stats.memory << " bytes, ";
+         std::cerr << final_stats.propagate << " props, " << final_stats.node << " nodes, " << final_stats.depth << " depth ";
+         std::cerr << std::endl << std::flush;
+     }
+diff --git a/ext/dep_gecode/dep_selector_to_gecode.h b/ext/dep_gecode/dep_selector_to_gecode.h
+index f99ed5d..05cd9e2 100644
+--- a/ext/dep_gecode/dep_selector_to_gecode.h
++++ b/ext/dep_gecode/dep_selector_to_gecode.h
+@@ -159,7 +159,7 @@ class Solver {
+   Solver(VersionProblem *s);
+   VersionProblem GetNextSolution();
+  private:
+-  Restart<VersionProblem> solver;
++  RBS<DFS,VersionProblem> solver;
+ };
+ 
+ #endif // dep_selector_to_gecode_h
diff --git a/debian/patches/series b/debian/patches/series
index a40379e..367abf6 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 0001-Do-not-require-dep-selector-libgecode.patch
+0002-Port-to-libgecode-4.0-Closes-710104.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-dep-selector.git



More information about the Pkg-ruby-extras-commits mailing list