Author: Armin Rigo <ar...@tunes.org>
Branch: cpyext-gc-support-2
Changeset: r81854:05cd68cd7259
Date: 2016-01-19 15:01 +0100
http://bitbucket.org/pypy/pypy/changeset/05cd68cd7259/

Log:    updates

diff --git a/pypy/doc/discussion/rawrefcount.rst 
b/pypy/doc/discussion/rawrefcount.rst
--- a/pypy/doc/discussion/rawrefcount.rst
+++ b/pypy/doc/discussion/rawrefcount.rst
@@ -67,8 +67,8 @@
 Let P = list of links created with rawrefcount.create_link_pypy()
 and O = list of links created with rawrefcount.create_link_pyobj().
 The PyPy objects in the list O are all W_CPyExtPlaceHolderObject: all
-the data is in the PyObjects, and all references (if any) are regular
-CPython-like reference counts.
+the data is in the PyObjects, and all outsite references (if any) are
+in C, as "PyObject *" fields.
 
 So, during the collection we do this about P links:
 
@@ -81,7 +81,7 @@
 this:
 
     for (p, ob) in P + O:
-        if p is not surviving:
+        if p is not surviving:    # even if 'ob' might be surviving
             unlink p and ob
             if ob->ob_refcnt == REFCNT_FROM_PYPY_LIGHT:
                 free(ob)
@@ -106,6 +106,11 @@
 Further notes
 -------------
 
+XXX
+XXX the rest is the ideal world, but as a first step, we'll look
+XXX for the minimal tweaks needed to adapt the existing cpyext
+XXX
+
 For objects that are opaque in CPython, like <dict>, we always create
 a PyPy object, and then when needed we make an empty PyObject and
 attach it with create_link_pypy()/REFCNT_FROM_PYPY_LIGHT.
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to