Hello community,

here is the log from the commit of package perl-Package-Stash for 
openSUSE:Factory checked in at 2013-10-06 14:55:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Package-Stash (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Package-Stash.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Package-Stash"

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Package-Stash/perl-Package-Stash.changes    
2013-07-29 17:50:17.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.perl-Package-Stash.new/perl-Package-Stash.changes   
    2013-10-06 14:55:23.000000000 +0200
@@ -1,0 +2,6 @@
+Fri Oct  4 09:13:52 UTC 2013 - [email protected]
+
+- updated to 0.36
+ - support building with PUREPERL_ONLY
+
+-------------------------------------------------------------------

Old:
----
  Package-Stash-0.35.tar.gz

New:
----
  Package-Stash-0.36.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Package-Stash.spec ++++++
--- /var/tmp/diff_new_pack.QJTilF/_old  2013-10-06 14:55:23.000000000 +0200
+++ /var/tmp/diff_new_pack.QJTilF/_new  2013-10-06 14:55:23.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Package-Stash
-Version:        0.35
+Version:        0.36
 Release:        0
 %define cpan_name Package-Stash
 Summary:        routines for manipulating stashes
@@ -36,11 +36,10 @@
 BuildRequires:  perl(Test::More) >= 0.88
 BuildRequires:  perl(Test::Requires)
 #BuildRequires: perl(Dist::Zilla::Plugin::MakeMaker::Awesome)
-#BuildRequires: perl(Dist::Zilla::Role::MetaProvider)
 #BuildRequires: perl(Moose)
 #BuildRequires: perl(Package::Stash)
-#BuildRequires: perl(Package::Stash::PP)
 #BuildRequires: perl(Test::LeakTrace)
+#BuildRequires: perl(Variable::Magic)
 Requires:       perl(Dist::CheckConflicts) >= 0.02
 Requires:       perl(Module::Implementation) >= 0.06
 Requires:       perl(Package::Stash::XS) >= 0.26

++++++ Package-Stash-0.35.tar.gz -> Package-Stash-0.36.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/Changes 
new/Package-Stash-0.36/Changes
--- old/Package-Stash-0.35/Changes      2013-07-10 05:28:41.000000000 +0200
+++ new/Package-Stash-0.36/Changes      2013-09-04 02:29:07.000000000 +0200
@@ -1,5 +1,8 @@
 Revision history for Package-Stash
 
+0.36  2013-09-03
+      - support building with PUREPERL_ONLY
+
 0.35  2013-07-09
       - remove old deprecated api
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/MANIFEST 
new/Package-Stash-0.36/MANIFEST
--- old/Package-Stash-0.35/MANIFEST     2013-07-10 05:28:41.000000000 +0200
+++ new/Package-Stash-0.36/MANIFEST     2013-09-04 02:29:07.000000000 +0200
@@ -7,7 +7,6 @@
 README
 bin/package-stash-conflicts
 dist.ini
-inc/DistMeta.pm
 inc/MMPackageStash.pm
 lib/Package/Stash.pm
 lib/Package/Stash/Conflicts.pm
@@ -38,6 +37,7 @@
 t/scalar-values.t
 t/stash-deletion.t
 t/synopsis.t
+t/warnings.t
 xt/author/leaks-debug.t
 xt/author/leaks.t
 xt/release/eol.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/META.json 
new/Package-Stash-0.36/META.json
--- old/Package-Stash-0.35/META.json    2013-07-10 05:28:41.000000000 +0200
+++ new/Package-Stash-0.36/META.json    2013-09-04 02:29:07.000000000 +0200
@@ -3,8 +3,8 @@
    "author" : [
       "Jesse Luehrs <[email protected]>"
    ],
-   "dynamic_config" : "1",
-   "generated_by" : "Dist::Zilla version 4.300034, CPAN::Meta::Converter 
version 2.120921",
+   "dynamic_config" : 1,
+   "generated_by" : "Dist::Zilla version 4.300035, CPAN::Meta::Converter 
version 2.132140",
    "license" : [
       "perl_5"
    ],
@@ -16,8 +16,11 @@
    "prereqs" : {
       "configure" : {
          "requires" : {
+            "Config" : "0",
             "Dist::CheckConflicts" : "0.02",
-            "ExtUtils::MakeMaker" : "6.30"
+            "ExtUtils::MakeMaker" : "6.30",
+            "File::Spec" : "0",
+            "Text::ParseWords" : "0"
          }
       },
       "develop" : {
@@ -53,10 +56,21 @@
             "Test::Fatal" : "0",
             "Test::More" : "0.88",
             "Test::Requires" : "0",
-            "base" : "0"
+            "base" : "0",
+            "lib" : "0"
          }
       }
    },
