Python 2.6 and numpy 1.3.0/1.4.0 from an extension
I have made an extension that also uses numpy. I developed with Python 2.6 and numpy 1.4.0 This works all fine. The problem is that users that use this extension get crahes from the moment they use the extension and this because of numpy. It crashes when numpy is initialised. This because those users have also Python 2.6, but with numpy 1.3.0!!! This because they installed both via the Pythonxy setup. How can this be handled that users have different versions of numpy for a given version of Python. Python has no problem using numpy 1.3.0 or 1.4.0, so how can I make this possible in my extension? Thanks for your input
On Mon, Feb 8, 2010 at 10:19 AM, Peter Notebaert
I have made an extension that also uses numpy. I developed with Python 2.6 and numpy 1.4.0 This works all fine.
The problem is that users that use this extension get crahes from the moment they use the extension and this because of numpy. It crashes when numpy is initialised. This because those users have also Python 2.6, but with numpy 1.3.0!!! This because they installed both via the Pythonxy setup.
How can this be handled that users have different versions of numpy for a given version of Python. Python has no problem using numpy 1.3.0 or 1.4.0, so how can I make this possible in my extension?
There was a similar problem in 1.3 where it called a new function in the API which led to segfaults when 1.3 extensions were run on older versions of numpy. Ironically, this was fixed in 1.4 by adding another function to check at runtime, but this will cause segfaults on 1.3. Next cycle, there should be a warning issued, i.e., 1.5 running on 1.4 should raise an error instead of crashing. In any case, forward compatibility isn't guaranteed between minor version changes as the API can change. Extensions need to be developed, or at least compiled, against the earliest version of numpy with which they will be used. Extensions compiled again older versions of numpy should run on newer versions.
Chuck
On Mon, Feb 8, 2010 at 11:16 AM, Charles R Harris wrote: On Mon, Feb 8, 2010 at 10:19 AM, Peter Notebaert I have made an extension that also uses numpy.
I developed with Python 2.6 and numpy 1.4.0
This works all fine. The problem is that users that use this extension get crahes from the
moment they use the extension and this because of numpy. It crashes when
numpy is initialised.
This because those users have also Python 2.6, but with numpy 1.3.0!!!
This because they installed both via the Pythonxy setup. How can this be handled that users have different versions of numpy for a
given version of Python. Python has no problem using numpy 1.3.0 or 1.4.0,
so how can I make this possible in my extension? There was a similar problem in 1.3 where it called a new function in the
API which led to segfaults when 1.3 extensions were run on older versions of
numpy. Ironically, this was fixed in 1.4 by adding another function to check
at runtime, but this will cause segfaults on 1.3. Next cycle, there should
be a warning issued, i.e., 1.5 running on 1.4 should raise an error instead
of crashing. In any case, forward compatibility isn't guaranteed between
minor version changes as the API can change. Extensions need to be
developed, or at least compiled, against the earliest version of numpy with
which they will be used. Extensions compiled again older versions of numpy
should run on newer versions. Let me add that 1.4 introduced an unintended ABI change that will cause
problems with backward compatibility also. 1.4 is going to be removed as a
broken release on that account and a 1.4.1 or 1.4.0.1 version released to
fix that problem.
Chuck
I see that NumPy 1.4.0 is still the download offered on SourceForge. Did I misunderstand that a decision had been made to withdraw it, at least until the ongoing discussion about ABI breakage is resolved? (Btw, as a user, I'm hoping Jarrod's sensible proposal prevails in that discussion. That proposal seems compatible with Travis O's original policy proposal governing version numbering and ABI breakage.) Alan Isaac
On Mon, Feb 8, 2010 at 11:11 AM, Alan G Isaac
I see that NumPy 1.4.0 is still the download offered on SourceForge. Did I misunderstand that a decision had been made to withdraw it, at least until the ongoing discussion about ABI breakage is resolved?
I went ahead and set the default download for NumPy back to the 1.3.0 release on sourceforge. I also added a news item stating that 1.4.0 has temporarily been pulled due to the unintended ABI break. -- Jarrod Millman Helen Wills Neuroscience Institute 10 Giannini Hall, UC Berkeley http://cirl.berkeley.edu/
participants (4)
-
Alan G Isaac
-
Charles R Harris
-
Jarrod Millman
-
Peter Notebaert