[Pythonmac-SIG] A couple of universal binary questions
Bob Ippolito
bob at redivi.com
Tue Jun 6 19:35:06 CEST 2006
On Jun 6, 2006, at 9:56 AM, Michael Glassford wrote:
> Bob Ippolito wrote:
>
>>> What's the right way to detect within the application whether its
>>> running on an Intel or a PowerPC Mac? I can figure out a way on
>>> my own
>>> (such as looking at sys.byteorder), but I wonder if there's an
>>> "official" way.
>>
>> The right way to detect is to not detect at all.
>
> I realize that's generally preferable, but...
>
>> Otherwise, it depends on what reason you're doing it.
>
> I'm experimenting with getting Psyco working in the application, and
> obviously only want to enable it if I'm running on an Intel
> machine. It
> may turn out to do this check on its own; at the moment I can't tell,
> because enabling it automatically crashes my application on both Intel
> and PowerPC Macs.
psyco doesn't quite work on Mac OS X i386. I think it's because Mac
OS X requires a 16 byte stack alignment, and other i386 platforms
expect much less (4 I think) so psyco ends up misaligning the stack
on some function calls and ends up crashing somewhat non-
deterministically. It didn't look very easy to fix, there's a lot of
gnarly code in psyco... someone would more or less have to ask Armin
how to fix it.
psyco's ivm backend should work on both if it works at all, but I'm
not sure how stable it is or how much of a performance boost it's
going to get, and I don't think it's ever really seen any real-world
use.
Note that it'd be possible to simply change psyco a bit make the PPC
part of psyco compile to a binary that raises ImportError.. which
would alleviate any need to do platform detection.
-bob
More information about the Pythonmac-SIG
mailing list