![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community,
here is the log from the commit of package perl-PadWalker for openSUSE:Factory checked in at 2013-06-13 18:19:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-PadWalker (Old)
and /work/SRC/openSUSE:Factory/.perl-PadWalker.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-PadWalker"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-PadWalker/perl-PadWalker.changes 2011-09-23 12:38:30.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-PadWalker.new/perl-PadWalker.changes 2013-06-13 18:19:24.000000000 +0200
@@ -1,0 +2,9 @@
+Sat Jun 8 10:35:24 UTC 2013 - rschweikert@suse.com
+
+- Update to latest source, version 1.96
+ + Correct the version number in META.yml
+ + Make one of the tests a bit more flexible, to accommodate a subtle
+ change in behaviour caused by a recent change to perl
+ + Restore compatibility with Perl 5.8
+
+-------------------------------------------------------------------
Old:
----
PadWalker-1.92.tar.gz
New:
----
PadWalker-1.96.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-PadWalker.spec ++++++
--- /var/tmp/diff_new_pack.xFdDkH/_old 2013-06-13 18:19:24.000000000 +0200
+++ /var/tmp/diff_new_pack.xFdDkH/_new 2013-06-13 18:19:24.000000000 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package perl-PadWalker (Version 1.92)
+# spec file for package perl-PadWalker
#
-# Copyright (c) 2010 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,16 +15,14 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-# norootforbuild
-
Name: perl-PadWalker
%define cpan_name PadWalker
Summary: Play with other peoples' lexical variables
-Version: 1.92
-Release: 2
License: GPL-1.0+ or Artistic-1.0
Group: Development/Libraries/Perl
+Version: 1.96
+Release: 0
Url: http://search.cpan.org/dist/PadWalker/
Source: http://www.cpan.org/authors/id/R/RO/ROBIN/PadWalker-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ PadWalker-1.92.tar.gz -> PadWalker-1.96.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PadWalker-1.92/Changes new/PadWalker-1.96/Changes
--- old/PadWalker-1.92/Changes 2010-07-15 18:21:44.000000000 +0200
+++ new/PadWalker-1.96/Changes 2012-08-24 14:03:58.000000000 +0200
@@ -135,3 +135,25 @@
- Remove "Jobsian dot file cruft" reported by Steve Mynott.
- Incorporate patch from Fuji, Goro, correcting earlier patch from Yuval Kogman.
+1.93 Sun 5 Feb 2012 15:52:57 GMT
+ - Correct the version number in META.yml
+ (https://rt.cpan.org/Ticket/Display.html?id=59459)
+ Do this by using MakeMaker to auto-generate META.yml, to prevent
+ similar problems in future. This is possible because the new
+ MakeMaker parameter MIN_PERL_VERSION was added in MakeMaker 6.47_01;
+ the fact that this didn’t used to exist is the reason we managed META.yml
+ by hand till now.
+
+1.94 Tue 26 Jun 2012 09:51:27 BST
+ - Make one of the tests a bit more flexible, to accommodate a subtle
+ change in behaviour caused by a recent change to perl
+ (viz a0d2bbd5c47035a4f7369e4fddd46b502764d86e).
+
+1.95 Thu 23 Aug 2012 11:42:21 BST
+ - Pad changes in 5.17.4-to-be
+ This is a patch from Father Chrysostomous.
+ See https://rt.cpan.org/Public/Bug/Display.html?id=79154
+
+1.96 Fri 24 Aug 2012 13:03:31 BST
+ - Restore compatibility with Perl 5.8
+ Thanks again to Father Chrysostomous
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PadWalker-1.92/META.yml new/PadWalker-1.96/META.yml
--- old/PadWalker-1.92/META.yml 2008-02-04 10:57:40.000000000 +0100
+++ new/PadWalker-1.96/META.yml 2012-08-24 14:07:25.000000000 +0200
@@ -1,12 +1,21 @@
-# http://module-build.sourceforge.net/META-spec.html
-#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
-name: PadWalker
-version: 1.7
-license: perl
-version_from: PadWalker.pm
-installdirs: site
+--- #YAML:1.0
+name: PadWalker
+version: 1.96
+abstract: ~
+author: []
+license: unknown
+distribution_type: module
+configure_requires:
+ ExtUtils::MakeMaker: 0
+build_requires:
+ ExtUtils::MakeMaker: 0
requires:
- perl: 5.008002
-
-distribution_type: module
-generated_by: ExtUtils::MakeMaker version 6.21
+ perl: 5.008001
+no_index:
+ directory:
+ - t
+ - inc
+generated_by: ExtUtils::MakeMaker version 6.57_05
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PadWalker-1.92/Makefile.PL new/PadWalker-1.96/Makefile.PL
--- old/PadWalker-1.92/Makefile.PL 2010-07-15 18:20:22.000000000 +0200
+++ new/PadWalker-1.96/Makefile.PL 2012-08-24 14:07:11.000000000 +0200
@@ -1,7 +1,7 @@
use ExtUtils::MakeMaker;
use strict;
-require 5.008002;
+require 5.008001;
# Remember (like I didn't) that WriteMakefile looks at @ARGV,
# so an alternative way to configure a debugging build is:
@@ -33,6 +33,6 @@
'DEFINE' => $DEBUGGING,
'INC' => '', # e.g., '-I/usr/include/other',
($DEBUGGING ? (CCFLAGS => '-Wall -ansi') : ()),
- 'NO_META' => 1,
- dist => {TAR => 'env COPYFILE_DISABLE=true tar'}
+ dist => {TAR => 'env COPYFILE_DISABLE=true tar'},
+ MIN_PERL_VERSION => "5.008001",
);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PadWalker-1.92/PadWalker.pm new/PadWalker-1.96/PadWalker.pm
--- old/PadWalker-1.92/PadWalker.pm 2010-07-15 18:05:16.000000000 +0200
+++ new/PadWalker-1.96/PadWalker.pm 2012-08-24 14:03:24.000000000 +0200
@@ -12,7 +12,7 @@
@EXPORT_OK = qw(peek_my peek_our closed_over peek_sub var_name set_closed_over);
%EXPORT_TAGS = (all => \@EXPORT_OK);
-$VERSION = '1.92';
+$VERSION = '1.96';
bootstrap PadWalker $VERSION;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PadWalker-1.92/PadWalker.xs new/PadWalker-1.96/PadWalker.xs
--- old/PadWalker-1.92/PadWalker.xs 2010-07-15 18:20:49.000000000 +0200
+++ new/PadWalker-1.96/PadWalker.xs 2012-08-24 11:57:19.000000000 +0200
@@ -71,6 +71,25 @@
# define COP_SEQ_RANGE_HIGH(sv) U_32(SvUVX(sv))
#endif
+#ifndef PadARRAY
+typedef AV PADNAMELIST;
+typedef SV PADNAME;
+# if PERL_VERSION < 8 || (PERL_VERSION == 8 && !PERL_SUBVERSION)
+typedef AV PADLIST;
+typedef AV PAD;
+# endif
+# define PadlistARRAY(pl) ((PAD **)AvARRAY(pl))
+# define PadlistMAX(pl) AvFILLp(pl)
+# define PadlistNAMES(pl) (*PadlistARRAY(pl))
+# define PadnamelistARRAY(pnl) ((PADNAME **)AvARRAY(pnl))
+# define PadnamelistMAX(pnl) AvFILLp(pnl)
+# define PadARRAY AvARRAY
+# define PadnameIsOUR(pn) !!(SvFLAGS(pn) & SVpad_OUR)
+# define PadnameOURSTASH(pn) SvOURSTASH(pn)
+# define PadnameOUTER(pn) !!SvFAKE(pn)
+# define PadnamePV(pn) (SvPOKp(pn) ? SvPVX(pn) : NULL)
+#endif
+
/* Originally stolen from pp_ctl.c; now significantly different */
@@ -181,25 +200,24 @@
}
void
-pads_into_hash(AV* pad_namelist, AV* pad_vallist, HV* my_hash, HV* our_hash, U32 valid_at_seq)
+pads_into_hash(PADNAMELIST* pad_namelist, PAD* pad_vallist, HV* my_hash,
+ HV* our_hash, U32 valid_at_seq)
{
I32 i;
debug_print(("pads_into_hash(%p, %p, ..)\n",
(void*)pad_namelist, (void*) pad_vallist));
- for (i=av_len(pad_namelist); i>=0; --i) {
- SV** name_ptr = av_fetch(pad_namelist, i, 0);
+ for (i=PadnamelistMAX(pad_namelist); i>=0; --i) {
+ PADNAME* name_sv = PadnamelistARRAY(pad_namelist)[i];
- if (name_ptr) {
- SV* name_sv = *name_ptr;
-
- if (SvPOKp(name_sv)) {
- char* name_str = SvPVX(name_sv);
+ if (name_sv) {
+ char *name_str = PadnamePV(name_sv);
+ if (name_str) {
debug_print(("** %s (%lx,%lx) [%lx]%s\n", name_str,
COP_SEQ_RANGE_LOW(name_sv), COP_SEQ_RANGE_HIGH(name_sv), valid_at_seq,
- SvFAKE(name_sv) ? " <fake>" : ""));
+ PadnameOUTER(name_sv) ? " <fake>" : ""));
/* Check that this variable is valid at the cop_seq
* specified, by peeking into the NV and IV slots
@@ -215,13 +233,13 @@
* them out of the stash directly.
*/
- if ((SvFAKE(name_sv) || 0 == valid_at_seq ||
+ if ((PadnameOUTER(name_sv) || 0 == valid_at_seq ||
(valid_at_seq <= COP_SEQ_RANGE_HIGH(name_sv) &&
valid_at_seq > COP_SEQ_RANGE_LOW(name_sv))) &&
strlen(name_str) > 1 )
{
- SV **val_ptr, *val_sv;
+ SV *val_sv;
U32 name_len = strlen(name_str);
bool is_our = ((SvFLAGS(name_sv) & SVpad_OUR) != 0);
@@ -235,7 +253,8 @@
}
else {
if (is_our) {
- val_sv = fetch_from_stash(SvOURSTASH(name_sv), name_str, name_len);
+ val_sv = fetch_from_stash(PadnameOURSTASH(name_sv),
+ name_str, name_len);
if (!val_sv) {
debug_print(("Value of our variable is undefined\n"));
val_sv = &PL_sv_undef;
@@ -243,8 +262,9 @@
}
else
{
- val_ptr = pad_vallist ? av_fetch(pad_vallist, i, 0) : 0;
- val_sv = val_ptr ? *val_ptr : &PL_sv_undef;
+ val_sv =
+ pad_vallist ? PadARRAY(pad_vallist)[i] : &PL_sv_undef;
+ if (!val_sv) val_sv = &PL_sv_undef;
}
hv_store((is_our ? our_hash : my_hash), name_str, name_len,
@@ -257,15 +277,17 @@
}
void
-padlist_into_hash(AV* padlist, HV* my_hash, HV* our_hash, U32 valid_at_seq, long depth)
+padlist_into_hash(PADLIST* padlist, HV* my_hash, HV* our_hash,
+ U32 valid_at_seq, long depth)
{
- AV *pad_namelist, *pad_vallist;
+ PADNAMELIST *pad_namelist;
+ PAD *pad_vallist;
if (depth == 0) depth = 1;
/* We blindly deref this, cos it's always there (AFAIK!) */
- pad_namelist = (AV*) *av_fetch(padlist, 0, FALSE);
- pad_vallist = (AV*) *av_fetch(padlist, depth, FALSE);
+ pad_namelist = PadlistNAMES(padlist);
+ pad_vallist = PadlistARRAY(padlist)[depth];
pads_into_hash(pad_namelist, pad_vallist, my_hash, our_hash, valid_at_seq);
}
@@ -363,30 +385,30 @@
{
I32 i;
U32 val_depth;
- AV *pad_namelist;
- AV *pad_vallist;
+ PADNAMELIST *pad_namelist;
+ PAD *pad_vallist;
if (!CvPADLIST(cv)) {
return;
}
val_depth = CvDEPTH(cv) ? CvDEPTH(cv) : 1;
- pad_namelist = (AV*) *av_fetch(CvPADLIST(cv), 0, FALSE);
- pad_vallist = (AV*) *av_fetch(CvPADLIST(cv), val_depth, FALSE);
+ pad_namelist = PadlistNAMES(CvPADLIST(cv));
+ pad_vallist = PadlistARRAY(CvPADLIST(cv))[val_depth];
- debug_print(("av_len(CvPADLIST(cv)) = %ld\n", av_len(CvPADLIST(cv)) ));
+ debug_print(("PadlistMAX(CvPADLIST(cv)) = %ld\n",
+ PadlistMAX(CvPADLIST(cv)) ));
- for (i=av_len(pad_namelist); i>=0; --i) {
- SV** name_ptr = av_fetch(pad_namelist, i, 0);
+ for (i=PadnamelistMAX(pad_namelist); i>=0; --i) {
+ PADNAME* name_sv = PadnamelistARRAY(pad_namelist)[i];
- if (name_ptr && SvPOKp(*name_ptr)) {
- SV* name_sv = *name_ptr;
- char* name_str = SvPVX(name_sv);
+ if (name_sv && PadnamePV(name_sv)) {
+ char* name_str = PadnamePV(name_sv);
STRLEN name_len = strlen(name_str);
- if (SvFAKE(name_sv) && 0 == (SvFLAGS(name_sv) & SVpad_OUR)) {
- SV **val = av_fetch(pad_vallist, i, 0);
- SV *val_sv = val ? *val : &PL_sv_undef;
+ if (PadnameOUTER(name_sv) && !PadnameIsOUR(name_sv)) {
+ SV *val_sv = PadARRAY(pad_vallist)[i];
+ if (!val_sv) val_sv = &PL_sv_undef;
#ifdef PADWALKER_DEBUGGING
debug_print(("Found a fake slot: %s\n", name_str));
if (val == 0)
@@ -412,18 +434,15 @@
{
I32 i;
U32 val_depth = CvDEPTH(cv) ? CvDEPTH(cv) : 1;
- AV *pad_namelist = (AV*) *av_fetch(CvPADLIST(cv), 0, FALSE);
- AV *pad_vallist = (AV*) *av_fetch(CvPADLIST(cv), val_depth, FALSE);
+ PADNAMELIST *pad_namelist = PadlistNAMES(CvPADLIST(cv));
+ PAD *pad_vallist = PadlistARRAY(CvPADLIST(cv))[val_depth];
- for (i=av_len(pad_namelist); i>=0; --i) {
- SV** name_ptr = av_fetch(pad_namelist, i, 0);
+ for (i=PadnamelistMAX(pad_namelist); i>=0; --i) {
+ PADNAME* name = PadnamelistARRAY(pad_namelist)[i];
+ char* name_str;
- if (name_ptr && SvPOKp(*name_ptr)) {
- SV* name_sv = *name_ptr;
- char* name_str = SvPVX(name_sv);
-
- SV **val = av_fetch(pad_vallist, i, 0);
- if (val && (*val == var))
+ if ( name && (name_str = PadnamePV(name))
+ && PadARRAY(pad_vallist)[i] == var) {
return name_str;
}
}
@@ -529,32 +548,30 @@
I32 i;
CV *cv = (CV *)SvRV(sv);
U32 val_depth = CvDEPTH(cv) ? CvDEPTH(cv) : 1;
- AV *pad_namelist = (AV*) *av_fetch(CvPADLIST(cv), 0, FALSE);
- AV *pad_vallist = (AV*) *av_fetch(CvPADLIST(cv), val_depth, FALSE);
+ PADNAMELIST *pad_namelist = PadlistNAMES(CvPADLIST(cv));
+ PAD *pad_vallist = PadlistARRAY(CvPADLIST(cv))[val_depth];
CODE:
- for (i=av_len(pad_namelist); i>=0; --i) {
- SV** name_ptr = av_fetch(pad_namelist, i, 0);
+ for (i=PadnamelistMAX(pad_namelist); i>=0; --i) {
+ PADNAME* name = PadnamelistARRAY(pad_namelist)[i];
+ char* name_str;
- if (name_ptr && SvPOKp(*name_ptr)) {
- SV* name_sv = *name_ptr;
- char* name_str = SvPVX(name_sv);
+ if (name && (name_str = PadnamePV(name))) {
STRLEN name_len = strlen(name_str);
- if (SvFAKE(name_sv) && 0 == (SvFLAGS(name_sv) & SVpad_OUR)) {
+ if (PadnameOUTER(name) && !PadnameIsOUR(name)) {
SV **restore_ref = hv_fetch(pad, name_str, name_len, FALSE);
if ( restore_ref ) {
if ( SvROK(*restore_ref) ) {
SV *restore = SvRV(*restore_ref);
- SV **orig = av_fetch(pad_vallist, i, 0);
+ SV *orig = PadARRAY(pad_vallist)[i];
int restore_type = SvTYPE(restore);
- if ( !orig || !*orig || is_correct_type(*orig, restore) ) {
+ if ( !orig || is_correct_type(orig, restore) ) {
SvREFCNT_inc(restore);
- if ( av_store(pad_vallist, i, restore) == NULL )
- SvREFCNT_dec(restore);
+ PadARRAY(pad_vallist)[i] = restore;
} else {
- croak("Incorrect reftype for variable %s (got %s expected %s)", name_str, sv_reftype(restore, 0), sv_reftype(*orig, 0));
+ croak("Incorrect reftype for variable %s (got %s expected %s)", name_str, sv_reftype(restore, 0), sv_reftype(orig, 0));
}
} else {
croak("The variable for %s is not a reference", name_str);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PadWalker-1.92/README new/PadWalker-1.96/README
--- old/PadWalker-1.92/README 2010-07-15 18:23:22.000000000 +0200
+++ new/PadWalker-1.96/README 2012-08-24 14:03:20.000000000 +0200
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
-| PadWalker v1.92 - Robin Houston
+| PadWalker v1.96 - Robin Houston
-----------------------------------------------------------------------------
NAME
@@ -106,14 +106,14 @@
AUTHOR
Robin Houston