On Wed, Sep 8, 2021 at 11:50 PM Matti Picus firstname.lastname@example.org wrote:
How does this change move the needle on that goal? The macros become static inline functions defined in the C headers. Nothing changes in the C struct itself.
Agreed. My point is that at the level of the C code itself there *is* a function Py_SET_TYPE(obj, type) that needs to be called and one can't just write "Py_TYPE(obj) = type" which effectively limits how setting a type works to a very particular implementation.
Yes, this change by itself doesn't make PyType completely opaque, but that is the direction that Victor is trying to head in I believe.