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

Reply via email to