----- 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 tp_is_gc slot from > > PyType_Type into my metatype before PyType_Ready() 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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4