Author: Maciej Fijalkowski <[email protected]>
Branch: kill-someobject
Changeset: r58045:88dedebc91e5
Date: 2012-10-12 16:08 +0200
http://bitbucket.org/pypy/pypy/changeset/88dedebc91e5/
Log: merge
diff --git a/pypy/objspace/flow/model.py b/pypy/objspace/flow/model.py
--- a/pypy/objspace/flow/model.py
+++ b/pypy/objspace/flow/model.py
@@ -257,13 +257,6 @@
class Variable(object):
__slots__ = ["_name", "_nr", "concretetype"]
-## def getter(x): return x._ct
-## def setter(x, ct):
-## if repr(ct) == '<* PyObject>':
-## import pdb; pdb.set_trace()
-## x._ct = ct
-## concretetype = property(getter, setter)
-
dummyname = 'v'
namesdict = {dummyname : (dummyname, 0)}
diff --git a/pypy/translator/c/test/test_genc.py
b/pypy/translator/c/test/test_genc.py
--- a/pypy/translator/c/test/test_genc.py
+++ b/pypy/translator/c/test/test_genc.py
@@ -106,6 +106,13 @@
t.compile_c()
ll_res = graphof(t.context, fn).getreturnvar().concretetype
+ def output(stdout):
+ for line in stdout.splitlines(False):
+ if len(repr(line)) == len(line) + 2: # no escaped char
+ print line
+ else:
+ print 'REPR:', repr(line)
+
def f(*args, **kwds):
expected_extra_mallocs = kwds.pop('expected_extra_mallocs', 0)
expected_exception_name = kwds.pop('expected_exception_name', None)
@@ -118,19 +125,20 @@
" ".join([llrepr_in(arg) for arg in args]),
expect_crash=(expected_exception_name is not None))
#
- for line in stdout.splitlines(False):
- if len(repr(line)) == len(line) + 2: # no escaped char
- print line
- else:
- print 'REPR:', repr(line)
- #
if expected_exception_name is not None:
stdout, stderr = stdout
+ print '--- stdout ---'
+ output(stdout)
+ print '--- stderr ---'
+ output(stderr)
+ print '--------------'
stderr, lastline, empty = stderr.rsplit('\n', 2)
assert empty == ''
assert lastline == ('Fatal RPython error: ' +
expected_exception_name)
return None
+
+ output(stdout)
stdout, lastline, empty = stdout.rsplit('\n', 2)
assert empty == ''
assert lastline.startswith('MALLOC COUNTERS: ')
@@ -159,8 +167,17 @@
elif ll_res == lltype.Void:
return None
raise NotImplementedError("parsing %s" % (ll_res,))
- f.__name__ = fn.__name__
- return f
+
+ class CompilationResult(object):
+ def __repr__(self):
+ return 'CompilationResult(%s)' % (fn.__name__,)
+ def __call__(self, *args, **kwds):
+ return f(*args, **kwds)
+
+ cr = CompilationResult()
+ cr.t = t
+ cr.builder = t.driver.cbuilder
+ return cr
def test_simple():
diff --git a/pypy/translator/test/test_exceptiontransform.py
b/pypy/translator/test/test_exceptiontransform.py
--- a/pypy/translator/test/test_exceptiontransform.py
+++ b/pypy/translator/test/test_exceptiontransform.py
@@ -64,6 +64,8 @@
assert f() == 1
def test_passthrough(self):
+ if self.type_system == 'ootype':
+ py.test.skip("XXX")
def one(x):
if x:
raise ValueError()
@@ -73,7 +75,7 @@
one(1)
t, g = self.transform_func(foo, [])
f = self.compile(foo, [])
- py.test.raises(ValueError, f)
+ f(expected_exception_name='ValueError')
def test_catches(self):
def one(x):
@@ -142,6 +144,8 @@
assert result == 2
def test_raises(self):
+ if self.type_system == 'ootype':
+ py.test.skip("XXX")
def foo(x):
if x:
raise ValueError()
@@ -149,7 +153,7 @@
assert len(list(g.iterblocks())) == 3
f = self.compile(foo, [int])
f(0)
- py.test.raises(ValueError, f, 1)
+ f(1, expected_exception_name='ValueError')
def test_no_multiple_transform(self):
diff --git a/pypy/translator/tool/test/test_staticsizereport.py
b/pypy/translator/tool/test/test_staticsizereport.py
--- a/pypy/translator/tool/test/test_staticsizereport.py
+++ b/pypy/translator/tool/test/test_staticsizereport.py
@@ -1,8 +1,8 @@
-from pypy.translator.c.test.test_typed import CompilationTestCase
+from pypy.translator.c.test.test_genc import compile
from pypy.translator.tool.staticsizereport import group_static_size, guess_size
from pypy.rpython.lltypesystem import llmemory, lltype, rffi
-class TestStaticSizeReport(CompilationTestCase):
+class TestStaticSizeReport(object):
def test_simple(self):
class A:
def __init__(self, n):
@@ -16,8 +16,9 @@
if x:
return a.key
return a.next.key
- func = self.getcompiled(f, [int])
- size, num = group_static_size(self.builder.db,
self.builder.db.globalcontainers())
+ func = compile(f, [int])
+ size, num = group_static_size(func.builder.db,
+ func.builder.db.globalcontainers())
for key, value in num.iteritems():
if "staticsizereport.A" in str(key) and "vtable" not in str(key):
assert value == 101
@@ -39,8 +40,8 @@
if x > 42:
dynlist.append(x)
return d[x].x + fixlist[x] + d_small[x] +
reverse_dict[test_dict[x]]
- func = self.getcompiled(f, [int])
- db = self.builder.db
+ func = compile(f, [int])
+ db = func.builder.db
gcontainers = list(db.globalcontainers())
t = db.translator
rtyper = t.rtyper
@@ -55,11 +56,11 @@
S = rffi.sizeof(lltype.Signed)
P = rffi.sizeof(rffi.VOIDP)
B = 1 # bool
- assert guess_size(self.builder.db, dictvalnode, set()) > 100
- assert guess_size(self.builder.db, dictvalnode2, set()) == 2 * S + 1 *
P + 1 * S + 8 * (2*S + 1 * B)
+ assert guess_size(func.builder.db, dictvalnode, set()) > 100
+ assert guess_size(func.builder.db, dictvalnode2, set()) == 2 * S + 1 *
P + 1 * S + 8 * (2*S + 1 * B)
r_set = set()
dictnode_size = guess_size(db, test_dictnode, r_set)
assert dictnode_size == 2 * S + 1 * P + 1 * S + (4096-256) * (1*S+1*P
+ (1 * S + 1*P + 5)) + (8192-4096+256) * (1*S+1*P)
- assert guess_size(self.builder.db, fixarrayvalnode, set()) == 100 *
rffi.sizeof(lltype.Signed) + 1 * rffi.sizeof(lltype.Signed)
- assert guess_size(self.builder.db, dynarrayvalnode, set()) == 100 *
rffi.sizeof(lltype.Signed) + 2 * rffi.sizeof(lltype.Signed) + 1 *
rffi.sizeof(rffi.VOIDP)
+ assert guess_size(func.builder.db, fixarrayvalnode, set()) == 100 *
rffi.sizeof(lltype.Signed) + 1 * rffi.sizeof(lltype.Signed)
+ assert guess_size(func.builder.db, dynarrayvalnode, set()) == 100 *
rffi.sizeof(lltype.Signed) + 2 * rffi.sizeof(lltype.Signed) + 1 *
rffi.sizeof(rffi.VOIDP)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit