bytecode non-backcompatibility

Maurice LING mauriceling at acm.org
Wed Apr 27 07:03:26 EDT 2005


Martin v. Löwis wrote:
> Maurice LING wrote:
> 
>>technicalities are wrong but situation remains unchanged.
> 
> 
> For C modules, it is very likely that new versions of Python
> will continue to break the ABI, by changing the layout of
> structures.
> 
> The most straight-forward way to deal with it as a sysadmin
> or user is to install multiple versions of Python on a single
> machine. If Fink considers python2.4 as a replacement for
> python2.3, then this is a flaw in Fink. In Debian, there is
> a python package, which currently depends on python2.3.
> Sometime in the future, it will depend on python2.4. Users
> which update will then get python2.4, however, python2.3
> will remain installed and usable, with all the extension
> modules that were installed for it.
> 
> Regards,
> Martin

Fink does not consider python2.4 to be a replacement for python2.3. In 
fact, you can install python2.2, 2.3 and 2.4 in the same machine with 
Fink. It will maintain 3 sets of libraries as /sw/lib/python2.2, 
/sw/lib/python2.3 and /sw/lib/python2.4. The chore is that when say Fink 
installs python2.4, all the libraries in /sw/lib/python2.3/site-packages 
have to be re-installed into /sw/lib/python2.4/site-packages, one by 
one. There is no simple way of doing that... which makes any system 
admin needing to re-install 50 3rd party libraries into 
/sw/lib/python2.4/site-packages a big task, as well as satisfying the 
necessary dependencies.

So if C extension API (or whatever that is really called) is stable, the 
system admin can just copy all of /sw/lib/python2.3/site-packages into 
/sw/lib/python2.4/site-packages and it should work. From what you've 
said, it seems that this isn't possible. So my alternative solution is 
that PyPI have a mechanism to maintain what had been installed in the 
site-package directory and to download the libraries and install into 
the new site-package directory...

What do you think?

Cheers
maurice



More information about the Python-list mailing list