[pypy-svn] r76209 - in pypy/branch/interplevel-array/pypy: jit/metainterp jit/tl module/array/test module/pypyjit/test

hakanardo at codespeak.net hakanardo at codespeak.net
Wed Jul 14 17:44:37 CEST 2010


Author: hakanardo
Date: Wed Jul 14 17:44:35 2010
New Revision: 76209

Modified:
   pypy/branch/interplevel-array/pypy/jit/metainterp/optimizeopt.py
   pypy/branch/interplevel-array/pypy/jit/tl/pypyjit_demo.py
   pypy/branch/interplevel-array/pypy/module/array/test/test_array.py
   pypy/branch/interplevel-array/pypy/module/pypyjit/test/test_pypy_c.py
Log:
extracted 2.6 incompatible parts into a separate test with a skip

Modified: pypy/branch/interplevel-array/pypy/jit/metainterp/optimizeopt.py
==============================================================================
--- pypy/branch/interplevel-array/pypy/jit/metainterp/optimizeopt.py	(original)
+++ pypy/branch/interplevel-array/pypy/jit/metainterp/optimizeopt.py	Wed Jul 14 17:44:35 2010
@@ -623,7 +623,7 @@
     def find_rewriteable_constant(self, op, args):
         try:
             oldopnum = opboolinvers[op.opnum]
-            targ = args[0:2] + [ConstInt(oldopnum)]
+            targ = [args[0], args[1], ConstInt(oldopnum)]
             oldop = self.pure_operations.get(targ, None)
             if oldop is not None and oldop.descr is op.descr:
                 value = self.getvalue(oldop.result)
@@ -639,7 +639,7 @@
 
         try:
             oldopnum = opboolreflex[op.opnum]
-            targ = args[1::-1] + [ConstInt(oldopnum)]
+            targ = [args[1], args[0], ConstInt(oldopnum)]
             oldop = self.pure_operations.get(targ, None)
             if oldop is not None and oldop.descr is op.descr:
                 value = self.getvalue(oldop.result)

Modified: pypy/branch/interplevel-array/pypy/jit/tl/pypyjit_demo.py
==============================================================================
--- pypy/branch/interplevel-array/pypy/jit/tl/pypyjit_demo.py	(original)
+++ pypy/branch/interplevel-array/pypy/jit/tl/pypyjit_demo.py	Wed Jul 14 17:44:35 2010
@@ -37,24 +37,24 @@
 ## t2 = time.time()
 ## print t2 - t1
 
-## from array import array
-## def f(img):
-##     i=0
-##     sa=0
-##     while i<4:
-##         sa+=img[i]
-##         i+=1
-##     return sa
-
-## img=array('i',(1,2,3,4))
-## print f(img)
-
-def f():
-    a=7
+from array import array
+def f(img):
     i=0
+    sa=0
     while i<4:
-        if  i<0: break
-        if  i<0: break
+        sa+=img[i]
         i+=1
+    return sa
+
+img=array('i',(1,2,3,4))
+print f(img)
+
+## def f():
+##     a=7
+##     i=0
+##     while i<4:
+##         if  i<0: break
+##         if  i<0: break
+##         i+=1
 
-f()
+## f()

Modified: pypy/branch/interplevel-array/pypy/module/array/test/test_array.py
==============================================================================
--- pypy/branch/interplevel-array/pypy/module/array/test/test_array.py	(original)
+++ pypy/branch/interplevel-array/pypy/module/array/test/test_array.py	Wed Jul 14 17:44:35 2010
@@ -343,6 +343,21 @@
                             assert repr(arr) == repr(self.array('i', lst))
                         except ValueError:
                             assert not ok
+
+    def test_reversingslice_pre26(self):
+        import sys
+        if sys.version_info >= (2, 6):
+            py.test.skip('arrays can handle more slice opps than lists in 2.6')
+
+        for a in range(-4,5):
+            for b in range(-4,5):
+                for c in [-4, -3, -2, -1, 1, 2, 3, 4]:
+                    lst = [1, 2, 3]
+                    arr=self.array('i', lst)
+                    for vals in ([4,5], [6], []):
+                        try:
+                            lst[a:b:c]=vals
+                        except ValueError:
                             raises(ValueError,
                                    "arr[a:b:c]=self.array('i', vals)")
 

Modified: pypy/branch/interplevel-array/pypy/module/pypyjit/test/test_pypy_c.py
==============================================================================
--- pypy/branch/interplevel-array/pypy/module/pypyjit/test/test_pypy_c.py	(original)
+++ pypy/branch/interplevel-array/pypy/module/pypyjit/test/test_pypy_c.py	Wed Jul 14 17:44:35 2010
@@ -615,6 +615,17 @@
             return total
         ''', 170, ([], 4999450000L))
 
+    def test_boolrewrite(self):
+        self.run_source('''
+        def main(a,b,c):
+            sa = 0
+            for i in range(100000):
+                if b < a: sa += 1
+                else: sa += 2
+                if b >= c: sa += 3
+                else: sa += 4
+        ''', 0, ([0, 1, 0], 7))
+
 class AppTestJIT(PyPyCJITTests):
     def setup_class(cls):
         if not option.runappdirect:



More information about the Pypy-commit mailing list