On Dec 14, 2007 11:07 AM, Tom Yarrish <[EMAIL PROTECTED]> wrote:

>
> ----- Original Message -----
> From: "Sherm Pendley" <[EMAIL PROTECTED]>
> To: macosx@perl.org
> Sent: Friday, December 14, 2007 9:52:43 AM (GMT-0600) America/Chicago
> Subject: CamelBones: Maintainer needed
>
> I haven't had a real job in years, and I'm at a point now where I don't
> even
> care about that, about CamelBones, about Perl, or really about much of
> anything else computer-related. I've had more than enough time to ship a
> Leopard-compatible CamelBones, but I just haven't been able to find the
> enthusiasm to get it (or anything else) done. I sit down at the computer,
> start up Xcode, and I think, what's the point? I've spent a lifetime
> writing
> code, and it's gotten me nowhere; what possible difference would a few
> more
> hours make?
>
> 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?
>
> sherm--
>
>
> Sherm,
> Can you give an idea on the experience one would need to maintain it?  I'm
> assuming you wouldn't want a relative newbie to Perl to take it over.
> (of course if it doesn't matter, I might be interested)
>

Oddly, there's not a whole lot of actual Perl code in it, although what's
there is kind of obscure. Autoload is used to catch method calls that aren't
implemented in Perl, and send them across the bridge, tied arrays and hashes
to implement the Perl side of "toll free" bridging, and attributes are used
to declare method signatures.

Of course, there's a good amount of XS programming involved. You'd need to
know your way around the perlembed, perlguts, and perlapi docs.

And you'd definitely need to know your way around Cocoa, and the Objective-C
runtime functions. Perl classes are registered with the ObjC runtime, and
participate directly in the inheritance hierarchy; the key difference with
such classes is that their selectors all share the same IMP (aka
implementation function), which uses Perl's internal API (i.e. perldoc
perlapi) to reflect the call to Perl. The ObjC runtime is also used to get a
list of registered classes at startup, after which libperl functions are
used to create all the packages and @ISA arrays that are needed for the
autoloading to work when Cocoa methods are called from Perl.

On the Cocoa side, there are NSArray and NSDictionary subclasses whose
primitive functions use libperl functions to access Perl's arrays and
hashes, respectively. To deal with that, you'd need to understand how
Cocoa's class clusters work, and how to add a new concrete subclass to them.

sherm--

Reply via email to