_PyStaticType_InitBuiltin
should not exist.
#103276
Labels
interpreter-core
(Objects, Python, Grammar, and Parser dirs)
type-bug
An unexpected behavior, bug, or error
Part three in an ongoing series...
Following on from #96458 and #101603.
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 callsPyType_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.@ericsnowcurrently @kumaraditya303
Any more of these static init/dealloc functions? They should all go.
The text was updated successfully, but these errors were encountered: