It seems to me that all the new proposals, whether just hiding existing implementation details or moving to some new object id or tagged pointer system, will require extension module writers to replace PyObject * with PyHandle
And extension writers should also not be accessing struct fields in objects or type records directly, so we also want to replace eg type->tp_str with some kind of macro or inline function.
So as a first step, we should add a typedef for PyHandle to Python.h (well, most likely within object.h) and macros defined for all or the most common object / type struct members.
We can do this now without breaking any existing code. (Uh, right?) Then interested people can experiment with new ideas and APIs and we all get some idea of how hard a final changeover would be.
My other suggestion is that once the new typedefs and macros are in Python.h, announce that Python 4.0 won't guarantee source code compatibility for existing extension code.
--
cheers,
Hugh Fisher