[pypy-commit] pypy kill-ootype: Remove all dependencies on ootypesystem from rpython/jit/

rlamy noreply at buildbot.pypy.org
Wed Jul 10 18:20:39 CEST 2013


Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: kill-ootype
Changeset: r65321:9ffbd90b31dd
Date: 2013-07-10 03:58 +0200
http://bitbucket.org/pypy/pypy/changeset/9ffbd90b31dd/

Log:	Remove all dependencies on ootypesystem from rpython/jit/

diff --git a/rpython/jit/metainterp/optimizeopt/test/test_util.py b/rpython/jit/metainterp/optimizeopt/test/test_util.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_util.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_util.py
@@ -1,7 +1,6 @@
 import py, random
 
 from rpython.rtyper.lltypesystem import lltype, llmemory, rclass, rstr
-from rpython.rtyper.ootypesystem import ootype
 from rpython.rtyper.lltypesystem.rclass import OBJECT, OBJECT_VTABLE
 from rpython.rtyper.rclass import FieldListAccessor, IR_QUASIIMMUTABLE
 
diff --git a/rpython/jit/metainterp/test/support.py b/rpython/jit/metainterp/test/support.py
--- a/rpython/jit/metainterp/test/support.py
+++ b/rpython/jit/metainterp/test/support.py
@@ -1,7 +1,6 @@
 
 import py, sys
 from rpython.rtyper.lltypesystem import lltype, llmemory
-from rpython.rtyper.ootypesystem import ootype
 from rpython.jit.backend.llgraph import runner
 from rpython.jit.metainterp.warmspot import ll_meta_interp, get_stats
 from rpython.jit.metainterp.warmstate import unspecialize_value
diff --git a/rpython/jit/metainterp/test/test_ajit.py b/rpython/jit/metainterp/test/test_ajit.py
--- a/rpython/jit/metainterp/test/test_ajit.py
+++ b/rpython/jit/metainterp/test/test_ajit.py
@@ -14,7 +14,6 @@
 from rpython.rlib.longlong2float import float2longlong, longlong2float
 from rpython.rlib.rarithmetic import ovfcheck, is_valid_int
 from rpython.rtyper.lltypesystem import lltype, rffi
-from rpython.rtyper.ootypesystem import ootype
 
 
 class BasicTests:
@@ -1218,8 +1217,6 @@
         res = self.interp_operations(fn, [1])
         assert res == 1
         self.check_operations_history(guard_class=0)
-        if self.type_system == 'ootype':
-            self.check_operations_history(instanceof=0)
 
     def test_r_dict(self):
         from rpython.rlib.objectmodel import r_dict
diff --git a/rpython/jit/metainterp/test/test_virtual.py b/rpython/jit/metainterp/test/test_virtual.py
--- a/rpython/jit/metainterp/test/test_virtual.py
+++ b/rpython/jit/metainterp/test/test_virtual.py
@@ -5,7 +5,6 @@
 from rpython.jit.metainterp.test.support import LLJitMixin
 from rpython.rtyper.lltypesystem import lltype, rclass, rffi
 from rpython.rtyper.lltypesystem.lloperation import llop
-from rpython.rtyper.ootypesystem import ootype
 from rpython.jit.codewriter import heaptracker
 
 class VirtualTests:
@@ -1277,13 +1276,6 @@
         return lltype.malloc(NODE)
 
 
-
-
-OONODE = ootype.Instance('NODE', ootype.ROOT, {})
-OONODE._add_fields({'value': ootype.Signed,
-                    'floatval' : ootype.Float,
-                    'extra': ootype.Signed})
-
 # ____________________________________________________________
 # Run 3: all the tests use lltype.malloc to make a NODE2
 # (same as Run 2 but it is part of the OBJECT hierarchy)
diff --git a/rpython/jit/metainterp/typesystem.py b/rpython/jit/metainterp/typesystem.py
--- a/rpython/jit/metainterp/typesystem.py
+++ b/rpython/jit/metainterp/typesystem.py
@@ -1,29 +1,18 @@
 from rpython.rtyper.lltypesystem import lltype, llmemory, rclass
-from rpython.rtyper.ootypesystem import ootype
-from rpython.rtyper.annlowlevel import cast_base_ptr_to_instance, llstr, oostr
+from rpython.rtyper.annlowlevel import cast_base_ptr_to_instance, llstr
 from rpython.rtyper.annlowlevel import cast_instance_to_base_ptr
-from rpython.rtyper.annlowlevel import cast_instance_to_base_obj
 from rpython.jit.metainterp import history
 from rpython.jit.codewriter import heaptracker
 from rpython.rlib.objectmodel import r_dict, specialize
 
 def deref(T):
-    if isinstance(T, lltype.Ptr):
-        return T.TO
-    assert isinstance(T, ootype.OOType)
-    return T
+    assert isinstance(T, lltype.Ptr)
+    return T.TO
+
 
 def fieldType(T, name):
-    if isinstance(T, lltype.Struct):
-        return getattr(T, name)
-    elif isinstance(T, (ootype.Instance, ootype.Record)):
-##         if name == '__class__':
-##             # XXX hack hack hack
-##             return ootype.Class
-        _, FIELD = T._lookup_field(name)
-        return FIELD
-    else:
-        assert False
+    assert isinstance(T, lltype.Struct)
+    return getattr(T, name)
 
 def arrayItem(ARRAY):
     try:
