I've gotten two bug reports about this in the first hour, so I think this needs explaining. :-)

A binary that links to Perl has to link against a specific Perl version, and isn't compatible with any other version. This is true for both XS modules that are loaded by Perl, and for applications that load Perl as a library.

The CamelBones framework works around this issue by not linking directly to libperl. Instead, it includes a number of bundles, each of which is linked to a specific libperl. When a CamelBones app launches, the first thing it does is choose which one of these bundles to use.

To make that choice, it runs a Perl one-liner. To find what Perl to use when running that one-liner, it looks for the key "perl" in the defaults domain "org.dot-app.CamelBones". If it finds one, it uses it; otherwise it defaults to "/usr/bin/perl". The framework that's included with this ShuX release only has a bundle for the default Perl 5.8.1 that shipped with Panther, so if it defaults to /usr/bin/perl, and that doesn't point to Perl 5.8.1, there's a problem.

The crashes are the result of poor error-handling. If CamelBones can't find a bundle that corresponds to the info returned by the one-liner, it crashes. I'll make a note of that, and provide better error reporting in the next release. Sorry about the inconvenience, but that's what betas are for - to find problems that I hadn't anticipated and/or found myself.

sherm--

Cocoa programming in Perl: http://camelbones.sourceforge.net
Hire me! My resume: http://www.dot-app.org



Reply via email to