Computers: September 2009 Archives
I should add a check for 64-bit mode to the Mac-Carbon Makefile.PL. This will save a lot of hassle if I can give a nice error message, with a link to more information, up front.
I can't test this easily, though, since I don't yet have a 10.6 64-bit box (it's only on an original MacBook Pro, which is 32 bits). I will upgrade to Snow Leopard soon. I could try to make my own perl before then, but I don't know it would work the same way. So. If you want to help, now's your chance!
First thought is Config, but we all know Config can be flaky. For example, on my 32-bit box:
$ perl -V:use64bitall
use64bitall='define';
Doesn't really help. I don't know if $Config{intsize} would be 8 on a 64-bit perl. It's 4 on this 10.6 32-bit perl. I do know you should be able to call perl with VERSIONER_PERL_PREFER_32_BIT=yes to give you 32-bit perl, instead of the default 64-bit perl.
So anyway ... if you can figure out a way to know, under 10.6 stock perl, if I am running under 32-bit perl or 64-bit perl, let me know.
Please do test the aforementioned Mac-Carbon-0.80, and report it on RT if there's a problem. Please note that you MUST build under 32-bit mode, which is especially important if you are using the standard perl that comes with Mac OS X 10.6.
I've also got new versions of Mac::AppleEvents::Simple, Mac::OSA::Simple, and Mac::Glue coming out soon. I want to get Mac-Carbon well-tested out there first, though.
Mac-Carbon-0.80 has been released. Download it from the CPAN.
(Note: it may take time for the release to propagate to the various download mirrors.)
Changes:
* v0.80, 16 September 2009
Add notes for 64-bit perl
Bump all the version numbers
Fix a bunch of tests (nothing major, just make them work better)
Fix sound-env-var checking code for tests (no more sound tests
unless you ask for them with MAC_CARBON_SOUND, which was in the
last version, but the logic was broken)
Make CFStringRef typemap better
Remove high-bit characters from source files
Add new system version gestalt constants
Fix leak in Mac::Processes and Mac::Speech
The default perl for Mac OS X 10.6 runs in 64-bit mode by default. The problem for Mac-Carbon is that significant portions of the Carbon API are unavailable to 64-bit programs on Mac OS X.
Perhaps a subset of the API could be made available to a 64-bit perl (for more information see Apple's "64-Bit Guide for Carbon Developers"), and might in the future, but it's simpler at this point to just run perl in 32-bit mode.
There's a few ways to do this. Most obviously, you could simply build a 32-bit perl. I always build my own perl, and I just compile it for 32 bits.
There's also two methods mentioned in L
VERSIONER_PERL_PREFER_32_BIT=yes
And for the system preference, execute this line in your terminal:
defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes