Author: Maciej Fijalkowski <fij...@gmail.com>
Branch: kill-someobject
Changeset: r57846:4bd09f2bcf13
Date: 2012-10-07 19:55 +0200
http://bitbucket.org/pypy/pypy/changeset/4bd09f2bcf13/

Log:    merge

diff --git a/pypy/rpython/memory/gctransform/boehm.py 
b/pypy/rpython/memory/gctransform/boehm.py
--- a/pypy/rpython/memory/gctransform/boehm.py
+++ b/pypy/rpython/memory/gctransform/boehm.py
@@ -57,12 +57,6 @@
             self.mixlevelannotator.finish()   # for now
             self.mixlevelannotator.backend_optimize()
 
-    def push_alive_nopyobj(self, var, llops):
-        pass
-
-    def pop_alive_nopyobj(self, var, llops):
-        pass
-
     def gct_fv_gc_malloc(self, hop, flags, TYPE, c_size):
         # XXX same behavior for zero=True: in theory that's wrong
         if TYPE._is_atomic():
diff --git a/pypy/rpython/memory/gctransform/framework.py 
b/pypy/rpython/memory/gctransform/framework.py
--- a/pypy/rpython/memory/gctransform/framework.py
+++ b/pypy/rpython/memory/gctransform/framework.py
@@ -5,8 +5,7 @@
 from pypy.rpython.lltypesystem.lloperation import LL_OPERATIONS
 from pypy.rpython.memory import gctypelayout
 from pypy.rpython.memory.gctransform.log import log
-from pypy.rpython.memory.gctransform.support import get_rtti, \
-     ll_call_destructor, type_contains_pyobjs, var_ispyobj
+from pypy.rpython.memory.gctransform.support import get_rtti, 
ll_call_destructor
 from pypy.rpython.memory.gctransform.transform import GCTransformer
 from pypy.rpython.memory.gctypelayout import ll_weakref_deref, WEAKREF, \
      WEAKREFPTR
@@ -19,6 +18,7 @@
 
 TYPE_ID = llgroup.HALFWORD
 
+
 class CollectAnalyzer(graphanalyze.BoolGraphAnalyzer):
 
     def analyze_direct_call(self, graph, seen=None):
@@ -1174,21 +1174,13 @@
     def var_needs_set_transform(self, var):
         return var_needsgc(var)
 
-    def push_alive_nopyobj(self, var, llops):
-        pass
-
-    def pop_alive_nopyobj(self, var, llops):
-        pass
-
     def get_livevars_for_roots(self, hop, keep_current_args=False):
         if self.gcdata.gc.moving_gc and not keep_current_args:
             # moving GCs don't borrow, so the caller does not need to keep
             # the arguments alive
-            livevars = [var for var in hop.livevars_after_op()
-                            if not var_ispyobj(var)]
+            livevars = [var for var in hop.livevars_after_op()]
         else:
             livevars = hop.livevars_after_op() + hop.current_op_keeps_alive()
-            livevars = [var for var in livevars if not var_ispyobj(var)]
         return livevars
 
     def compute_borrowed_vars(self, graph):
@@ -1244,7 +1236,6 @@
         rtti = get_rtti(TYPE)
         destrptr = rtti._obj.destructor_funcptr
         DESTR_ARG = lltype.typeOf(destrptr).TO.ARGS[0]
-        assert not type_contains_pyobjs(TYPE), "not implemented"
         typename = TYPE.__name__
         def ll_finalizer(addr, ignored):
             v = llmemory.cast_adr_to_ptr(addr, DESTR_ARG)
diff --git a/pypy/rpython/memory/gctransform/refcounting.py 
b/pypy/rpython/memory/gctransform/refcounting.py
--- a/pypy/rpython/memory/gctransform/refcounting.py
+++ b/pypy/rpython/memory/gctransform/refcounting.py
@@ -142,11 +142,11 @@
     def var_needs_set_transform(self, var):
         return var_needsgc(var)
 
-    def push_alive_nopyobj(self, var, llops):
+    def push_alive(self, var, llops):
         v_adr = gen_cast(llops, llmemory.Address, var)
         llops.genop("direct_call", [self.increfptr, v_adr])
 
-    def pop_alive_nopyobj(self, var, llops):
+    def pop_alive(self, var, llops):
         PTRTYPE = var.concretetype
         v_adr = gen_cast(llops, llmemory.Address, var)
 
diff --git a/pypy/rpython/memory/gctransform/test/test_transform.py 
b/pypy/rpython/memory/gctransform/test/test_transform.py
--- a/pypy/rpython/memory/gctransform/test/test_transform.py
+++ b/pypy/rpython/memory/gctransform/test/test_transform.py
@@ -5,22 +5,19 @@
 from pypy.translator.translator import TranslationContext, graphof
 from pypy.translator.exceptiontransform import ExceptionTransformer
 from pypy.rpython.lltypesystem import lltype
-from pypy.objspace.flow.model import Variable
-from pypy.annotation import model as annmodel
-from pypy.rpython.extregistry import ExtRegistryEntry
 from pypy import conftest
 
+
 class LLInterpedTranformerTests:
 
     def llinterpreter_for_transformed_graph(self, f, args_s):
         from pypy.rpython.llinterp import LLInterpreter
         from pypy.translator.c.genc import CStandaloneBuilder
-        from pypy.translator.c import gc
 
         t = rtype(f, args_s)
         # XXX we shouldn't need an actual gcpolicy here.
         cbuild = CStandaloneBuilder(t, f, t.config, gcpolicy=self.gcpolicy)
-        db = cbuild.generate_graphs_for_llinterp()
+        cbuild.generate_graphs_for_llinterp()
         graph = cbuild.getentrypointptr()._obj.graph
         # arguments cannot be GC objects because nobody would put a
         # proper header on them
