[pypy-commit] pypy array-propagate-len: Fix optimized trace debugging utility. Previously the print loop would use

squeaky noreply at buildbot.pypy.org
Sat Feb 15 18:21:13 CET 2014


Author: Squeaky <squeaky_pl at gmx.com>
Branch: array-propagate-len
Changeset: r69151:6bace6054472
Date: 2014-02-14 12:15 +0100
http://bitbucket.org/pypy/pypy/changeset/6bace6054472/

Log:	Fix optimized trace debugging utility. Previously the print loop
	would use zip which always truncates the output to the shorter list.
	This produces confusing output becuase it would later fail on trace
	length mismatch but printing truncated output to stdout looks like
	there is same number of operations.

diff --git a/rpython/jit/metainterp/optimizeopt/util.py b/rpython/jit/metainterp/optimizeopt/util.py
--- a/rpython/jit/metainterp/optimizeopt/util.py
+++ b/rpython/jit/metainterp/optimizeopt/util.py
@@ -1,3 +1,5 @@
+import itertools
+
 import py
 from rpython.rlib.objectmodel import r_dict, compute_identity_hash
 from rpython.rlib.rarithmetic import intmask
@@ -136,13 +138,16 @@
     print ' Comparing lists '.center(totwidth, '-')
     text_right = text_right or 'expected'
     print '%s| %s' % ('optimized'.center(width), text_right.center(width))
-    for op1, op2 in zip(oplist1, oplist2):
+    for op1, op2 in itertools.izip_longest(oplist1, oplist2, fillvalue=''):
         txt1 = str(op1)
         txt2 = str(op2)
         while txt1 or txt2:
             print '%s| %s' % (txt1[:width].ljust(width), txt2[:width])
             txt1 = txt1[width:]
             txt2 = txt2[width:]
+    print '-' * totwidth
+
+    for op1, op2 in zip(oplist1, oplist2):
         assert op1.getopnum() == op2.getopnum()
         assert op1.numargs() == op2.numargs()
         for i in range(op1.numargs()):
@@ -177,6 +182,5 @@
                     else:
                         assert False
     assert len(oplist1) == len(oplist2)
-    print '-'*totwidth
     return True
 


More information about the pypy-commit mailing list