[pypy-svn] r29464 - pypy/dist/pypy/rpython

arigo at codespeak.net arigo at codespeak.net
Wed Jun 28 18:42:35 CEST 2006


Author: arigo
Date: Wed Jun 28 18:42:34 2006
New Revision: 29464

Modified:
   pypy/dist/pypy/rpython/llinterp.py
   pypy/dist/pypy/rpython/rgenop.py
Log:
(arre, pedronis, arigo)
Some helps for debugging.


Modified: pypy/dist/pypy/rpython/llinterp.py
==============================================================================
--- pypy/dist/pypy/rpython/llinterp.py	(original)
+++ pypy/dist/pypy/rpython/llinterp.py	Wed Jun 28 18:42:34 2006
@@ -409,7 +409,9 @@
         print
 
     def op_debug_pdb(self, *ll_args):
-        print "entering pbb...", ll_args
+        if self.llinterpreter.tracer:
+            self.llinterpreter.tracer.flush()
+        print "entering pdb...", ll_args
         import pdb
         pdb.set_trace()
 
@@ -907,6 +909,9 @@
                 text = '<b>%s</b>' % (text,)
             self.file.write(text.replace('\n', '\n'+self.indentation))
 
+    def flush(self):
+        self.file.flush()
+
 def wrap_func_or_boundmethod(llinterpreter, func, method_name):
     """
     Returns a callable that inteprets the given func or method_name when called.

Modified: pypy/dist/pypy/rpython/rgenop.py
==============================================================================
--- pypy/dist/pypy/rpython/rgenop.py	(original)
+++ pypy/dist/pypy/rpython/rgenop.py	Wed Jun 28 18:42:34 2006
@@ -143,8 +143,12 @@
 
 def _closelink(link, vars, targetblock):
     if isinstance(link, flowmodel.Link):
+        blockvars = dict.fromkeys(link.prevblock.getvariables())
         for v in vars:
-            assert isinstance(v, (flowmodel.Variable, flowmodel.Constant))
+            if isinstance(v, flowmodel.Variable):
+                assert v in blockvars    # link using vars not from prevblock!
+            else:
+                assert isinstance(v, flowmodel.Constant)
         assert ([v.concretetype for v in vars] ==
                 [v.concretetype for v in targetblock.inputargs])
         link.args[:] = vars



More information about the Pypy-commit mailing list