+   "provides" : {
+      "Package::Stash" : {
+         "file" : "lib/Package/Stash.pm",
+         "version" : "0.36"
+      },
+      "Package::Stash::PP" : {
+         "file" : "lib/Package/Stash/PP.pm",
+         "version" : "0.36"
+      }
+   },
    "release_status" : "stable",
    "resources" : {
       "bugtracker" : {
@@ -69,10 +83,10 @@
          "web" : "https://github.com/doy/package-stash";
       }
    },
-   "version" : "0.35",
+   "version" : "0.36",
    "x_Dist_Zilla" : {
       "perl" : {
-         "version" : "5.018000"
+         "version" : "5.018001"
       },
       "plugins" : [
          {
@@ -84,37 +98,37 @@
                }
             },
             "name" : "@DOY/TestMoreDoneTesting",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::GatherDir",
             "name" : "@DOY/GatherDir",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::PruneCruft",
             "name" : "@DOY/PruneCruft",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::ManifestSkip",
             "name" : "@DOY/ManifestSkip",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaYAML",
             "name" : "@DOY/MetaYAML",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::License",
             "name" : "@DOY/License",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::Readme",
             "name" : "@DOY/Readme",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::RunExtraTests",
@@ -124,12 +138,12 @@
          {
             "class" : "Dist::Zilla::Plugin::ExecDir",
             "name" : "@DOY/ExecDir",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::ShareDir",
             "name" : "@DOY/ShareDir",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "inc::MMPackageStash",
@@ -139,32 +153,32 @@
          {
             "class" : "Dist::Zilla::Plugin::Manifest",
             "name" : "@DOY/Manifest",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::TestRelease",
             "name" : "@DOY/TestRelease",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::ConfirmRelease",
             "name" : "@DOY/ConfirmRelease",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaConfig",
             "name" : "@DOY/MetaConfig",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaJSON",
             "name" : "@DOY/MetaJSON",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::NextRelease",
             "name" : "@DOY/NextRelease",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::CheckChangesHasContent",
@@ -174,7 +188,7 @@
          {
             "class" : "Dist::Zilla::Plugin::PkgVersion",
             "name" : "@DOY/PkgVersion",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::Authority",
@@ -184,12 +198,12 @@
          {
             "class" : "Dist::Zilla::Plugin::PodCoverageTests",
             "name" : "@DOY/PodCoverageTests",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::PodSyntaxTests",
             "name" : "@DOY/PodSyntaxTests",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::NoTabsTests",
@@ -214,7 +228,7 @@
          {
             "class" : "Dist::Zilla::Plugin::MetaResources",
             "name" : "@DOY/MetaResources",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Check",
@@ -237,6 +251,16 @@
             "version" : "2.013"
          },
          {
+            "class" : "Dist::Zilla::Plugin::ContributorsFromGit",
+            "name" : "@DOY/ContributorsFromGit",
+            "version" : "0.006"
+         },
+         {
+            "class" : "Dist::Zilla::Plugin::MetaProvides::Package",
+            "name" : "@DOY/MetaProvides::Package",
+            "version" : "1.14000002"
+         },
+         {
             "class" : "Dist::Zilla::Plugin::PodWeaver",
             "name" : "@DOY/PodWeaver",
             "version" : "3.101641"
@@ -244,17 +268,12 @@
          {
             "class" : "Dist::Zilla::Plugin::UploadToCPAN",
             "name" : "@DOY/UploadToCPAN",
-            "version" : "4.300034"
-         },
-         {
-            "class" : "inc::DistMeta",
-            "name" : "=inc::DistMeta",
-            "version" : null
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::AutoPrereqs",
             "name" : "AutoPrereqs",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::Prereqs",
@@ -265,7 +284,7 @@
                }
             },
             "name" : "RuntimeRecommends",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::Prereqs",
@@ -276,7 +295,7 @@
                }
             },
             "name" : "DevelopRequires",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::Conflicts",
@@ -284,39 +303,34 @@
             "version" : "0.10"
          },
          {
-            "class" : "Dist::Zilla::Plugin::ContributorsFromGit",
-            "name" : "ContributorsFromGit",
-            "version" : "0.006"
-         },
-         {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":InstallModules",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":IncModules",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":TestFiles",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ExecFiles",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ShareFiles",
-            "version" : "4.300034"
+            "version" : "4.300035"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":MainModule",
-            "version" : "4.300034"
+            "version" : "4.300035"
          }
       ],
       "zilla" : {
@@ -324,7 +338,7 @@
          "config" : {
             "is_trial" : "0"
          },
-         "version" : "4.300034"
+         "version" : "4.300035"
       }
    },
    "x_authority" : "cpan:DOY",
