Author: Armin Rigo <[email protected]> Branch: Changeset: r96511:628b9a8274a2 Date: 2019-04-17 11:54 +0200 http://bitbucket.org/pypy/pypy/changeset/628b9a8274a2/
Log: Document the newer CPython finalizer behaviour diff --git a/pypy/doc/cpython_differences.rst b/pypy/doc/cpython_differences.rst --- a/pypy/doc/cpython_differences.rst +++ b/pypy/doc/cpython_differences.rst @@ -88,7 +88,9 @@ There are a few extra implications from the difference in the GC. Most notably, if an object has a ``__del__``, the ``__del__`` is never called more than once in PyPy; but CPython will call the same ``__del__`` several times -if the object is resurrected and dies again. The ``__del__`` methods are +if the object is resurrected and dies again (at least it is reliably so in +older CPythons; newer CPythons try to call destructors not more than once, +but there are counter-examples). The ``__del__`` methods are called in "the right" order if they are on objects pointing to each other, as in CPython, but unlike CPython, if there is a dead cycle of objects referencing each other, their ``__del__`` methods are called anyway; _______________________________________________ pypy-commit mailing list [email protected] https://mail.python.org/mailman/listinfo/pypy-commit
