Hello community, here is the log from the commit of package perl-Scope-Upper for openSUSE:Factory checked in at 2013-10-06 14:31:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Scope-Upper (Old) and /work/SRC/openSUSE:Factory/.perl-Scope-Upper.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Scope-Upper" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Scope-Upper/perl-Scope-Upper.changes 2013-06-06 13:25:57.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Scope-Upper.new/perl-Scope-Upper.changes 2013-10-06 14:31:48.000000000 +0200 @@ -1,0 +2,18 @@ +Fri Oct 4 09:15:27 UTC 2013 - [email protected] + +- updated to 0.24 + + Fix : Lexicals returned with unwind(), yield() and leave() will no + longer be lost on perl 5.19.4 and above. + This is a maintenance release. The code contains no functional change. + Satisfied users of version 0.22 can skip this update. + + Fix : [RT #87178] : typo fixes. + Thanks [email protected] for the patch. + + Fix : [RT #88177] : 5.19.3 block hint test breakage + t/07-context_info.t has been taught about perl 5.19.3. + Thanks Andrew Main for the patch. + + Tst : Author tests are no longer bundled with this distribution. + They are only made available to authors in the git repository. + + Tst : "given is experimental" warnings when running tests on perl + 5.18 and above have been silenced. + +------------------------------------------------------------------- Old: ---- Scope-Upper-0.22.tar.gz New: ---- Scope-Upper-0.24.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Scope-Upper.spec ++++++ --- /var/tmp/diff_new_pack.dZdCRD/_old 2013-10-06 14:31:49.000000000 +0200 +++ /var/tmp/diff_new_pack.dZdCRD/_new 2013-10-06 14:31:49.000000000 +0200 @@ -17,7 +17,7 @@ Name: perl-Scope-Upper -Version: 0.22 +Version: 0.24 Release: 0 %define cpan_name Scope-Upper Summary: Act on upper scopes. @@ -68,7 +68,7 @@ * * - uniquely identify contextes with the /uid manpage and the /validate_uid + uniquely identify contexts with the /uid manpage and the /validate_uid manpage. %prep ++++++ Scope-Upper-0.22.tar.gz -> Scope-Upper-0.24.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/Changes new/Scope-Upper-0.24/Changes --- old/Scope-Upper-0.22/Changes 2013-01-31 00:25:00.000000000 +0100 +++ new/Scope-Upper-0.24/Changes 2013-09-10 12:46:59.000000000 +0200 @@ -1,5 +1,22 @@ Revision history for Scope-Upper +0.24 2013-09-10 11:10 UTC + + Fix : Lexicals returned with unwind(), yield() and leave() will no + longer be lost on perl 5.19.4 and above. + +0.23 2013-09-02 11:30 UTC + This is a maintenance release. The code contains no functional change. + Satisfied users of version 0.22 can skip this update. + + Fix : [RT #87178] : typo fixes. + Thanks [email protected] for the patch. + + Fix : [RT #88177] : 5.19.3 block hint test breakage + t/07-context_info.t has been taught about perl 5.19.3. + Thanks Andrew Main for the patch. + + Tst : Author tests are no longer bundled with this distribution. + They are only made available to authors in the git repository. + + Tst : "given is experimental" warnings when running tests on perl + 5.18 and above have been silenced. + 0.22 2013-01-30 23:35 UTC + Chg : perl 5.6.1 is required. + Fix : context_info() now ignores %warnings::Bits for perl 5.8.6 and diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/MANIFEST new/Scope-Upper-0.24/MANIFEST --- old/Scope-Upper-0.22/MANIFEST 2012-09-17 14:57:20.000000000 +0200 +++ new/Scope-Upper-0.24/MANIFEST 2013-09-09 18:43:19.000000000 +0200 @@ -38,6 +38,7 @@ t/50-unwind-target.t t/51-unwind-multi.t t/52-unwind-context.t +t/53-unwind-misc.t t/54-unwind-threads.t t/55-yield-target.t t/57-yield-context.t @@ -61,11 +62,6 @@ t/85-stress-yield.t t/86-stress-uplevel.t t/87-stress-uid.t -t/91-pod.t -t/92-pod-coverage.t -t/93-pod-spelling.t -t/95-portability-files.t -t/99-kwalitee.t t/lib/Scope/Upper/TestGenerator.pm t/lib/Scope/Upper/TestThreads.pm t/lib/Test/Leaner.pm diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/META.json new/Scope-Upper-0.24/META.json --- old/Scope-Upper-0.22/META.json 2013-01-31 00:25:17.000000000 +0100 +++ new/Scope-Upper-0.24/META.json 2013-09-10 12:47:55.000000000 +0200 @@ -4,7 +4,7 @@ "Vincent Pit <[email protected]>" ], "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 6.64, CPAN::Meta::Converter version 2.120921", + "generated_by" : "ExtUtils::MakeMaker version 6.76, CPAN::Meta::Converter version 2.132510", "license" : [ "perl_5" ], @@ -48,7 +48,7 @@ "release_status" : "stable", "resources" : { "bugtracker" : { - "web" : "http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Scope-Upper" + "web" : "http://rt.cpan.org/Dist/Display.html?Name=Scope-Upper" }, "homepage" : "http://search.cpan.org/dist/Scope-Upper/", "license" : [ @@ -58,5 +58,5 @@ "url" : "http://git.profvince.com/?p=perl%2Fmodules%2FScope-Upper.git" } }, - "version" : "0.22" + "version" : "0.24" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/META.yml new/Scope-Upper-0.24/META.yml --- old/Scope-Upper-0.22/META.yml 2013-01-31 00:25:17.000000000 +0100 +++ new/Scope-Upper-0.24/META.yml 2013-09-10 12:47:55.000000000 +0200 @@ -13,7 +13,7 @@ Config: 0 ExtUtils::MakeMaker: 0 dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 6.64, CPAN::Meta::Converter version 2.120921' +generated_by: 'ExtUtils::MakeMaker version 6.76, CPAN::Meta::Converter version 2.132510' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -29,8 +29,8 @@ base: 0 perl: 5.006001 resources: - bugtracker: http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Scope-Upper + bugtracker: http://rt.cpan.org/Dist/Display.html?Name=Scope-Upper homepage: http://search.cpan.org/dist/Scope-Upper/ license: http://dev.perl.org/licenses/ repository: http://git.profvince.com/?p=perl%2Fmodules%2FScope-Upper.git -version: 0.22 +version: 0.24 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/Makefile.PL new/Scope-Upper-0.24/Makefile.PL --- old/Scope-Upper-0.22/Makefile.PL 2013-01-10 22:51:36.000000000 +0100 +++ new/Scope-Upper-0.24/Makefile.PL 2013-08-29 01:17:08.000000000 +0200 @@ -1,4 +1,4 @@ -use 5.006001; +use 5.006_001; use strict; use warnings; @@ -78,7 +78,7 @@ }, dynamic_config => 1, resources => { - bugtracker => "http://rt.cpan.org/NoAuth/ReportBug.html?Queue=$dist", + bugtracker => "http://rt.cpan.org/Dist/Display.html?Name=$dist", homepage => "http://search.cpan.org/dist/$dist/", license => 'http://dev.perl.org/licenses/', repository => "http://git.profvince.com/?p=perl%2Fmodules%2F$dist.git", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/README new/Scope-Upper-0.24/README --- old/Scope-Upper-0.22/README 2013-01-31 00:25:17.000000000 +0100 +++ new/Scope-Upper-0.24/README 2013-09-10 12:47:55.000000000 +0200 @@ -2,7 +2,7 @@ Scope::Upper - Act on upper scopes. VERSION - Version 0.22 + Version 0.24 SYNOPSIS "reap", "localize", "localize_elem", "localize_delete" and "WORDS" : @@ -157,7 +157,7 @@ * execute a subroutine in the setting of an upper subroutine stack frame with "uplevel" ; - * uniquely identify contextes with "uid" and "validate_uid". + * uniquely identify contexts with "uid" and "validate_uid". FUNCTIONS In all those functions, $context refers to the target scope. @@ -261,7 +261,7 @@ "local *x". * A string beginning with '@' or '%', for which the call is equivalent - to respectiveley "local $a[$key]; delete $a[$key]" and "local + to respectively "local $a[$key]; delete $a[$key]" and "local $h{$key}; delete $h{$key}". * A string beginning with '&', which more or less does "undef &func" @@ -564,7 +564,7 @@ Getting a context from a context For any of those functions, $from is expected to be a context. When - omitted, it defaults to the the current context. + omitted, it defaults to the current context. "UP" my $upper_context = UP; @@ -730,8 +730,8 @@ Moreover, in order to handle "goto" statements properly, "uplevel" currently has to suffer a run-time overhead proportional to the size of - the the callback in every case (with a small ratio), and proportional to - the size of all the code executed as the result of the "uplevel" call + the callback in every case (with a small ratio), and proportional to the + size of all the code executed as the result of the "uplevel" call (including subroutine calls inside the callback) when a "goto" statement is found in the "uplevel" callback. Despite this shortcoming, this XS version of "uplevel" should still run way faster than the pure-Perl @@ -743,7 +743,7 @@ A C compiler. This module may happen to build with a C++ compiler as well, but don't rely on it, as no guarantee is made in this regard. - XSLoader (core since perl 5.006). + XSLoader (core since perl 5.6.0). SEE ALSO "local" in perlfunc, "Temporary Values via local()" in perlsub. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/Upper.xs new/Scope-Upper-0.24/Upper.xs --- old/Scope-Upper-0.22/Upper.xs 2013-01-10 22:51:36.000000000 +0100 +++ new/Scope-Upper-0.24/Upper.xs 2013-09-09 18:41:51.000000000 +0200 @@ -1126,6 +1126,15 @@ PERL_UNUSED_VAR(ud_); PL_stack_sp = MY_CXT.unwind_storage.savesp; +#if SU_HAS_PERL(5, 19, 4) + { + I32 i; + SV **sp = PL_stack_sp; + for (i = -items + 1; i <= 0; ++i) + if (!SvTEMP(sp[i])) + sv_2mortal(SvREFCNT_inc(sp[i])); + } +#endif if (cxstack_ix > cxix) dounwind(cxix); @@ -1301,6 +1310,15 @@ } PL_stack_sp = MY_CXT.yield_storage.savesp; +#if SU_HAS_PERL(5, 19, 4) + { + I32 i; + SV **sp = PL_stack_sp; + for (i = -items + 1; i <= 0; ++i) + if (!SvTEMP(sp[i])) + sv_2mortal(SvREFCNT_inc(sp[i])); + } +#endif if (cxstack_ix > cxix) dounwind(cxix); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/lib/Scope/Upper.pm new/Scope-Upper-0.24/lib/Scope/Upper.pm --- old/Scope-Upper-0.22/lib/Scope/Upper.pm 2013-01-31 00:18:18.000000000 +0100 +++ new/Scope-Upper-0.24/lib/Scope/Upper.pm 2013-09-10 12:45:53.000000000 +0200 @@ -1,5 +1,7 @@ package Scope::Upper; +use 5.006_001; + use strict; use warnings; @@ -9,13 +11,13 @@ =head1 VERSION -Version 0.22 +Version 0.24 =cut our $VERSION; BEGIN { - $VERSION = '0.22'; + $VERSION = '0.24'; } =head1 SYNOPSIS @@ -182,7 +184,7 @@ =item * -uniquely identify contextes with L</uid> and L</validate_uid>. +uniquely identify contexts with L</uid> and L</validate_uid>. =back @@ -290,7 +292,7 @@ =item * -A string beginning with C<'@'> or C<'%'>, for which the call is equivalent to respectiveley C<local $a[$key]; delete $a[$key]> and C<local $h{$key}; delete $h{$key}>. +A string beginning with C<'@'> or C<'%'>, for which the call is equivalent to respectively C<local $a[$key]; delete $a[$key]> and C<local $h{$key}; delete $h{$key}>. =item * @@ -603,7 +605,7 @@ =head2 Getting a context from a context For any of those functions, C<$from> is expected to be a context. -When omitted, it defaults to the the current context. +When omitted, it defaults to the current context. =head3 C<UP> @@ -787,7 +789,7 @@ In those three cases, L</uplevel> will look for a C<goto &sub> statement in its callback and, if there is one, throw an exception before executing the code. -Moreover, in order to handle C<goto> statements properly, L</uplevel> currently has to suffer a run-time overhead proportional to the size of the the callback in every case (with a small ratio), and proportional to the size of B<all> the code executed as the result of the L</uplevel> call (including subroutine calls inside the callback) when a C<goto> statement is found in the L</uplevel> callback. +Moreover, in order to handle C<goto> statements properly, L</uplevel> currently has to suffer a run-time overhead proportional to the size of the callback in every case (with a small ratio), and proportional to the size of B<all> the code executed as the result of the L</uplevel> call (including subroutine calls inside the callback) when a C<goto> statement is found in the L</uplevel> callback. Despite this shortcoming, this XS version of L</uplevel> should still run way faster than the pure-Perl version from L<Sub::Uplevel>. =head1 DEPENDENCIES @@ -797,7 +799,7 @@ A C compiler. This module may happen to build with a C++ compiler as well, but don't rely on it, as no guarantee is made in this regard. -L<XSLoader> (core since perl 5.006). +L<XSLoader> (core since perl 5.6.0). =head1 SEE ALSO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/00-load.t new/Scope-Upper-0.24/t/00-load.t --- old/Scope-Upper-0.22/t/00-load.t 2012-08-14 00:10:27.000000000 +0200 +++ new/Scope-Upper-0.24/t/00-load.t 2013-08-29 01:17:08.000000000 +0200 @@ -6,7 +6,7 @@ use Test::More tests => 1; BEGIN { - use_ok( 'Scope::Upper' ); + use_ok( 'Scope::Upper' ); } diag( "Testing Scope::Upper $Scope::Upper::VERSION, Perl $], $^X" ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/05-words.t new/Scope-Upper-0.24/t/05-words.t --- old/Scope-Upper-0.22/t/05-words.t 2012-09-17 14:57:20.000000000 +0200 +++ new/Scope-Upper-0.24/t/05-words.t 2013-08-29 01:17:08.000000000 +0200 @@ -210,6 +210,12 @@ if "$]" < 5.010; eval <<'TEST_GIVEN'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; my $desc = 'given'; my $base = HERE; @@ -224,6 +230,12 @@ diag $@ if $@; eval <<'TEST_GIVEN_WHEN'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; my $desc = 'when in given'; my $base = HERE; @@ -241,6 +253,12 @@ diag $@ if $@; eval <<'TEST_GIVEN_DEFAULT'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; my $desc = 'default in given'; my $base = HERE; @@ -258,6 +276,12 @@ diag $@ if $@; eval <<'TEST_FOR_WHEN'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; my $desc = 'when in for'; my $base = HERE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/07-context_info.t new/Scope-Upper-0.24/t/07-context_info.t --- old/Scope-Upper-0.22/t/07-context_info.t 2013-01-10 22:51:36.000000000 +0100 +++ new/Scope-Upper-0.24/t/07-context_info.t 2013-09-02 12:34:51.000000000 +0200 @@ -47,6 +47,7 @@ if ($top) { $want = "$]" < 5.015_001 ? '' : undef; $hints &= ~HINT_BLOCK_SCOPE if $Config{usesitecustomize}; + $hints |= HINT_BLOCK_SCOPE if "$]" >= 5.019003; $warnings = sub { use warnings; (caller 0)[9] }->() if "$]" < 5.007 and not $^W; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/13-reap-ctl.t new/Scope-Upper-0.24/t/13-reap-ctl.t --- old/Scope-Upper-0.22/t/13-reap-ctl.t 2012-08-14 00:10:27.000000000 +0200 +++ new/Scope-Upper-0.24/t/13-reap-ctl.t 2013-08-29 01:17:08.000000000 +0200 @@ -140,6 +140,12 @@ skip 'Perl 5.10 required to test given/when' => 30 if "$]" < 5.010; eval <<' GIVEN_TEST_1'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; local $y; { @@ -161,6 +167,12 @@ fail $@ if $@; eval <<' GIVEN_TEST_2'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; local $y; { @@ -184,6 +196,12 @@ fail $@ if $@; eval <<' GIVEN_TEST_3'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; local $y; { @@ -205,6 +223,12 @@ fail $@ if $@; eval <<' GIVEN_TEST_4'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; local $y; { @@ -228,6 +252,12 @@ fail $@ if $@; eval <<' GIVEN_TEST_5'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; local $y; { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/23-localize-ctl.t new/Scope-Upper-0.24/t/23-localize-ctl.t --- old/Scope-Upper-0.22/t/23-localize-ctl.t 2012-08-14 00:10:27.000000000 +0200 +++ new/Scope-Upper-0.24/t/23-localize-ctl.t 2013-08-29 01:17:08.000000000 +0200 @@ -193,6 +193,12 @@ skip 'Perl 5.10 required to test given/when' => 30 if "$]" < 5.010; eval <<' GIVEN_TEST_1'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; local $y; { @@ -214,6 +220,12 @@ fail $@ if $@; eval <<' GIVEN_TEST_2'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; local $y; { @@ -237,6 +249,12 @@ fail $@ if $@; eval <<' GIVEN_TEST_3'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; local $y; { @@ -258,6 +276,12 @@ fail $@ if $@; eval <<' GIVEN_TEST_4'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; local $y; { @@ -281,6 +305,12 @@ fail $@ if $@; eval <<' GIVEN_TEST_5'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; local $y; { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/53-unwind-misc.t new/Scope-Upper-0.24/t/53-unwind-misc.t --- old/Scope-Upper-0.22/t/53-unwind-misc.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Scope-Upper-0.24/t/53-unwind-misc.t 2013-09-09 19:06:50.000000000 +0200 @@ -0,0 +1,54 @@ +#!perl -T + +use strict; +use warnings; + +use Test::More tests => 7; + +use Scope::Upper qw<unwind UP SUB>; + +{ + my @destroyed; + + { + package Scope::Upper::TestTimelyDestruction; + + sub new { + my ($class, $label) = @_; + bless { label => $label }, $class; + } + + sub label { $_[0]->{label} } + + sub DESTROY { + push @destroyed, $_[0]->label; + } + } + + sub SU_TTD () { 'Scope::Upper::TestTimelyDestruction' } + + sub foo { + my $r = SU_TTD->new('a'); + my @x = (SU_TTD->new('c'), SU_TTD->new('d')); + unwind 123, $r, SU_TTD->new('b'), @x, sub { SU_TTD->new('e') }->() => UP SUB; + } + + sub bar { + foo(); + die 'not reached'; + } + + { + my $desc = sub { "unwinding @_ across a sub" }; + my @res = bar(); + is $res[0], 123, $desc->('a constant literal'); + is $res[1]->label, 'a', $desc->('a lexical'); + is $res[2]->label, 'b', $desc->('a temporary object'); + is $res[3]->label, 'c', $desc->('the contents of a lexical array (1)'); + is $res[4]->label, 'd', $desc->('the contents of a lexical array (2)'); + is $res[5]->label, 'e', $desc->('a temporary object returned by a sub'); + } + + is_deeply \@destroyed, [ qw<e d c b a> ], + 'all these objects were properly destroyed'; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/55-yield-target.t new/Scope-Upper-0.24/t/55-yield-target.t --- old/Scope-Upper-0.22/t/55-yield-target.t 2013-01-02 19:13:55.000000000 +0100 +++ new/Scope-Upper-0.24/t/55-yield-target.t 2013-08-29 01:17:08.000000000 +0200 @@ -83,6 +83,12 @@ if "$]" < 5.010; @res = eval <<'TESTCASE'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; (24, do { given (25) { @@ -98,6 +104,12 @@ # end of the enclosing given block. @res = (); eval <<'TESTCASE'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; @res = (28, do { given (29) { @@ -115,6 +127,12 @@ # But calling yield() in when() in for() sends us at the next iteration. @res = (); eval <<'TESTCASE'; + BEGIN { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + } use feature 'switch'; @res = (31, do { for (32, 33) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/58-yield-misc.t new/Scope-Upper-0.24/t/58-yield-misc.t --- old/Scope-Upper-0.22/t/58-yield-misc.t 2013-01-02 19:13:55.000000000 +0100 +++ new/Scope-Upper-0.24/t/58-yield-misc.t 2013-09-09 19:14:57.000000000 +0200 @@ -3,12 +3,12 @@ use strict; use warnings; -use Test::More tests => 4 * 3 + 1 + 3; +use Test::More tests => 4 * 3 + 1 + 3 + 7; use lib 't/lib'; use VPIT::TestHelpers; -use Scope::Upper qw<yield leave HERE>; +use Scope::Upper qw<yield leave HERE UP SUB>; # Test timely destruction of values returned from yield() @@ -135,3 +135,49 @@ qr/^leave\(\) can't target a substitution context at \Q$0\E line $line/, 'leave() cannot exit subst'; } + +{ + my @destroyed; + + { + package Scope::Upper::TestTimelyDestruction; + + sub new { + my ($class, $label) = @_; + bless { label => $label }, $class; + } + + sub label { $_[0]->{label} } + + sub DESTROY { + push @destroyed, $_[0]->label; + } + } + + sub SU_TTD () { 'Scope::Upper::TestTimelyDestruction' } + + sub foo { + my $r = SU_TTD->new('a'); + my @x = (SU_TTD->new('c'), SU_TTD->new('d')); + yield 123, $r, SU_TTD->new('b'), @x, sub { SU_TTD->new('e') }->() => UP SUB; + } + + sub bar { + foo(); + die 'not reached'; + } + + { + my $desc = sub { "yielding @_ across a sub" }; + my @res = bar(); + is $res[0], 123, $desc->('a constant literal'); + is $res[1]->label, 'a', $desc->('a lexical'); + is $res[2]->label, 'b', $desc->('a temporary object'); + is $res[3]->label, 'c', $desc->('the contents of a lexical array (1)'); + is $res[4]->label, 'd', $desc->('the contents of a lexical array (2)'); + is $res[5]->label, 'e', $desc->('a temporary object returned by a sub'); + } + + is_deeply \@destroyed, [ qw<e d c b a> ], + 'all these objects were properly destroyed'; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/91-pod.t new/Scope-Upper-0.24/t/91-pod.t --- old/Scope-Upper-0.22/t/91-pod.t 2013-01-30 17:55:13.000000000 +0100 +++ new/Scope-Upper-0.24/t/91-pod.t 1970-01-01 01:00:00.000000000 +0100 @@ -1,15 +0,0 @@ -#!perl -T - -use strict; -use warnings; - -use Test::More; - -use lib 't/lib'; -use VPIT::TestHelpers; - -load_or_skip_all('Test::Pod', '1.22', [ ]); - -eval 'use Test::Pod'; # Make Kwalitee test happy - -all_pod_files_ok(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/92-pod-coverage.t new/Scope-Upper-0.24/t/92-pod-coverage.t --- old/Scope-Upper-0.22/t/92-pod-coverage.t 2013-01-30 17:55:13.000000000 +0100 +++ new/Scope-Upper-0.24/t/92-pod-coverage.t 1970-01-01 01:00:00.000000000 +0100 @@ -1,16 +0,0 @@ -#!perl -T - -use strict; -use warnings; - -use Test::More; - -use lib 't/lib'; -use VPIT::TestHelpers; - -load_or_skip_all('Test::Pod::Coverage', '1.08', [ ]); -load_or_skip_all('Pod::Coverage', '0.18' ); - -eval 'use Test::Pod::Coverage'; # Make Kwalitee test happy - -all_pod_coverage_ok( { also_private => [ qr/^_/, qr/^CLONE(_SKIP)?$/ ] } ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/93-pod-spelling.t new/Scope-Upper-0.24/t/93-pod-spelling.t --- old/Scope-Upper-0.22/t/93-pod-spelling.t 2013-01-30 17:55:13.000000000 +0100 +++ new/Scope-Upper-0.24/t/93-pod-spelling.t 1970-01-01 01:00:00.000000000 +0100 @@ -1,13 +0,0 @@ -#!perl - -use strict; -use warnings; - -use Test::More; - -use lib 't/lib'; -use VPIT::TestHelpers; - -load_or_skip_all('Test::Pod::Spelling::CommonMistakes', '1.0', [ ]); - -all_pod_files_ok(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/95-portability-files.t new/Scope-Upper-0.24/t/95-portability-files.t --- old/Scope-Upper-0.22/t/95-portability-files.t 2013-01-30 17:55:13.000000000 +0100 +++ new/Scope-Upper-0.24/t/95-portability-files.t 1970-01-01 01:00:00.000000000 +0100 @@ -1,13 +0,0 @@ -#!perl -T - -use strict; -use warnings; - -use Test::More; - -use lib 't/lib'; -use VPIT::TestHelpers; - -load_or_skip_all('Test::Portability::Files', undef, [ ]); - -run_tests(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/99-kwalitee.t new/Scope-Upper-0.24/t/99-kwalitee.t --- old/Scope-Upper-0.22/t/99-kwalitee.t 2013-01-30 17:55:13.000000000 +0100 +++ new/Scope-Upper-0.24/t/99-kwalitee.t 1970-01-01 01:00:00.000000000 +0100 @@ -1,29 +0,0 @@ -#!perl - -use strict; -use warnings; - -use Test::More; - -use lib 't/lib'; -use VPIT::TestHelpers; - -my $guard = VPIT::TestHelpers::Guard->new( - sub { unlink for glob 'Debian_CPANTS.txt*' } -); - -load_or_skip_all('Parse::RecDescent', '1.967006'); -load_or_skip_all('Module::ExtractUse', '0.24' ); -load_or_skip_all('Test::Kwalitee', '1.01' ); - -SKIP: { - eval { Test::Kwalitee->import(); }; - if (my $err = $@) { - 1 while chomp $err; - require Test::Builder; - my $Test = Test::Builder->new; - my $plan = $Test->has_plan; - $Test->skip_all($err) if not defined $plan or $plan eq 'no_plan'; - skip $err => $plan - $Test->current_test; - } -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/lib/Scope/Upper/TestGenerator.pm new/Scope-Upper-0.24/t/lib/Scope/Upper/TestGenerator.pm --- old/Scope-Upper-0.22/t/lib/Scope/Upper/TestGenerator.pm 2012-09-17 14:57:20.000000000 +0200 +++ new/Scope-Upper-0.24/t/lib/Scope/Upper/TestGenerator.pm 2013-08-29 01:17:08.000000000 +0200 @@ -39,6 +39,11 @@ ); sub import { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + if ("$]" >= 5.010_001) { require feature; feature->import('switch'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Scope-Upper-0.22/t/lib/Test/Leaner.pm new/Scope-Upper-0.24/t/lib/Test/Leaner.pm --- old/Scope-Upper-0.22/t/lib/Test/Leaner.pm 2012-08-14 00:10:27.000000000 +0200 +++ new/Scope-Upper-0.24/t/lib/Test/Leaner.pm 2013-08-29 01:17:08.000000000 +0200 @@ -10,11 +10,11 @@ =head1 VERSION -Version 0.04 +Version 0.05 =cut -our $VERSION = '0.04'; +our $VERSION = '0.05'; =head1 SYNOPSIS @@ -273,7 +273,11 @@ The following functions from L<Test::More> are implemented and exported by default. -=head2 C<< plan [ tests => $count | 'no_plan' | skip_all => $reason ] >> +=head2 C<plan> + + plan tests => $count; + plan 'no_plan'; + plan skip_all => $reason; See L<Test::More/plan>. @@ -336,7 +340,9 @@ goto &Exporter::import; } -=head2 C<< skip $reason => $count >> +=head2 C<skip> + + skip $reason => $count; See L<Test::More/skip>. @@ -373,7 +379,10 @@ last SKIP; } -=head2 C<done_testing [ $count ]> +=head2 C<done_testing> + + done_testing; + done_testing $count; See L<Test::More/done_testing>. @@ -406,7 +415,10 @@ return 1; } -=head2 C<ok $ok [, $desc ]> +=head2 C<ok> + + ok $ok; + ok $ok, $desc; See L<Test::More/ok>. @@ -435,7 +447,10 @@ return $ok; } -=head2 C<pass [ $desc ]> +=head2 C<pass> + + pass; + pass $desc; See L<Test::More/pass>. @@ -446,7 +461,10 @@ goto &ok; } -=head2 C<fail [ $desc ]> +=head2 C<fail> + + fail; + fail $desc; See L<Test::More/fail>. @@ -457,7 +475,10 @@ goto &ok; } -=head2 C<is $got, $expected [, $desc ]> +=head2 C<is> + + is $got, $expected; + is $got, $expected, $desc; See L<Test::More/is>. @@ -473,7 +494,10 @@ goto &ok; } -=head2 C<isnt $got, $expected [, $desc ]> +=head2 C<isnt> + + isnt $got, $expected; + isnt $got, $expected, $desc; See L<Test::More/isnt>. @@ -560,11 +584,17 @@ } } -=head2 C<like $got, $regexp_expected [, $desc ]> +=head2 C<like> + + like $got, $regexp_expected; + like $got, $regexp_expected, $desc; See L<Test::More/like>. -=head2 C<unlike $got, $regexp_expected, [, $desc ]> +=head2 C<unlike> + + unlike $got, $regexp_expected; + unlike $got, $regexp_expected, $desc; See L<Test::More/unlike>. @@ -576,7 +606,10 @@ *unlike = _create_binop_handler('!~'); } -=head2 C<cmp_ok $got, $op, $expected [, $desc ]> +=head2 C<cmp_ok> + + cmp_ok $got, $op, $expected; + cmp_ok $got, $op, $expected, $desc; See L<Test::More/cmp_ok>. @@ -593,7 +626,10 @@ goto $handler; } -=head2 C<is_deeply $got, $expected [, $desc ]> +=head2 C<is_deeply> + + is_deeply $got, $expected; + is_deeply $got, $expected, $desc; See L<Test::More/is_deeply>. @@ -735,7 +771,9 @@ return 0; }; -=head2 C<diag @text> +=head2 C<diag> + + diag @lines; See L<Test::More/diag>. @@ -746,7 +784,9 @@ goto &_diag_fh; } -=head2 C<note @text> +=head2 C<note> + + note @lines; See L<Test::More/note>. @@ -757,7 +797,10 @@ goto &_diag_fh; } -=head2 C<BAIL_OUT [ $desc ]> +=head2 C<BAIL_OUT> + + BAIL_OUT; + BAIL_OUT $desc; See L<Test::More/BAIL_OUT>. @@ -802,7 +845,10 @@ L<Test::Leaner> also provides some functions of its own, which are never exported. -=head2 C<tap_stream [ $fh ]> +=head2 C<tap_stream> + + my $tap_fh = tap_stream; + tap_stream $fh; Read/write accessor for the filehandle to which the tests are outputted. On write, it also turns autoflush on onto C<$fh>. @@ -827,7 +873,10 @@ tap_stream *STDOUT; -=head2 C<diag_stream [ $fh ]> +=head2 C<diag_stream> + + my $diag_fh = diag_stream; + diag_stream $fh; Read/write accessor for the filehandle to which the diagnostics are printed. On write, it also turns autoflush on onto C<$fh>. @@ -882,7 +931,7 @@ =head1 COPYRIGHT & LICENSE -Copyright 2010,2011 Vincent Pit, all rights reserved. +Copyright 2010,2011,2013 Vincent Pit, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
