[Python-Dev] Compatibility between Python 2.3.x and Python 2.4.x

Rich Burridge Rich.Burridge at Sun.COM
Fri Sep 16 00:08:33 CEST 2005


Hi Neal, Ray,

Neal wrote:
> The binary versions (.pyc and .pyo) are not compatible, their magic
> number is different.  I don't know the details, but if you want to
> investigate yourself.  Get a CVS version, cd python/dist/src ; cvs
> diff -r r23 -r r24 Python/import.c
> 
> That shows the magic number changing.  You will need to read CVS logs
> to figure out why.  It's possible the numbers don't really *need* to
> change.  I see two comments in the logs are:
> 
> * Bump the magic number to avoid sharing bytecode between 2.3 and 2.4.
> Revise the long comment that explained details of the magic number
> in gory detail.
> 
> * With Guido's okay, bumped up the magic number so that this patch gets
>   widely exercised before the alpha goes out.
> 
> There are other patches which may have bumped the magic number for
> other reasons.

Thanks!

>>Can somebody point me at this information please?
> And I forgot to give you this link: 
> http://docs.python.org/whatsnew/whatsnew24.html

That lists the changes. It's not clear (at least to me) whether
these changes are incompatible.

> BTW, this list probably isn't the best place to post this question. 
> comp.lang.python (python-list at python.org) is generally preferred for
> details about implementation.

Understood. I'll try there tomorrow.

> If you are really interested in finding out more about Python, perhaps
> you can come to the BayPIGGIES (Python Users Group) meeting at Google
> tonight (7.30pm) in Mt. View.  Contact me off-list if you want more
> info.

Thanks for the pointer. Unfortunately I have other plans for tonight.



Raymond wrote:
 > The new LIST_APPEND opcode won't run on Py2.3.

It was more a case of wondering whether Python 2.3.x
.py, .pyo, .pyc files should "just work" with the Python 2.4.x run-time
environment.

We are not too concerned with 2.4.x files working with the Python 2.3.x
runtime. This sort of binary incompatibly is common.


More information about the Python-Dev mailing list