Pathologically Eclectic Rubbish Lister | |
PerlMonks |
Re: errno in XS not propagating to $! - breaks Net::SSLeay (misblamed)by tye (Sage) |
on Feb 14, 2008 at 18:09 UTC ( [id://667990]=note: print w/replies, xml ) | Need Help?? |
I recall a change quite a while ago to save-and-restore the value of errno around XS calls, presumably to reduce the noise of XS calls changing the value of $!, presumably unintentionally. But despite Net::SSLeay's pretty poor pass/fail ratio on CPAN of late, it does pass tests sometimes. That throws into question my recollection of this feature. Or perhaps it is the case that fairly rarely $! is 0 by luck and the test passes. Or perhaps this feature was only added on some platforms (and Net::SSLeay fails tests on other platforms for other reasons, of course). But I certainly don't think your jumping to the conclusion of blaming compiler differences is warranted. I would not expect compiler differences to break linking of the errno global (if linking together global symbols didn't work, then you'd have a ton more problems than errno). And I wouldn't expect compiler difference to cause a change in how Perl deals with errno in some other way, though I'm less certain of that. Update: Re^2: errno in XS not propagating to $! - breaks Net::SSLeay describes how there being two different errno globals can actually happen here. My next step would be to search for code related to XS handling that sets errno. - tye
In Section
Seekers of Perl Wisdom
|
|