Hello community,
here is the log from the commit of package perl-Package-Stash-XS for openSUSE:Factory checked in at 2013-07-30 14:03:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Package-Stash-XS (Old)
and /work/SRC/openSUSE:Factory/.perl-Package-Stash-XS.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Package-Stash-XS"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Package-Stash-XS/perl-Package-Stash-XS.changes 2013-06-13 18:19:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Package-Stash-XS.new/perl-Package-Stash-XS.changes 2013-07-30 14:03:46.000000000 +0200
@@ -1,0 +2,7 @@
+Sat Jul 27 11:58:38 UTC 2013 - coolo@suse.com
+
+- updated to 0.28
+ - fix test issue (Graham Knop)
+ - handle magic more correctly in add_symbol and get_or_add_symbol
+
+-------------------------------------------------------------------
Old:
----
Package-Stash-XS-0.26.tar.gz
New:
----
Package-Stash-XS-0.28.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Package-Stash-XS.spec ++++++
--- /var/tmp/diff_new_pack.DVeStO/_old 2013-07-30 14:03:47.000000000 +0200
+++ /var/tmp/diff_new_pack.DVeStO/_new 2013-07-30 14:03:47.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-Package-Stash-XS
-Version: 0.26
+Version: 0.28
Release: 0
%define cpan_name Package-Stash-XS
Summary: faster and more correct implementation of the Package::Stash API
@@ -34,6 +34,7 @@
#BuildRequires: perl(Package::Stash)
#BuildRequires: perl(Package::Stash::XS)
#BuildRequires: perl(Test::LeakTrace)
+#BuildRequires: perl(Variable::Magic)
%{perl_requires}
%description
++++++ Package-Stash-XS-0.26.tar.gz -> Package-Stash-XS-0.28.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Package-Stash-XS-0.26/Changes new/Package-Stash-XS-0.28/Changes
--- old/Package-Stash-XS-0.26/Changes 2013-01-04 10:36:41.000000000 +0100
+++ new/Package-Stash-XS-0.28/Changes 2013-07-16 18:17:11.000000000 +0200
@@ -1,5 +1,11 @@
Revision history for Package-Stash-XS
+0.28 2013-07-16
+ - fix test issue (Graham Knop)
+
+0.27 2013-07-15
+ - handle magic more correctly in add_symbol and get_or_add_symbol
+
0.26 2013-01-04
- internal refactorings to support Package::Anon stashes - this should
work now
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Package-Stash-XS-0.26/MANIFEST new/Package-Stash-XS-0.28/MANIFEST
--- old/Package-Stash-XS-0.26/MANIFEST 2013-01-04 10:36:41.000000000 +0100
+++ new/Package-Stash-XS-0.28/MANIFEST 2013-07-16 18:17:11.000000000 +0200
@@ -29,6 +29,7 @@
t/scalar-values.t
t/stash-deletion.t
t/synopsis.t
+t/warnings.t
typemap
xt/author/leaks-debug.t
xt/author/leaks.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Package-Stash-XS-0.26/META.json new/Package-Stash-XS-0.28/META.json
--- old/Package-Stash-XS-0.26/META.json 2013-01-04 10:36:41.000000000 +0100
+++ new/Package-Stash-XS-0.28/META.json 2013-07-16 18:17:11.000000000 +0200
@@ -1,10 +1,10 @@
{
"abstract" : "faster and more correct implementation of the Package::Stash API",
"author" : [
- "Jesse Luehrs <doy at tozt dot net>"
+ "Jesse Luehrs "
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 4.300028, CPAN::Meta::Converter version 2.120921",
+ "generated_by" : "Dist::Zilla version 4.300034, CPAN::Meta::Converter version 2.120921",
"license" : [
"perl_5"
],
@@ -53,8 +53,7 @@
"release_status" : "stable",
"resources" : {
"bugtracker" : {
- "mailto" : "bug-package-stash-xs@rt.cpan.org",
- "web" : "http://rt.cpan.org/Public/Dist/Display.html?Name=Package-Stash-XS"
+ "web" : "https://github.com/doy/package-stash-xs/issues"
},
"homepage" : "http://metacpan.org/release/Package-Stash-XS",
"repository" : {
@@ -63,10 +62,10 @@
"web" : "https://github.com/doy/package-stash-xs"
}
},
- "version" : "0.26",
+ "version" : "0.28",
"x_Dist_Zilla" : {
"perl" : {
- "version" : "5.016002"
+ "version" : "5.018000"
},
"plugins" : [
{
@@ -78,87 +77,87 @@
}
},
"name" : "@DOY/TestMoreDoneTesting",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::GatherDir",
"name" : "@DOY/GatherDir",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::PruneCruft",
"name" : "@DOY/PruneCruft",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::ManifestSkip",
"name" : "@DOY/ManifestSkip",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::MetaYAML",
"name" : "@DOY/MetaYAML",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::License",
"name" : "@DOY/License",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::Readme",
"name" : "@DOY/Readme",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::RunExtraTests",
"name" : "@DOY/RunExtraTests",
- "version" : "0.007"
+ "version" : "0.011"
},
{
"class" : "Dist::Zilla::Plugin::ExecDir",
"name" : "@DOY/ExecDir",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::ShareDir",
"name" : "@DOY/ShareDir",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::MakeMaker",
"name" : "@DOY/MakeMaker",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::Manifest",
"name" : "@DOY/Manifest",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::TestRelease",
"name" : "@DOY/TestRelease",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::ConfirmRelease",
"name" : "@DOY/ConfirmRelease",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::MetaConfig",
"name" : "@DOY/MetaConfig",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::MetaJSON",
"name" : "@DOY/MetaJSON",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::NextRelease",
"name" : "@DOY/NextRelease",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::CheckChangesHasContent",
@@ -168,7 +167,7 @@
{
"class" : "Dist::Zilla::Plugin::PkgVersion",
"name" : "@DOY/PkgVersion",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::Authority",
@@ -178,12 +177,12 @@
{
"class" : "Dist::Zilla::Plugin::PodCoverageTests",
"name" : "@DOY/PodCoverageTests",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::PodSyntaxTests",
"name" : "@DOY/PodSyntaxTests",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::NoTabsTests",
@@ -198,7 +197,7 @@
{
"class" : "Dist::Zilla::Plugin::Test::Compile",
"name" : "@DOY/Test::Compile",
- "version" : "1.112820"
+ "version" : "2.002"
},
{
"class" : "Dist::Zilla::Plugin::Metadata",
@@ -208,27 +207,27 @@
{
"class" : "Dist::Zilla::Plugin::MetaResources",
"name" : "@DOY/MetaResources",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::Git::Check",
"name" : "@DOY/Git::Check",
- "version" : "2.001"
+ "version" : "2.013"
},
{
"class" : "Dist::Zilla::Plugin::Git::Commit",
"name" : "@DOY/Git::Commit",
- "version" : "2.001"
+ "version" : "2.013"
},
{
"class" : "Dist::Zilla::Plugin::Git::Tag",
"name" : "@DOY/Git::Tag",
- "version" : "2.001"
+ "version" : "2.013"
},
{
"class" : "Dist::Zilla::Plugin::Git::NextVersion",
"name" : "@DOY/Git::NextVersion",
- "version" : "2.001"
+ "version" : "2.013"
},
{
"class" : "Dist::Zilla::Plugin::PodWeaver",
@@ -238,12 +237,12 @@
{
"class" : "Dist::Zilla::Plugin::UploadToCPAN",
"name" : "@DOY/UploadToCPAN",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::AutoPrereqs",
"name" : "AutoPrereqs",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
@@ -254,42 +253,47 @@
}
},
"name" : "DevelopRequires",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::PruneFiles",
"name" : "PruneFiles",
- "version" : "4.300028"
+ "version" : "4.300034"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ContributorsFromGit",
+ "name" : "ContributorsFromGit",
+ "version" : "0.006"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":InstallModules",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":IncModules",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":TestFiles",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ExecFiles",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ShareFiles",
- "version" : "4.300028"
+ "version" : "4.300034"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":MainModule",
- "version" : "4.300028"
+ "version" : "4.300034"
}
],
"zilla" : {
@@ -297,9 +301,15 @@
"config" : {
"is_trial" : "0"
},
- "version" : "4.300028"
+ "version" : "4.300034"
}
},
- "x_authority" : "cpan:DOY"
+ "x_authority" : "cpan:DOY",
+ "x_contributors" : [
+ "Dave Rolsky ",
+ "Florian Ragwitz ",
+ "Justin Hunter ",
+ "Tim Bunce "
+ ]
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Package-Stash-XS-0.26/META.yml new/Package-Stash-XS-0.28/META.yml
--- old/Package-Stash-XS-0.26/META.yml 2013-01-04 10:36:41.000000000 +0100
+++ new/Package-Stash-XS-0.28/META.yml 2013-07-16 18:17:11.000000000 +0200
@@ -1,7 +1,7 @@
---
abstract: 'faster and more correct implementation of the Package::Stash API'
author:
- - 'Jesse Luehrs <doy at tozt dot net>'
+ - 'Jesse Luehrs '
build_requires:
B: 0
File::Find: 0
@@ -16,7 +16,7 @@
configure_requires:
ExtUtils::MakeMaker: 6.30
dynamic_config: 0
-generated_by: 'Dist::Zilla version 4.300028, CPAN::Meta::Converter version 2.120921'
+generated_by: 'Dist::Zilla version 4.300034, CPAN::Meta::Converter version 2.120921'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -28,13 +28,13 @@
strict: 0
warnings: 0
resources:
- bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=Package-Stash-XS
+ bugtracker: https://github.com/doy/package-stash-xs/issues
homepage: http://metacpan.org/release/Package-Stash-XS
repository: git://github.com/doy/package-stash-xs.git
-version: 0.26
+version: 0.28
x_Dist_Zilla:
perl:
- version: 5.016002
+ version: 5.018000
plugins:
-
class: Dist::Zilla::Plugin::Prereqs
@@ -43,71 +43,71 @@
phase: test
type: requires
name: '@DOY/TestMoreDoneTesting'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::GatherDir
name: '@DOY/GatherDir'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::PruneCruft
name: '@DOY/PruneCruft'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::ManifestSkip
name: '@DOY/ManifestSkip'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::MetaYAML
name: '@DOY/MetaYAML'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::License
name: '@DOY/License'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::Readme
name: '@DOY/Readme'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::RunExtraTests
name: '@DOY/RunExtraTests'
- version: 0.007
+ version: 0.011
-
class: Dist::Zilla::Plugin::ExecDir
name: '@DOY/ExecDir'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::ShareDir
name: '@DOY/ShareDir'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::MakeMaker
name: '@DOY/MakeMaker'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::Manifest
name: '@DOY/Manifest'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::TestRelease
name: '@DOY/TestRelease'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::ConfirmRelease
name: '@DOY/ConfirmRelease'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::MetaConfig
name: '@DOY/MetaConfig'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::MetaJSON
name: '@DOY/MetaJSON'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::NextRelease
name: '@DOY/NextRelease'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::CheckChangesHasContent
name: '@DOY/CheckChangesHasContent'
@@ -115,7 +115,7 @@
-
class: Dist::Zilla::Plugin::PkgVersion
name: '@DOY/PkgVersion'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::Authority
name: '@DOY/Authority'
@@ -123,11 +123,11 @@
-
class: Dist::Zilla::Plugin::PodCoverageTests
name: '@DOY/PodCoverageTests'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::PodSyntaxTests
name: '@DOY/PodSyntaxTests'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::NoTabsTests
name: '@DOY/NoTabsTests'
@@ -139,7 +139,7 @@
-
class: Dist::Zilla::Plugin::Test::Compile
name: '@DOY/Test::Compile'
- version: 1.112820
+ version: 2.002
-
class: Dist::Zilla::Plugin::Metadata
name: '@DOY/Metadata'
@@ -147,23 +147,23 @@
-
class: Dist::Zilla::Plugin::MetaResources
name: '@DOY/MetaResources'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::Git::Check
name: '@DOY/Git::Check'
- version: 2.001
+ version: 2.013
-
class: Dist::Zilla::Plugin::Git::Commit
name: '@DOY/Git::Commit'
- version: 2.001
+ version: 2.013
-
class: Dist::Zilla::Plugin::Git::Tag
name: '@DOY/Git::Tag'
- version: 2.001
+ version: 2.013
-
class: Dist::Zilla::Plugin::Git::NextVersion
name: '@DOY/Git::NextVersion'
- version: 2.001
+ version: 2.013
-
class: Dist::Zilla::Plugin::PodWeaver
name: '@DOY/PodWeaver'
@@ -171,11 +171,11 @@
-
class: Dist::Zilla::Plugin::UploadToCPAN
name: '@DOY/UploadToCPAN'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::AutoPrereqs
name: AutoPrereqs
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::Prereqs
config:
@@ -183,38 +183,47 @@
phase: develop
type: requires
name: DevelopRequires
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::PruneFiles
name: PruneFiles
- version: 4.300028
+ version: 4.300034
+ -
+ class: Dist::Zilla::Plugin::ContributorsFromGit
+ name: ContributorsFromGit
+ version: 0.006
-
class: Dist::Zilla::Plugin::FinderCode
name: ':InstallModules'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::FinderCode
name: ':IncModules'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::FinderCode
name: ':TestFiles'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ExecFiles'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ShareFiles'
- version: 4.300028
+ version: 4.300034
-
class: Dist::Zilla::Plugin::FinderCode
name: ':MainModule'
- version: 4.300028
+ version: 4.300034
zilla:
class: Dist::Zilla::Dist::Builder
config:
is_trial: 0
- version: 4.300028
+ version: 4.300034
x_authority: cpan:DOY
+x_contributors:
+ - 'Dave Rolsky '
+ - 'Florian Ragwitz '
+ - 'Justin Hunter '
+ - 'Tim Bunce '
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Package-Stash-XS-0.26/Makefile.PL new/Package-Stash-XS-0.28/Makefile.PL
--- old/Package-Stash-XS-0.26/Makefile.PL 2013-01-04 10:36:41.000000000 +0100
+++ new/Package-Stash-XS-0.28/Makefile.PL 2013-07-16 18:17:11.000000000 +0200
@@ -10,19 +10,8 @@
my %WriteMakefileArgs = (
"ABSTRACT" => "faster and more correct implementation of the Package::Stash API",
- "AUTHOR" => "Jesse Luehrs <doy at tozt dot net>",
- "BUILD_REQUIRES" => {
- "B" => 0,
- "File::Find" => 0,
- "File::Temp" => 0,
- "Scalar::Util" => 0,
- "Symbol" => 0,
- "Test::Fatal" => 0,
- "Test::More" => "0.88",
- "Test::Requires" => 0,
- "base" => 0,
- "constant" => 0
- },
+ "AUTHOR" => "Jesse Luehrs ",
+ "BUILD_REQUIRES" => {},
"CONFIGURE_REQUIRES" => {
"ExtUtils::MakeMaker" => "6.30"
},
@@ -35,13 +24,38 @@
"strict" => 0,
"warnings" => 0
},
- "VERSION" => "0.26",
+ "TEST_REQUIRES" => {
+ "B" => 0,
+ "File::Find" => 0,
+ "File::Temp" => 0,
+ "Scalar::Util" => 0,
+ "Symbol" => 0,
+ "Test::Fatal" => 0,
+ "Test::More" => "0.88",
+ "Test::Requires" => 0,
+ "base" => 0,
+ "constant" => 0
+ },
+ "VERSION" => "0.28",
"test" => {
"TESTS" => "t/*.t"
}
);
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
+ my $tr = delete $WriteMakefileArgs{TEST_REQUIRES};
+ my $br = $WriteMakefileArgs{BUILD_REQUIRES};
+ for my $mod ( keys %$tr ) {
+ if ( exists $br->{$mod} ) {
+ $br->{$mod} = $tr->{$mod} if $tr->{$mod} > $br->{$mod};
+ }
+ else {
+ $br->{$mod} = $tr->{$mod};
+ }
+ }
+}
+
unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) {
my $br = delete $WriteMakefileArgs{BUILD_REQUIRES};
my $pp = $WriteMakefileArgs{PREREQ_PM};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Package-Stash-XS-0.26/README new/Package-Stash-XS-0.28/README
--- old/Package-Stash-XS-0.26/README 2013-01-04 10:36:41.000000000 +0100
+++ new/Package-Stash-XS-0.28/README 2013-07-16 18:17:11.000000000 +0200
@@ -1,7 +1,7 @@
This archive contains the distribution Package-Stash-XS,
-version 0.26:
+version 0.28:
faster and more correct implementation of the Package::Stash API
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Package-Stash-XS-0.26/XS.xs new/Package-Stash-XS-0.28/XS.xs
--- old/Package-Stash-XS-0.26/XS.xs 2013-01-04 10:36:41.000000000 +0100
+++ new/Package-Stash-XS-0.28/XS.xs 2013-07-16 18:17:11.000000000 +0200
@@ -372,25 +372,24 @@
}
}
-static void _expand_glob(SV *self, SV *varname)
+static void _expand_glob(SV *self, SV *varname, HE *entry, HV *namespace,
+ int lval)
{
- HV *namespace;
- HE *entry;
GV *glob;
- namespace = _get_namespace(self);
-
- if (entry = hv_fetch_ent(namespace, varname, 0, 0)) {
+ if (entry) {
glob = (GV*)HeVAL(entry);
if (isGV(glob)) {
- croak("_expand_glob called on stash slot with expanded glob");
+ croak("_expand_glob called on stash slot with expanded glob: %"SVf,
+ varname);
}
else {
SvREFCNT_inc(glob);
_real_gv_init(glob, namespace, varname);
- if (!hv_store_ent(namespace, varname, (SV*)glob, 0)) {
- croak("hv_store failed");
+ if (HeVAL(entry)) {
+ SvREFCNT_dec(HeVAL(entry));
}
+ HeVAL(entry) = (SV*)glob;
}
}
else {
@@ -420,27 +419,25 @@
}
}
-static void _add_symbol(SV *self, varspec_t variable, SV *initial)
+static void _add_symbol_entry(SV *self, varspec_t variable, SV *initial,
+ HE *entry, HV *namespace)
{
GV *glob;
- HV *namespace;
- HE *entry;
SV *val;
- /* GV_ADDMULTI rather than GV_ADD because otherwise you get 'used only
- * once' warnings in some situations... i can't reproduce this, but CMOP
- * triggers it */
- namespace = _get_namespace(self);
- entry = hv_fetch_ent(namespace, variable.name, 0, 0);
- if (entry) {
+ if (entry && isGV(HeVAL(entry))) {
glob = (GV*)HeVAL(entry);
}
- else {
+ else if (entry) {
glob = (GV*)newSV(0);
_real_gv_init(glob, namespace, variable.name);
- if (!hv_store_ent(namespace, variable.name, (SV*)glob, 0)) {
- croak("hv_store failed");
+ if (HeVAL(entry)) {
+ SvREFCNT_dec(HeVAL(entry));
}
+ HeVAL(entry) = (SV*)glob;
+ }
+ else {
+ croak("invalid entry passed to _add_symbol_entry");
}
if (!initial) {
@@ -476,6 +473,17 @@
}
}
+static void _add_symbol(SV *self, varspec_t variable, SV *initial)
+{
+ HV *namespace;
+ HE *entry;
+
+ namespace = _get_namespace(self);
+ entry = hv_fetch_ent(namespace, variable.name, 1, 0);
+
+ _add_symbol_entry(self, variable, initial, entry, namespace);
+}
+
static int _slot_exists(GV *glob, vartype_t type)
{
switch (type) {
@@ -507,16 +515,18 @@
GV *glob;
namespace = _get_namespace(self);
- entry = hv_fetch_ent(namespace, variable->name, vivify, 0);
+ entry = hv_fetch_ent(namespace, variable->name,
+ vivify && !hv_exists_ent(namespace, variable->name, 0),
+ 0);
if (!entry)
return NULL;
glob = (GV*)(HeVAL(entry));
if (!isGV(glob))
- _expand_glob(self, variable->name);
+ _expand_glob(self, variable->name, entry, namespace, vivify);
if (vivify && !_slot_exists(glob, variable->type)) {
- _add_symbol(self, *variable, NULL);
+ _add_symbol_entry(self, *variable, NULL, entry, namespace);
}
switch (variable->type) {
@@ -901,16 +911,18 @@
vartype_t vartype
PREINIT:
HV *namespace, *ret;
- SV *val;
- char *key;
- I32 len;
+ HE *entry;
PPCODE:
namespace = _get_namespace(self);
ret = newHV();
hv_iterinit(namespace);
- while ((val = hv_iternextsv(namespace, &key, &len))) {
- GV *gv = (GV*)val;
+ while ((entry = hv_iternext(namespace))) {
+ GV *gv = (GV*)hv_iterval(namespace, entry);
+ char *key;
+ I32 len;
+
+ key = hv_iterkey(entry, &len);
#if PERL_VERSION < 10
if ((vartype == VAR_SCALAR || vartype == VAR_NONE)
&& strnEQ(key, "::ISA::CACHE::", len)) {
@@ -920,33 +932,33 @@
if (!isGV(gv)) {
SV *keysv = newSVpvn(key, len);
- _expand_glob(self, keysv);
+ _expand_glob(self, keysv, entry, namespace, 0);
SvREFCNT_dec(keysv);
}
switch (vartype) {
case VAR_SCALAR:
- if (GvSVOK(val))
+ if (GvSVOK(gv))
hv_store(ret, key, len, newRV_inc(GvSV(gv)), 0);
break;
case VAR_ARRAY:
- if (GvAVOK(val))
+ if (GvAVOK(gv))
hv_store(ret, key, len, newRV_inc((SV*)GvAV(gv)), 0);
break;
case VAR_HASH:
- if (GvHVOK(val))
+ if (GvHVOK(gv))
hv_store(ret, key, len, newRV_inc((SV*)GvHV(gv)), 0);
break;
case VAR_CODE:
- if (GvCVOK(val))
+ if (GvCVOK(gv))
hv_store(ret, key, len, newRV_inc((SV*)GvCV(gv)), 0);
break;
case VAR_IO:
- if (GvIOOK(val))
+ if (GvIOOK(gv))
hv_store(ret, key, len, newRV_inc((SV*)GvIO(gv)), 0);
break;
case VAR_NONE:
- hv_store(ret, key, len, SvREFCNT_inc_simple_NN(val), 0);
+ hv_store(ret, key, len, SvREFCNT_inc_simple_NN((SV*)gv), 0);
break;
default:
croak("Unknown variable type in get_all_symbols");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Package-Stash-XS-0.26/dist.ini new/Package-Stash-XS-0.28/dist.ini
--- old/Package-Stash-XS-0.26/dist.ini 2013-01-04 10:36:41.000000000 +0100
+++ new/Package-Stash-XS-0.28/dist.ini 2013-07-16 18:17:11.000000000 +0200
@@ -1,14 +1,17 @@
name = Package-Stash-XS
-author = Jesse Luehrs <doy at tozt dot net>
+author = Jesse Luehrs
license = Perl_5
copyright_holder = Jesse Luehrs
[@DOY]
-:version = 0.05
+:version = 0.11
dist = Package-Stash-XS
repository = github
+bugtracker_web = https://github.com/doy/package-stash-xs/issues
+bugtracker_mailto =
[AutoPrereqs]
+skip = ^Variable::Magic$
[Prereqs / DevelopRequires]
Test::LeakTrace = 0
@@ -18,3 +21,5 @@
; dependencies and such
[PruneFiles]
filenames = Makefile.PL
+
+[ContributorsFromGit]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Package-Stash-XS-0.26/lib/Package/Stash/XS.pm new/Package-Stash-XS-0.28/lib/Package/Stash/XS.pm
--- old/Package-Stash-XS-0.26/lib/Package/Stash/XS.pm 2013-01-04 10:36:41.000000000 +0100
+++ new/Package-Stash-XS-0.28/lib/Package/Stash/XS.pm 2013-07-16 18:17:11.000000000 +0200
@@ -3,7 +3,7 @@
$Package::Stash::XS::AUTHORITY = 'cpan:DOY';
}
{
- $Package::Stash::XS::VERSION = '0.26';
+ $Package::Stash::XS::VERSION = '0.28';
}
use strict;
use warnings;
@@ -34,7 +34,7 @@
=head1 VERSION
-version 0.26
+version 0.28
=head1 SYNOPSIS
@@ -50,19 +50,12 @@
No known bugs (but see the BUGS section in LPackage::Stash).
-Please report any bugs through RT: email
-C<bug-package-stash-xs at rt.cpan.org>, or browse to
-Lhttp://rt.cpan.org/NoAuth/ReportBug.html?Queue=Package-Stash-XS.
+Please report any bugs to GitHub Issues at
+Lhttps://github.com/doy/package-stash-xs/issues.
=head1 SEE ALSO
-=over 4
-
-=item * LClass::MOP::Package
-
-This module is a factoring out of code that used to live here
-
-=back
+LPackage::Stash
=head1 SUPPORT
@@ -74,31 +67,24 @@
=over 4
-=item * AnnoCPAN: Annotated CPAN documentation
+=item * MetaCPAN
-Lhttp://annocpan.org/dist/Package-Stash-XS
+Lhttps://metacpan.org/release/Package-Stash-XS
-=item * CPAN Ratings
+=item * Github
-Lhttp://cpanratings.perl.org/d/Package-Stash-XS
+Lhttps://github.com/doy/package-stash-xs
=item * RT: CPAN's request tracker
Lhttp://rt.cpan.org/NoAuth/Bugs.html?Dist=Package-Stash-XS
-=item * Search CPAN
+=item * CPAN Ratings
-Lhttp://search.cpan.org/dist/Package-Stash-XS
+Lhttp://cpanratings.perl.org/d/Package-Stash-XS
=back
-=head1 AUTHOR
-
-Jesse Luehrs <doy at tozt dot net>
-
-Based on code from LClass::MOP::Package, by Stevan Little and the Moose
-Cabal.
-
=for Pod::Coverage add_symbol
get_all_symbols
get_or_add_symbol
@@ -113,7 +99,7 @@
=head1 AUTHOR
-Jesse Luehrs <doy at tozt dot net>
+Jesse Luehrs
=head1 COPYRIGHT AND LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Package-Stash-XS-0.26/t/00-compile.t new/Package-Stash-XS-0.28/t/00-compile.t
--- old/Package-Stash-XS-0.26/t/00-compile.t 2013-01-04 10:36:41.000000000 +0100
+++ new/Package-Stash-XS-0.28/t/00-compile.t 2013-07-16 18:17:11.000000000 +0200
@@ -70,4 +70,5 @@
script_compiles( $file, "$script script compiles" );
}
}
+
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Package-Stash-XS-0.26/t/magic.t new/Package-Stash-XS-0.28/t/magic.t
--- old/Package-Stash-XS-0.26/t/magic.t 2013-01-04 10:36:41.000000000 +0100
+++ new/Package-Stash-XS-0.28/t/magic.t 2013-07-16 18:17:11.000000000 +0200
@@ -29,4 +29,52 @@
is(eval q["@foo"], 'a-b-c');
}
+SKIP: {
+ skip "only need to test for magic in the xs version", 10
+ unless $Package::Stash::IMPLEMENTATION eq 'XS';
+ skip "magic stashes require perl 5.10+", 10
+ unless $] >= 5.010;
+ skip "magic stashes require Variable::Magic", 10
+ unless eval { require Variable::Magic; 1 };
+
+ my ($fetch, $store);
+ my $wiz = Variable::Magic::wizard(
+ fetch => sub { $fetch++ },
+ store => sub { $store++ },
+ );
+ Variable::Magic::cast(\%MagicStashTest::, $wiz);
+
+ my $stash = Package::Stash->new('MagicStashTest');
+
+ $fetch = 0;
+ $store = 0;
+ $stash->get_symbol('@foo');
+ is($fetch, 1, "get_symbol fetches (empty slot)");
+ is($store, 0, "get_symbol stores (empty slot)");
+
+ $fetch = 0;
+ $store = 0;
+ $stash->get_or_add_symbol('@bar');
+ is($fetch, 0, "get_or_add_symbol fetches (empty slot)");
+ is($store, 1, "get_or_add_symbol stores (empty slot)");
+
+ $fetch = 0;
+ $store = 0;
+ $stash->add_symbol('@baz', ['baz']);
+ is($fetch, 0, "add_symbol fetches");
+ is($store, 1, "add_symbol stores");
+
+ $fetch = 0;
+ $store = 0;
+ $stash->get_symbol('@baz');
+ is($fetch, 1, "get_symbol fetches (populated slot)");
+ is($store, 0, "get_symbol stores (populated slot)");
+
+ $fetch = 0;
+ $store = 0;
+ $stash->get_or_add_symbol('@baz');
+ is($fetch, 1, "get_or_add_symbol fetches (populated slot)");
+ is($store, 0, "get_or_add_symbol stores (populated slot)");
+}
+
done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Package-Stash-XS-0.26/t/warnings.t new/Package-Stash-XS-0.28/t/warnings.t
--- old/Package-Stash-XS-0.26/t/warnings.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Package-Stash-XS-0.28/t/warnings.t 2013-07-16 18:17:11.000000000 +0200
@@ -0,0 +1,22 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use lib 't/lib';
+use Test::More;
+
+use Package::Stash;
+
+my $warnings;
+BEGIN {
+ $warnings = '';
+ $SIG{__WARN__} = sub { $warnings .= $_[0] };
+}
+
+BEGIN {
+ my $stash = Package::Stash->new('Foo');
+ $stash->get_or_add_symbol('$bar');
+}
+
+is($warnings, '');
+
+done_testing;
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org