[Python-Dev] A little GC confusion (original) (raw)

David Abrahams David Abrahams" <david.abrahams@rcn.com
Fri, 22 Feb 2002 21:44:45 -0500


----- Original Message ----- From: "Martin v. Loewis" <martin@v.loewis.de>

"David Abrahams" <david.abrahams@rcn.com> writes:

> Nice try, but no cigar I'm afraid: copying the tpisgc slot from > PyTypeType into my metatype before PyTypeReady() doesn't prevent the > crash. > > Does anyone really understand what happens here? Understand why your code crashes?

I'm not asking that. I'm asking if anyone really understands how the flags and tp_xxx slots are supposed to interact.

Because there is a bug in it...

I /guess/ there's a bug in my code if you measure it against the standard that says "if it doesn't work with the current Python source code, it's buggy". I'd consider that standard a bit more legitimate if I could find, for example, a mention of Py_TPFLAGS_HEAPTYPE anywhere in the Python docs. As it stands, your position seems a bit more unhelpful than neccessary.

I can live with incomplete documentation if there's someone around who can explain how the software is supposed to be used; I just want to fill in the holes so that I know I'm not making important errors. I thought I was doing everything right until a few days ago when someone tried something new with my code and uncovered the GC crash. One can only cover so many cases with tests. Even if I repair this problem, how can I be sure I've got the rest of the formula right? Better docs would fix that problem, and give us an objective standard against which to judge which code has bugs. In lieu of that, I would hope that my questions would be answered in good faith.

[In the meantime, GC remains turned off for my types and metatypes]

To understand what the bug is, one would have to study your code first.

I posted the code yesterday. Did you miss it? I'm sure you could figure out how to apply the simple modification described at the top of this message.

-Dave