Tim Peters <t...@python.org> added the comment:

My understanding is that the CFFI types at issue don't even have 
Py_TPFLAGS_HAVE_GC.  They're completely invisible to gc.  As Armin says in the 
CFFI issue report (linked to earlier), he never got the impression from the 
docs that he needed to implement anything related to cyclic gc.

Since Armin is extremely capable, conscientious, and reasonable, that tells me 
our docs are lacking.

It was intended at the start that the worst that could happen if a type ignored 
the gc protocols was that memory may leak.  That story changed radically when 
weakrefs with callbacks were added - but nobody knew it at the time because the 
weakref design gave no thought to cyclic gc.  It's been driven by segfaults 
ever since ;-)

We're doing all we can to keep non-cooperating code "working", and will 
continue to do so.  But who knows?  The next segfault may be one we can't hack 
around.  It's fundamentally insane to expect any gc to work perfectly when it 
may be blind to what the object graph _is_.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue38006>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to