On Dec 14, 2007, at 12:02 PM, Rachel Blackman wrote:
>> I've obviously got issues to deal with, and CamelBones users deserve,
>> more than anything else, a maintainer whose head is on straight.
>> Someone who cares about it and enjoys working on it. That isn't me,
>> and it's way past time for me to admit that.
>> Any volunteers?
> I'll pitch in with whatever is necessary to get CamelBones up and
> running under Leopard, though I'm not sure how much long-term
> development effort I can put in. (Though if worst comes to worst,
> I'll give it a go.)
> I also think no matter who takes over as the maintainer, CB remains
> 'your' project inasmuch as the vision and effort to get it here in the
> first place was yours. (And speaking from experience, sometimes
> burnout fades two years later and interest picks up.) :)
I think burnout is the biggest problem. Google for "psychological
effects of long-term unemployment", and you'll find some pretty
accurate descriptions of my mental state right now.
I'm not trying to make excuses; I'm completely aware that my job
situation is a direct result of my own bad decisions. I'm just
saying, I'm basically a mental mess right now, and those of you who
have stuck with me over the years deserve to know the truth.
> In the shorter term... I've already been trying to work on getting it
> up under Leopard, though the version in CVS at Sourceforge seems to
> have a lot of unlisted prerequisites which I've been putting together
> by hand (I can safely say that trying to compile a universal binary of
> libavcall is not my idea of fun). If there is a list of requirements
> -- or a partially-done Leopard-compatible one to work from -- that
> would make a good starting point.
Libffcall had to go anyway; it couldn't handle structs defined at
runtime, which is a necessary prerequisite for BridgeSupport. Also,
the only way I could convince it to handle structs at all was to call
objc_msgSend_stret(), which wasn't officially kosher and causes some
problems on Intel Macs. And that's without getting into the build
In SVN (not CVS!), I've checked in the changes I have made. First and
foremost, libffcall is gone, replaced with libffi. There are also
Xcode projects, with the main CamelBones project set up to depend on
the FFI subproject and build it as needed.
In the main project, there are separate targets for the framework,
and for each of the support bundles needed for a particular libperl.
There are three different release configurations, each of which has
its own installation path: Release (/Library/Frameworks), Release-App-
Embedded (@executable_path/../Frameworks), and Release-Lib-Embedded
What remains to do is to integrate the Perl part of the build process
with Xcode - that is, the "cd CPAN; perl Makefile.PL; make; make
test" part of it. As written, that uses the framework installed in /
Library/Frameworks, but Xcode doesn't install the framework before
going on to that step.
> I think at this point I have found most of them (though once I'm ready
> to do a proper compile I know I'll need to install a couple legacy
> copies of Perl).
I've put together what I call "Perl SDKs" - basically, installer
packages that consist of all the Perl files from Panther and Tiger.
You might need the Tiger Perl SDK even if you're already using Tiger;
it depends on whether your Tiger shipped with a Universal build of
Perl or not. Neither Perl SDK will overwrite /usr/bin/perl, they only
install /usr/bin/perl5.8.1 and /usr/bin/perl5.8.6. I'll upload those
to SourceForge's file release system later today.
> But some bits of CB seem to need some rewriting to
> compile with Leopard as a target at all, so if some of that rewriting
> is already done that would be useful.
Leopard appears to have added some additional primitive methods to
the NSArray and NSDictionary class clusters, presumably to support
the new enumeration scheme in Objective-C 2.0. Those new methods will
need to be implemented in CBPerlArray.m and CBPerlHash.m, respectively.
Web Hosting by West Virginians, for West Virginians: http://wv-www.net
Cocoa programming in Perl: http://camelbones.sourceforge.net