@@ -32,7 +29,6 @@
             t.view()
         return llinterp, graph
 
-
     def test_simple(self):
         from pypy.annotation.model import SomeInteger
 
@@ -67,7 +63,6 @@
                     r.append(x)
             return len(r)
 
-
         llinterp, graph = self.llinterpreter_for_transformed_graph(f, 
[SomeInteger()])
 
         res = llinterp.eval_graph(graph, [0])
@@ -85,7 +80,6 @@
                 x = 'brrrrrrr'
             return len(x + 'a')
 
-
         llinterp, graph = self.llinterpreter_for_transformed_graph(f, 
[SomeBool()])
 
         res = llinterp.eval_graph(graph, [True])
@@ -93,12 +87,13 @@
         res = llinterp.eval_graph(graph, [False])
         assert res == f(False)
 
+
 class _TestGCTransformer(BaseGCTransformer):
 
-    def push_alive_nopyobj(self, var, llops):
+    def push_alive(self, var, llops):
         llops.genop("gc_push_alive", [var])
 
-    def pop_alive_nopyobj(self, var, llops):
+    def pop_alive(self, var, llops):
         llops.genop("gc_pop_alive", [var])
 
 
@@ -151,7 +146,7 @@
         t.buildrtyper().specialize()
     if conftest.option.view:
         t.view()
-    return t    
+    return t
 
 def rtype_and_transform(func, inputtypes, transformcls, specialize=True, 
check=True):
     t = rtype(func, inputtypes, specialize)
@@ -199,7 +194,7 @@
         c.x = 1
         return c
     t, transformer = rtype_and_transform(f, [], _TestGCTransformer)
-    
+
 def test_call_function():
     class C:
         pass
@@ -323,7 +318,7 @@
         except ValueError:
             return 0
     t, transformer = rtype_and_transform(g, [int], _TestGCTransformer)
-    
+
 def test_no_livevars_with_exception():
     def g():
         raise TypeError
@@ -338,7 +333,8 @@
 def test_bare_setfield():
     from pypy.rpython.lltypesystem.lloperation import llop
     class A:
-        def __init__(self, obj): self.x = obj
+        def __init__(self, obj):
+            self.x = obj
     def f(v):
         inst = A(v)
         llop.setfield(lltype.Void, inst, 'x', v)
diff --git a/pypy/rpython/memory/gctransform/transform.py 
b/pypy/rpython/memory/gctransform/transform.py
--- a/pypy/rpython/memory/gctransform/transform.py
+++ b/pypy/rpython/memory/gctransform/transform.py
@@ -312,15 +312,9 @@
         self.pop_alive(v_old, hop.llops)
 
     def push_alive(self, var, llops):
-        self.push_alive_nopyobj(var, llops)
+        pass
 
     def pop_alive(self, var, llops):
-        self.pop_alive_nopyobj(var, llops)
-
-    def push_alive_nopyobj(self, var, llops):
-        pass
-
-    def pop_alive_nopyobj(self, var, llops):
         pass
 
     def var_needs_set_transform(self, var):
diff --git a/pypy/rpython/memory/test/test_transformed_gc.py 
b/pypy/rpython/memory/test/test_transformed_gc.py
--- a/pypy/rpython/memory/test/test_transformed_gc.py
+++ b/pypy/rpython/memory/test/test_transformed_gc.py
@@ -1,10 +1,9 @@
 import py
-import sys
 import inspect
+
 from pypy.translator.c import gc
 from pypy.annotation import model as annmodel
-from pypy.annotation import policy as annpolicy
-from pypy.rpython.lltypesystem import lltype, llmemory, llarena, rffi, llgroup
+from pypy.rpython.lltypesystem import lltype, llmemory, rffi, llgroup
 from pypy.rpython.memory.gctransform import framework, shadowstack
 from pypy.rpython.lltypesystem.lloperation import llop, void
 from pypy.rlib.objectmodel import compute_unique_id, we_are_translated
@@ -25,7 +24,7 @@
     t.config.translation.gc = gcname
     t.config.translation.gcremovetypeptr = True
     t.config.set(**extraconfigopts)
-    ann = t.buildannotator(policy=annpolicy.StrictAnnotatorPolicy())
+    ann = t.buildannotator()
     ann.build_types(func, inputtypes)
 
     if specialize:
diff --git a/pypy/rpython/ootypesystem/test/test_ooclean.py 
b/pypy/rpython/ootypesystem/test/test_ooclean.py
--- a/pypy/rpython/ootypesystem/test/test_ooclean.py
+++ b/pypy/rpython/ootypesystem/test/test_ooclean.py
@@ -1,25 +1,21 @@
-from pypy.rpython.lltypesystem import lltype
 from pypy.rpython.ootypesystem import ootype
 from pypy.rpython.test.test_llinterp import get_interpreter
 import py
-import sys
 
 
 def check_only_ootype(graph):
     def check_ootype(v):
         t = v.concretetype
         assert isinstance(t, ootype.Primitive) or isinstance(t, ootype.OOType)
-        
     for block in graph.iterblocks():
         for var in block.getvariables():
             check_ootype(var)
         for const in block.getconstants():
             check_ootype(const)
 
-def interpret(func, values, view=False, viewbefore=False, policy=None,
-              someobjects=False):
+def interpret(func, values, view=False, viewbefore=False, policy=None):
     interp, graph = get_interpreter(func, values, view, viewbefore, policy,
-                             someobjects, type_system='ootype')
+                             type_system='ootype')
     for g in interp.typer.annotator.translator.graphs:
         check_only_ootype(g)
     return interp.eval_graph(graph, values)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to