@@ -339,6 +353,7 @@
       "Christian Walde <[email protected]>",
       "Dave Rolsky <[email protected]>",
       "Justin Hunter <[email protected]>",
+      "Kent Fredric <[email protected]>",
       "Tim Bunce <[email protected]>"
    ]
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/META.yml 
new/Package-Stash-0.36/META.yml
--- old/Package-Stash-0.35/META.yml     2013-07-10 05:28:41.000000000 +0200
+++ new/Package-Stash-0.36/META.yml     2013-09-04 02:29:07.000000000 +0200
@@ -9,16 +9,27 @@
   Test::More: 0.88
   Test::Requires: 0
   base: 0
+  lib: 0
 configure_requires:
+  Config: 0
   Dist::CheckConflicts: 0.02
   ExtUtils::MakeMaker: 6.30
+  File::Spec: 0
+  Text::ParseWords: 0
 dynamic_config: 1
-generated_by: 'Dist::Zilla version 4.300034, CPAN::Meta::Converter version 
2.120921'
+generated_by: 'Dist::Zilla version 4.300035, CPAN::Meta::Converter version 
2.132140'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
   version: 1.4
 name: Package-Stash
+provides:
+  Package::Stash:
+    file: lib/Package/Stash.pm
+    version: 0.36
+  Package::Stash::PP:
+    file: lib/Package/Stash/PP.pm
+    version: 0.36
 recommends:
   Package::Stash::XS: 0.26
 requires:
@@ -37,10 +48,10 @@
   bugtracker: https://github.com/doy/package-stash/issues
   homepage: http://metacpan.org/release/Package-Stash
   repository: git://github.com/doy/package-stash.git
-version: 0.35
+version: 0.36
 x_Dist_Zilla:
   perl:
-    version: 5.018000
+    version: 5.018001
   plugins:
     -
       class: Dist::Zilla::Plugin::Prereqs
@@ -49,31 +60,31 @@
           phase: test
           type: requires
       name: '@DOY/TestMoreDoneTesting'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::GatherDir
       name: '@DOY/GatherDir'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::PruneCruft
       name: '@DOY/PruneCruft'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::ManifestSkip
       name: '@DOY/ManifestSkip'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::MetaYAML
       name: '@DOY/MetaYAML'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::License
       name: '@DOY/License'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::Readme
       name: '@DOY/Readme'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::RunExtraTests
       name: '@DOY/RunExtraTests'
@@ -81,11 +92,11 @@
     -
       class: Dist::Zilla::Plugin::ExecDir
       name: '@DOY/ExecDir'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::ShareDir
       name: '@DOY/ShareDir'
-      version: 4.300034
+      version: 4.300035
     -
       class: inc::MMPackageStash
       name: '@DOY/=inc::MMPackageStash'
@@ -93,27 +104,27 @@
     -
       class: Dist::Zilla::Plugin::Manifest
       name: '@DOY/Manifest'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::TestRelease
       name: '@DOY/TestRelease'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::ConfirmRelease
       name: '@DOY/ConfirmRelease'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::MetaConfig
       name: '@DOY/MetaConfig'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::MetaJSON
       name: '@DOY/MetaJSON'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::NextRelease
       name: '@DOY/NextRelease'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::CheckChangesHasContent
       name: '@DOY/CheckChangesHasContent'
@@ -121,7 +132,7 @@
     -
       class: Dist::Zilla::Plugin::PkgVersion
       name: '@DOY/PkgVersion'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::Authority
       name: '@DOY/Authority'
