[pypy-svn] r4931 - in pypy/branch/src-newobjectmodel/pypy: interpreter objspace/std tool/tb_server
mwh at codespeak.net
mwh at codespeak.net
Fri Jun 4 22:43:39 CEST 2004
Author: mwh
Date: Fri Jun 4 22:43:39 2004
New Revision: 4931
Modified:
pypy/branch/src-newobjectmodel/pypy/interpreter/typedef.py
pypy/branch/src-newobjectmodel/pypy/objspace/std/typeobject.py
pypy/branch/src-newobjectmodel/pypy/tool/tb_server/render.py
Log:
fixes to None.__class__ and instantiating subtypes.
$ python2.3 pypy/test_all.py -S interpreter
...
Ran 109 tests in 165.046s
FAILED (failures=3, errors=10)
... not too bad!
Modified: pypy/branch/src-newobjectmodel/pypy/interpreter/typedef.py
==============================================================================
--- pypy/branch/src-newobjectmodel/pypy/interpreter/typedef.py (original)
+++ pypy/branch/src-newobjectmodel/pypy/interpreter/typedef.py Fri Jun 4 22:43:39 2004
@@ -27,7 +27,9 @@
self.doc = doc
def descr_property_get(space, w_property, w_obj, w_ignored):
- if w_obj == space.w_None:
+ # XXX HAAAAAAAAAAAACK (but possibly a good one)
+ if w_obj == space.w_None and not space.is_true(space.is_(w_ignored, space.type(space.w_None))):
+ print w_property, w_obj, w_ignored
return w_property
else:
return space.unwrap(w_property).fget(space, w_obj)
Modified: pypy/branch/src-newobjectmodel/pypy/objspace/std/typeobject.py
==============================================================================
--- pypy/branch/src-newobjectmodel/pypy/objspace/std/typeobject.py (original)
+++ pypy/branch/src-newobjectmodel/pypy/objspace/std/typeobject.py Fri Jun 4 22:43:39 2004
@@ -26,10 +26,19 @@
space.wrap("instance layout conflicts in "
"multiple inheritance"))
w_self.instancetypedef = longest_mro[0]
+ nd = False
+ for w_base in bases_w:
+ if w_base.needs_new_dict:
+ nd = True
+ break
+
# provide a __dict__ for the instances if there isn't any yet
if w_self.lookup('__dict__') is None:
w_self.needs_new_dict = True
w_self.dict_w['__dict__'] = space.wrap(attrproperty_w('w__dict__'))
+ elif nd:
+ w_self.needs_new_dict = True
+
def getmro(w_self):
Modified: pypy/branch/src-newobjectmodel/pypy/tool/tb_server/render.py
==============================================================================
--- pypy/branch/src-newobjectmodel/pypy/tool/tb_server/render.py (original)
+++ pypy/branch/src-newobjectmodel/pypy/tool/tb_server/render.py Fri Jun 4 22:43:39 2004
@@ -94,7 +94,7 @@
for k, v in tb.tb_frame.f_locals.items():
if k[0] == '_':
continue
- lines.append(xml.escape('%s=%s\n'%(k, repr(v)[:50])))
+ lines.append(xml.escape('%s=%s\n'%(k, repr(v)[:1000])))
return lines
More information about the Pypy-commit
mailing list