[pypy-commit] pypy remove-dict-smm: Remove dict from multi-method table.
Manuel Jacob
noreply at buildbot.pypy.org
Wed May 15 21:14:48 CEST 2013
Author: Manuel Jacob
Branch: remove-dict-smm
Changeset: r64200:fb15279ae6e2
Date: 2013-05-15 21:12 +0200
http://bitbucket.org/pypy/pypy/changeset/fb15279ae6e2/
Log: Remove dict from multi-method table.
diff --git a/pypy/objspace/std/dictmultiobject.py b/pypy/objspace/std/dictmultiobject.py
--- a/pypy/objspace/std/dictmultiobject.py
+++ b/pypy/objspace/std/dictmultiobject.py
@@ -1,8 +1,8 @@
from pypy.interpreter import gateway
+from pypy.interpreter.baseobjspace import W_Root
from pypy.interpreter.error import OperationError, operationerrfmt
from pypy.interpreter.mixedmodule import MixedModule
from pypy.interpreter.signature import Signature
-from pypy.objspace.std.model import registerimplementation, W_Object
from pypy.objspace.std.stdtypedef import StdTypeDef
from rpython.rlib import rerased, jit
@@ -40,7 +40,7 @@
w_dct.length() <= UNROLL_CUTOFF)
-class W_DictMultiObject(W_Object):
+class W_DictMultiObject(W_Root):
@staticmethod
def allocate_and_init_instance(space, w_type=None, module=False,
instance=False, strdict=False, kwargs=False):
@@ -414,9 +414,6 @@
setdefault = gateway.interp2app(W_DictMultiObject.descr_setdefault),
update = gateway.interp2app(W_DictMultiObject.descr_update),
)
-dict_typedef = W_DictMultiObject.typedef
-
-registerimplementation(W_DictMultiObject)
class DictStrategy(object):
@@ -1106,7 +1103,7 @@
# ____________________________________________________________
# Iteration
-class W_BaseDictMultiIterObject(W_Object):
+class W_BaseDictMultiIterObject(W_Root):
_immutable_fields_ = ["iteratorimplementation"]
ignore_for_isinstance_cache = True
@@ -1203,10 +1200,6 @@
return space.newtuple([w_key, w_value])
raise OperationError(space.w_StopIteration, space.w_None)
-registerimplementation(W_DictMultiIterKeysObject)
-registerimplementation(W_DictMultiIterValuesObject)
-registerimplementation(W_DictMultiIterItemsObject)
-
W_DictMultiIterItemsObject.typedef = StdTypeDef(
"dict_iteritems",
__iter__ = gateway.interp2app(W_DictMultiIterItemsObject.descr_iter),
@@ -1229,7 +1222,7 @@
# ____________________________________________________________
# Views
-class W_DictViewObject(W_Object):
+class W_DictViewObject(W_Root):
def __init__(w_self, space, w_dict):
w_self.w_dict = w_dict
@@ -1276,17 +1269,14 @@
class W_DictViewItemsObject(W_DictViewObject):
def descr_iter(self, space):
return W_DictMultiIterItemsObject(space, self.w_dict.iteritems())
-registerimplementation(W_DictViewItemsObject)
class W_DictViewKeysObject(W_DictViewObject):
def descr_iter(self, space):
return W_DictMultiIterKeysObject(space, self.w_dict.iterkeys())
-registerimplementation(W_DictViewKeysObject)
class W_DictViewValuesObject(W_DictViewObject):
def descr_iter(self, space):
return W_DictMultiIterValuesObject(space, self.w_dict.itervalues())
-registerimplementation(W_DictViewValuesObject)
W_DictViewItemsObject.typedef = StdTypeDef(
"dict_items",
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
@@ -40,7 +40,6 @@
from pypy.objspace.std.complextype import complex_typedef
from pypy.objspace.std.tupletype import tuple_typedef
from pypy.objspace.std.listobject import list_typedef
- from pypy.objspace.std.dictmultiobject import dict_typedef
from pypy.objspace.std.basestringtype import basestring_typedef
from pypy.objspace.std.stringtype import str_typedef
from pypy.objspace.std.bytearraytype import bytearray_typedef
@@ -81,6 +80,7 @@
# not-multimethod based types
+ self.pythontypes.append(dictmultiobject.W_DictMultiObject.typedef)
self.pythontypes.append(setobject.W_SetObject.typedef)
self.pythontypes.append(setobject.W_FrozensetObject.typedef)
@@ -92,10 +92,6 @@
floatobject.W_FloatObject: [],
tupleobject.W_TupleObject: [],
listobject.W_ListObject: [],
- dictmultiobject.W_DictMultiObject: [],
- dictmultiobject.W_DictMultiIterKeysObject: [],
- dictmultiobject.W_DictMultiIterValuesObject: [],
- dictmultiobject.W_DictMultiIterItemsObject: [],
stringobject.W_StringObject: [],
bytearrayobject.W_BytearrayObject: [],
typeobject.W_TypeObject: [],
@@ -108,9 +104,6 @@
iterobject.W_FastTupleIterObject: [],
iterobject.W_ReverseSeqIterObject: [],
unicodeobject.W_UnicodeObject: [],
- dictmultiobject.W_DictViewKeysObject: [],
- dictmultiobject.W_DictViewItemsObject: [],
- dictmultiobject.W_DictViewValuesObject: [],
pypy.interpreter.pycode.PyCode: [],
pypy.interpreter.special.Ellipsis: [],
}
More information about the pypy-commit
mailing list