[pypy-svn] r34137 - in pypy/dist/pypy/jit: hintannotator timeshifter/test

rxe at codespeak.net rxe at codespeak.net
Fri Nov 3 18:49:07 CET 2006


Author: rxe
Date: Fri Nov  3 18:48:56 2006
New Revision: 34137

Modified:
   pypy/dist/pypy/jit/hintannotator/model.py
   pypy/dist/pypy/jit/timeshifter/test/test_portal.py
Log:
fix broken tests with over eager HintError.  add some more binary ops.  add test for dfa recognizeparts()  - (arre, rxe)

Modified: pypy/dist/pypy/jit/hintannotator/model.py
==============================================================================
--- pypy/dist/pypy/jit/hintannotator/model.py	(original)
+++ pypy/dist/pypy/jit/hintannotator/model.py	Fri Nov  3 18:48:56 2006
@@ -17,7 +17,7 @@
                       ptr_nonzero
                       ptr_iszero""".split()
 
-BINARY_OPERATIONS = """int_add int_sub int_mul int_mod int_and int_rshift int_floordiv
+BINARY_OPERATIONS = """int_add int_sub int_mul int_mod int_and int_rshift int_floordiv int_xor int_or
                        uint_add uint_sub uint_mul uint_mod uint_and uint_lshift uint_rshift uint_floordiv
                        char_gt char_lt char_le char_ge char_eq char_ne
                        int_gt int_lt int_le int_ge int_eq int_ne
@@ -267,6 +267,10 @@
             hs_concrete = SomeLLAbstractConstant(hs_v1.concretetype, {})
             hs_concrete.eager_concrete = True
             return hs_concrete 
+        for name in ["reverse_split_queue", "global_merge_point"]:
+            if hs_flags.const.get(name, False):
+                return
+
         raise HintError("hint %s makes no sense on %r" % (hs_flags.const,
                                                           hs_v1))
     

Modified: pypy/dist/pypy/jit/timeshifter/test/test_portal.py
==============================================================================
--- pypy/dist/pypy/jit/timeshifter/test/test_portal.py	(original)
+++ pypy/dist/pypy/jit/timeshifter/test/test_portal.py	Fri Nov  3 18:48:56 2006
@@ -153,6 +153,19 @@
         res = self.timeshift_from_portal(main, recognizetable, [1], policy=P_NOVIRTUAL)
         assert not res
 
+    def test_dfa_compile2(self):
+        from pypy.lang.automata.dfa import getautomaton, recognizeparts
+        a = getautomaton()
+        def main(gets):
+            s = ["aaaaaaaaaab", "aaaa"][gets]
+            return recognizeparts(a.transitions, a.final_states, s)
+
+        res = self.timeshift_from_portal(main, recognizeparts, [0], policy=P_NOVIRTUAL)
+        assert res
+
+        res = self.timeshift_from_portal(main, recognizeparts, [1], policy=P_NOVIRTUAL)
+        assert not res
+
     def test_method_call_promote(self):
         class Base(object):
             pass



More information about the Pypy-commit mailing list