[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pypy-svn
Subject:    [pypy-svn] r66084 - in pypy/branch/pyjitpl5/pypy/jit/metainterp: .
From:       arigo () codespeak ! net
Date:       2009-06-30 15:08:52
Message-ID: 20090630150852.6AB72169E00 () codespeak ! net
[Download RAW message or body]

Author: arigo
Date: Tue Jun 30 17:08:51 2009
New Revision: 66084

Modified:
   pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_virtualizable.py
   pypy/branch/pyjitpl5/pypy/jit/metainterp/virtualizable.py
Log:
Actually, just killing these two lines in virtualizable.py
is enough to make the test pass on ootype too.


Modified: pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_virtualizable.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_virtualizable.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_virtualizable.py	Tue Jun 30 17:08:51 2009
@@ -576,7 +576,6 @@
 
 
     def test_external_read(self):
-        py.test.skip("Fails")
         jitdriver = JitDriver(greens = [], reds = ['frame'],
                               virtualizables = ['frame'])
         
@@ -605,11 +604,12 @@
 
         res = self.meta_interp(f, [123], policy=StopAtXPolicy(g))
         assert res == f(123)
-        self.check_loops(getfield_gc=0, setfield_gc=0)
 
 
     def test_external_write(self):
-        py.test.skip("Fails")
+        jitdriver = JitDriver(greens = [], reds = ['frame'],
+                              virtualizables = ['frame'])
+
         class Frame(object):
             _virtualizable2_ = ['x', 'y']
         class SomewhereElse:
@@ -627,14 +627,18 @@
             frame.y = 10
             somewhere_else.top_frame = frame
             while frame.x > 0:
+                jitdriver.can_enter_jit(frame=frame)
+                jitdriver.jit_merge_point(frame=frame)
                 g()
                 frame.x -= frame.y
             return frame.y
 
-        res = self.meta_interp(f, [240], exceptions=False,
-                               policy=StopAtXPolicy(g))
+        res = self.meta_interp(f, [240], policy=StopAtXPolicy(g))
         assert res == f(240)
-        self.check_loops(getfield_gc=0, setfield_gc=0)
+
+    def test_external_access_sometimes(self):
+        py.test.skip("known bug: access the frame in a residual call but"
+                     " only sometimes, so that it's not seen during tracing")
 
 
 class TestOOtype(#ExplicitVirtualizableTests,

Modified: pypy/branch/pyjitpl5/pypy/jit/metainterp/virtualizable.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/metainterp/virtualizable.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/metainterp/virtualizable.py	Tue Jun 30 17:08:51 2009
@@ -166,8 +166,6 @@
         return True
 
     def finish(self):
-        if self.is_oo:
-            return      # XXX implement me
         #
         def force_if_necessary(virtualizable):
             if virtualizable.vable_rti:
_______________________________________________
pypy-svn mailing list
pypy-svn@codespeak.net
http://codespeak.net/mailman/listinfo/pypy-svn
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic