Hello community,
here is the log from the commit of package perl-Devel-Caller for openSUSE:Factory checked in at 2013-06-09 16:40:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Devel-Caller (Old)
and /work/SRC/openSUSE:Factory/.perl-Devel-Caller.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Devel-Caller"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Devel-Caller/perl-Devel-Caller.changes 2011-12-21 14:58:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Devel-Caller.new/perl-Devel-Caller.changes 2013-06-09 16:40:06.000000000 +0200
@@ -1,0 +2,7 @@
+Tue Jun 4 08:17:41 UTC 2013 - coolo@suse.com
+
+- updated to 2.06
+ Corrected some pod syntax RT#56456
+ Handle the new padrange op added in 5.17 RT#81704
+
+-------------------------------------------------------------------
Old:
----
Devel-Caller-2.05.tar.gz
New:
----
Devel-Caller-2.06.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Devel-Caller.spec ++++++
--- /var/tmp/diff_new_pack.1Ca351/_old 2013-06-09 16:40:07.000000000 +0200
+++ /var/tmp/diff_new_pack.1Ca351/_new 2013-06-09 16:40:07.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Devel-Caller
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,12 +15,13 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
Name: perl-Devel-Caller
-Version: 2.05
+Version: 2.06
Release: 0
%define cpan_name Devel-Caller
Summary: meatier versions of C<caller>
-License: GPL-1.0+ or Artistic-1.0
+License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/Devel-Caller/
Source: http://www.cpan.org/authors/id/R/RC/RCLAMP/%{cpan_name}-%{version}.tar.gz
++++++ Devel-Caller-2.05.tar.gz -> Devel-Caller-2.06.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-Caller-2.05/Changes new/Devel-Caller-2.06/Changes
--- old/Devel-Caller-2.05/Changes 2010-04-08 14:39:24.000000000 +0200
+++ new/Devel-Caller-2.06/Changes 2013-01-16 11:27:17.000000000 +0100
@@ -1,3 +1,7 @@
+2.06 Wednesday 16th January, 2013
+ Corrected some pod syntax RT#56456
+ Handle the new padrange op added in 5.17 RT#81704
+
2.05 Thursday 8th April, 2010
Don't call B::PADOP->gv. Work by by Florian Ragwitz
http://github.com/rafl/perl-devel-caller/commit/248a23390eef48a73bb717be085d...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-Caller-2.05/MANIFEST new/Devel-Caller-2.06/MANIFEST
--- old/Devel-Caller-2.05/MANIFEST 2010-04-08 14:42:05.000000000 +0200
+++ new/Devel-Caller-2.06/MANIFEST 2013-01-16 11:17:15.000000000 +0100
@@ -1,7 +1,8 @@
+META.yml
+META.json
MANIFEST
Changes
Makefile.PL
lib/Devel/Caller.pm
Caller.xs
t/Devel-Caller.t
-META.yml Module meta-data (added by MakeMaker)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-Caller-2.05/META.json new/Devel-Caller-2.06/META.json
--- old/Devel-Caller-2.05/META.json 1970-01-01 01:00:00.000000000 +0100
+++ new/Devel-Caller-2.06/META.json 2013-01-16 11:27:56.000000000 +0100
@@ -0,0 +1,42 @@
+{
+ "abstract" : "meatier versions of C<caller>",
+ "author" : [
+ "Richard Clamp "
+ ],
+ "dynamic_config" : 1,
+ "generated_by" : "ExtUtils::MakeMaker version 6.64, CPAN::Meta::Converter version 2.120921",
+ "license" : [
+ "perl_5"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "Devel-Caller",
+ "no_index" : {
+ "directory" : [
+ "t",
+ "inc"
+ ]
+ },
+ "prereqs" : {
+ "build" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ }
+ },
+ "configure" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ }
+ },
+ "runtime" : {
+ "requires" : {
+ "PadWalker" : "0.08",
+ "Test::More" : "0"
+ }
+ }
+ },
+ "release_status" : "stable",
+ "version" : "2.06"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-Caller-2.05/META.yml new/Devel-Caller-2.06/META.yml
--- old/Devel-Caller-2.05/META.yml 2010-04-08 14:42:05.000000000 +0200
+++ new/Devel-Caller-2.06/META.yml 2013-01-16 11:27:56.000000000 +0100
@@ -1,20 +1,23 @@
---- #YAML:1.0
-name: Devel-Caller
-version: 2.05
-abstract: ~
-author: []
-license: unknown
-distribution_type: module
+---
+abstract: 'meatier versions of C<caller>'
+author:
+ - 'Richard Clamp '
+build_requires:
+ ExtUtils::MakeMaker: 0
configure_requires:
- ExtUtils::MakeMaker: 0
-requires:
- PadWalker: 0.08
- Test::More: 0
-no_index:
- directory:
- - t
- - inc
-generated_by: ExtUtils::MakeMaker version 6.48
+ ExtUtils::MakeMaker: 0
+dynamic_config: 1
+generated_by: 'ExtUtils::MakeMaker version 6.64, CPAN::Meta::Converter version 2.120921'
+license: perl
meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
+name: Devel-Caller
+no_index:
+ directory:
+ - t
+ - inc
+requires:
+ PadWalker: 0.08
+ Test::More: 0
+version: 2.06
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-Caller-2.05/Makefile.PL new/Devel-Caller-2.06/Makefile.PL
--- old/Devel-Caller-2.05/Makefile.PL 2008-12-12 12:42:35.000000000 +0100
+++ new/Devel-Caller-2.06/Makefile.PL 2013-01-16 11:04:37.000000000 +0100
@@ -3,9 +3,12 @@
use warnings;
use ExtUtils::MakeMaker;
WriteMakefile(
- 'NAME' => 'Devel::Caller',
- 'VERSION_FROM' => 'lib/Devel/Caller.pm',
- 'PREREQ_PM' => {
+ NAME => 'Devel::Caller',
+ AUTHOR => 'Richard Clamp ',
+ LICENSE => 'perl',
+ VERSION_FROM => 'lib/Devel/Caller.pm',
+ ABSTRACT_FROM => 'lib/Devel/Caller.pm',
+ PREREQ_PM => {
'Test::More' => 0,
'PadWalker' => '0.08'
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-Caller-2.05/lib/Devel/Caller.pm new/Devel-Caller-2.06/lib/Devel/Caller.pm
--- old/Devel-Caller-2.05/lib/Devel/Caller.pm 2010-04-08 14:39:39.000000000 +0200
+++ new/Devel-Caller-2.06/lib/Devel/Caller.pm 2013-01-16 11:27:17.000000000 +0100
@@ -1,13 +1,13 @@
use strict;
package Devel::Caller;
use warnings;
-use B;
+use B qw( peekop );
use PadWalker ();
use XSLoader;
use base qw( Exporter );
use 5.008;
-our $VERSION = '2.05';
+our $VERSION = '2.06';
XSLoader::load __PACKAGE__, $VERSION;
our @EXPORT_OK = qw( caller_cv caller_args caller_vars called_with called_as_method );
@@ -21,20 +21,23 @@
our $DEBUG = 0;
+# scan forward through the ops noting the pushmark or a padrange ops.
+# These indicate the start of a subroutine call. We're looking for the most
+# recent one before the subroutine invocation (the entersub).
sub scan_forward {
my $op = shift;
- die "was expecting a pushmark, not a " . $op->name
- if ($op->name ne "pushmark");
+ die "was expecting a pushmark or a padrange, not a " . $op->name
+ if ($op->name !~ /^(?:pushmark|padrange)$/);
my @stack;
for (; $op && $op->name ne 'entersub'; $op = $op->next) {
- print "SCAN op $op ", $op->name, "\n" if $DEBUG;
- if ($op->name eq "pushmark") {
- print "push $op\n" if $DEBUG;
+ print "SCAN ", peekop($op), "\n" if $DEBUG;
+ if ($op->name eq "pushmark" or $op->name eq "padrange") {
+ print " PUSH\n" if $DEBUG;
push @stack, $op;
}
elsif (0) { # op consumes a mark
- print "pop\n" if $DEBUG;
+ print " POP\n" if $DEBUG;
pop @stack;
}
}
@@ -52,42 +55,52 @@
my $padn = $pad->ARRAYelt( 0 );
my $padv = $pad->ARRAYelt( 1 );
- print $op->name, "\n" if $DEBUG;
+ print "Context OP: ", peekop($op), "\n" if $DEBUG;
$op = scan_forward( $op );
- print $op->name, "\n" if $DEBUG;
+ print "Scanned forward to ", peekop($op), "\n" if $DEBUG;
my @return;
- my ($prev, $skip);
- $skip = 0;
- while (($prev = $op) && ($op = $op->next) && ($op->name ne "entersub")) {
- print "op $op ", $op->name, "\n" if $DEBUG;
- if ($op->name eq "pushmark") {
- $skip = !$skip;
- }
- elsif ($op->name =~ "pad(sv|av|hv)") {
- next if $skip;
- print "PAD skip:$skip\n" if $DEBUG;
+ my $prev;
+ # We're scanning through looking for ops which are pushing
+ # variables onto the stack (/pad(sv|av|hv)/ push from the pad,
+ # /gvsv|rv2([ahg]v/ are from globs.
+ for (; $op && $op->name ne 'entersub'; ($prev = $op) && ($op = $op->next)) {
+ printf "Loop: %s %s targ: %d\n", peekop($op), $op->name, $op->targ if $DEBUG;
+
+ if ($op->name eq "padrange") {
+ # A padrange is a 5.17 optimisation that uses a single op to
+ # load multiple pad variables onto the stack. The old ops
+ # are preserved and are reachable as the padrange's sibling
+ # so that B::Deparse can pessimise it back to that state.
+ #
+ # http://perl5.git.perl.org/perl.git/commitdiff/0fe870f5
+ # http://perl5.git.perl.org/perl.git/commitdiff/a7fd8ef6
+ #
+ # We could use the B::Deparse method, but it's probably simpler if
+ # we just reassign $op.
+ print "padrange, diverting down ", $prev->sibling, "\n" if $DEBUG;
+ $op = $op->sibling;
+ }
+
+ if ($op->name =~ "pad(sv|av|hv)") {
if ($op->next->next->name eq "sassign") {
- $skip = 0;
+ print "sassign in two ops, this is the target skipping\n" if $DEBUG;
next;
}
- print "targ: ", $op->targ, "\n" if $DEBUG;
- my $name = $padn->ARRAYelt( $op->targ )->PVX;
- my $value = $padv->ARRAYelt( $op->targ )->object_2svref;
- push @return, $want_names ? $name : $value;
- next;
- }
- elsif ($op->name eq "gv") {
+ print "Copying from pad\n" if $DEBUG;
+ if ($want_names) {
+ push @return, $padn->ARRAYelt( $op->targ )->PVX;
+ }
+ else {
+ push @return, $padv->ARRAYelt( $op->targ )->object_2svref;
+ }
next;
}
elsif ($op->name =~ /gvsv|rv2(av|hv|gv)/) {
- print "GV skip:$skip\n" if $DEBUG;
-
if ($op->next->next->name eq "sassign") {
- $skip = 0;
- print "skipped\n" if $DEBUG;
+ print "sassign in two ops, this is the target, skipping\n" if $DEBUG;
next;
}
@@ -129,9 +142,8 @@
next;
}
elsif ($op->name eq "const") {
- print "const $op skip:$skip\n" if $DEBUG;
if ($op->next->next->name eq "sassign") {
- $skip = 0;
+ print "sassign in two ops, this is the target, skipping\n" if $DEBUG;
next;
}
@@ -148,7 +160,7 @@
my $op = _context_op( PadWalker::_upcontext( $level + 1 ));
print "called_as_method: $op\n" if $DEBUG;
- die "was expecting a pushmark, not a ". $op->name
+ die "was expecting a pushmark or pad, not a ". $op->name
unless $op->name eq "pushmark";
while (($op = $op->next) && ($op->name ne "entersub")) {
print "method: ", $op->name, "\n" if $DEBUG;
@@ -210,6 +222,7 @@
C returns true if the subroutine at $level was
called as a method.
+=back
=head1 BUGS
@@ -240,10 +253,10 @@
=head1 COPYRIGHT
-Copyright (c) 2002, 2003, 2006, 2007, 2008, 2010 Richard Clamp. All Rights
-Reserved.
+Copyright (c) 2002, 2003, 2006, 2007, 2008, 2010, 2013 Richard Clamp.
+All Rights Reserved.
+
This module is free software. It may be used, redistributed and/or
modified under the same terms as Perl itself.
=cut
-
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org