@@ -129,11 +140,11 @@
     -
       class: Dist::Zilla::Plugin::PodCoverageTests
       name: '@DOY/PodCoverageTests'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::PodSyntaxTests
       name: '@DOY/PodSyntaxTests'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::NoTabsTests
       name: '@DOY/NoTabsTests'
@@ -153,7 +164,7 @@
     -
       class: Dist::Zilla::Plugin::MetaResources
       name: '@DOY/MetaResources'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::Git::Check
       name: '@DOY/Git::Check'
@@ -171,21 +182,25 @@
       name: '@DOY/Git::NextVersion'
       version: 2.013
     -
+      class: Dist::Zilla::Plugin::ContributorsFromGit
+      name: '@DOY/ContributorsFromGit'
+      version: 0.006
+    -
+      class: Dist::Zilla::Plugin::MetaProvides::Package
+      name: '@DOY/MetaProvides::Package'
+      version: 1.14000002
+    -
       class: Dist::Zilla::Plugin::PodWeaver
       name: '@DOY/PodWeaver'
       version: 3.101641
     -
       class: Dist::Zilla::Plugin::UploadToCPAN
       name: '@DOY/UploadToCPAN'
-      version: 4.300034
-    -
-      class: inc::DistMeta
-      name: '=inc::DistMeta'
-      version: ~
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::AutoPrereqs
       name: AutoPrereqs
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::Prereqs
       config:
@@ -193,7 +208,7 @@
           phase: runtime
           type: recommends
       name: RuntimeRecommends
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::Prereqs
       config:
@@ -201,44 +216,40 @@
           phase: develop
           type: requires
       name: DevelopRequires
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::Conflicts
       name: Conflicts
       version: 0.10
     -
-      class: Dist::Zilla::Plugin::ContributorsFromGit
-      name: ContributorsFromGit
-      version: 0.006
-    -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':InstallModules'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':IncModules'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':TestFiles'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ExecFiles'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ShareFiles'
-      version: 4.300034
+      version: 4.300035
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':MainModule'
-      version: 4.300034
+      version: 4.300035
   zilla:
     class: Dist::Zilla::Dist::Builder
     config:
       is_trial: 0
-    version: 4.300034
+    version: 4.300035
 x_authority: cpan:DOY
 x_breaks:
   Class::MOP: 1.08
@@ -250,4 +261,5 @@
   - 'Christian Walde <[email protected]>'
   - 'Dave Rolsky <[email protected]>'
   - 'Justin Hunter <[email protected]>'
+  - 'Kent Fredric <[email protected]>'
   - 'Tim Bunce <[email protected]>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/Makefile.PL 
new/Package-Stash-0.36/Makefile.PL
--- old/Package-Stash-0.35/Makefile.PL  2013-07-10 05:28:41.000000000 +0200
+++ new/Package-Stash-0.36/Makefile.PL  2013-09-04 02:29:07.000000000 +0200
@@ -15,11 +15,15 @@
     'Test::Fatal' => '0',
     'Test::More' => '0.88',
     'Test::Requires' => '0',
-    'base' => '0'
+    'base' => '0',
+    'lib' => '0'
   },
   'CONFIGURE_REQUIRES' => {
+    'Config' => '0',
     'Dist::CheckConflicts' => '0.02',
-    'ExtUtils::MakeMaker' => '6.30'
+    'ExtUtils::MakeMaker' => '6.30',
+    'File::Spec' => '0',
+    'Text::ParseWords' => '0'
   },
   'DISTNAME' => 'Package-Stash',
   'EXE_FILES' => [
@@ -39,7 +43,7 @@
     'strict' => '0',
     'warnings' => '0'
   },
-  'VERSION' => '0.35',
+  'VERSION' => '0.36',
   'test' => {
     'TESTS' => 't/*.t t/impl-selection/*.t'
   }
@@ -63,12 +67,13 @@
   unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
 
 $WriteMakefileArgs{PREREQ_PM}{'Package::Stash::XS'} = 0.26
-  if can_cc();
+    if !parse_args()->{PUREPERL_ONLY} && can_cc();
 
 WriteMakefile(%WriteMakefileArgs);
 
 use Config ();
 use File::Spec ();
+use Text::ParseWords ();
 
 # check if we can run some command
 sub can_run {
@@ -98,6 +103,18 @@
         return;
 }
 