diff --git a/rpython/jit/metainterp/virtualizable.py b/rpython/jit/metainterp/virtualizable.py
--- a/rpython/jit/metainterp/virtualizable.py
+++ b/rpython/jit/metainterp/virtualizable.py
@@ -4,7 +4,6 @@
 from rpython.rlib.unroll import unrolling_iterable
 from rpython.rtyper import rvirtualizable2
 from rpython.rtyper.lltypesystem import lltype, llmemory
-from rpython.rtyper.ootypesystem import ootype
 from rpython.rtyper.rclass import IR_IMMUTABLE_ARRAY, IR_IMMUTABLE
 
 
@@ -14,9 +13,6 @@
     def __init__(self, warmrunnerdesc, VTYPEPTR):
         self.warmrunnerdesc = warmrunnerdesc
         cpu = warmrunnerdesc.cpu
-        if cpu.ts.name == 'ootype':
-            import py
-            py.test.skip("ootype: fix virtualizables")
         self.cpu = cpu
         self.BoxArray = cpu.ts.BoxRef
         #
@@ -45,8 +41,8 @@
         for name in array_fields:
             ARRAYPTR = fieldType(VTYPE, name)
             ARRAY = deref(ARRAYPTR)
-            assert isinstance(ARRAYPTR, (lltype.Ptr, ootype.Array))
-            assert isinstance(ARRAY, (lltype.GcArray, ootype.Array))
+            assert isinstance(ARRAYPTR, lltype.Ptr)
+            assert isinstance(ARRAY, lltype.GcArray)
             ARRAYITEMTYPES.append(arrayItem(ARRAY))
         self.array_descrs = [cpu.arraydescrof(deref(fieldType(VTYPE, name)))
                              for name in array_fields]
diff --git a/rpython/jit/metainterp/warmstate.py b/rpython/jit/metainterp/warmstate.py
--- a/rpython/jit/metainterp/warmstate.py
+++ b/rpython/jit/metainterp/warmstate.py
@@ -12,7 +12,6 @@
 from rpython.rtyper.annlowlevel import (hlstr, cast_base_ptr_to_instance,
     cast_object_to_ptr)
 from rpython.rtyper.lltypesystem import lltype, llmemory, rstr, rffi
-from rpython.rtyper.ootypesystem import ootype
 
 # ____________________________________________________________
 
@@ -47,8 +46,6 @@
         else:
             adr = llmemory.cast_ptr_to_adr(value)
             return heaptracker.adr2int(adr)
-    elif isinstance(lltype.typeOf(value), ootype.OOType):
-        return ootype.cast_to_object(value)
     elif isinstance(value, float):
         return longlong.getfloatstorage(value)
     else:
@@ -63,8 +60,6 @@
             return box.getref(TYPE)
         else:
             return llmemory.cast_adr_to_ptr(box.getaddr(), TYPE)
-    if isinstance(TYPE, ootype.OOType):
-        return box.getref(TYPE)
     if TYPE == lltype.Float:
         return box.getfloat()
     else:
@@ -110,13 +105,11 @@
     if isinstance(TYPE, lltype.Ptr):
         if TYPE.TO is rstr.STR or TYPE.TO is rstr.UNICODE:
             return rstr.LLHelpers.ll_streq(x, y)
-    if TYPE is ootype.String or TYPE is ootype.Unicode:
-        return x.ll_streq(y)
     return x == y
 
 @specialize.arg(0)
 def hash_whatever(TYPE, x):
-    # Hash of lltype or ootype object.
+    # Hash of lltype object.
     # Only supports strings, unicodes and regular instances,
     # as well as primitives that can meaningfully be cast to Signed.
     if isinstance(TYPE, lltype.Ptr) and TYPE.TO._gckind == 'gc':
@@ -127,13 +120,6 @@
                 return lltype.identityhash(x)
             else:
                 return 0
-    elif TYPE is ootype.String or TYPE is ootype.Unicode:
-        return x.ll_hash()
-    elif isinstance(TYPE, ootype.OOType):
-        if x:
-            return ootype.identityhash(x)
-        else:
-            return 0
     else:
         return rffi.cast(lltype.Signed, x)
 
@@ -548,8 +534,6 @@
                     else:
                         if isinstance(BASEJITCELL, lltype.Ptr):
                             cellref = lltype.malloc(BASEJITCELL.TO)
-                        elif isinstance(BASEJITCELL, ootype.Instance):
-                            cellref = ootype.new(BASEJITCELL)
                         else:
                             assert False, "no clue"
                         lltohlhack[rtyper.type_system.deref(cellref)] = cell
diff --git a/rpython/jit/tool/oparser_model.py b/rpython/jit/tool/oparser_model.py
--- a/rpython/jit/tool/oparser_model.py
+++ b/rpython/jit/tool/oparser_model.py
@@ -25,11 +25,6 @@
             from rpython.rtyper.lltypesystem import llmemory
             return adr2int(llmemory.cast_ptr_to_adr(obj))
 
-        @staticmethod
-        def ootype_cast_to_object(obj):
-            from rpython.rtyper.ootypesystem import ootype
-            return ootype.cast_to_object(obj)
-
     return LoopModel
 
 def get_mock_model():


More information about the pypy-commit mailing list