Hi Chocolateboy,
On 01/24/2011 02:54 PM, chocolateboy via RT wrote:
Show quoted text
Awesome, thank you!
Show quoted text> FWIW, I have /way/ more failures with /most/ of my CPAN modules than we
> have with Class::XSAccessor. I salute your diligence, but I (personally)
> don't think J Random OS failing/segfaulting occasionally is a big deal.
> To paraphrase someone whose name I've forgotten: if your modules aren't
> segfaulting on a regular basis, then you're not attempting to do
> anything interesting.
>
> Surely you must be used to this with PAR? I'm sure even I've filed some
> bogus bug reports against that. :-)
Yes, trying to make/keep PAR/PAR::Packer portable and robust has cost me
plenty of hair due to frustration. I am very, very happy that the ever
helpful and industrious Roderich Schupp has taken it off my hands when I
was about to give up. That reminds me that I should take a step back and
now support HIS work in turn. Alas, still swamped.
The difference to PAR is that PAR is a development tool. PAR.pm can't
segfault, but if PAR::Packer does... so what? A frustrated developer?
What do I care? Let's share the hate.
C::XSA is, however, very widely used in diverse environments, some of
them persistent (mod_perl with threading and friends) and critical. I
know that Peter, who reported this crash, added code to use C::XSA to
Class::Accessor::Grouped which is used by, correct me if I am wrong,
DBIx::Class. Rose::Object uses C::XSA if available. I also believe Matt
Trout's Moo.pm uses it optionally.
Given that these are all infrastructural modules themselves, the number
of upstream dependents can be very large. Additionally, I know of at
least one proprietary large product that uses it. No. Not my employer.
This all considered, I admit that this turned into a petty rant instead
of a tongue-in-cheek response. Sorry if I went all lecturer on you ;)
But seriously, I think making C::XSA robust isn't just a fun exercise at
this point.
On a related note (but off-topic for this bug report), I managed to make
stack-munging method delegation in XS work, but without entersub
optimization at this point. It's not that hard after all after
understanding the stacks. Turns out it is slower than doing the same in
Perl. Probably due to call_sv being slower than entersub. I will be in
touch once I find the time to find out what's going on.
Cheers,
Steffen