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
{{ message }}
Repository navigation
_PyStaticType_InitBuiltin should not exist. #103276
Static, builtin classes must be sharable across interpreters.
Therefore, they should be immortal and idempotent immutable. Ideally they should be immutable, but we can tolerate a bit of initialization as long as it is idempotent and thread-safe.
Therefore _PyStaticType_InitBuiltin should not exist.
We can also free up the _Py_TPFLAGS_STATIC_BUILTIN flag, as we are running low on flags.
AFAICT _PyStaticType_InitBuiltin sets an index for accessing the subclasses dict on the interpreter, and calls PyType_Ready. That's all. PyType_Ready should be a no op on static builtin classes. (If it isn't, then that's another issue we need to add.)
Setting the subclass index can be done lazily, as many builtin classes are never subclassed.
There is no reason for the index to be distinct from the version tag, so we should use that, and statically initialize it for int, type, etc.
Activity
ericsnowcurrently commentedon Apr 5, 2023
FWIW, everything you've said makes sense. 🙂