Author: Carl Friedrich Bolz <[email protected]>
Branch:
Changeset: r90421:846ed5d2ac16
Date: 2017-02-28 15:00 +0100
http://bitbucket.org/pypy/pypy/changeset/846ed5d2ac16/
Log: test showing a corner case of the interaction between finalizers and
heap caching in the JIT
diff --git a/rpython/jit/metainterp/test/test_ajit.py
b/rpython/jit/metainterp/test/test_ajit.py
--- a/rpython/jit/metainterp/test/test_ajit.py
+++ b/rpython/jit/metainterp/test/test_ajit.py
@@ -4636,3 +4636,28 @@
return i
self.meta_interp(f, [10])
+
+ @py.test.skip("loops!")
+ def test_finalizer_bug(self):
+ from rpython.rlib import rgc
+ driver = JitDriver(greens=[], reds=[])
+ class Fin(object):
+ @rgc.must_be_light_finalizer
+ def __del__(self):
+ holder[0].field = 7
+ class Un(object):
+ def __init__(self):
+ self.field = 0
+ holder = [Un()]
+
+ def f():
+ while True:
+ driver.jit_merge_point()
+ holder[0].field = 0
+ Fin()
+ if holder[0].field:
+ break
+ return holder[0].field
+
+ f() # finishes
+ self.meta_interp(f, [])
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit