Author: Remi Meier <[email protected]>
Branch: stmgc-c8-gcc
Changeset: r79243:3744b529b0f0
Date: 2015-08-27 10:26 +0200
http://bitbucket.org/pypy/pypy/changeset/3744b529b0f0/
Log: add a TODO about light finalizers
diff --git a/TODO b/TODO
--- a/TODO
+++ b/TODO
@@ -1,3 +1,6 @@
+see rpython.translator.backendopt.finalizer.py for an XXX
+about light finalizers
+
------------------------------------------------------------
the loop in
diff --git a/rpython/translator/backendopt/finalizer.py
b/rpython/translator/backendopt/finalizer.py
--- a/rpython/translator/backendopt/finalizer.py
+++ b/rpython/translator/backendopt/finalizer.py
@@ -47,6 +47,12 @@
## if not isinstance(TP, lltype.Ptr) or TP.TO._gckind == 'raw':
## # primitive type
## return self.bottom_result()
+ # XXX: for STM, even primitive type getfield requires stm_read()
+ # and should therefore not be in light finalizers...
+ # getfield from 'raw' is fine (otherwise there would be a
+ # become_inevitable() op somewhere); also maybe getfield_gc
+ # on dying obj is fine (otherwise light finalizers are pretty
+ # useless).
if op.opname == 'getfield':
TP = op.result.concretetype
if not isinstance(TP, lltype.Ptr) or TP.TO._gckind == 'raw':
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit