[Pythonmac-SIG] a beginner's list
Bob Ippolito
bob at redivi.com
Thu Feb 9 04:43:28 CET 2006
On Feb 8, 2006, at 7:13 PM, Kevin Ollivier wrote:
> On Feb 8, 2006, at 5:47 PM, Bob Ippolito wrote:
>
>>
>> On Feb 8, 2006, at 2:11 PM, Kevin Ollivier wrote:
>>
>>>
>>> On Feb 8, 2006, at 1:34 PM, Bob Ippolito wrote:
>>>
>>> [snip]
>>>
>>>>>
>>>>> It's a bit confusing to talk as if needing new extensions ==
>>>>> breakage. (You know you're a geek when it's second nature to write
>>>>> equality tests like this. ;-) I remember Python 2.1 and I've
>>>>> had to
>>>>> upgrade several times, and I never thought of re-installing my
>>>>> extensions as 'fixing what broke'. I called it 'upgrading'. Some
>>>>> people may see initially see what appears to be broken scripts,
>>>>> but
>>>>> unfortunately that would just be because they aren't aware of
>>>>> issues
>>>>> that may occur when upgrading their Python install. I don't
>>>>> think the
>>>>> proper solution is to keep them from upgrading; we just need to
>>>>> build
>>>>> awareness that a new Python major version means new extensions.
>>>>
>>>> We're talking about upgrading Mac OS X, which implicitly upgrades
>>>> Python and obsoletes all of your extensions. I'd call that
>>>> breaking.
>>>
>>> As does just explicitly upgrading your Python. I don't see why it's
>>> breaking if you install Leopard, but upgrading if you install
>>> MacPython 2.4 from pythonmac.org. Either way, your 2.3 extensions
>>> don't work and you have to start from scratch. And either way, if
>>> you
>>> thought things would "just work" you're in for a rude awakening.
>>
>> The difference is that if I didn't know better, I'd get really
>> pissed off if I upgraded my OS and all of my very important work
>> stuff breaks and makes me waste a day tracking down what needs to
>> be fixed. That's not what an OS upgrade is supposed to do. It
>> doesn't do that for anything except applications that depend on
>> moving targets like the system's Python or Perl interpreter.
>
> I'd get really pissed off if I didn't know better and things stopped
> working regardless of how I upgraded Python. You'd consider whose
> Python broke your stuff into your decision to get upset?
Installing Python 2.4 on a machine that has Python 2.3 installed
doesn't break anything... except for any tools you have written that
depend on the PATH. distutils-installed scripts are robust against
PATH changes as they point to a specific Python binary. It's not an
upgrade and it's not harmful.
Upgrading the OS if you depend on its Python *is* potentially an
upgrade and potentially *is* harmful.
There's also the problem of distribution of apps to other machines...
we can solve that with a third party Python, but not with Apple's.
> All Apple is doing is including Python with their OS, and
> occasionally updating it. That these updates can cause not-so-
> pleasant things to happen due to how Python works is not Apple's
> fault. A lot of the speech on here practically accuses Apple of
> causing the problem and it's really not fair.
My biggest problem with their releases is that once there's a bug
you're stuck with it for at least 18 months. Also, their process
isn't very transparent. Very few people who know how to evaluate
their patches get the opportunity to do so before they hit gold
master and it's frozen for years. There are threading bugs in Python
2.3 that I personally ran into. That was the day I stopped using
Python 2.3 altogether because I knew that version of 2.3 was frozen
in time forever on Mac OS X.
For example, Mac OS X 10.4 shipped with floating point bugs that
broke Python in various ways. They'd have found this out if they ran
its regression tests, but apparently that's not part of their
process. It's simply not a trustable release. In this case we were
fortunate that it was a libSystem bug that they were interested in
fixing.. but had it been a typo in their Python Makefile or
something, we'd be screwed like we were on Mac OS X 10.2 with the
rogue -arch i386 flag that broke extension building on their Python
2.2.0.
>> If a third party Python had been used all along, the user has
>> freedom to upgrade their OS *and/or* their interpreter on their
>> schedule.
>
> Sure, but it's got nothing to do with problems in Apple's Python and
> everything to do with avoiding upgrades to avoid updating extensions.
> So be straight with users - tell them things break when Python is
> upgraded to a new major version; don't tell them (or suggest) things
> break because Apple is doing it.
That's not quite true because it's possible to have a couple
different installations of Python on a given machine, but only one
vendor Python. If you depend on the vendor's Python, any upgrade by
the vendor could break your installation. If you have your own
Python installation(s) you can keep them working for as long as you
want or need them to, because the vendor's C ABI is stable where
their Python ABI is not.
-bob
More information about the Pythonmac-SIG
mailing list