-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 M.-A. Lemburg wrote: > Starting with Python 3, you have to use PyVarObject_HEAD_INIT() > on PyVarObjects and PyObject_HEAD_INIT() on PyObjects. I don't > see the problem. It's just another change to remember when porting > to Python 3.
The problem is that unless you are clairvoyant you have no way of knowing about this change. Even in rc3 the documentation shows the old (wrong) way: http://docs.python.org/dev/3.0/extending/newtypes.html PyObject_HEAD_INIT is documented: http://docs.python.org/dev/3.0/search.html?q=PyObject_HEAD_INIT PyVarObject_HEAD_INIT is not: http://docs.python.org/dev/3.0/search.html?q=PyVarObject_HEAD_INIT So anyone porting from Python 2 to Python 3 is just going to compile their code. There will be some warnings but if they consult the docs the code will still look correct. They will just assume it is a Python quirk. Then the code will run and crash and they will have to examine the Python 3 source to work out what the underlying issue is and how to fix it. If PyObject_HEAD_INIT were removed/renamed then the code wouldn't even compile and so they would realize they have to fix it. > * PyNumberMethods have changed due to removal of the division, ... > * PySequenceMethods have changed, but maintained binary compatibility > (why ?) by replacing the removed slice functions with dummy pointers ... > * PyBufferProcs is a completely new design PyTypeObjects are used in every extension. The above changes affect fewer extensions and the compiler error/warnings will be more meaningful. I would have expected minor changes like these. > * A lot type flags were removed. That is fine. The Python 2 code would fail to compile so you would at least know what to look for and about. Roger -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEUEARECAAYFAkknEGsACgkQmOOfHg372QR6RwCeOJ6Sj2hYWPVwpHnwc9yOvG2H 2YkAmOb6VXWaqHQL+Xd7ihq9gEWLHiA= =EwXY -----END PGP SIGNATURE----- _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com