+# XXX this is gross, but apparently it's the least gross option?
+sub parse_args {
+    my $tmp = {};
+    # copied from EUMM
+    ExtUtils::MakeMaker::parse_args(
+        $tmp,
+        Text::ParseWords::shellwords($ENV{PERL_MM_OPT} || ''),
+        @ARGV,
+    );
+    return $tmp->{ARGS} || {};
+}
+
 sub check_conflicts {
     if ( eval { require 'lib/Package/Stash/Conflicts.pm'; 1; } ) {
         if ( eval { Package::Stash::Conflicts->check_conflicts; 1 } ) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/README 
new/Package-Stash-0.36/README
--- old/Package-Stash-0.35/README       2013-07-10 05:28:41.000000000 +0200
+++ new/Package-Stash-0.36/README       2013-09-04 02:29:07.000000000 +0200
@@ -1,7 +1,7 @@
 
 
 This archive contains the distribution Package-Stash,
-version 0.35:
+version 0.36:
 
   routines for manipulating stashes
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/bin/package-stash-conflicts 
new/Package-Stash-0.36/bin/package-stash-conflicts
--- old/Package-Stash-0.35/bin/package-stash-conflicts  2013-07-10 
05:28:41.000000000 +0200
+++ new/Package-Stash-0.36/bin/package-stash-conflicts  2013-09-04 
02:29:07.000000000 +0200
@@ -29,7 +29,7 @@
 
 =head1 VERSION
 
-version 0.35
+version 0.36
 
 =head1 AUTHOR
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/dist.ini 
new/Package-Stash-0.36/dist.ini
--- old/Package-Stash-0.35/dist.ini     2013-07-10 05:28:41.000000000 +0200
+++ new/Package-Stash-0.36/dist.ini     2013-09-04 02:29:07.000000000 +0200
@@ -4,18 +4,15 @@
 copyright_holder = Jesse Luehrs
 
 [@DOY]
-:version = 0.11
+:version = 0.14
 dist = Package-Stash
 repository = github
-bugtracker_web = https://github.com/doy/package-stash/issues
-bugtracker_mailto =
 awesome = =inc::MMPackageStash
-CompileTests_skip = [Cc]onflicts$
-
-[=inc::DistMeta]
 dynamic_config = 1
+CompileTests_skip = [Cc]onflicts$
 
 [AutoPrereqs]
+skip = Variable::Magic
 
 [Prereqs / RuntimeRecommends]
 Package::Stash::XS = 0.26
@@ -29,5 +26,3 @@
 MooseX::Role::WithOverloading = 0.08
 namespace::clean              = 0.18
 MooseX::Method::Signatures    = 0.36
-
-[ContributorsFromGit]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/inc/DistMeta.pm 
new/Package-Stash-0.36/inc/DistMeta.pm
--- old/Package-Stash-0.35/inc/DistMeta.pm      2013-07-10 05:28:41.000000000 
+0200
+++ new/Package-Stash-0.36/inc/DistMeta.pm      1970-01-01 01:00:00.000000000 
+0100
@@ -1,31 +0,0 @@
-package inc::DistMeta;
-use Moose;
-
-has metadata => (
-    is       => 'ro',
-    isa      => 'HashRef',
-    required => 1,
-);
-
-with 'Dist::Zilla::Role::MetaProvider';
-
-around BUILDARGS => sub {
-    my $orig = shift;
-    my $self = shift;
-
-    my $params = $self->$orig(@_);
-
-    my $zilla       = delete $params->{zilla};
-    my $plugin_name = delete $params->{plugin_name};
-
-    return {
-        zilla       => $zilla,
-        plugin_name => $plugin_name,
-        metadata    => $params,
-    };
-};
-
-__PACKAGE__->meta->make_immutable;
-no Moose;
-
-1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/inc/MMPackageStash.pm 
new/Package-Stash-0.36/inc/MMPackageStash.pm
--- old/Package-Stash-0.35/inc/MMPackageStash.pm        2013-07-10 
05:28:41.000000000 +0200
+++ new/Package-Stash-0.36/inc/MMPackageStash.pm        2013-09-04 
02:29:07.000000000 +0200
@@ -8,10 +8,13 @@
     my $orig = shift;
     my $self = shift;
 
-    # copied from M::I
-    my $can_cc = <<'CAN_CC';
+    my $xs_version = $self->zilla->prereqs->requirements_for('runtime', 
'recommends')->as_string_hash->{'Package::Stash::XS'};
+
+    # can_run and can_cc copied from M::I
+    my $helpers = <<'HELPERS';
 use Config ();
 use File::Spec ();
+use Text::ParseWords ();
 
 # check if we can run some command
 sub can_run {
@@ -40,15 +43,40 @@
 
         return;
 }
-CAN_CC
 
-    my $template = $self->$orig(@_);
+# XXX this is gross, but apparently it's the least gross option?
+sub parse_args {
+    my $tmp = {};
+    # copied from EUMM
+    ExtUtils::MakeMaker::parse_args(
+        $tmp,
+        Text::ParseWords::shellwords($ENV{PERL_MM_OPT} || ''),
+        @ARGV,
+    );
+    return $tmp->{ARGS} || {};
+}
+HELPERS
 
-    my $xs_version = $self->zilla->prereqs->requirements_for('runtime', 
'recommends')->as_string_hash->{'Package::Stash::XS'};
+    my $fixup_prereqs = <<PREREQS;
+\$WriteMakefileArgs{PREREQ_PM}{'Package::Stash::XS'} = $xs_version
+    if !parse_args()->{PUREPERL_ONLY} && can_cc();
+PREREQS
 
-    $template =~ 
s/(WriteMakefile\()/\$WriteMakefileArgs{PREREQ_PM}{'Package::Stash::XS'} = 
$xs_version\n  if can_cc();\n\n$1/;
+    my $template = $self->$orig(@_);
+    $template =~ s/(WriteMakefile\()/$fixup_prereqs\n$1/;
+    $template .= $helpers;
+
+    return $template;
+};
 
-    return $template . $can_cc;
+after register_prereqs => sub {
+    my $self = shift;
+    $self->zilla->register_prereqs(
+        { phase => 'configure' },
+        'Config'           => 0,
+        'File::Spec'       => 0,
+        'Text::ParseWords' => 0,
+    );
 };
 
 __PACKAGE__->meta->make_immutable;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/lib/Package/Stash/Conflicts.pm 
new/Package-Stash-0.36/lib/Package/Stash/Conflicts.pm
--- old/Package-Stash-0.35/lib/Package/Stash/Conflicts.pm       2013-07-10 
05:28:41.000000000 +0200
+++ new/Package-Stash-0.36/lib/Package/Stash/Conflicts.pm       2013-09-04 
02:29:07.000000000 +0200
@@ -29,7 +29,7 @@
 
 =head1 VERSION
 
-version 0.35
+version 0.36
 
 =head1 AUTHOR
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/lib/Package/Stash/PP.pm 
new/Package-Stash-0.36/lib/Package/Stash/PP.pm
--- old/Package-Stash-0.35/lib/Package/Stash/PP.pm      2013-07-10 
05:28:41.000000000 +0200
+++ new/Package-Stash-0.36/lib/Package/Stash/PP.pm      2013-09-04 
02:29:07.000000000 +0200
@@ -3,7 +3,7 @@
   $Package::Stash::PP::AUTHORITY = 'cpan:DOY';
 }
 {
-  $Package::Stash::PP::VERSION = '0.35';
+  $Package::Stash::PP::VERSION = '0.36';
 }
 use strict;
 use warnings;
@@ -87,10 +87,6 @@
     }
 }
 
