You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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?
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.
The text was updated successfully, but these errors were encountered:
encukou
changed the title
Defining types is a mess
Defining types is messy
Jun 12, 2023
That one is about defining internal static types, which are quite special (shareable across subinterpreters, deep-freezeable). Defining those isn't (yet) part of the public API; extensions need to either use heap types or stick to a single interpreter.
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.
tp_traverse
visit?tp_clear
?tp_clear
being called?etc.
The text was updated successfully, but these errors were encountered: