Change 33943 by [EMAIL PROTECTED] on 2008/05/28 15:54:22 Integrate: [ 33414] Subject: [perl #46957] [PATCH] make Devel::Peek::mstat always available From: [EMAIL PROTECTED] (via RT) <[EMAIL PROTECTED]> Date: Sat, 27 Oct 2007 11:33:57 -0700 Message-ID: <[EMAIL PROTECTED]> [ 33416] Subject: Re: [PATCH] NEXT.pm bug within overloaded stringification From: Marcel Grünauer <[EMAIL PROTECTED]> Message-Id: <[EMAIL PROTECTED]> Date: Mon, 3 Mar 2008 16:08:48 +0100 (a resend of <[EMAIL PROTECTED]>) [ 33434] Subject: [perl #50538] when( @n && %n ) fails to smart match From: "brian d foy" (via RT) <[EMAIL PROTECTED]> Date: Mon, 04 Feb 2008 19:36:01 -0800 Message-ID: <[EMAIL PROTECTED]> Updated tests in ticket to become TODO tests [ 33439] Bump VERSION after change #33416 (so we don't end up with different code but same version in 5.10.0 and, say, 5.10.1) [ 33442] Better line diagnostics - runlint's caller rather than runlint itself. [ 33445] Bring the joy of strict to ext/B/t/lint.t. [ 33447] Refactoring the /Can't return (?:array|hash) to scalar context/ croak logic in pp_rv2av into one place saves 112 bytes here. [ 33457] Subject: [PATCH] count-only transliteration needlessly makes copy-on-write From: "Yitzchak Scott-Thoennes" <[EMAIL PROTECTED]> Date: Tue, 4 Mar 2008 16:54:29 -0800 (PST) Message-ID: <[EMAIL PROTECTED]> [ 33458] Subject: Re: [PATCH] mg_magical() sometimes turns SvRMAGICAL on when it shouldn't From: Vincent Pit <[EMAIL PROTECTED]> Date: Fri, 08 Feb 2008 23:22:19 +0100 Message-ID: <[EMAIL PROTECTED]> [ 33463] Silence warning from VC++ following #33447 (not all control paths return a value) [ 33466] Subject: [PATCH] MAD update list of failures in mad/t/p55.t From: Gerard Goossen <[EMAIL PROTECTED]> Date: Mon, 10 Mar 2008 15:17:08 +0100 Message-ID: <[EMAIL PROTECTED]> [ 33467] Subject: [PATCH] Re: [PATCH] MAD fix p55 $[ From: Gerard Goossen <[EMAIL PROTECTED]> Date: Mon, 10 Mar 2008 15:44:03 +0100 Message-ID: <[EMAIL PROTECTED]> [ 33470] Subject: Re: [PATCH] make Archive::Extract's x.lzma test file be lzma'd, From: "Yitzchak Scott-Thoennes" <[EMAIL PROTECTED]> Date: Tue, 4 Mar 2008 00:28:34 -0800 (PST) Message-ID: <[EMAIL PROTECTED]>
Affected files ... ... //depot/maint-5.10/perl/MANIFEST#27 integrate ... //depot/maint-5.10/perl/doop.c#4 integrate ... //depot/maint-5.10/perl/ext/B/t/lint.t#2 integrate ... //depot/maint-5.10/perl/ext/Devel/Peek/Peek.xs#2 integrate ... //depot/maint-5.10/perl/ext/XS/APItest/APItest.pm#4 integrate ... //depot/maint-5.10/perl/ext/XS/APItest/APItest.xs#3 integrate ... //depot/maint-5.10/perl/ext/XS/APItest/t/rmagical.t#1 branch ... //depot/maint-5.10/perl/lib/Archive/Extract/t/src/x.lzma.packed#2 integrate ... //depot/maint-5.10/perl/lib/NEXT.pm#2 integrate ... //depot/maint-5.10/perl/lib/NEXT/t/stringify.t#1 branch ... //depot/maint-5.10/perl/mad/t/p55.t#2 integrate ... //depot/maint-5.10/perl/malloc.c#4 integrate ... //depot/maint-5.10/perl/mg.c#8 integrate ... //depot/maint-5.10/perl/op.c#12 integrate ... //depot/maint-5.10/perl/pp_hot.c#13 integrate ... //depot/maint-5.10/perl/t/op/switch.t#2 integrate ... //depot/maint-5.10/perl/t/op/tr.t#2 integrate Differences ... ==== //depot/maint-5.10/perl/MANIFEST#27 (text) ==== Index: perl/MANIFEST --- perl/MANIFEST#26~33941~ 2008-05-27 15:58:13.000000000 -0700 +++ perl/MANIFEST 2008-05-28 08:54:22.000000000 -0700 @@ -1260,6 +1260,7 @@ ext/XS/APItest/t/op.t XS::APItest: tests for OP related APIs ext/XS/APItest/t/printf.t XS::APItest extension ext/XS/APItest/t/push.t XS::APItest extension +ext/XS/APItest/t/rmagical.t XS::APItest extension ext/XS/APItest/t/svsetsv.t Test behaviour of sv_setsv with/without PERL_CORE ext/XS/APItest/t/xs_special_subs_require.t for require too ext/XS/APItest/t/xs_special_subs.t Test that XS BEGIN/CHECK/INIT/END work @@ -2306,6 +2307,7 @@ lib/NEXT/t/actual.t NEXT lib/NEXT/t/actuns.t NEXT lib/NEXT/t/next.t NEXT +lib/NEXT/t/stringify.t NEXT lib/NEXT/t/unseen.t NEXT lib/Object/Accessor.pm Object::Accessor lib/Object/Accessor/t/00_Object-Accessor.t Object::Accessor tests ==== //depot/maint-5.10/perl/doop.c#4 (text) ==== Index: perl/doop.c --- perl/doop.c#3~33880~ 2008-05-20 05:15:13.000000000 -0700 +++ perl/doop.c 2008-05-28 08:54:22.000000000 -0700 @@ -621,10 +621,10 @@ const I32 hasutf = (PL_op->op_private & (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF)); - if (SvREADONLY(sv)) { + if (SvREADONLY(sv) && !(PL_op->op_private & OPpTRANS_IDENTICAL)) { if (SvIsCOW(sv)) sv_force_normal_flags(sv, 0); - if (SvREADONLY(sv) && !(PL_op->op_private & OPpTRANS_IDENTICAL)) + if (SvREADONLY(sv)) Perl_croak(aTHX_ PL_no_modify); } (void)SvPV_const(sv, len); ==== //depot/maint-5.10/perl/ext/B/t/lint.t#2 (text) ==== Index: perl/ext/B/t/lint.t --- perl/ext/B/t/lint.t#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/ext/B/t/lint.t 2008-05-28 08:54:22.000000000 -0700 @@ -16,6 +16,8 @@ } require 'test.pl'; } +use strict; +use warnings; plan tests => 29; @@ -29,6 +31,7 @@ stderr => 1, ); $res =~ s/-e syntax OK\n$//; + local $::Level = $::Level + 1; is( $res, $result, $testname || $opts ); } ==== //depot/maint-5.10/perl/ext/Devel/Peek/Peek.xs#2 (text) ==== Index: perl/ext/Devel/Peek/Peek.xs --- perl/ext/Devel/Peek/Peek.xs#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/ext/Devel/Peek/Peek.xs 2008-05-28 08:54:22.000000000 -0700 @@ -127,16 +127,14 @@ #endif /* !PURIFY */ } -#if (defined(PERL_DEBUGGING_MSTATS) || defined(DEBUGGING_MSTATS)) \ - && (defined(MYMALLOC) && !defined(PLAIN_MALLOC)) +#if defined(MYMALLOC) # define mstat(str) dump_mstats(str) #else # define mstat(str) \ - PerlIO_printf(Perl_debug_log, "%s: perl not compiled with DEBUGGING_MSTATS\n",str); + PerlIO_printf(Perl_debug_log, "%s: perl not compiled with MYMALLOC\n",str); #endif -#if (defined(PERL_DEBUGGING_MSTATS) || defined(DEBUGGING_MSTATS)) \ - && (defined(MYMALLOC) && !defined(PLAIN_MALLOC)) +#if defined(MYMALLOC) /* Very coarse overestimate, 2-per-power-of-2, one more to determine NBUCKETS. */ # define _NBUCKETS (2*8*IVSIZE+1) @@ -293,7 +291,7 @@ croak("Wrong size for a value with a mstats buffer"); _mstats_to_hv((HV *)SvRV(rv), (struct mstats_buffer*)SvPVX(sv), level); } -#else /* !( defined(PERL_DEBUGGING_MSTATS) || defined(DEBUGGING_MSTATS) \ ) */ +#else /* defined(MYMALLOC) */ static void fill_mstats(SV *sv, int level) { @@ -311,7 +309,7 @@ { croak("Cannot report mstats without Perl malloc"); } -#endif /* defined(PERL_DEBUGGING_MSTATS) || defined(DEBUGGING_MSTATS)... */ +#endif /* defined(MYMALLOC) */ #define _CvGV(cv) \ (SvROK(cv) && (SvTYPE(SvRV(cv))==SVt_PVCV) \ ==== //depot/maint-5.10/perl/ext/XS/APItest/APItest.pm#4 (text) ==== Index: perl/ext/XS/APItest/APItest.pm --- perl/ext/XS/APItest/APItest.pm#3~33857~ 2008-05-18 12:29:48.000000000 -0700 +++ perl/ext/XS/APItest/APItest.pm 2008-05-28 08:54:22.000000000 -0700 @@ -22,9 +22,10 @@ apitest_exception mycroak strtab my_cxt_getint my_cxt_getsv my_cxt_setint my_cxt_setsv sv_setsv_cow_hashkey_core sv_setsv_cow_hashkey_notcore + rmagical_cast rmagical_flags ); -our $VERSION = '0.13'; +our $VERSION = '0.14'; use vars '$WARNINGS_ON_BOOTSTRAP'; use vars map "\$${_}_called_PP", qw(BEGIN UNITCHECK CHECK INIT END); ==== //depot/maint-5.10/perl/ext/XS/APItest/APItest.xs#3 (text) ==== Index: perl/ext/XS/APItest/APItest.xs --- perl/ext/XS/APItest/APItest.xs#2~32700~ 2007-12-22 03:55:16.000000000 -0800 +++ perl/ext/XS/APItest/APItest.xs 2008-05-28 08:54:22.000000000 -0700 @@ -233,6 +233,13 @@ return 0; } +STATIC I32 +rmagical_a_dummy(pTHX_ IV idx, SV *sv) { + return 0; +} + +STATIC MGVTBL rmagical_b = { 0 }; + #include "const-c.inc" MODULE = XS::APItest:Hash PACKAGE = XS::APItest::Hash @@ -813,6 +820,38 @@ sv_setsv_cow_hashkey_notcore() void +rmagical_cast(sv, type) + SV *sv; + SV *type; + PREINIT: + struct ufuncs uf; + PPCODE: + if (!SvOK(sv) || !SvROK(sv) || !SvOK(type)) { XSRETURN_UNDEF; } + sv = SvRV(sv); + if (SvTYPE(sv) != SVt_PVHV) { XSRETURN_UNDEF; } + uf.uf_val = rmagical_a_dummy; + uf.uf_set = NULL; + uf.uf_index = 0; + if (SvTRUE(type)) { /* b */ + sv_magicext(sv, NULL, PERL_MAGIC_ext, &rmagical_b, NULL, 0); + } else { /* a */ + sv_magic(sv, NULL, PERL_MAGIC_uvar, (char *) &uf, sizeof(uf)); + } + XSRETURN_YES; + +void +rmagical_flags(sv) + SV *sv; + PPCODE: + if (!SvOK(sv) || !SvROK(sv)) { XSRETURN_UNDEF; } + sv = SvRV(sv); + EXTEND(SP, 3); + mXPUSHu(SvFLAGS(sv) & SVs_GMG); + mXPUSHu(SvFLAGS(sv) & SVs_SMG); + mXPUSHu(SvFLAGS(sv) & SVs_RMG); + XSRETURN(3); + +void BEGIN() CODE: sv_inc(get_sv("XS::APItest::BEGIN_called", GV_ADD|GV_ADDMULTI)); ==== //depot/maint-5.10/perl/ext/XS/APItest/t/rmagical.t#1 (text) ==== Index: perl/ext/XS/APItest/t/rmagical.t --- /dev/null 2008-05-07 15:08:24.549929899 -0700 +++ perl/ext/XS/APItest/t/rmagical.t 2008-05-28 08:54:22.000000000 -0700 @@ -0,0 +1,29 @@ +#!perl + +# Consider two kinds of magic : +# A : PERL_MAGIC_uvar, with get (but no set) magic +# B : PERL_MAGIC_ext, with a zero vtbl +# If those magic are attached on a sv in such a way that the MAGIC chain +# looks like sv -> B -> A -> NULL (i.e. we first apply A and then B), then +# mg_magical won't turn SvRMAGICAL on. However, if the chain is in the +# opposite order (sv -> A -> B -> NULL), SvRMAGICAL used to be turned on. + +use strict; +use warnings; + +use Test::More tests => 3; + +use_ok('XS::APItest'); + +my (%h1, %h2); +my @f; + +rmagical_cast(\%h1, 0); # A +rmagical_cast(\%h1, 1); # B [EMAIL PROTECTED] = rmagical_flags(\%h1); +ok(!$f[2], "For sv -> B -> A -> NULL, SvRMAGICAL(sv) is false"); + +rmagical_cast(\%h2, 1); # B +rmagical_cast(\%h2, 0); # A [EMAIL PROTECTED] = rmagical_flags(\%h2); +ok(!$f[2], "For sv -> A -> B -> NULL, SvRMAGICAL(sv) is false"); ==== //depot/maint-5.10/perl/lib/Archive/Extract/t/src/x.lzma.packed#2 (text) ==== Index: perl/lib/Archive/Extract/t/src/x.lzma.packed --- perl/lib/Archive/Extract/t/src/x.lzma.packed#1~33113~ 2008-01-29 14:22:25.000000000 -0800 +++ perl/lib/Archive/Extract/t/src/x.lzma.packed 2008-05-28 08:54:22.000000000 -0700 @@ -10,198 +10,7 @@ uupacktool.pl -p lib/Archive/Extract/t/src/x.lzma lib/Archive/Extract/t/src/x.lzma.packed -Created at Mon Jan 28 14:00:38 2008 +Created at Tue Mar 4 00:26:10 2008 ######################################################################### __UU__ -M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C -M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(PI4:&ES(&ES(&[EMAIL PROTECTED])Y -M(&9I;&[EMAIL PROTECTED]&AA="!W87,@<&%C:V5D('=I=&@@=&AE("=U=7!A8VMT;V]L+G!L -M)R!W:&EC:`II<R!I;F-L=61E9"!I;B!T:&[EMAIL PROTECTED]&5R;"!D:7-T<FEB=71I;VXN -M"@I4;R!U;[EMAIL PROTECTED]&AI<R!F:6QE('5S92!T:&[EMAIL PROTECTED];&]W:6YG(&-O;6UA -M;F0Z"@H@("`@('5U<&%C:W1O;VPN<&[EMAIL PROTECTED]@;&EB+T%R8VAI=F4O17AT<F%C -M="]T+W-R8R]X+FQZ;[EMAIL PROTECTED]&]O;"YP;`H*5&\@<F5C<F5A=&4@:70@ -M=7-E('1H92!F;VQL;W=I;F<@8V]M;6%N9#H*"B`@("[EMAIL PROTECTED]&]O;"YP -M;"`M<"!U=7!A8VMT;V]L+G!L(&QI8B]!<F-H:79E+T5X=')A8W0O="]S<F,O -M>"YL>FUA"@I#<F5A=&5D(&%T($UO;B!*86X@,C@@,3,Z-3DZ,S<@,C`P.`HC -M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C -M(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C"E]?555?7PI-*%(E4#DW*4PB -M0$E5/%8T0#Q7,5(Z-BU4+E!)53Q6-$`]5B52.T9%3CE7+%LB1S53.3(A)SDW -M,4\\)S!:"DTN1%%/.T8\6R)'-5,Y,B$F.C9112Y#22(X-RU%.T8E33DS3"H] -M-RU%*"0Y23LF-%HN12U0.38L6R)`22(*33$T/2DS0B%;(D)@0"@B(4DY0F!( [EMAIL PROTECTED](CTV,S4L1RHR(5LB0F!`*")@0"@B8$`\1C51/[EMAIL PROTECTED](A -M-C,U+%HN1#E).R8U4SPF-4,N4$A`*")@0"@B8$`H)D5-/"9=4CTB(38S-2Q: -M+D0Y23LF-5,\)C5#"DTN4$A`*")@0#\P25TB0$DG.3<Q3SPG,%HN1%%/.T8\ -M6BY$+4\[1CE).5<U4CDR0$<[1ET_.C8]3CM7*44*33=6+4$\5C1'*C-,*B)& -M754\0F!$,R8E4STE-5`Y)B54.3)@[EMAIL PROTECTED](C!0+E!(*CQ7-4(H)D%!.T8Q -M3`I-.35=1CHV444H)TPJ*")@0"@F55DH(C%//"<[EMAIL PROTECTED](U1`/%9!23E' -M,%LB0F!`*"(A33XR8$0Y1D5,"DTY,F!`*")@[EMAIL PROTECTED]@Z-CE4*"[EMAIL PROTECTED],4DY -M,F!",T8U13DB(48Z-E%%-R980BM"(54\5B5'.3)[EMAIL PROTECTED] -M*29=53TF.4D[)C1`+S(A4SHF148](B%</R)@1RE33"HH(F!`*"(Q1CHV444H -M(U1`/4954PI--U8M2#DV+4LW5EE!.S8T2"DF.4D[)C1)*"[EMAIL PROTECTED],3XS4B%% -M/#)@1S5$53,I4TPJ*")@0"@F55DH(C%-"DT[5C%%*")@0"@C5$`J)RU4.#<P -M2"DF.4D[)C1)*C5,4C<R8$8H(V!7+5,\5RY02"HH(F!`*"9=4#DV6$`*33LW -M1$`I)CE(*R)@0B\B*$PH(C%&.C9112)"8$`H(F!`*")@0#M7*$`Y)EQ`/E(A [EMAIL PROTECTED](BDC.U<U3`I-.2(A3CM7,$`[5R%%.T(A23M'(54](B%&[EMAIL PROTECTED] -M,48Z-E%%+D)@1"@R*%LH)C58.C<P0"PB(5TN4$A`"DTH(F!`.S=$0"DG+50\ -M0F!=*"[EMAIL PROTECTED])EU#.#900"DB7%LH([EMAIL PROTECTED]")@0"A2 -M+$,[EMAIL PROTECTED])B5#.E-<[EMAIL PROTECTED])E59*"(Q3STW,5,])RA;(D)@0"@B(4DY -M0D!`*29=4#TG+$TO1TU5/S)@20I-*"=,[EMAIL PROTECTED](F!`*"(A23E"0$`H,C%/ -M/3<Q1CHV444H(D1`/E!(0"@B8$`H(F!`*")@0"@B8$0[5S54"DTY1D5,.3)@ [EMAIL PROTECTED],48Z-E%%+E!(0"@B8$`H(F!`*")@0"@B8$0[5S54.49%3#DR8%T_0B%3 -M*U503CPF)4,*33I6-40W)TA/*U-,[EMAIL PROTECTED](F!`*"(A72)"8$`H(F!`*")@ -M0#LW1$`J(C%(.38E1"LB8$0X1EU$/C)$0`I-+S(A4SPF44D](F!/-U5=-34U -M73\W)EA/*R)@1#Q7,5(N4$A`*")@0"@B8$`H)C%).3)@0C!6)4XI5S!`"DT] [EMAIL PROTECTED])CE//$9513DB(40X-S%!*"[EMAIL PROTECTED]/$0Y1D5,.3(]/#M" -M*"HH(F!`*")@0"@[EMAIL PROTECTED](Q2#DV)40N4$A`*")@0"@B8$`H -M(C%//3<Q4STG*$`O,B%5.T<A03A63$`I5S1'*R)@1`I-.$9=1#XS3"HB0F!` -M*"([EMAIL PROTECTED]/E!(0"@B8$`H(F!`*"(Q3STW,48Z-E%%*"=17"\R8$0Y -M1D5,"DTY,F!.*"(\3CPF)4,Z5C5$*5-,*B)"8$`H(F!`*")@0#LW1$`I)E5% -M*"-40#A&)5,Y-EE!.S8T2"DC8$D*32Y02"HH(F!`*")@0"@B8$0[5S54/%<Q [EMAIL PROTECTED](U!",31=)C!$434T1"A"*")80#PF)4,Z4F!'/3(\3`I-*"(Q4STG -M*%LB0BQ#*%(L0RA2+$,H4BQ#*%(L0RA2+$,H4BQ#*%(L0RA2+$,H4BQ#*%(L -M0RA2+$,H4BQ#"DTH4BQ#*%(L0RA2+$,H4BQ#*%(L0RA2+$,H4BQ#*%(L0RA2 -M+$,H4BQ#*%(L0RA2+"HU)D%)/%(A23Q2([EMAIL PROTECTED]/C(A1CHV444H -M)S%(.#<P0#U6)5,H)R%!.%9-13DB(5<Z-S%(*"<Q2#DR8$<]-S50.#8M2PI- -M/29=3SLB65`[(CQ`/59!23A60"HZ-RQ`.C990SLG-40Y-C!`.C980#TF044H -M)2%%/$900#DF15,])RE)"DTX1S54.C9=3BM`2"HU)EQ`/[EMAIL PROTECTED])S%( -M.C<L0#E&14PY,B%5/%8T0#TF044H)CE/.R913SU614X*33E2(4,[5E5-.#99 -M1"Y`2"HH(F!`*")@1#LV-$`K-S1`*29=53TF.4D[)C1`*28Y23LF-"HB13%/ -M*"<I10I-.%<[EMAIL PROTECTED],44H)D54*"<U4SDR(50Z)C1`.49=3#LF75<Z-EE'*"8M -M3SLV54$[1C!:(D!(0"@B8$`H(C%-"DTY,F!-/")@1#E&14PY,F!$.U<U5#E& -M14PY,[EMAIL PROTECTED],%<[EMAIL PROTECTED],44Y(B%!/2(A8#Y535,X5B5,.#<H0#LF74,[EMAIL PROTECTED] -M-E5%-S=4*BA2+$,H4BQ#*%(L0RA2+$,H4BQ#*%(L0RA2+$,H4BQ#*%(L0RA2 -M+$,H4BQ#*%(L0PI-*%(L0RA2+$,H4BQ#*%(L0RA2+$,H4BQ#*%(L0RA2+$,H -M4BQ#*%(L0RA2+$,H4BQ#*%!)/S=5-34W55PJ"DTQ-%TF,$11-31$*"HH(F!` -M*"=4*B)"8$`H(F!#*%(L0#M7-50\)S54*"<Q2#DR(48Z-E%%(D)@0"@B(4D* -M33E"0$`I)EU0/2<L32]'3$<\4CU=*")$0#Y02$`H(F!`*")@0"@G(5(Z-EE4 -M*"4M-#$D734U(F!$.U<U5`I-/%<Q4BY02$`H(F!`/S(A13LG+44H)TPJ*")@ -M0"@B8$`H(F!$.U<U5#E&14PY,F!=*"4Y+3132%HQ1D5,"DTY-RU0.38L6BY' -M.4T\5D5&/C)`1#M7-50Y1D5,.3)$0#HV.$`I)5DO*"[EMAIL PROTECTED]/38S-2Q'+E!( -M0"@[EMAIL PROTECTED])R%2.C995"@B*3<[EMAIL PROTECTED],48Z-E%%*"9%3CTF -M7$`I)EU5/28Y23LF-3P[0BA`.C8X0`I-*29=4#TG+$TO1TQ'/4(]72Y02$`H -M(F!`*")@0"@F75`Y-EA`.S=$0"DF754])CE(*R)@0B]"*$PH(C%/"DT]-S%& -M.C9112)"8$`H(F!`*")@0"@B8$`H)EU2*"[EMAIL PROTECTED])@0C!6754[ -M)C!`.T9=5"@F75`*33DV6$`I)EU5/28Y23LF-$`Y1EU2*"<]4CHW,4D[1CQ: -M*"(P02A#3$`Y-T%)/2)@4"@G5%LB0F!`*")@0`I-*")@0#A&14X[-EU$.3)@ -M1#M7-50Y1D!;(D)@0"@B8$`H(F!`*%([EMAIL PROTECTED],4\]-S%3/2<H0#LV14<Z)S!` -M"DTX1C1`.3954#TG1$PH)D5&*"<Q2#DR(48Z-E%%*"<]03Q2(44[-R%4/C!( -M0"@B8$`H(F!`*"<[EMAIL PROTECTED],4\]-S%&.B)@1#M7-50\5S%2*"[EMAIL PROTECTED] -M,4\]-S%3/2<H6R)"8$`H(F!`*")@0#A644\\5C1`*29=50I-/28Y2"Y02"HH -M(F!`*")@0"@B(4,Z)E5/.2)@1#LV740Y,E!`*29=53TF.4D[)C1;(D)@0"@B -M(5TB0$A`"DTH(F!`*%([EMAIL PROTECTED],44[)C54.3(A4SM7-5(X5C1`.49%3#DS7"HH -M(F!`*"9%1BHB8$0[5R%4/%)47CY2/20*32E75$`X-EE$*"(Q1CHV444H)EE% -M*"(Q3STW,48Z-E%%*")$0#Y02$`H(F!`*")@0"@C)$`]5D%).R8T0`I-/399 -M3#HV64LH(C%&.C9112Y02$`H(F!`/S!)72)`25,]-BA`.$<U3#I575`\1EU# -M.3<[EMAIL PROTECTED]"HH(F!`"DTH)E59*"(Q3SPG,5,H(U1`/%9!23E',%LB0F!`*"(A -M33XR8$0S-B5..C8Y13Q7,$`O,F!$.U<A5#Q25%X*33Y2/4TI5U1;(D!(0"@B -M8$`[5R%%.T(A33XR8$0Y1D!,*"(H7"A"4$`I)%5!.T9%1CDW+50H)EU2*"8Q -M20I-.3)@0C!6754[)C!`.T9=5"@F75`Y-EA`*5([EMAIL PROTECTED]/2(\6BDB -M)$([EMAIL PROTECTED]")@0"@G(5(Z-EE4"DTH(BDR.38E1#HV64<H(C$M.#9923E&-5,] -M)5%.*$!(0"@B8$`H(F!`*")@0"@B(4DY0F!$.U<A5#Q25%X*33Y2/58I5U1; -M(D!(0"@B8$`[-T1`*28M3STV650H(U1`+"-,[EMAIL PROTECTED])E59*"(Q3#HV644\ -M4F!=*"[EMAIL PROTECTED](D)@0"@B(5<Z)D5,.3)`0#LW1$`I)E%).T8T0"\R8%PI)CE( -M+T)@[EMAIL PROTECTED]"HH(F!`*")@0"@B(4,Z)EU-"DT\(F!$.R9%3CDS3"HH(F!`*")@ -M0"@B(4T^,F!(*28Y23LF-$DH(U1`/%<A3#HW,$`K55%3*E)<3"@B,4P*33HV [EMAIL PROTECTED]")@0"@B8$`H(F!$.R9%3CDW+$LJ4TPJ(D)@0"@B8$`H(F!`.T8U -M6#TB(54[1E%%/%<L0`I-*28Y23LF-$`O-UA`*U503CPF)4,Z5C5$*U-,*B)" -M8$`H(F!`*")@0"DF+4\]-EE4*E),6R)`2$`H(F!`"DTH(F!`*"[EMAIL PROTECTED],4\] -M-S!`+S)@1#E&14PY,TPJ*")@0"@B8$`H(F!$.U<U5"@C55XH)RQ/-R)[EMAIL PROTECTED] -M+4L*33DV,3P^0EQ/+E!(0"@B8$`H(F!`*"(Q3STW,$`O,B%6.S<M/SA6044X -M5DT_.T8E33DR0$0[5S54*C(A20I-.4)@1#=$7$`Y-R1`*54Y+312/%LB0$A` -M*")@0"@B8$`H(BQ#*%(A53M'(4$X5DPJ*")@0"@B8$`H(B%)"DTY0D!`*#(Q -M3SPG,5,K,UE;*58L1S\R8$DH)TPJ*")@0"@B8$`H(F!`*")@0"HB8$0[5S54 -M*R)@1#E&14P*33DR8$DH(U1`*B)@1#E&14PY,E!`*29=53TB8$DH)D5&*"(Q -M3SPG,5,K,UE;[EMAIL PROTECTED]"HH(F!`*")@0`I-*")@0"@B8$`Z-CA`*B)[EMAIL PROTECTED] -M,4\]-S!)*"=,[EMAIL PROTECTED](F!`*")@0"@B8$`H(F!`*"[EMAIL PROTECTED],4,Z)B5."DTY -M5C5$*"-40"LT5$`W4TPJ*")@0"@B8$`H(F!`*")@0"@B8$`H)D5&*")`1#A6 -M04$[1CU%.2)@7"@B,[EMAIL PROTECTED]<[EMAIL PROTECTED])4XY(F!$.%9!03M&/44Y -M(F!<*")[EMAIL PROTECTED],48Z-E%%*C(A6R)"8$`H(F!`*")@0`I-*")@0"@B8$`H(F!` -M*")@0#PG*4D[1S!`*$4M2SHW(5`Z-EE'*"(\1#E&14PY,CQ`.#<L0"E2,4\] -M-S!'"DTH)D53*"<U4"LW,4\K-C%!/28T3C<F6$(B0F!`*")@0"@B8$`H(F!` -M*")@0"@B8$`H(F!`*")@0"@[EMAIL PROTECTED],4\\)S%3*S-96RE7.$<_,TPJ*")@ -M0"@B8$`H(F!`*")@0"@B8$`H(F!`*"(A3CDW050N4$A`*")@0`I-*")@0"@B -M8$`H(F!`*")@0#\P2$`H(F!`*")@0"@B8$`H(B%=(D)@0"@B8$`H(F!`*")@ -M0"@F04$[1C%,"DTY-5U&.C9112HB,4\\)S%3*R)@1#E&14PY,E!`*29=53TB -M1%LB0F!`*")@0"@B8$`H(F!`*"<[EMAIL PROTECTED],[5EE6.3<I5#DV,$`I -M4C%&.C9112E2(50[4F!'*29=53TB/[EMAIL PROTECTED]")@0"@B8$`H(F!`*")@0`I- -M*")@0"@F148H(C%//"<Q4RLS65LI5SA'/S-,*B)"8$`H(F!`*")@0"A2+$,H -M)BU,[EMAIL PROTECTED]"DTH(F!`*")@0#\R(44[)RU%*"=,*B)"8$`H(F!` -M*")@0"@B8$`H(BQ#*%(A1CHV444H)C58.C<M5#Q37"[EMAIL PROTECTED](F!`*")@ -M0"@B8$`]-EE,.3<M4RHB8$TY,F!$.U<U5"@B1$`^4$A`*")@0"@B8$`H(F!` -M*")@0`I-*")@0#PG*4D[1S!`*$0Y23LF-$`I4C%&.C9112E2(5<X-RQ`.T9= -M5"@G-4X\)B5#.E8U1"@F14X])EQ`"DTI4C%//3<P1RM"(2,X-EA`.T9=5"@G -M*44[-EU6.3)9/#M"*%LB0$A`*")@0"@B8$`H(F!`*")@0RA2+$`*33Q&-4T[ -M5SE%*"9%5")"8$`H(F!`*")@0"@B8$`H)U1`.3914SDR(5LB0F!`*")@0"@B -M8$`H(F!`*")@0`I-*"(A4#Q&14X](F!"-$8U33M7.4D[1CQ`*5(Q3STW,$<W -M)EA"+E!(0"@B8$`H(F!`*")@0"@B8$`H(F!`"DTL,B%7.B9%3#DR(54[1E%) -M.T9,0"DF754](TPJ*")@0"@B8$`H(F!`*")@0#\P2$`H(F!`*")@0"@G5"H* [EMAIL PROTECTED])U0J*")@0"@G(5(Z-EE4*"(I)CM7-4XY(F!$.%9=53M',$`Y1D5, -M.3<L0#TF7$`\)RE/.%8U4PI-/%(A3STW,$`[5CA`*29123M&-5,H)D5.*"(\ -M1#,V)4XZ-CE%/%<P1S<F6$(B0F!`*")@0"@B8$`H(F!`"DTH)D5&*"(Q3SPG -M,5,K,UE;*5<X1S\S3"H_,[EMAIL PROTECTED]/%<[EMAIL PROTECTED],X-CU%*"=,[EMAIL PROTECTED])RE%/2<U -M4CM"(5$*33PU3"[EMAIL PROTECTED],3XV(F!$+"(A.RLV,$`Y)D52-S(A.RLW -M.3TH)4Q-.%540#92520W,F!-/"=030I-/3(A.SM7*4DY4B$[/"8E0SI6-40_ -M(E53-S(A7"@B54TH)4U-.#9923E&-5,])54](D!(0"@B8$`R)B5."DTY)E%% -M*"8I23M&)5(^,B%&.C9113Q2(4D[0B%3.U<U4CA6-$`])RE%.3)80#!6)4XH -M)BE%*"<U4SDV,$`*33TF7$`\)B5#.E(A3SQ`2$`H(F!`/[EMAIL PROTECTED])CE) [EMAIL PROTECTED])D56.C8Q23TV)4P[)T1`.U<H0`I-.#<L0#Q7(44X5D5&.C8U -M1"@F*5DH)B1`.S8E3CHV.44\5S!`.49%3#DR6"HB1%U0/29%3SM'+%HB0F!` -M"DTH(F!-/3)@0#4V65`X-BU+*"8Y23LF-5,H(D%$.38Y03TV450\4B%4.U)@ -M33TR(54[1E%%/%<L0"LW8$`*33HW+$`\5R%%.%9%1CHV-40J,$A`*")@0"LW -M8$`H)2%!.%9,0#E&14PY-RPJ*")@0"@B54,H(B$C.R8U00I-.T(A53PB(4$[ -M)E!`/[EMAIL PROTECTED])$5-/"9123DW+$`K-E0J(D)@0"@B -M8$TQ(F!`"DTQ)C5,.3<[EMAIL PROTECTED](A1CHV444H)B5&/[EMAIL PROTECTED] -M5EU$.C991RM6,44X5EU$.C991R)[EMAIL PROTECTED]"1=53TG(54](B%4 -M.U(A,S4D,2\U-3!`/$8E5#HF-5(H)S%(.#980#-5-30T)34T-U0Y*0I-,R0T [EMAIL PROTECTED](E5-*"(A-3Q6-$`[-B5..C8Y13Q7,$`Y1D5,.3)00#HV.$`[1EU. -M.3(A23Q2(44^)R%,"DTZ-BU)/[EMAIL PROTECTED](5([5SE).28U1"@F,44Y1B55.R<Q [EMAIL PROTECTED],4\H(CTM,#19*3%$-3,U(CPJ(D)@0"@[EMAIL PROTECTED] -M,4D\1C5#/29=4CXR(50[4B%$.C<H0#A&-48[5RE%*"<A4CM6+44\5RU).T8\ [EMAIL PROTECTED](D)@0"@B8$T]0F!`-$<[EMAIL PROTECTED]//%8U3#XP2$`H(F!`*S9`0"@D -M,4D\5R%,.#=$0#TF04D\4B%("DTY-E%0*"9513Q7+4$Y5C0J-S-,*C\P2"H\ -M5S5"*"<Y33Q574,Z)[EMAIL PROTECTED])TPJ(D(L0#0F)4,*33I6-40H)CE) [EMAIL PROTECTED],44[1C!`/29<0#HF)58Y,B%-/3915#HW(4PY,B%$.U<Q4RLB(5<Z -M)D5#.B(A5`I-.B8T0#!5*30S(B%-.#=$0#M7*$`[-B59*"993STB([EMAIL PROTECTED] -M.R8T*BA2(5`\1EU0.3<I3#XR4$`\5EQ`"DTX5EU./48U4CTB(50[4B%..#<Q -M23U&-$`Y1EU2.S8E5"M"8$`P-EE$*"8Q13PF-4XY)D5..5(A3SM"([EMAIL PROTECTED] -M/$`])D%%*"8E4CA604D]1C1`/58E4R)"+$`]-EE0.#8M2SDV,$PH)CE/.U)9 [EMAIL PROTECTED]:*"9500I-/C(A0CDR(48[5ET_.$8E4BM&*4$^0B%//$(A1CM6 -M7$XX1B52-U8I03Y"6$`H)%A.,$)80#4F04D\4B%#"DTZ)C5#.E<L0#E&75(B -M0BQ`.3=!23Q7,44[1BU%*R(A4SM2(4D\4B%..U<P0#Q7-4D])B5"[EMAIL PROTECTED] -M+$T*33HW+$`])EQ`.58U3CDW*4$])C1`,U0Q,RLS*$T\5B5&.3([EMAIL PROTECTED] -M4B%).T(A4#Q&-5`X-RE!/29%3PI-.T!([EMAIL PROTECTED]&[EMAIL PROTECTED](Y-B54 -M.C9=3BM`2"HH(F!`*"[EMAIL PROTECTED],48Z-E%%*"-40#Q604DY1S!;"DTB0$A`*")@ -M0"DF.4D[)C1`+S(A-C,U+%HN1#E).R8U4SPF-4,N0TE6.S<M23E'[EMAIL PROTECTED])CE) [EMAIL PROTECTED]/3<[EMAIL PROTECTED],48Z-E%%*"[EMAIL PROTECTED](C%&.C91 -M12Y02"HH(F!`*"[EMAIL PROTECTED],*R(Q1`I-.C<I4RLB,4(X-RU%*C)@[EMAIL PROTECTED] -M.4D[)C1:+D4M4#DV+$TO1RU0.R9%5#PF)50Z(D!$.49%3#DR1%LB0F!`"DTH -M(B%-/C)@1#TF55`H(U1`*28I03Q6-%LB0F!`*")@[EMAIL PROTECTED]/[EMAIL PROTECTED]"(Q5#LW -M8$`O-UA`/%)<2#9563P*32M%5$LJ-5!.*B)82S<B6$XJ4D1/*2,E/RDC*$\N -M4$A`*")@0#LW1$`I)S%2/C)@[EMAIL PROTECTED])C1:+D4M4`I-.38L32]&+4$])R%! -M/29`2"DG.4\[(E!`*28Q23Q'+$PH([EMAIL PROTECTED](F!`/$8U5#TW*4XH -M(C%4"DT\1T1`.C8X0"LV-$`I)S%2/C-,*B)"8$`H(F!$/2954"@C5$`I)BE! -M/%8T6R)"8$`H(F!1*"<[EMAIL PROTECTED],[EMAIL PROTECTED])8 -M2RHU4$XJ)4T^-R)9/2I21$\I(R4_*2,H3RY02$`H(F!`*2<[EMAIL PROTECTED]/C)@[EMAIL PROTECTED] -M.4D[)C1:+D4M4#DV+$TO1BU!/2<[EMAIL PROTECTED])SE/.R)00"DF,4D\1RQ,*"(Q -M5#LW8$DN4$A`"DTH(F!`/$8U5#TW*4XH(C%4/$=$0#HV.$`K-C1`*2<Q4CXS -M3"HB0F!`*"(A4CDW,54\1EA`*28Y23LF-%L*32)'5"HB1E59*"(Q3SPG,5,H -M(U1`/E=46R)$/44])%U0/29%3SM'[EMAIL PROTECTED])EU0/2<L3"E7-$<K(CU0*5)01PI- -M.%(\3"@B/20I4E!`*5946CQ2/$PI5RQ'*R(]1"\W+$<K(CU6*5)01SHB/$DN [EMAIL PROTECTED]@B*2,X-EA'"DT]([EMAIL PROTECTED])4XY(B%5.T<A03A63$`X-S!` -M/[EMAIL PROTECTED]/29%33DR)3P[0BA,*"<[EMAIL PROTECTED]/44*32HB1"HH(F!`*"9% [EMAIL PROTECTED],4\\)S%3*S-96RE7-$<_,F!&*4)@1#M7(50\4E1>/E(]4"E75%LB1C%) -M.3(A50I-/%8E1SDR0$DH)D5&*"(Q3SPG,5,K,UE;*59`1S\S3"HB1D5&*")` -M0"DF75`])RQ-+T=,1SDB/5TH(D1`"DT^4$A`*")@0#A6040Z-RA`*29=4#TG -M+$TO1TQ'.2(]72)"8$`H(F!`*")@0#M7*$`Y)D5%*"(I)[EMAIL PROTECTED],$`] -M)EQ`.%9!1#HW*$`])EQ`*5(Q3SPG,5,K,UE;*58P1S\R/%HI(B1"+E!)72)" -M,4\\)S%3*S-96PI-*5<T1S\R8%TH(R1`.C8X0"@R,4\\)S%3*S-96RE78$<_ -M,TPJ.$9%3CLV740Y,B$S-20Q+S4U,$`Z-CA`"DTI)EU0/2<L32]'3$<\4CU= -M+E!)23E"[EMAIL PROTECTED])C58.C<M5#Q28$0[5R%4/%)47CY2/4TI5U1`.U<H0#DW04D* -M33Q7,5,H(C%//"<Q4RLS65LI5BQ'/S)@[EMAIL PROTECTED]"HH(F!`*"(Q3SPG,5,K,UE; -M*5941S\R(5P_(U1`*$15(0I-,T1%)C$U+30H0TPJ*")@0"@F*54[)DT_/"<I -M3SA6-5,\4D!$.U<A5#Q21%LB0F!`*"(A13XF150J(V!)"DTN4$E=*"8U3#Q6 -M-$`^4$A`*")@0#HV.$`J)"$A-$0]-BHR(5LB0F!`*")@0"@B8$`Z)B5..291 [EMAIL PROTECTED])EU0/2<L3"@D(2$T1#TV*C-,[EMAIL PROTECTED])U1`.3914SDR -M(5LB0F!`*")@0"@B8$`Y)D5%*"([EMAIL PROTECTED](A1CHV444H)S%/*"<A4CM6+44\ -M5RQ`/%<A13A6148Z-C5$*#513BA"4$`]-RU!.58T2"HS3"HH(F!`"D$H)U0J -I*")@0"@[EMAIL PROTECTED](+")$6R)'5"HB0$E$.C8T0#TW+4$Y5C1(*C-,[EMAIL PROTECTED] [EMAIL PROTECTED] ==== //depot/maint-5.10/perl/lib/NEXT.pm#2 (text) ==== Index: perl/lib/NEXT.pm --- perl/lib/NEXT.pm#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/lib/NEXT.pm 2008-05-28 08:54:22.000000000 -0700 @@ -1,7 +1,8 @@ package NEXT; -$VERSION = '0.60_01'; +$VERSION = '0.60_02'; use Carp; use strict; +use overload (); sub NEXT::ELSEWHERE::ancestors { @@ -42,11 +43,13 @@ croak "Can't call $wanted from $caller" unless $caller_method eq $wanted_method; - local ($NEXT::NEXT{$self,$wanted_method}, $NEXT::SEEN) = - ($NEXT::NEXT{$self,$wanted_method}, $NEXT::SEEN); + my $key = ref $self && overload::Overloaded($self) + ? overload::StrVal($self) : $self; + local ($NEXT::NEXT{$key,$wanted_method}, $NEXT::SEEN) = + ($NEXT::NEXT{$key,$wanted_method}, $NEXT::SEEN); - unless ($NEXT::NEXT{$self,$wanted_method}) { + unless ($NEXT::NEXT{$key,$wanted_method}) { my @forebears = NEXT::ELSEWHERE::ancestors ref $self || $self, $wanted_class; @@ -54,19 +57,19 @@ last if shift @forebears eq $caller_class } no strict 'refs'; - @{$NEXT::NEXT{$self,$wanted_method}} = + @{$NEXT::NEXT{$key,$wanted_method}} = map { *{"${_}::$caller_method"}{CODE}||() } @forebears unless $wanted_method eq 'AUTOLOAD'; - @{$NEXT::NEXT{$self,$wanted_method}} = + @{$NEXT::NEXT{$key,$wanted_method}} = map { (*{"${_}::AUTOLOAD"}{CODE}) ? "${_}::AUTOLOAD" : ()} @forebears - unless @{$NEXT::NEXT{$self,$wanted_method}||[]}; - $NEXT::SEEN->{$self,*{$caller}{CODE}}++; + unless @{$NEXT::NEXT{$key,$wanted_method}||[]}; + $NEXT::SEEN->{$key,*{$caller}{CODE}}++; } - my $call_method = shift @{$NEXT::NEXT{$self,$wanted_method}}; + my $call_method = shift @{$NEXT::NEXT{$key,$wanted_method}}; while ($wanted_class =~ /^NEXT\b.*\b(UNSEEN|DISTINCT)\b/ && defined $call_method - && $NEXT::SEEN->{$self,$call_method}++) { - $call_method = shift @{$NEXT::NEXT{$self,$wanted_method}}; + && $NEXT::SEEN->{$key,$call_method}++) { + $call_method = shift @{$NEXT::NEXT{$key,$wanted_method}}; } unless (defined $call_method) { return unless $wanted_class =~ /^NEXT:.*:ACTUAL/; @@ -103,11 +106,14 @@ undef $EVERY::AUTOLOAD; my ($wanted_class, $wanted_method) = $wanted =~ m{(.*)::(.*)}g; - local $NEXT::ALREADY_IN_EVERY{$self,$wanted_method} = - $NEXT::ALREADY_IN_EVERY{$self,$wanted_method}; + my $key = ref($self) && overload::Overloaded($self) + ? overload::StrVal($self) : $self; + + local $NEXT::ALREADY_IN_EVERY{$key,$wanted_method} = + $NEXT::ALREADY_IN_EVERY{$key,$wanted_method}; + + return if $NEXT::ALREADY_IN_EVERY{$key,$wanted_method}++; - return if $NEXT::ALREADY_IN_EVERY{$self,$wanted_method}++; - my @forebears = NEXT::ELSEWHERE::ordered_ancestors ref $self || $self, $wanted_class; @forebears = reverse @forebears if $wanted_class =~ /\bLAST\b/; ==== //depot/maint-5.10/perl/lib/NEXT/t/stringify.t#1 (text) ==== Index: perl/lib/NEXT/t/stringify.t --- /dev/null 2008-05-07 15:08:24.549929899 -0700 +++ perl/lib/NEXT/t/stringify.t 2008-05-28 08:54:22.000000000 -0700 @@ -0,0 +1,35 @@ +use warnings; +use strict; +use Test::More tests => 2; + +BEGIN { + if ($ENV{PERL_CORE}) { + chdir('t') if -d 't'; + @INC = qw(../lib); + } +} + +BEGIN { use_ok('NEXT') }; + + +package Foo; + +use overload '""' => 'stringify'; + +use constant BAR => (1..5); + +sub new { bless {}, shift } + +sub stringify { + my $self = shift; + my %result = $self->EVERY::LAST::BAR; + join '-' => @{ $result{'Foo::BAR'} }; +} + + + +package main; + +my $foo = Foo->new; +is("$foo", '1-2-3-4-5', 'overloading stringification'); + ==== //depot/maint-5.10/perl/mad/t/p55.t#2 (text) ==== Index: perl/mad/t/p55.t --- perl/mad/t/p55.t#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/mad/t/p55.t 2008-05-28 08:54:22.000000000 -0700 @@ -64,10 +64,6 @@ our %failing = map { $_, 1 } qw| ../t/comp/require.t -../t/op/array.t -../t/op/local.t -../t/op/substr.t - ../t/comp/parser.t ../t/op/switch.t @@ -76,10 +72,33 @@ ../t/op/symbolcache.t -../t/op/threads.t - ../t/op/exec.t ../t/io/say.t + +../t/io/open.t +../t/op/gv.t +../t/op/re.t +../t/op/tr.t +../t/op/die.t +../t/op/pat.t +../t/op/reg_namedcapture.t +../t/op/reg_email.t +../t/op/reg_nc_tie.t +../t/op/utf8decode.t +../t/op/state.t +../t/op/subst.t +../t/op/goto.t +../t/op/tiehandle.t +../t/op/pack.t +../t/op/each_array.t +../t/op/sprintf.t +../t/op/attrs.t +../t/op/universal.t +../t/op/regexp.t +../t/lib/cygwin.t +../t/run/switchd.t +../t/comp/proto.t +../t/win32/system.t |; my @files; @@ -149,10 +168,10 @@ sub PerlIO::F_UTF8 () { 0x00008000 } # from perliol.h BEGIN { PerlIO::Layer->find("encoding",1);} ######## -# TODO from ../t/op/array.t +# from ../t/op/array.t $[ = 1 ######## -# TODO from t/comp/parser.t +# from t/comp/parser.t $x = 1 for ($[) = 0; ######## # from t/op/getppid.t ==== //depot/maint-5.10/perl/malloc.c#4 (text) ==== Index: perl/malloc.c --- perl/malloc.c#3~33942~ 2008-05-27 18:21:26.000000000 -0700 +++ perl/malloc.c 2008-05-28 08:54:22.000000000 -0700 @@ -2445,6 +2445,8 @@ buf->bucket_available_size[i] = BUCKET_SIZE_REAL(i); } } +#else /* defined DEBUGGING_MSTATS */ + PerlIO_printf(Perl_error_log, "perl not compiled with DEBUGGING_MSTATS\n"); #endif /* defined DEBUGGING_MSTATS */ return 0; /* XXX unused */ } @@ -2516,6 +2518,8 @@ buffer.total_sbrk, buffer.sbrks, buffer.sbrk_good, buffer.sbrk_slack, buffer.start_slack, buffer.total_chain, buffer.sbrked_remains); +#else /* DEBUGGING_MSTATS */ + PerlIO_printf(Perl_error_log, "%s: perl not compiled with DEBUGGING_MSTATS\n",s); #endif /* DEBUGGING_MSTATS */ } ==== //depot/maint-5.10/perl/mg.c#8 (text) ==== Index: perl/mg.c --- perl/mg.c#7~33802~ 2008-05-10 07:15:40.000000000 -0700 +++ perl/mg.c 2008-05-28 08:54:22.000000000 -0700 @@ -119,16 +119,21 @@ { const MAGIC* mg; PERL_UNUSED_CONTEXT; - for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) { - const MGVTBL* const vtbl = mg->mg_virtual; - if (vtbl) { - if (vtbl->svt_get && !(mg->mg_flags & MGf_GSKIP)) - SvGMAGICAL_on(sv); - if (vtbl->svt_set) - SvSMAGICAL_on(sv); - if (!(SvFLAGS(sv) & (SVs_GMG|SVs_SMG)) || vtbl->svt_clear) - SvRMAGICAL_on(sv); - } + if ((mg = SvMAGIC(sv))) { + SvRMAGICAL_off(sv); + do { + const MGVTBL* const vtbl = mg->mg_virtual; + if (vtbl) { + if (vtbl->svt_get && !(mg->mg_flags & MGf_GSKIP)) + SvGMAGICAL_on(sv); + if (vtbl->svt_set) + SvSMAGICAL_on(sv); + if (vtbl->svt_clear) + SvRMAGICAL_on(sv); + } + } while ((mg = mg->mg_moremagic)); + if (!(SvFLAGS(sv) & (SVs_GMG|SVs_SMG))) + SvRMAGICAL_on(sv); } } ==== //depot/maint-5.10/perl/op.c#12 (text) ==== Index: perl/op.c --- perl/op.c#11~33942~ 2008-05-27 18:21:26.000000000 -0700 +++ perl/op.c 2008-05-28 08:54:22.000000000 -0700 @@ -4206,10 +4206,11 @@ if (PL_eval_start) PL_eval_start = 0; else { - /* FIXME for MAD */ - op_free(o); - o = newSVOP(OP_CONST, 0, newSViv(CopARYBASE_get(&PL_compiling))); - o->op_private |= OPpCONST_ARYBASE; + if (!PL_madskills) { /* assignment to $[ is ignored when making a mad dump */ + op_free(o); + o = newSVOP(OP_CONST, 0, newSViv(CopARYBASE_get(&PL_compiling))); + o->op_private |= OPpCONST_ARYBASE; + } } } return o; ==== //depot/maint-5.10/perl/pp_hot.c#13 (text) ==== Index: perl/pp_hot.c --- perl/pp_hot.c#12~33889~ 2008-05-20 10:02:15.000000000 -0700 +++ perl/pp_hot.c 2008-05-28 08:54:22.000000000 -0700 @@ -815,8 +815,6 @@ { dVAR; dSP; dTOPss; const I32 gimme = GIMME_V; - static const char return_array_to_lvalue_scalar[] = "Can't return array to lvalue scalar context"; - static const char return_hash_to_lvalue_scalar[] = "Can't return hash to lvalue scalar context"; static const char an_array[] = "an ARRAY"; static const char a_hash[] = "a HASH"; const bool is_pp_rv2av = PL_op->op_type == OP_RV2AV; @@ -835,8 +833,7 @@ } else if (LVRET) { if (gimme != G_ARRAY) - Perl_croak(aTHX_ is_pp_rv2av ? return_array_to_lvalue_scalar - : return_hash_to_lvalue_scalar); + goto croak_cant_return; SETs(sv); RETURN; } @@ -852,9 +849,7 @@ } else if (LVRET) { if (gimme != G_ARRAY) - Perl_croak(aTHX_ - is_pp_rv2av ? return_array_to_lvalue_scalar - : return_hash_to_lvalue_scalar); + goto croak_cant_return; SETs(sv); RETURN; } @@ -885,9 +880,7 @@ } else if (LVRET) { if (gimme != G_ARRAY) - Perl_croak(aTHX_ - is_pp_rv2av ? return_array_to_lvalue_scalar - : return_hash_to_lvalue_scalar); + goto croak_cant_return; SETs(sv); RETURN; } @@ -937,6 +930,11 @@ } } RETURN; + + croak_cant_return: + Perl_croak(aTHX_ "Can't return %s to lvalue scalar context", + is_pp_rv2av ? "array" : "hash"); + RETURN; } STATIC void ==== //depot/maint-5.10/perl/t/op/switch.t#2 (text) ==== Index: perl/t/op/switch.t --- perl/t/op/switch.t#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/t/op/switch.t 2008-05-28 08:54:22.000000000 -0700 @@ -8,7 +8,7 @@ use strict; use warnings; -use Test::More tests => 108; +use Test::More tests => 111; # The behaviour of the feature pragma should be tested by lib/switch.t # using the tests in t/lib/switch/*. This file tests the behaviour of @@ -519,6 +519,68 @@ ok($ok, '((1 == $ok) || "foo") smartmatched'); } +TODO: { + local $TODO = "RT #50538: when( [EMAIL PROTECTED] && \%n ) fails to smart match"; + { # this should smart match on each side of && + my @n = qw(fred barney betty); + my @m = @n; + + my $ok = 0; + given( "fred" ) { + when( @n ) { + $ok++; continue; + } + when( @m ) { + $ok++; continue; + } + when( @m && @n ) { + $ok++; + } + } + + is($ok, 3, '(@n && @m) smart-matched'); + } + + { # this should smart match on each side of && + my @n = qw(fred barney betty); + my %n = map { $_, 1 } @n; + + my $ok = 0; + given( "fred" ) { + when( @n ) { + $ok++; continue; + } + when( %n ) { + $ok++; continue; + } + when( @n && %n ) { + $ok++; + } + } + + is($ok, 3, '(@n && %n) smart-matched'); + } + + { # this should smart match on each side of && + my %n = map { $_, 1 } qw(fred barney betty); + my %m = %n; + + my $ok = 0; + given( "fred" ) { + when( %m ) { + $ok++; continue; + } + when( %n ) { + $ok++; continue; + } + when( %m && %n ) { + $ok++; + } + } + + is($ok, 3, '(%m && %n) smart-matched'); + } +} # Make sure we aren't invoking the get-magic more than once @@ -689,7 +751,7 @@ q{Can't "break" in a loop topicalizer}); } when (1) { - is($first, 1, "Lecical loop: first"); + is($first, 1, "Lexical loop: first"); $first = 0; # Implicit break is okay } ==== //depot/maint-5.10/perl/t/op/tr.t#2 (xtext) ==== Index: perl/t/op/tr.t --- perl/t/op/tr.t#1~32694~ 2007-12-22 01:23:09.000000000 -0800 +++ perl/t/op/tr.t 2008-05-28 08:54:22.000000000 -0700 @@ -6,7 +6,7 @@ require './test.pl'; } -plan tests => 117; +plan tests => 118; my $Is_EBCDIC = (ord('i') == 0x89 & ord('J') == 0xd1); @@ -461,3 +461,10 @@ is($c, "\x20\x30\x40\x50\x60", "tr/\\x00-\\x1f//d"); } +($s) = keys %{{pie => 3}}; +my $wasro = Internals::SvREADONLY($s); +{ + $wasro or local $TODO = "didn't have a COW"; + $s =~ tr/i//; + ok( Internals::SvREADONLY($s), "count-only tr doesn't deCOW COWs" ); +} End of Patch.