develooper Front page | perl.perl5.porters | Postings from August 2010

Re: [perl #76138] perl inadvertently destroys signal handlers as of f746176000

Thread Previous | Thread Next
From:
Florian Ragwitz
Date:
August 31, 2010 10:25
Subject:
Re: [perl #76138] perl inadvertently destroys signal handlers as of f746176000
Message ID:
87aao2u24c.fsf@tardis.home.perldition.org
Father Chrysostomos <sprout@cpan.org> writes:
> Here’s a patch. All tests pass, except for cpan/CGI/t/http.t, which
> always fails. Attached also is a file with perldelta entries.

Thank you! I very much appreciate you writing perldelta entries for your
changes.

> The diff may be a bit confusing. I moved the cases for ISA and
> OVERLOAD up into a new switch block that only applies to packages
> other than main. diff found a different way of looking at it.

This part of the diff has me a little confused:

+	    case 'I':
+		goto magicalise_isa;
+	    case 'O':
+		goto magicalise_overload;
 	    case 'S':
 		if (strEQ(name2, "IG")) {
 		    HV *hv;

That's a chunk in the second switch, for symbols in PL_defstash. Why
does ISA and OVERLOAD need special handling there? And they do, why is
it enough to check only for the first character before jumping to the
relevant code in tie first switch for symbols in main::?

Without those 4 lines, all the tests still pass.

> For posterity, every test in leaky-magic.t fails without the gv.c
> changes, except for qw< %! %+ %- $/ $: $0 >, which seem to be
> unaffected by this bug.

In that test, you do

+sub tests'VERSION { $tests += pop };

Is using ' instead of :: there actually relevant to the test? It seems
like there's a pretty broad consensus on not doing that anymore for new
code within the core.

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About