Prev: What does the output of return os.lstat(logFile)[ST_CTIME] mean?
Next: python terminology on classes
From: Philip Semanchuk on 26 Jul 2010 15:22 Hi all, Does Python guarantee binary compatibility across major, minor and/or micro versions? I looked through the docs and even with Google's help I wasn't able to find any official statements on this subject. Specifically, I'm concerned with binaries created by SWIG for a C++ library that our project uses. We'd like to ship precompiled binaries for Linux, OS X and Windows for Python 2.5 and 2.6. I'm hoping that it is sufficient to create binaries for each Python for each platform (3 * 2 == 6 total precompiled binaries). Thanks for any advice and pointers to official documentation on the subject. Cheers Philip
From: MRAB on 26 Jul 2010 15:40 Philip Semanchuk wrote: > Hi all, > Does Python guarantee binary compatibility across major, minor and/or > micro versions? I looked through the docs and even with Google's help I > wasn't able to find any official statements on this subject. > > > Specifically, I'm concerned with binaries created by SWIG for a C++ > library that our project uses. We'd like to ship precompiled binaries > for Linux, OS X and Windows for Python 2.5 and 2.6. I'm hoping that it > is sufficient to create binaries for each Python for each platform (3 * > 2 == 6 total precompiled binaries). > > Thanks for any advice and pointers to official documentation on the > subject. > There are differences between minor versions, but not, so far as I'm aware, between micro versions (and I'd be surprised if there were).
From: Christian Heimes on 26 Jul 2010 15:45 > Specifically, I'm concerned with binaries created by SWIG for a C++ > library that our project uses. We'd like to ship precompiled binaries > for Linux, OS X and Windows for Python 2.5 and 2.6. I'm hoping that it > is sufficient to create binaries for each Python for each platform (3 > * 2 == 6 total precompiled binaries). For each platforms you have to provide binaries for the major CPU architectures (X86 and X64_86), too. Users or distributions may compile Python with UCS-2 or UCS-4 unicode width. That makes eight different binaries for Linux (two version * two archs * UCS2/4). Although most distributions follow the LSB standards, binaries aren't necessary ABI compatible. C++ binaries tend to break more often than C binaries. Have fun ;) Christian
From: Robert Kern on 26 Jul 2010 15:46 On 7/26/10 2:40 PM, MRAB wrote: > Philip Semanchuk wrote: >> Hi all, >> Does Python guarantee binary compatibility across major, minor and/or micro >> versions? I looked through the docs and even with Google's help I wasn't able >> to find any official statements on this subject. >> >> >> Specifically, I'm concerned with binaries created by SWIG for a C++ library >> that our project uses. We'd like to ship precompiled binaries for Linux, OS X >> and Windows for Python 2.5 and 2.6. I'm hoping that it is sufficient to create >> binaries for each Python for each platform (3 * 2 == 6 total precompiled >> binaries). >> >> Thanks for any advice and pointers to official documentation on the subject. >> > There are differences between minor versions, but not, so far as I'm > aware, between micro versions (and I'd be surprised if there were). As a matter of policy, micro versions are binary-compatible. It's a bug if a micro revision breaks binary compatibility. -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco
From: Ned Deily on 26 Jul 2010 17:19 In article <i2kok1$krp$1(a)dough.gmane.org>, Christian Heimes <lists(a)cheimes.de> wrote: > [Philip Semanchuk wrote:] > > Specifically, I'm concerned with binaries created by SWIG for a C++ > > library that our project uses. We'd like to ship precompiled binaries > > for Linux, OS X and Windows for Python 2.5 and 2.6. I'm hoping that it > > is sufficient to create binaries for each Python for each platform (3 > > * 2 == 6 total precompiled binaries). > For each platforms you have to provide binaries for the major CPU > architectures (X86 and X64_86), too. Users or distributions may compile > Python with UCS-2 or UCS-4 unicode width. That makes eight different > binaries for Linux (two version * two archs * UCS2/4). Although most > distributions follow the LSB standards, binaries aren't necessary ABI > compatible. C++ binaries tend to break more often than C binaries. And, on OS X, there are various Python binary distributions in common use: the Apple-supplied Pythons (2.5 for OS X 10.5, 2.6 & 2.5 for 10.6), the python.org OS X installers for 10.5 and 10.6, plus the ActiveState and EPD ones. It would likely be difficult to ship one binary extension that would easily work, if at all, with the most common ones. For instance, the Apple-supplied Python 2.6 is built with gcc 4.2, uses the 10.6 ABI (SDK deployment target), and x86_64 / i386 / ppc architectures (default 64-bit on capable machines). The python.org 2.6 uses gcc 4.0, the 10.4u ABI, and is 32-bit only (i386 / ppc) -- Ned Deily, nad(a)acm.org
|
Next
|
Last
Pages: 1 2 Prev: What does the output of return os.lstat(logFile)[ST_CTIME] mean? Next: python terminology on classes |