[Python-apps-commits] r12803 - in packages/cython/trunk/debian (3 files)

yoh at users.alioth.debian.org yoh at users.alioth.debian.org
Fri Feb 19 18:20:31 UTC 2016


    Date: Friday, February 19, 2016 @ 18:20:31
  Author: yoh
Revision: 12803

patches/deb-reproducible.patch - deterministically sort items for reproducible execution.  Thanks Chris Lamb (Closes: #806493)

Added:
  packages/cython/trunk/debian/patches/deb-reproducible.patch
Modified:
  packages/cython/trunk/debian/changelog
  packages/cython/trunk/debian/patches/series

Modified: packages/cython/trunk/debian/changelog
===================================================================
--- packages/cython/trunk/debian/changelog	2016-02-19 18:20:26 UTC (rev 12802)
+++ packages/cython/trunk/debian/changelog	2016-02-19 18:20:31 UTC (rev 12803)
@@ -1,6 +1,8 @@
 cython (0.23.4-1) unstable; urgency=medium
 
   * Fresh upstream bugfix release
+  * patches/deb-reproducible.patch - deterministically sort items for
+    reproducible execution.  Thanks Chris Lamb (Closes: #806493)
 
  -- Yaroslav Halchenko <debian at onerussian.com>  Thu, 18 Feb 2016 20:25:48 -0500
 

Added: packages/cython/trunk/debian/patches/deb-reproducible.patch
===================================================================
--- packages/cython/trunk/debian/patches/deb-reproducible.patch	                        (rev 0)
+++ packages/cython/trunk/debian/patches/deb-reproducible.patch	2016-02-19 18:20:31 UTC (rev 12803)
@@ -0,0 +1,34 @@
+diff --git a/Cython/Compiler/Nodes.py b/Cython/Compiler/Nodes.py
+index 3772daf..ae40cd5 100644
+--- a/Cython/Compiler/Nodes.py
++++ b/Cython/Compiler/Nodes.py
+@@ -7817,7 +7817,8 @@ class ParallelStatNode(StatNode, ParallelNode):
+     def initialize_privates_to_nan(self, code, exclude=None):
+         first = True
+ 
+-        for entry, (op, lastprivate) in self.privates.items():
++        for entry, (op, lastprivate) in sorted(self.privates.items(),
++                                               key=lambda x: x[0].cname):
+             if not op and (not exclude or entry != exclude):
+                 invalid_value = entry.type.invalid_value()
+ 
+@@ -8079,7 +8080,8 @@ class ParallelStatNode(StatNode, ParallelNode):
+         c = self.begin_of_parallel_control_block_point
+ 
+         temp_count = 0
+-        for entry, (op, lastprivate) in self.privates.items():
++        for entry, (op, lastprivate) in sorted(self.privates.items(),
++                                               key=lambda x: x[0].cname):
+             if not lastprivate or entry.type.is_pyobject:
+                 continue
+ 
+@@ -8608,7 +8610,8 @@ class ParallelRangeNode(ParallelStatNode):
+                 code.putln("#ifdef _OPENMP")
+             code.put("#pragma omp for")
+ 
+-        for entry, (op, lastprivate) in self.privates.items():
++        for entry, (op, lastprivate) in sorted(self.privates.items(),
++                                               key=lambda x: x[0].cname):
+             # Don't declare the index variable as a reduction
+             if op and op in "+*-&^|" and entry != self.target.entry:
+                 if entry.type.is_pyobject:

Modified: packages/cython/trunk/debian/patches/series
===================================================================
--- packages/cython/trunk/debian/patches/series	2016-02-19 18:20:26 UTC (rev 12802)
+++ packages/cython/trunk/debian/patches/series	2016-02-19 18:20:31 UTC (rev 12803)
@@ -1,2 +1,3 @@
 deb_disable_googleanalytics
 guess_longness.patch
+deb-reproducible.patch




More information about the Python-apps-commits mailing list