[pypy-commit] pypy remove-set-smm: Remove setobject/frozensetobject from multimethod table

fijal noreply at buildbot.pypy.org
Wed May 15 16:55:58 CEST 2013


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: remove-set-smm
Changeset: r64167:9ebc7d2a3cd7
Date: 2013-05-15 16:47 +0200
http://bitbucket.org/pypy/pypy/changeset/9ebc7d2a3cd7/

Log:	Remove setobject/frozensetobject from multimethod table

diff --git a/pypy/objspace/std/model.py b/pypy/objspace/std/model.py
--- a/pypy/objspace/std/model.py
+++ b/pypy/objspace/std/model.py
@@ -38,8 +38,6 @@
             from pypy.objspace.std.inttype    import int_typedef
             from pypy.objspace.std.floattype  import float_typedef
             from pypy.objspace.std.complextype  import complex_typedef
-            from pypy.objspace.std.setobject import set_typedef
-            from pypy.objspace.std.setobject import frozenset_typedef
             from pypy.objspace.std.tupletype  import tuple_typedef
             from pypy.objspace.std.listobject   import list_typedef
             from pypy.objspace.std.dicttype   import dict_typedef
@@ -63,10 +61,10 @@
         from pypy.objspace.std import intobject
         from pypy.objspace.std import floatobject
         from pypy.objspace.std import complexobject
-        from pypy.objspace.std import setobject
         from pypy.objspace.std import tupleobject
         from pypy.objspace.std import listobject
         from pypy.objspace.std import dictmultiobject
+        from pypy.objspace.std import setobject
         from pypy.objspace.std import stringobject
         from pypy.objspace.std import bytearrayobject
         from pypy.objspace.std import typeobject
@@ -81,6 +79,11 @@
 
         import pypy.objspace.std.marshal_impl # install marshal multimethods
 
+        # not-multimethod based types
+
+        self.pythontypes.append(setobject.W_SetObject.typedef)
+        self.pythontypes.append(setobject.W_FrozensetObject.typedef)
+
         # the set of implementation types
         self.typeorder = {
             objectobject.W_ObjectObject: [],
@@ -100,10 +103,6 @@
             longobject.W_LongObject: [],
             noneobject.W_NoneObject: [],
             complexobject.W_ComplexObject: [],
-            setobject.W_BaseSetObject: [],
-            setobject.W_SetObject: [],
-            setobject.W_FrozensetObject: [],
-            setobject.W_SetIterObject: [],
             iterobject.W_SeqIterObject: [],
             iterobject.W_FastListIterObject: [],
             iterobject.W_FastTupleIterObject: [],
@@ -192,12 +191,7 @@
             (complexobject.W_ComplexObject,
                     complexobject.delegate_Float2Complex),
             ]
-        self.typeorder[setobject.W_SetObject] += [
-            (setobject.W_BaseSetObject, None)
-            ]
-        self.typeorder[setobject.W_FrozensetObject] += [
-            (setobject.W_BaseSetObject, None)
-            ]
+
         self.typeorder[stringobject.W_StringObject] += [
             (unicodeobject.W_UnicodeObject, unicodeobject.delegate_String2Unicode),
             ]
diff --git a/pypy/objspace/std/setobject.py b/pypy/objspace/std/setobject.py
--- a/pypy/objspace/std/setobject.py
+++ b/pypy/objspace/std/setobject.py
@@ -1,7 +1,7 @@
-from pypy.objspace.std.model import registerimplementation, W_Object
 from pypy.interpreter import gateway
 from pypy.interpreter.error import OperationError
 from pypy.interpreter.signature import Signature
+from pypy.interpreter.baseobjspace import W_Root
 from pypy.objspace.std.intobject import W_IntObject
 from pypy.objspace.std.stdtypedef import StdTypeDef
 from pypy.objspace.std.stringobject import W_StringObject
@@ -15,7 +15,7 @@
 UNROLL_CUTOFF = 5
 
 
-class W_BaseSetObject(W_Object):
+class W_BaseSetObject(W_Root):
     typedef = None
 
     def __init__(w_self, space, w_iterable=None):
@@ -657,10 +657,6 @@
 frozenset_typedef = W_FrozensetObject.typedef
 
 
-registerimplementation(W_BaseSetObject)
-registerimplementation(W_SetObject)
-registerimplementation(W_FrozensetObject)
-
 
 class SetStrategy(object):
     def __init__(self, space):
@@ -1441,9 +1437,7 @@
             return None
 
 
-class W_SetIterObject(W_Object):
-    # XXX this class should be killed, and the various
-    # iterimplementations should be W_Objects directly.
+class W_SetIterObject(W_Root):
 
     def __init__(w_self, space, iterimplementation):
         w_self.space = space
@@ -1469,7 +1463,6 @@
     )
 setiter_typedef = W_SetIterObject.typedef
 
-registerimplementation(W_SetIterObject)
 
 
 # some helper functions


More information about the pypy-commit mailing list