[pypy-svn] r4913 - pypy/branch/src-newobjectmodel/pypy/objspace/std
arigo at codespeak.net
arigo at codespeak.net
Fri Jun 4 16:33:32 CEST 2004
Author: arigo
Date: Fri Jun 4 16:33:32 2004
New Revision: 4913
Modified:
pypy/branch/src-newobjectmodel/pypy/objspace/std/objspace.py
pypy/branch/src-newobjectmodel/pypy/objspace/std/typetype.py
Log:
Classes get object as a default base.
Modified: pypy/branch/src-newobjectmodel/pypy/objspace/std/objspace.py
==============================================================================
--- pypy/branch/src-newobjectmodel/pypy/objspace/std/objspace.py (original)
+++ pypy/branch/src-newobjectmodel/pypy/objspace/std/objspace.py Fri Jun 4 16:33:32 2004
@@ -82,7 +82,7 @@
self.w_Exception = W_TypeObject(
self,
'Exception',
- [],
+ [self.w_object],
{'__init__': w_init,
'__str__': w_str})
done = {'Exception': self.w_Exception}
@@ -269,6 +269,7 @@
unwrap = MultiMethod('unwrap', 1, []) # returns an unwrapped object
is_true = MultiMethod('nonzero', 1, []) # returns an unwrapped bool
issubtype = MultiMethod('issubtype', 2, [])
+ id = MultiMethod('id', 1, [])
class MM:
"Container for multimethods."
@@ -293,9 +294,12 @@
# add all regular multimethods to StdObjSpace
for _name, _symbol, _arity, _specialnames in ObjSpace.MethodTable:
- if (not hasattr(StdObjSpace.MM, _name) and # XXX!
- not isinstance(getattr(StdObjSpace, _name, None), MultiMethod)):
- setattr(StdObjSpace.MM, _name, MultiMethod(_symbol, _arity, _specialnames))
+ if not hasattr(StdObjSpace.MM, _name):
+ if isinstance(getattr(StdObjSpace, _name, None), MultiMethod):
+ mm = getattr(StdObjSpace, _name)
+ else:
+ mm = MultiMethod(_symbol, _arity, _specialnames)
+ setattr(StdObjSpace.MM, _name, mm)
# import the common base W_ObjectObject as well as
Modified: pypy/branch/src-newobjectmodel/pypy/objspace/std/typetype.py
==============================================================================
--- pypy/branch/src-newobjectmodel/pypy/objspace/std/typetype.py (original)
+++ pypy/branch/src-newobjectmodel/pypy/objspace/std/typetype.py Fri Jun 4 16:33:32 2004
@@ -15,7 +15,7 @@
key = space.unwrap(w_key)
assert isinstance(key, str)
dict_w[key] = space.getitem(w_dict, w_key)
- return W_TypeObject(space, name, bases_w, dict_w)
+ return W_TypeObject(space, name, bases_w or [space.w_object], dict_w)
def descr_get__mro__(space, w_type):
# XXX this should be inside typeobject.py
More information about the Pypy-commit
mailing list