[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Pygame and Python 3.0 (3000)



Marcus von Appen wrote:
On, Wed Oct 08, 2008, Lenard Lindstrom wrote:

The time consuming part will be the the Pygame extension modules. The C api will change with Python 3.0. It looks like major modifications here for every module. And unlike the Python code I know of no automatic tool to help out. Most changes are not backward compatible. Module state moves to a dynamically allocated structure. And of course there is Unicode again. All string handling code will have to be modified, more encodings and decodings.

If the C API changes a lot, we will have to manage both, a 2.x pygame
branch and a 3.x branch. Luckily I won't have a look at 3.0 before
it's officially released, I think :-).

However, the last glance I took at it showed only some minor differences
(PyBuffer*, initialisation/finalisation and some other things), so it
probably won't be a big deal.

Regards
Marcus
I suggest you have a look a PEP 3121: http://www.python.org/dev/peps/pep-3121/ Also, gone are the PyInt_ and PyStr_ routines. Everything must be recode to use PyLong_ and PyUnicode_ routines. These changes can be back ported. But what will they do to the Python signatures of the Pygame callables. The old string functions are now PyByte_, but these are only available in 2.6 and up. The nb_coerce slot has totally vanished from Python 3.0's PyNumberMethods. That will break a lot of extension type declarations in itself, even without the buffer interface changes. These are only the differences I could think of offhand.

--
Lenard Lindstrom
<len-l@xxxxxxxxx>