2017-07-13 15:21 GMT+02:00 Nick Coghlan firstname.lastname@example.org:
As far as I know, this isn't really why folks find the stable ABI hard to switch to. Rather, I believe it's because switching to the stable ABI means completely changing how you define classes to be closer to the way you define them from Python code.
That's why I like the idea of defining a "portable" API that *doesn't* adhere to the "no public structs" rule - if we can restore support for static class declarations (which requires exposing all the static method structs as well as the object header structs, although perhaps with obfuscated field names to avoid any dependency on the details of CPython's reference counting model), I think such an API would have dramatically lower barriers to adoption than the stable ABI does.
I am not aware of this issue. Can you give an example of missing feature in the stable ABI? Or maybe an example of a class definition in C which cannot be implemented with the stable ABI?