[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