Hello community,
here is the log from the commit of package perl-namespace-clean for
openSUSE:Factory checked in at 2015-10-19 22:49:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-namespace-clean (Old)
and /work/SRC/openSUSE:Factory/.perl-namespace-clean.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-namespace-clean"
Changes:
--------
---
/work/SRC/openSUSE:Factory/perl-namespace-clean/perl-namespace-clean.changes
2014-03-18 13:58:46.000000000 +0100
+++
/work/SRC/openSUSE:Factory/.perl-namespace-clean.new/perl-namespace-clean.changes
2015-10-19 22:49:49.000000000 +0200
@@ -1,0 +2,6 @@
+Sat Oct 10 09:37:59 UTC 2015 - [email protected]
+
+- updated to 0.26
+ see /usr/share/doc/packages/perl-namespace-clean/Changes
+
+-------------------------------------------------------------------
Old:
----
namespace-clean-0.25.tar.gz
New:
----
cpanspec.yml
namespace-clean-0.26.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-namespace-clean.spec ++++++
--- /var/tmp/diff_new_pack.rOB5T8/_old 2015-10-19 22:49:50.000000000 +0200
+++ /var/tmp/diff_new_pack.rOB5T8/_new 2015-10-19 22:49:50.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-namespace-clean
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,15 @@
Name: perl-namespace-clean
-Version: 0.25
+Version: 0.26
Release: 0
%define cpan_name namespace-clean
Summary: Keep imports and functions out of your namespace
License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/namespace-clean/
-Source:
http://www.cpan.org/authors/id/R/RI/RIBASUSHI/%{cpan_name}-%{version}.tar.gz
+Source0:
http://www.cpan.org/authors/id/R/RI/RIBASUSHI/%{cpan_name}-%{version}.tar.gz
+Source1: cpanspec.yml
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
@@ -42,15 +43,6 @@
%prep
%setup -q -n %{cpan_name}-%{version}
-# MANUAL BEGIN
-%if 0%{?suse_version} <= 1110
-for i in `find t -type f` ; do
- sed -i -e "s@^\s*use\s\s*Test::More@use lib '%{perl_vendorlib}';\nuse
Test::More@" $i
-done
-# fail due to missing Sub/Name.pm
-rm -f t/07-debugger.t
-rm -f t/10-pure-perl.t
-%endif
%build
%{__perl} Makefile.PL INSTALLDIRS=vendor
++++++ cpanspec.yml ++++++
---
#description_paragraphs: 3
#no_testing: broken upstream
#sources:
# - source1
# - source2
#patches:
# foo.patch: -p1
# bar.patch:
#preamble: |-
# BuildRequires: gcc-c++
#post_prep: |-
# hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'`
# sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL
#post_install: |-
# sed on %{name}.files
#license: SUSE-NonFree
#skip_noarch: 1
#custom_build: |-
#./Build build flags=%{?_smp_mflags} --myflag
#custom_test: |-
#startserver && make test
#ignore_requires: Bizarre::Module
++++++ namespace-clean-0.25.tar.gz -> namespace-clean-0.26.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/namespace-clean-0.25/Changes
new/namespace-clean-0.26/Changes
--- old/namespace-clean-0.25/Changes 2014-03-05 12:24:28.000000000 +0100
+++ new/namespace-clean-0.26/Changes 2015-10-07 19:43:07.000000000 +0200
@@ -1,32 +1,47 @@
- [0.25]
+0.26 2015-10-07 17:43 (UTC)
+ - Exclusively use Package::Stash::PP on perls < 5.8.7 until a fixed
+ Package::Stash::XS ships - breakage keeps getting reintroduced
+ ( RT#107343, RT#74151 )
+ - Explicitly document the late runtime binding of `sort SUBNAME ...`
+ ( RT#101247 )
+ - No longer rely on Sub::Identify - either use Sub::Util or B
+ ( should solve RT#96945 )
+
+
+0.25 2014-03-05 11:27 (UTC)
- Fix incorrect ExtUtils::CBuilder detection routine leading to
Makefile.PL crashes when EU::CB is not available
- [0.24]
+
+0.24 2012-12-04 22:59 (UTC)
- Properly skip debugger test when optional deps not available
- Make sure pure-perl tests pass correctly on space-containing
paths (RT#77528)
- Remove all the pure-perl fallback code and depend on PP-capable
B::H::EOS 0.12
- [0.23]
+
+0.23 2012-03-11 15:06 (UTC)
- Rely on B::Hooks::EndOfScope version 0.10 to fix issues with
new Module::Runtime versions (>= 0.012) on perl 5.10 due
to incorrect hook firing due to %^H localisation.
- Fix failures on 5.13.6 due to incorrect version number threshold
(RT#74683)
- [0.22] (official fix of all the %^H ickyness)
+
+0.22 (official fix of all the %^H ickyness) 2011-12-26 13:04 (UTC)
- Simplify the >= 5.10 PP variant even more - move the hook from
DESTROY into DELETE
- Force explicit callback invocation order on 5.8 PP
- [0.21_02]
+
+0.21_02 2011-12-22 11:33 (UTC)
- Replace the %^H tie approach with fieldhashes, fixes all known
corner cases and caveats on supported perls >= 5.8.1 (FC)
- Compile away the debugger fixup on perls >= 5.15.5 (FC)
- [0.21_01]
+
+0.21_01 2011-12-21 11:39 (UTC)
- More robust handling of the tied %^H in pure perl mode (RT#73402)
- Limit the debugger workarounds to perls between 5.8.8 and 5.14,
extend debugger support to all perl versions (FC) (RT#69862)
@@ -34,12 +49,14 @@
workaround libraries on perls between 5.8.8 and 5.14 (RT#72368)
- Add back dropped NAME section (RT#70259)
- [0.21]
+
+0.21 2011-08-03 21:51 (UTC)
- When using the tie() fallback ensure we do not obliterate a
foreign tie()
- Better document how to disable the tie() fallback
- [0.20_01] (the "mst made me do it" release)
+
+0.20_01 (the "mst made me do it" release) 2011-07-31 09:26 (UTC)
- Only invoke the deleted sub stashing if we run udner a debugger
(avoid runtime penalty of Sub::Name/Sub::Identify)
- Spellfixes (RT#54388)
@@ -47,81 +64,100 @@
tie() of %^H. While it can not 100% replace B::H::EOS, it does
everything n::c needs
- [0.20]
+
+0.20 2011-01-06 18:07 (UTC)
- Bump Package::Stash dependency to 0.22 to pull in a bugfix in
Package::Stash::XS 0.19.
- [0.19]
+
+0.19 2011-01-03 16:36 (UTC)
- Port to the new Package::Stash 0.18 API and depend on it.
- Don't rely on package::stash's remove_package_symbol implementation
(doy).
- [0.18]
+
+0.18 2010-06-13 17:12 (UTC)
- Make sure we continue working on future Package::Stash
versions (doy).
- [0.17]
+
+0.17 2010-06-05 23:16 (UTC)
- Make sure the debugger author test is skipped for
non-authors before the debugger is even loaded.
- [0.16]
+
+0.16 2010-06-05 20:53 (UTC)
- Release all changes of 0.15 as part of a stable release.
- Convert from Module::Install to Dist::Zilla.
- [0.15] TRIAL release
+
+0.15 TRIAL release 2010-05-14 17:30 (UTC)
- Use Package::Stash for the stash manipulation bits (doy).
- [0.14] Thu Mar 18 11:15:38 CET 2010
+
+0.14 2010-03-18 11:15:38 (CET)
- Disable auto_install.
- Turn the error prone debugger test into an author test.
- [0.13] Sun Jan 17 02:40:48 CET 2010
+
+0.13 2010-01-17 02:40:48 (CET)
- Skip failing debugger tests on 5.8.8 and older.
- [0.12] Thu Jan 14 03:22:03 CET 2010
+
+0.12 2010-01-14 03:22:03 (CET)
- Stop relying on stash entries always being upgraded into real GVs
(Zefram).
- Work around $DB::sub (Yuval Kogman).
- Fix restoring of non-code symbols when cleaning (Ben Morrows).
- [0.11] Tue Mar 3 17:34:49 CET 2009
+
+0.11 2009-03-03 17:34:49 (CET)
- Added -cleanee option to specify the package to clean (Closes
RT#41850).
- Added n:c->clean_subroutines($cleanee, @subs).
- [0.10] Fri Feb 20 14:31:36 CET 2009
+
+0.10 2009-02-20 14:31:36 (CET)
- Depend on B::Hooks::EndOfScope 0.07 to avoid segfaults and lost error
messages when something goes wrong.
- [0.09] Wed Oct 22 17:48:49 CEST 2008
+
+0.09 2008-10-22 17:48:49 (CEST)
- Use B::Hooks::EndOfScope instead of %^H + Scope::Guard.
- [0.08] Sun Mar 9 22:01:01 CET 2008
+
+0.08 2008-03-09 22:01:01 (CET)
- Added explicit cleanup behaviour
- [0.07] Sun Mar 9 20:13:33 CET 2008
+
+0.07 2008-03-09 20:13:33 (CET)
- Switched from Filter::EOF to a much saner implementation via
%^H and Scope::Guard. (mst & autobox)++ for this.
- [0.06] Wed Feb 20 15:09:00 CET 2008
+
+0.06 2008-02-20 15:09:00 (CET)
- Fixed 'uninitialized value in ref-to-glob cast' error
if unimport was used before.
- [0.05] Sun Aug 12 18:24:49 CEST 2007
+
+0.05 2007-08-12 18:24:49 (CEST)
- Minor POD improvements
- -except now accepts a single value too
- [0.04] Sat Mar 17 16:22:10 CET 2007
+
+0.04 2007-03-17 16:22:10 (CET)
- Added -except flag
- Non-CODE type slots will not be removed
- [0.03] Sat Feb 24 22:34:55 CET 2007
+
+0.03 2007-02-24 22:34:55 (CET)
- Minor comment and POD cleanups
- Tried to clarify how the module works
- [0.02] Tue Feb 20 00:38:24 CET 2007
+
+0.02 2007-02-19 00:38:24 (CET)
- Added unimport behaviour
- [0.01] Sun Feb 18 17:33:18 CET 2007
- - Initial Version
+0.01 2007-02-18 17:33:18 (CET)
+ - Initial Version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/namespace-clean-0.25/MANIFEST
new/namespace-clean-0.26/MANIFEST
--- old/namespace-clean-0.25/MANIFEST 2014-03-05 12:25:05.000000000 +0100
+++ new/namespace-clean-0.26/MANIFEST 2015-10-07 19:43:37.000000000 +0200
@@ -1,5 +1,6 @@
Changes
lib/namespace/clean.pm
+lib/namespace/clean/_Util.pm
Makefile.PL
MANIFEST This list of files
t/00-basic.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/namespace-clean-0.25/META.json
new/namespace-clean-0.26/META.json
--- old/namespace-clean-0.25/META.json 2014-03-05 12:25:05.000000000 +0100
+++ new/namespace-clean-0.26/META.json 2015-10-07 19:43:37.000000000 +0200
@@ -1,10 +1,14 @@
{
"abstract" : "Keep imports and functions out of your namespace",
"author" : [
- "Robert 'phaylon' Sedlacek <[email protected]>, Florian Ragwitz
<[email protected]>, Jesse Luehrs <[email protected]>"
+ "Robert 'phaylon' Sedlacek <[email protected]>",
+ "Florian Ragwitz <[email protected]>",
+ "Jesse Luehrs <[email protected]>",
+ "Peter Rabbitson <[email protected]>",
+ "Father Chrysostomos <[email protected]>"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.84, CPAN::Meta::Converter
version 2.132830",
+ "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter
version 2.150005",
"license" : [
"perl_5"
],
@@ -12,7 +16,7 @@
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
"version" : "2"
},
- "name" : "namespace-clean",
+ "name" : "namespace::clean",
"no_index" : {
"directory" : [
"t",
@@ -20,32 +24,40 @@
]
},
"prereqs" : {
- "build" : {
- "requires" : {
- "Test::More" : "0.88"
- }
- },
+ "build" : {},
"configure" : {
"requires" : {
- "ExtUtils::CBuilder" : "0.27"
+ "ExtUtils::CBuilder" : "0.27",
+ "ExtUtils::MakeMaker" : "0"
}
},
"runtime" : {
"requires" : {
"B::Hooks::EndOfScope" : "0.12",
- "Package::Stash" : "0.23"
+ "Package::Stash" : "0.23",
+ "perl" : "5.008001"
+ }
+ },
+ "test" : {
+ "requires" : {
+ "Test::More" : "0.88"
}
}
},
"release_status" : "stable",
"resources" : {
"bugtracker" : {
+ "mailto" : "[email protected]",
"web" :
"http://rt.cpan.org/Public/Dist/Display.html?Name=namespace-clean"
},
"homepage" : "http://search.cpan.org/dist/namespace-clean",
"repository" : {
- "url" : "git://git.shadowcat.co.uk/p5sagit/namespace-clean.git"
- }
+ "type" : "git",
+ "url" : "git://git.shadowcat.co.uk/p5sagit/namespace-clean.git",
+ "web" :
"http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/namespace-clean.git"
+ },
+ "x_IRC" : "irc://irc.perl.org/#toolchain"
},
- "version" : "0.25"
+ "version" : "0.26",
+ "x_serialization_backend" : "JSON::PP version 2.27203"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/namespace-clean-0.25/META.yml
new/namespace-clean-0.26/META.yml
--- old/namespace-clean-0.25/META.yml 2014-03-05 12:25:05.000000000 +0100
+++ new/namespace-clean-0.26/META.yml 2015-10-07 19:43:37.000000000 +0200
@@ -1,27 +1,35 @@
---
abstract: 'Keep imports and functions out of your namespace'
author:
- - "Robert 'phaylon' Sedlacek <[email protected]>, Florian Ragwitz
<[email protected]>, Jesse Luehrs <[email protected]>"
+ - "Robert 'phaylon' Sedlacek <[email protected]>"
+ - 'Florian Ragwitz <[email protected]>'
+ - 'Jesse Luehrs <[email protected]>'
+ - 'Peter Rabbitson <[email protected]>'
+ - 'Father Chrysostomos <[email protected]>'
build_requires:
- Test::More: 0.88
+ Test::More: '0.88'
configure_requires:
- ExtUtils::CBuilder: 0.27
+ ExtUtils::CBuilder: '0.27'
+ ExtUtils::MakeMaker: '0'
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.84, CPAN::Meta::Converter version
2.132830'
+generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version
2.150005'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
-name: namespace-clean
+ version: '1.4'
+name: namespace::clean
no_index:
directory:
- t
- inc
requires:
- B::Hooks::EndOfScope: 0.12
- Package::Stash: 0.23
+ B::Hooks::EndOfScope: '0.12'
+ Package::Stash: '0.23'
+ perl: '5.008001'
resources:
+ IRC: irc://irc.perl.org/#toolchain
bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=namespace-clean
homepage: http://search.cpan.org/dist/namespace-clean
repository: git://git.shadowcat.co.uk/p5sagit/namespace-clean.git
-version: 0.25
+version: '0.26'
+x_serialization_backend: 'CPAN::Meta::YAML version 0.016'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/namespace-clean-0.25/Makefile.PL
new/namespace-clean-0.26/Makefile.PL
--- old/namespace-clean-0.25/Makefile.PL 2014-03-05 12:19:07.000000000
+0100
+++ new/namespace-clean-0.26/Makefile.PL 2015-10-01 05:54:37.000000000
+0200
@@ -2,113 +2,117 @@
use warnings;
use 5.008001;
-use ExtUtils::MakeMaker;
-
-my $mymeta_works = eval { ExtUtils::MakeMaker->VERSION('6.5707'); 1 };
-my $mymeta = $mymeta_works || eval { ExtUtils::MakeMaker->VERSION('6.5702'); 1
};
-
-my %BUILD_DEPS = (
- 'Test::More' => '0.88',
-);
-
-my %RUN_DEPS = (
- 'Package::Stash' => '0.23',
- 'B::Hooks::EndOfScope' => '0.12',
-);
-
-# these pieces are needed if using the debugger on the perl range
-my %OPT_RUN_DEPS = ( $] > 5.008_008_9 and $] < 5.013_005_1 and can_xs() )
- # when changing versions, also change $sn_ver and $si_ver in
namespace/clean.pm
- ? ( 'Sub::Name' => '0.04', 'Sub::Identify' => '0.04' ) : ()
-;
+my %META = (
+ name => 'namespace::clean',
+ license => 'perl_5',
+
+ abstract => 'Keep imports and functions out of your namespace',
+ author => [
+ 'Robert \'phaylon\' Sedlacek <[email protected]>',
+ 'Florian Ragwitz <[email protected]>',
+ 'Jesse Luehrs <[email protected]>',
+ 'Peter Rabbitson <[email protected]>',
+ 'Father Chrysostomos <[email protected]>',
+ ],
+
+ prereqs => {
+ configure => {
+ requires => {
+ 'ExtUtils::MakeMaker' => 0,
+ 'ExtUtils::CBuilder' => 0.27,
+ }
+ },
+ runtime => {
+ requires => {
+ 'Package::Stash' => '0.23',
+ 'B::Hooks::EndOfScope' => '0.12',
+ 'perl' => '5.008001',
+ },
+ },
+ test => {
+ requires => {
+ 'Test::More' => '0.88',
+ }
+ },
+ },
-my %META_BITS = (
resources => {
+ x_IRC => 'irc://irc.perl.org/#toolchain',
homepage => 'http://search.cpan.org/dist/namespace-clean',
-
- # EUMM not supporting nested meta :(
- #repository => {
- # type => 'git',
- # url => 'git://git.shadowcat.co.uk/p5sagit/namespace-clean.git',
- # web =>
'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/namespace-clean.git',
- #}
- #bugtracker => {
- # mailto => '[email protected]',
- # web =>
'http://rt.cpan.org/Public/Dist/Display.html?Name=namespace-clean',
- #},
-
- repository => 'git://git.shadowcat.co.uk/p5sagit/namespace-clean.git',
- bugtracker =>
'http://rt.cpan.org/Public/Dist/Display.html?Name=namespace-clean',
+ repository => {
+ type => 'git',
+ url => 'git://git.shadowcat.co.uk/p5sagit/namespace-clean.git',
+ web =>
'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/namespace-clean.git',
+ },
+ bugtracker => {
+ mailto => '[email protected]',
+ web =>
'http://rt.cpan.org/Public/Dist/Display.html?Name=namespace-clean',
+ },
},
);
-my %WriteMakefileArgs = (
- 'NAME' => 'namespace::clean',
- 'VERSION_FROM' => 'lib/namespace/clean.pm',
- 'ABSTRACT' => 'Keep imports and functions out of your namespace',
- 'AUTHOR' => 'Robert \'phaylon\' Sedlacek <[email protected]>, Florian Ragwitz
<[email protected]>, Jesse Luehrs <[email protected]>',
- 'CONFIGURE_REQUIRES' => { 'ExtUtils::CBuilder' => 0.27 },
- 'PREREQ_PM' => {
- %RUN_DEPS, %OPT_RUN_DEPS,
- $mymeta_works ? () : (%BUILD_DEPS),
- },
-
- $mymeta_works
- ? ( # BUILD_REQUIRES makes MYMETA right, requires stops META being wrong
- 'BUILD_REQUIRES' => \%BUILD_DEPS,
- 'META_ADD' => {
- %META_BITS,
- requires => \%RUN_DEPS,
- },
- )
- : ( # META_ADD both to get META right - only Makefile written
- 'META_ADD' => {
- %META_BITS,
- requires => \%RUN_DEPS,
- build_requires => \%BUILD_DEPS,
- },
- )
- ,
-
- ($mymeta and !$mymeta_works) ? ( 'NO_MYMETA' => 1 ) : (),
-
- 'LICENSE' => 'perl',
+my %MM_ARGS = ( (
+ # a sub-namer is needed if using the debugger on some perls
+ require 'lib/namespace/clean/_Util.pm'
+ and
+ namespace::clean::_Util::DEBUGGER_NEEDS_CV_RENAME()
+ and
+ namespace::clean::_Util::_namer_load_error()
+ and
+ can_xs()
+)
+ # when changing version, also change $sn_ver in namespace/clean/_Util.pm
+ ? ( PREREQ_PM => { 'Sub::Name' => '0.04' } )
+ : ()
);
-unless ( eval { ExtUtils::MakeMaker->VERSION('6.56') } ) {
- my $br = delete $WriteMakefileArgs{BUILD_REQUIRES};
- my $pp = $WriteMakefileArgs{PREREQ_PM};
- for my $mod ( keys %$br ) {
- if ( exists $pp->{$mod} ) {
- $pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod};
- }
- else {
- $pp->{$mod} = $br->{$mod};
- }
- }
-}
+## BOILERPLATE ###############################################################
+require ExtUtils::MakeMaker;
-delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
- unless eval { ExtUtils::MakeMaker->VERSION('6.52') };
-
-WriteMakefile(%WriteMakefileArgs);
-
-# Secondary compile testing via ExtUtils::CBuilder
-sub can_xs {
- # Do we have the configure_requires checker?
- local $@;
- eval "require ExtUtils::CBuilder;";
- if ( $@ ) {
- # They don't obey configure_requires, so it is
- # someone old and delicate. Try to avoid hurting
- # them by falling back to an older simpler test.
- return can_cc();
- }
-
- return ExtUtils::CBuilder->new( quiet => 1 )->have_compiler;
+# have to do this since old EUMM dev releases miss the eval $VERSION line
+my $eumm_version = eval $ExtUtils::MakeMaker::VERSION;
+my $mymeta = $eumm_version >= 6.57_02;
+my $mymeta_broken = $mymeta && $eumm_version < 6.57_07;
+
+($MM_ARGS{NAME} = $META{name}) =~ s/-/::/g;
+($MM_ARGS{VERSION_FROM} = "lib/$MM_ARGS{NAME}.pm") =~ s{::}{/}g;
+$META{license} = [ $META{license} ]
+ if $META{license} && !ref $META{license};
+$MM_ARGS{LICENSE} = $META{license}[0]
+ if $META{license} && $eumm_version >= 6.30;
+$MM_ARGS{NO_MYMETA} = 1
+ if $mymeta_broken;
+$MM_ARGS{META_ADD} = { 'meta-spec' => { version => 2 }, %META }
+ unless -f 'META.yml';
+
+for (qw(configure build test runtime)) {
+ my $key = $_ eq 'runtime' ? 'PREREQ_PM' : uc $_.'_REQUIRES';
+ my $r = $MM_ARGS{$key} = {
+ %{$META{prereqs}{$_}{requires} || {}},
+ %{delete $MM_ARGS{$key} || {}},
+ };
+ defined $r->{$_} or delete $r->{$_} for keys %$r;
}
+$MM_ARGS{MIN_PERL_VERSION} = delete $MM_ARGS{PREREQ_PM}{perl} || 0;
+
+delete $MM_ARGS{MIN_PERL_VERSION}
+ if $eumm_version < 6.47_01;
+$MM_ARGS{BUILD_REQUIRES} = {%{$MM_ARGS{BUILD_REQUIRES}}, %{delete
$MM_ARGS{TEST_REQUIRES}}}
+ if $eumm_version < 6.63_03;
+$MM_ARGS{PREREQ_PM} = {%{$MM_ARGS{PREREQ_PM}}, %{delete
$MM_ARGS{BUILD_REQUIRES}}}
+ if $eumm_version < 6.55_01;
+delete $MM_ARGS{CONFIGURE_REQUIRES}
+ if $eumm_version < 6.51_03;
+
+ExtUtils::MakeMaker::WriteMakefile(%MM_ARGS);
+## END BOILERPLATE ###########################################################
+
+
+# FIXME
+# Need to replace with EU::HC, but too many changes for this release already
+###########################################
# can we locate a (the) C compiler
sub can_cc {
my @chunks = split(/ /, $Config::Config{cc}) or return;
@@ -130,6 +134,7 @@
return $found_cmd;
}
+ require File::Spec;
for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') {
next if $dir eq '';
my $abs = File::Spec->catfile($dir, $cmd);
@@ -138,3 +143,71 @@
return;
}
+
+# Can our C compiler environment build XS files
+sub can_xs {
+ # Do we have the configure_requires checker?
+ local $@;
+ eval "require ExtUtils::CBuilder; ExtUtils::CBuilder->VERSION(0.27)";
+ if ( $@ ) {
+ # They don't obey configure_requires, so it is
+ # someone old and delicate. Try to avoid hurting
+ # them by falling back to an older simpler test.
+ return can_cc();
+ }
+
+ # Do we have a working C compiler
+ my $builder = ExtUtils::CBuilder->new(
+ quiet => 1,
+ );
+ unless ( $builder->have_compiler ) {
+ # No working C compiler
+ return 0;
+ }
+
+ # Write a C file representative of what XS becomes
+ require File::Temp;
+ my ( $FH, $tmpfile ) = File::Temp::tempfile(
+ "compilexs-XXXXX",
+ SUFFIX => '.c',
+ );
+ binmode $FH;
+ print $FH <<'END_C';
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+
+int main(int argc, char **argv) {
+ return 0;
+}
+
+int boot_sanexs() {
+ return 1;
+}
+
+END_C
+ close $FH;
+
+ # Can the C compiler access the same headers XS does
+ my @libs = ();
+ my $object = undef;
+ eval {
+ local $^W = 0;
+ $object = $builder->compile(
+ source => $tmpfile,
+ );
+ @libs = $builder->link(
+ objects => $object,
+ module_name => 'sanexs',
+ );
+ };
+ my $result = $@ ? 0 : 1;
+
+ # Clean up all the build files
+ foreach ( $tmpfile, $object, @libs ) {
+ next unless defined $_;
+ 1 while unlink;
+ }
+
+ return $result;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/namespace-clean-0.25/lib/namespace/clean/_Util.pm
new/namespace-clean-0.26/lib/namespace/clean/_Util.pm
--- old/namespace-clean-0.25/lib/namespace/clean/_Util.pm 1970-01-01
01:00:00.000000000 +0100
+++ new/namespace-clean-0.26/lib/namespace/clean/_Util.pm 2015-10-07
08:59:58.000000000 +0200
@@ -0,0 +1,112 @@
+### !!!ACHTUNG!!!
+#
+# This module is to be loaded at configure time straight from the Makefile.PL
+# in order to get access to some of the constants / utils
+# None of the dependencies will be available yet at this point, so make
+# sure to never use anything beyond what the minimum supported perl came with
+# (no, relying on configure_requires is not ok)
+
+package # hide from the pauses
+ namespace::clean::_Util;
+
+use warnings;
+use strict;
+
+use base 'Exporter';
+our @EXPORT_OK = qw( DEBUGGER_NEEDS_CV_RENAME DEBUGGER_NEEDS_CV_PIVOT );
+
+use constant DEBUGGER_NEEDS_CV_RENAME => ( ( $] > 5.008_008 ) and ( $] <
5.013_006 ) );
+use constant DEBUGGER_NEEDS_CV_PIVOT => ( ( ! DEBUGGER_NEEDS_CV_RENAME ) and (
$] < 5.015_005 ) );
+
+# FIXME - ideally this needs to be provided by some abstraction lib
+# but we don't have that yet
+BEGIN {
+ #
+ # Note - both get_subname and set_subname are only called by one block
+ # which is compiled away unless CV_RENAME is true ( the 5.8.9 ~ 5.12 range ).
+ # Hence we compile/provide the definitions here only when needed
+ #
+ DEBUGGER_NEEDS_CV_RENAME and ( eval <<'EOS' or die $@ );
+{
+ my( $sub_name_loaded, $sub_util_loaded );
+
+ sub _namer_load_error {
+ return '' if $sub_util_loaded or $sub_name_loaded;
+
+ # if S::N is loaded first *and* so is B - then go with that, otherwise
+ # prefer Sub::Util as S::U will provide a faster get_subname and will
+ # not need further require() calls
+ # this is rather arbitrary but remember this code exists only perls
+ # between 5.8.9 ~ 5.13.5
+
+ # when changing version also change in Makefile.PL
+ my $sn_ver = 0.04;
+
+ local $@;
+ my $err = '';
+
+ (
+ ! (
+ $INC{"B.pm"}
+ and
+ $INC{"Sub/Name.pm"}
+ and
+ eval { Sub::Name->VERSION($sn_ver) }
+ )
+ and
+ eval { require Sub::Util }
+ and
+ # see https://github.com/moose/Moo/commit/dafa5118
+ defined &Sub::Util::set_subname
+ and
+ $sub_util_loaded = 1
+ )
+ or
+ (
+ eval { require Sub::Name and Sub::Name->VERSION($sn_ver) }
+ and
+ $sub_name_loaded = 1
+ )
+ or
+ $err = "When running under -d on this perl $], namespace::clean requires
either Sub::Name $sn_ver or Sub::Util to be installed"
+ ;
+
+ $err;
+ }
+
+ sub set_subname {
+ if( my $err = _namer_load_error() ) {
+ die $err;
+ }
+ elsif( $sub_name_loaded ) {
+ &Sub::Name::subname;
+ }
+ elsif( $sub_util_loaded ) {
+ &Sub::Util::set_subname;
+ }
+ else {
+ die "How the fuck did we get here? Read source and debug please!";
+ }
+ }
+
+ sub get_subname {
+ if(
+ _namer_load_error()
+ or
+ ! $sub_util_loaded
+ ) {
+ require B;
+ my $gv = B::svref_2object( $_[0] )->GV;
+ join '::', $gv->STASH->NAME, $gv->NAME;
+ }
+ else {
+ &Sub::Util::subname;
+ }
+ }
+}
+1;
+EOS
+
+}
+
+1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/namespace-clean-0.25/lib/namespace/clean.pm
new/namespace-clean-0.26/lib/namespace/clean.pm
--- old/namespace-clean-0.25/lib/namespace/clean.pm 2014-03-05
12:22:29.000000000 +0100
+++ new/namespace-clean-0.26/lib/namespace/clean.pm 2015-10-07
19:43:20.000000000 +0200
@@ -3,13 +3,227 @@
use warnings;
use strict;
-use Package::Stash;
+our $VERSION = '0.26';
+$VERSION = eval $VERSION if $VERSION =~ /_/; # numify for warning-free dev
releases
-our $VERSION = '0.25';
our $STORAGE_VAR = '__NAMESPACE_CLEAN_STORAGE';
use B::Hooks::EndOfScope 'on_scope_end';
+# FIXME This is a crock of shit, needs to go away
+# currently here to work around
https://rt.cpan.org/Ticket/Display.html?id=74151
+# kill with fire when PS::XS is *finally* fixed
+BEGIN {
+ my $provider;
+
+ if ( $] < 5.008007 ) {
+ require Package::Stash::PP;
+ $provider = 'Package::Stash::PP';
+ }
+ else {
+ require Package::Stash;
+ $provider = 'Package::Stash';
+ }
+ eval <<"EOS" or die $@;
+
+sub stash_for (\$) {
+ $provider->new(\$_[0]);
+}
+
+1;
+
+EOS
+}
+
+use namespace::clean::_Util qw( DEBUGGER_NEEDS_CV_RENAME
DEBUGGER_NEEDS_CV_PIVOT );
+
+# Built-in debugger CV-retrieval fixups necessary before perl 5.15.5:
+# since we are deleting the glob where the subroutine was originally
+# defined, the assumptions below no longer hold.
+#
+# In 5.8.9 ~ 5.13.5 (inclusive) the debugger assumes that a CV can
+# always be found under sub_fullname($sub)
+# Workaround: use sub naming to properly name the sub hidden in the package's
+# deleted-stash
+#
+# In the rest of the range ( ... ~ 5.8.8 and 5.13.6 ~ 5.15.4 ) the debugger
+# assumes the name of the glob passed to entersub can be used to find the CV
+# Workaround: realias the original glob to the deleted-stash slot
+#
+# Can not tie constants to the current value of $^P directly,
+# as the debugger can be enabled during runtime (kinda dubious)
+#
+
+my $RemoveSubs = sub {
+ my $cleanee = shift;
+ my $store = shift;
+ my $cleanee_stash = stash_for($cleanee);
+ my $deleted_stash;
+
+ SYMBOL:
+ for my $f (@_) {
+
+ # ignore already removed symbols
+ next SYMBOL if $store->{exclude}{ $f };
+
+ my $sub = $cleanee_stash->get_symbol("&$f")
+ or next SYMBOL;
+
+ my $need_debugger_fixup =
+ ( DEBUGGER_NEEDS_CV_RENAME or DEBUGGER_NEEDS_CV_PIVOT )
+ &&
+ $^P
+ &&
+ ref(my $globref = \$cleanee_stash->namespace->{$f}) eq 'GLOB'
+ &&
+ ( $deleted_stash ||= stash_for("namespace::clean::deleted::$cleanee")
)
+ ;
+
+ # convince the Perl debugger to work
+ # see the comment on top
+ if ( DEBUGGER_NEEDS_CV_RENAME and $need_debugger_fixup ) {
+ #
+ # Note - both get_subname and set_subname are only compiled when
CV_RENAME
+ # is true ( the 5.8.9 ~ 5.12 range ). On other perls this entire
block is
+ # constant folded away, and so are the definitions in ::_Util
+ #
+ # Do not be surprised that they are missing without
DEBUGGER_NEEDS_CV_RENAME
+ #
+ namespace::clean::_Util::get_subname( $sub ) eq (
$cleanee_stash->name . "::$f" )
+ and
+ $deleted_stash->add_symbol(
+ "&$f",
+ namespace::clean::_Util::set_subname( $deleted_stash->name .
"::$f", $sub ),
+ );
+ }
+ elsif ( DEBUGGER_NEEDS_CV_PIVOT and $need_debugger_fixup ) {
+ $deleted_stash->add_symbol("&$f", $sub);
+ }
+
+ my @symbols = map {
+ my $name = $_ . $f;
+ my $def = $cleanee_stash->get_symbol($name);
+ defined($def) ? [$name, $def] : ()
+ } '$', '@', '%', '';
+
+ $cleanee_stash->remove_glob($f);
+
+ # if this perl needs no renaming trick we need to
+ # rename the original glob after the fact
+ DEBUGGER_NEEDS_CV_PIVOT
+ and
+ $need_debugger_fixup
+ and
+ *$globref = $deleted_stash->namespace->{$f};
+
+ $cleanee_stash->add_symbol(@$_) for @symbols;
+ }
+};
+
+sub clean_subroutines {
+ my ($nc, $cleanee, @subs) = @_;
+ $RemoveSubs->($cleanee, {}, @subs);
+}
+
+sub import {
+ my ($pragma, @args) = @_;
+
+ my (%args, $is_explicit);
+
+ ARG:
+ while (@args) {
+
+ if ($args[0] =~ /^\-/) {
+ my $key = shift @args;
+ my $value = shift @args;
+ $args{ $key } = $value;
+ }
+ else {
+ $is_explicit++;
+ last ARG;
+ }
+ }
+
+ my $cleanee = exists $args{ -cleanee } ? $args{ -cleanee } : scalar caller;
+ if ($is_explicit) {
+ on_scope_end {
+ $RemoveSubs->($cleanee, {}, @args);
+ };
+ }
+ else {
+
+ # calling class, all current functions and our storage
+ my $functions = $pragma->get_functions($cleanee);
+ my $store = $pragma->get_class_store($cleanee);
+ my $stash = stash_for($cleanee);
+
+ # except parameter can be array ref or single value
+ my %except = map {( $_ => 1 )} (
+ $args{ -except }
+ ? ( ref $args{ -except } eq 'ARRAY' ? @{ $args{ -except } } :
$args{ -except } )
+ : ()
+ );
+
+ # register symbols for removal, if they have a CODE entry
+ for my $f (keys %$functions) {
+ next if $except{ $f };
+ next unless $stash->has_symbol("&$f");
+ $store->{remove}{ $f } = 1;
+ }
+
+ # register EOF handler on first call to import
+ unless ($store->{handler_is_installed}) {
+ on_scope_end {
+ $RemoveSubs->($cleanee, $store, keys %{ $store->{remove} });
+ };
+ $store->{handler_is_installed} = 1;
+ }
+
+ return 1;
+ }
+}
+
+sub unimport {
+ my ($pragma, %args) = @_;
+
+ # the calling class, the current functions and our storage
+ my $cleanee = exists $args{ -cleanee } ? $args{ -cleanee } : scalar
caller;
+ my $functions = $pragma->get_functions($cleanee);
+ my $store = $pragma->get_class_store($cleanee);
+
+ # register all unknown previous functions as excluded
+ for my $f (keys %$functions) {
+ next if $store->{remove}{ $f }
+ or $store->{exclude}{ $f };
+ $store->{exclude}{ $f } = 1;
+ }
+
+ return 1;
+}
+
+sub get_class_store {
+ my ($pragma, $class) = @_;
+ my $stash = stash_for($class);
+ my $var = "%$STORAGE_VAR";
+ $stash->add_symbol($var, {})
+ unless $stash->has_symbol($var);
+ return $stash->get_symbol($var);
+}
+
+sub get_functions {
+ my ($pragma, $class) = @_;
+
+ my $stash = stash_for($class);
+ return {
+ map { $_ => $stash->get_symbol("&$_") }
+ $stash->list_all_symbols('CODE')
+ };
+}
+
+'Danger! Laws of Thermodynamics may not apply.'
+
+__END__
+
=head1 NAME
namespace::clean - Keep imports and functions out of your namespace
@@ -73,6 +287,30 @@
If you just want to C<-except> a single sub, you can pass it directly.
For more than one value you have to use an array reference.
+=head3 Late binding caveat
+
+Note that the L<technique used by this module|/IMPLEMENTATION DETAILS> relies
+on perl having resolved all names to actual code references during the
+compilation of a scope. While this is almost always what the interpreter does,
+there are some exceptions, notably the L<sort SUBNAME|perlfunc/sort> style of
+the C<sort> built-in invocation. The following example will not work, because
+C<sort> does not try to resolve the function name to an actual code reference
+until B<runtime>.
+
+ use MyApp::Utils 'my_sorter';
+ use namespace::clean;
+
+ my @sorted = sort my_sorter @list;
+
+You need to work around this by forcing a compile-time resolution like so:
+
+ use MyApp::Utils 'sorter';
+ use namespace::clean;
+
+ my $my_sorter_cref = \&sorter;
+
+ my @sorted = sort $my_sorter_cref @list;
+
=head2 Explicitly removing functions when your scope is compiled
It is also possible to explicitly tell C<namespace::clean> what packages
@@ -140,186 +378,11 @@
effect at a specific time (e.g. C<namespace::clean> acts on scope compile end)
it is your responsibility to make sure it runs at that time.
-=cut
-
-# Constant to optimise away the unused code branches
-use constant FIXUP_NEEDED => $] < 5.015_005_1;
-use constant FIXUP_RENAME_SUB => $] > 5.008_008_9 && $] < 5.013_005_1;
-{
- no strict;
- delete ${__PACKAGE__."::"}{FIXUP_NEEDED};
- delete ${__PACKAGE__."::"}{FIXUP_RENAME_SUB};
-}
-
-# Debugger fixup necessary before perl 5.15.5
-#
-# In perl 5.8.9-5.12, it assumes that sub_fullname($sub) can
-# always be used to find the CV again.
-# In perl 5.8.8 and 5.14, it assumes that the name of the glob
-# passed to entersub can be used to find the CV.
-# since we are deleting the glob where the subroutine was originally
-# defined, those assumptions no longer hold.
-#
-# So in 5.8.9-5.12 we need to move it elsewhere and point the
-# CV's name to the new glob.
-#
-# In 5.8.8 and 5.14 we move it elsewhere and rename the
-# original glob by assigning the new glob back to it.
-my $sub_utils_loaded;
-my $DebuggerFixup = sub {
- my ($f, $sub, $cleanee_stash, $deleted_stash) = @_;
-
- if (FIXUP_RENAME_SUB) {
- if (! defined $sub_utils_loaded ) {
- $sub_utils_loaded = do {
-
- # when changing version also change in Makefile.PL
- my $sn_ver = 0.04;
- eval { require Sub::Name; Sub::Name->VERSION($sn_ver) }
- or die "Sub::Name $sn_ver required when running under -d or
equivalent: $@";
-
- # when changing version also change in Makefile.PL
- my $si_ver = 0.04;
- eval { require Sub::Identify; Sub::Identify->VERSION($si_ver) }
- or die "Sub::Identify $si_ver required when running under -d or
equivalent: $@";
-
- 1;
- } ? 1 : 0;
- }
-
- if ( Sub::Identify::sub_fullname($sub) eq ($cleanee_stash->name . "::$f")
) {
- my $new_fq = $deleted_stash->name . "::$f";
- Sub::Name::subname($new_fq, $sub);
- $deleted_stash->add_symbol("&$f", $sub);
- }
- }
- else {
- $deleted_stash->add_symbol("&$f", $sub);
- }
-};
-
-my $RemoveSubs = sub {
- my $cleanee = shift;
- my $store = shift;
- my $cleanee_stash = Package::Stash->new($cleanee);
- my $deleted_stash;
-
- SYMBOL:
- for my $f (@_) {
-
- # ignore already removed symbols
- next SYMBOL if $store->{exclude}{ $f };
-
- my $sub = $cleanee_stash->get_symbol("&$f")
- or next SYMBOL;
-
- my $need_debugger_fixup =
- FIXUP_NEEDED
- &&
- $^P
- &&
- ref(my $globref = \$cleanee_stash->namespace->{$f}) eq 'GLOB'
- ;
-
- if (FIXUP_NEEDED && $need_debugger_fixup) {
- # convince the Perl debugger to work
- # see the comment on top of $DebuggerFixup
- $DebuggerFixup->(
- $f,
- $sub,
- $cleanee_stash,
- $deleted_stash ||=
Package::Stash->new("namespace::clean::deleted::$cleanee"),
- );
- }
-
- my @symbols = map {
- my $name = $_ . $f;
- my $def = $cleanee_stash->get_symbol($name);
- defined($def) ? [$name, $def] : ()
- } '$', '@', '%', '';
-
- $cleanee_stash->remove_glob($f);
-
- # if this perl needs no renaming trick we need to
- # rename the original glob after the fact
- # (see commend of $DebuggerFixup
- if (FIXUP_NEEDED && !FIXUP_RENAME_SUB && $need_debugger_fixup) {
- *$globref = $deleted_stash->namespace->{$f};
- }
-
- $cleanee_stash->add_symbol(@$_) for @symbols;
- }
-};
-
-sub clean_subroutines {
- my ($nc, $cleanee, @subs) = @_;
- $RemoveSubs->($cleanee, {}, @subs);
-}
-
=head2 import
Makes a snapshot of the current defined functions and installs a
L<B::Hooks::EndOfScope> hook in the current scope to invoke the cleanups.
-=cut
-
-sub import {
- my ($pragma, @args) = @_;
-
- my (%args, $is_explicit);
-
- ARG:
- while (@args) {
-
- if ($args[0] =~ /^\-/) {
- my $key = shift @args;
- my $value = shift @args;
- $args{ $key } = $value;
- }
- else {
- $is_explicit++;
- last ARG;
- }
- }
-
- my $cleanee = exists $args{ -cleanee } ? $args{ -cleanee } : scalar caller;
- if ($is_explicit) {
- on_scope_end {
- $RemoveSubs->($cleanee, {}, @args);
- };
- }
- else {
-
- # calling class, all current functions and our storage
- my $functions = $pragma->get_functions($cleanee);
- my $store = $pragma->get_class_store($cleanee);
- my $stash = Package::Stash->new($cleanee);
-
- # except parameter can be array ref or single value
- my %except = map {( $_ => 1 )} (
- $args{ -except }
- ? ( ref $args{ -except } eq 'ARRAY' ? @{ $args{ -except } } :
$args{ -except } )
- : ()
- );
-
- # register symbols for removal, if they have a CODE entry
- for my $f (keys %$functions) {
- next if $except{ $f };
- next unless $stash->has_symbol("&$f");
- $store->{remove}{ $f } = 1;
- }
-
- # register EOF handler on first call to import
- unless ($store->{handler_is_installed}) {
- on_scope_end {
- $RemoveSubs->($cleanee, $store, keys %{ $store->{remove} });
- };
- $store->{handler_is_installed} = 1;
- }
-
- return 1;
- }
-}
=head2 unimport
@@ -329,60 +392,17 @@
It will start a new section of code that defines functions to clean up.
-=cut
-
-sub unimport {
- my ($pragma, %args) = @_;
-
- # the calling class, the current functions and our storage
- my $cleanee = exists $args{ -cleanee } ? $args{ -cleanee } : scalar
caller;
- my $functions = $pragma->get_functions($cleanee);
- my $store = $pragma->get_class_store($cleanee);
-
- # register all unknown previous functions as excluded
- for my $f (keys %$functions) {
- next if $store->{remove}{ $f }
- or $store->{exclude}{ $f };
- $store->{exclude}{ $f } = 1;
- }
-
- return 1;
-}
-
=head2 get_class_store
This returns a reference to a hash in a passed package containing
information about function names included and excluded from removal.
-=cut
-
-sub get_class_store {
- my ($pragma, $class) = @_;
- my $stash = Package::Stash->new($class);
- my $var = "%$STORAGE_VAR";
- $stash->add_symbol($var, {})
- unless $stash->has_symbol($var);
- return $stash->get_symbol($var);
-}
-
=head2 get_functions
Takes a class as argument and returns all currently defined functions
in it as a hash reference with the function name as key and a typeglob
reference to the symbol as value.
-=cut
-
-sub get_functions {
- my ($pragma, $class) = @_;
-
- my $stash = Package::Stash->new($class);
- return {
- map { $_ => $stash->get_symbol("&$_") }
- $stash->list_all_symbols('CODE')
- };
-}
-
=head1 IMPLEMENTATION DETAILS
This module works through the effect that a
@@ -439,8 +459,3 @@
This software is copyright (c) 2011 by L</AUTHORS>
This is free software; you can redistribute it and/or modify it under the same
terms as the Perl 5 programming language system itself.
-
-=cut
-
-no warnings;
-'Danger! Laws of Thermodynamics may not apply.'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/namespace-clean-0.25/t/07-debugger.t
new/namespace-clean-0.26/t/07-debugger.t
--- old/namespace-clean-0.25/t/07-debugger.t 2013-07-10 04:19:30.000000000
+0200
+++ new/namespace-clean-0.26/t/07-debugger.t 2015-10-07 08:03:43.000000000
+0200
@@ -1,21 +1,19 @@
use Test::More;
BEGIN {
- eval { require Sub::Name }
- or plan skip_all => "Test requires Sub::Name";
-
- eval { require Sub::Identify }
- or plan skip_all => "Test requires Sub::Identify";
+ require namespace::clean;
+ if (
+ namespace::clean::_Util::DEBUGGER_NEEDS_CV_RENAME()
+ and
+ my $missing_xs = namespace::clean::_Util::_namer_load_error()
+ ) {
+ plan skip_all => $missing_xs;
+ }
}
-
BEGIN {
# shut up the debugger
$ENV{PERLDB_OPTS} = 'NonStop';
-
- # work aroud the regex + P::S::XS buggery on
- # < 5.8.6
- require Package::Stash;
}
BEGIN {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/namespace-clean-0.25/t/10-pure-perl.t
new/namespace-clean-0.26/t/10-pure-perl.t
--- old/namespace-clean-0.25/t/10-pure-perl.t 2013-07-10 04:19:30.000000000
+0200
+++ new/namespace-clean-0.26/t/10-pure-perl.t 2015-10-01 05:54:37.000000000
+0200
@@ -9,13 +9,18 @@
plan skip_all => "B::Hooks::EndOfScope ($INC{'B/Hooks/EndOfScope.pm'})
loaded before the test even started >.<"
if $INC{'B/Hooks/EndOfScope.pm'};
+ plan skip_all => "Package::Stash ($INC{'Package/Stash.pm'}) loaded before
the test even started >.<"
+ if $INC{'Package/Stash.pm'};
+
eval { require Variable::Magic }
or plan skip_all => "PP tests already executed";
$ENV{B_HOOKS_ENDOFSCOPE_IMPLEMENTATION} = 'PP';
+ $ENV{PACKAGE_STASH_IMPLEMENTATION} = 'PP';
}
use B::Hooks::EndOfScope 0.12;
+use Package::Stash;
ok(
($INC{'B/Hooks/EndOfScope/PP.pm'} && ! $INC{'B/Hooks/EndOfScope/XS.pm'}),
@@ -25,6 +30,14 @@
qw|EndOfScope.pm EndOfScope/XS.pm EndOfScope/PP.pm|
;
+ok(
+ ($INC{'Package/Stash/PP.pm'} && ! $INC{'Package/Stash/XS.pm'}),
+ 'PP Package::Stash loaded properly'
+) || diag join "\n",
+ map { sprintf '%s => %s', $_, $INC{"Package/$_"} || 'undef' }
+ qw|Stash.pm Stash/XS.pm Stash/PP.pm|
+;
+
use Config;
use FindBin qw($Bin);
use IPC::Open2 qw(open2);