Roger Binns wrote:

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

Whatever happens to PyObject..., that should be fixed. Is there are tracker item yet? A doc person will copy, paste, and format if given raw text.

So anyone porting from Python 2 to Python 3 is just going to compile
their code.

A What's New in Py 3 API is needed that people could read first instead of digging through the source after.

> 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.

This seems like a start.


_______________________________________________
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

Reply via email to