Open
Description
I had several false starts on this issue and always got too deep in describing the current implementation. So I'll post a half-baked list to get something down faster.
- How are/should fields handled, esp. special ones like type, dict, and superclass ones:
- What should
tp_traverse
visit? - What code is in charge of initializing them? Zeroing them before initialization? Clearing them?
- What should
- Can an object outlive
tp_clear
? - Can I rely on
tp_clear
being called? - Which initialization/finalization APIs call a type's slots, and which ones bypass them?
etc.