-sub _is_anon {
-    return !defined $_[0]->{package};
-}
-
 {
     my %SIGIL_MAP = (
         '$' => 'SCALAR',
@@ -101,7 +97,7 @@
     );
 
     sub _deconstruct_variable_name {
-        my ($self, $variable) = @_;
+        my ($variable) = @_;
 
         my @ret;
         if (ref($variable) eq 'HASH') {
@@ -132,7 +128,6 @@
 }
 
 sub _valid_for_type {
-    my $self = shift;
     my ($value, $type) = @_;
     if ($type eq 'HASH' || $type eq 'ARRAY'
      || $type eq 'IO'   || $type eq 'CODE') {
@@ -147,10 +142,10 @@
 sub add_symbol {
     my ($self, $variable, $initial_value, %opts) = @_;
 
-    my ($name, $sigil, $type) = $self->_deconstruct_variable_name($variable);
+    my ($name, $sigil, $type) = _deconstruct_variable_name($variable);
 
     if (@_ > 2) {
-        $self->_valid_for_type($initial_value, $type)
+        _valid_for_type($initial_value, $type)
             || confess "$initial_value is not of type $type";
 
         # cheap fail-fast check for PERLDBf_SUBLINE and '&'
@@ -181,7 +176,7 @@
                 *{ $self->name . '::' . $name };
             }
             else {
-                my $undef = $self->_undef_ref_for_type($type);
+                my $undef = _undef_ref_for_type($type);
                 *{ $self->name . '::' . $name } = $undef;
             }
         }
@@ -205,13 +200,12 @@
         }
         else {
             return if BROKEN_ISA_ASSIGNMENT && $name eq 'ISA';
-            *{ $namespace->{$name} } = $self->_undef_ref_for_type($type);
+            *{ $namespace->{$name} } = _undef_ref_for_type($type);
         }
     }
 }
 
 sub _undef_ref_for_type {
-    my $self = shift;
     my ($type) = @_;
 
     if ($type eq 'ARRAY') {
@@ -242,7 +236,7 @@
 sub has_symbol {
     my ($self, $variable) = @_;
 
-    my ($name, $sigil, $type) = $self->_deconstruct_variable_name($variable);
+    my ($name, $sigil, $type) = _deconstruct_variable_name($variable);
 
     my $namespace = $self->namespace;
 
@@ -275,7 +269,7 @@
 sub get_symbol {
     my ($self, $variable, %opts) = @_;
 
-    my ($name, $sigil, $type) = $self->_deconstruct_variable_name($variable);
+    my ($name, $sigil, $type) = _deconstruct_variable_name($variable);
 
     my $namespace = $self->namespace;
 
@@ -295,7 +289,7 @@
     }
     else {
         if ($type eq 'CODE') {
-            if (BROKEN_GLOB_ASSIGNMENT || !$self->_is_anon) {
+            if (BROKEN_GLOB_ASSIGNMENT || defined($self->{package})) {
                 no strict 'refs';
                 return \&{ $self->name . '::' . $name };
             }
@@ -329,7 +323,7 @@
 sub remove_symbol {
     my ($self, $variable) = @_;
 
-    my ($name, $sigil, $type) = $self->_deconstruct_variable_name($variable);
+    my ($name, $sigil, $type) = _deconstruct_variable_name($variable);
 
     # FIXME:
     # no doubt this is grossly inefficient and
@@ -429,7 +423,7 @@
 
 =head1 VERSION
 
-version 0.35
+version 0.36
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/lib/Package/Stash.pm 
new/Package-Stash-0.36/lib/Package/Stash.pm
--- old/Package-Stash-0.35/lib/Package/Stash.pm 2013-07-10 05:28:41.000000000 
+0200
+++ new/Package-Stash-0.36/lib/Package/Stash.pm 2013-09-04 02:29:07.000000000 
+0200
@@ -3,7 +3,7 @@
   $Package::Stash::AUTHORITY = 'cpan:DOY';
 }
 {
-  $Package::Stash::VERSION = '0.35';
+  $Package::Stash::VERSION = '0.36';
 }
 use strict;
 use warnings;
@@ -19,17 +19,22 @@
       if ( $IMPLEMENTATION and not $ENV{PACKAGE_STASH_IMPLEMENTATION} );
 
     Module::Implementation::build_loader_sub(
-        implementations => [ 'XS', 'PP' ]
+        implementations => [ 'XS', 'PP' ],
+        symbols         => [qw(
+            new
+            name
+            namespace
+            add_symbol
+            remove_glob
+            has_symbol
+            get_symbol
+            get_or_add_symbol
+            remove_symbol
+            list_all_symbols
+            get_all_symbols
+        )],
     )->();
     $IMPLEMENTATION = Module::Implementation::implementation_for(__PACKAGE__);
-
-    my $impl = "Package::Stash::$IMPLEMENTATION";
-    my $from = $impl->new($impl);
-    my $to = $impl->new(__PACKAGE__);
-    my $methods = $from->get_all_symbols('CODE');
-    for my $meth (keys %$methods) {
-        $to->add_symbol("&$meth" => $methods->{$meth});
-    }
 }
 
 
@@ -45,7 +50,7 @@
 
 =head1 VERSION
 
-version 0.35
+version 0.36
 
 =head1 SYNOPSIS
 
@@ -155,6 +160,55 @@
 the package as values, otherwise, it will contain the typeglobs corresponding
 to the variable names (basically, a clone of the stash).
 
+=head1 WORKING WITH VARIABLES
+
+It is important to note, that when working with scalar variables, the default
+behavior is to B<copy> values.
+
+  my $stash = Package::Stash->new('Some::Namespace');
+  my $variable = 1;
+  # $Some::Namespace::name is a copy of $variable
+  $stash->add_symbol('$name', $variable);
+  $variable++
+  # $Some::Namespace::name == 1 , $variable == 2
+
+This will likely confuse people who expect it to work the same as typeglob
+assignment, which simply creates new references to existing variables.
+
+  my $variable = 1;
+  {
+      no strict 'refs';
+      # assign $Package::Stash::name = $variable
+      *{'Package::Stash::name'} = \$variable;
+  }
+  $variable++ # affects both names
+
+If this behaviour is desired when working with Package::Stash, simply pass
+Package::Stash a scalar ref:
+
+  my $stash = Package::Stash->new('Some::Namespace');
+  my $variable = 1;
+  # $Some::Namespace::name is now $variable
+  $stash->add_symbol('$name', \$variable);
+  $variable++
+  # $Some::Namespace::name == 2 , $variable == 2
+
+This will be what you want as well if you're ever working with L<Readonly>
+variables:
+
+  use Readonly;
+  Readonly my $value, 'hello';
+
+  $stash->add_symbol('$name', \$value); # reference
+  print $Some::Namespace::name; # hello
+  # Tries to modify the read-only 'hello' and dies.
+  $Some::Namespace::name .= " world";
+
+  $stash->add_symbol('$name', $value); # copy
+  print $Some::Namespace::name; # hello
+  # No problem, modifying a copy, not the original
+  $Some::Namespace::name .= " world";
+
 =head1 BUGS / CAVEATS
 
 =over 4
@@ -194,27 +248,25 @@
 
 =over 4
 
-=item * AnnoCPAN: Annotated CPAN documentation
+=item * MetaCPAN
 
-L<http://annocpan.org/dist/Package-Stash>
+L<https://metacpan.org/release/Package-Stash>
 
-=item * CPAN Ratings
+=item * Github
 
-L<http://cpanratings.perl.org/d/Package-Stash>
+L<https://github.com/doy/package-stash>
 
 =item * RT: CPAN's request tracker
 
 L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Package-Stash>
 
-=item * Search CPAN
+=item * CPAN Ratings
 
-L<http://search.cpan.org/dist/Package-Stash>
+L<http://cpanratings.perl.org/d/Package-Stash>
 
 =back
 
-=head1 AUTHOR
-
-Jesse Luehrs <doy at tozt dot net>
+=head1 HISTORY
 
 Based on code from L<Class::MOP::Package>, by Stevan Little and the Moose
 Cabal.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/t/lib/Package/Stash.pm 
new/Package-Stash-0.36/t/lib/Package/Stash.pm
--- old/Package-Stash-0.35/t/lib/Package/Stash.pm       2013-07-10 
05:28:41.000000000 +0200
+++ new/Package-Stash-0.36/t/lib/Package/Stash.pm       2013-09-04 
02:29:07.000000000 +0200
@@ -1,19 +1,3 @@
-package # hide from PAUSE
-    Package::Stash;
-use strict;
-use warnings;
-
-use Package::Stash::PP;
-
-our $IMPLEMENTATION = 'PP';
-
-BEGIN {
-    my $ps = Package::Stash::PP->new(__PACKAGE__);
-    my $ps_pp = Package::Stash::PP->new('Package::Stash::PP');
-    for my $method ($ps_pp->list_all_symbols('CODE')) {
-        my $sym = '&' . $method;
-        $ps->add_symbol($sym => $ps_pp->get_symbol($sym));
-    }
-}
-
+$Package::Stash::IMPLEMENTATION = 'PP';
+do 'lib/Package/Stash.pm';
 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Package-Stash-0.35/t/magic.t 
new/Package-Stash-0.36/t/magic.t
--- old/Package-Stash-0.35/t/magic.t    2013-07-10 05:28:41.000000000 +0200
+++ new/Package-Stash-0.36/t/magic.t    2013-09-04 02:29:07.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-0.35/t/warnings.t 
new/Package-Stash-0.36/t/warnings.t
--- old/Package-Stash-0.35/t/warnings.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Package-Stash-0.36/t/warnings.t 2013-09-04 02:29:07.000000000 +0200
@@ -0,0 +1,21 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to