Subject: | DBIx::Class::Carp and namespace::clean |
BackPAN::Index test was failing on one of my Perls (5.8.9),
I tracked error down to this:
"-cleanee" is not exported by the namespace::clean module
"DBIx::Class::Componentised" is not exported by the namespace::clean module
"carp" is not exported by the namespace::clean module
"carp_once" is not exported by the namespace::clean module
"carp_unique" is not exported by the namespace::clean module
Can't continue after import errors at /home/vse/perl5/perlbrew/perls/perl-5.8.9/lib/site_perl/5.8.9/DBIx/Class/Componentised.pm line 10.
BEGIN failed--compilation aborted at /home/vse/perl5/perlbrew/perls/perl-5.8.9/lib/site_perl/5.8.9/DBIx/Class/Componentised.pm line 10.
Compilation failed in require at (eval 6) line 3.
...propagated at /home/vse/perl5/perlbrew/perls/perl-5.8.9/lib/5.8.9/base.pm line 93.
BEGIN failed--compilation aborted at /home/vse/perl5/perlbrew/perls/perl-5.8.9/lib/site_perl/5.8.9/DBIx/Class.pm line 59.
Compilation failed in require at (eval 4) line 3.
...propagated at /home/vse/perl5/perlbrew/perls/perl-5.8.9/lib/5.8.9/base.pm line 93.
BEGIN failed--compilation aborted at /home/vse/perl5/perlbrew/perls/perl-5.8.9/lib/site_perl/5.8.9/DBIx/Class/Core.pm line 6.
Compilation failed in require at (eval 3) line 3.
...propagated at /home/vse/perl5/perlbrew/perls/perl-5.8.9/lib/5.8.9/base.pm line 93.
BEGIN failed--compilation aborted at /home/vse/.cpanm/work/1371681631.20059/BackPAN-Index-0.42/blib/lib/BackPAN/Index/Release.pm line 10.
Compilation failed in require at (eval 2) line 3.
BackPAN::Index uses Test::Compile, which fails with above stacktrace.
This can be fixed by adding
use namespace::clean;
to DBIx::Class::Carp;
before
# This is here instead of DBIx::Class because of load-order issues
BEGIN {
# something is tripping up V::M on 5.8.1, leading to segfaults.
# A similar test in n::c itself is disabled on 5.8.1 for the same
# reason. There isn't much motivation to try to find why it happens
*DBIx::Class::_ENV_::BROKEN_NAMESPACE_CLEAN = ($] < 5.008005)
? sub () { 1 }
: sub () { 0 }
;
}
so, I am wondering if this is a actually bug in DBIx::Class::Carp or no (DBIx::Class::Carp does not use nor require namespace::clean)
I am not 100% sure, because BackPAN::Index files compile fine with 'perl -c'. Only Test::Compile fails (and actually simple eval "require $module" fails inside Test::Compile)
related ticket https://rt.cpan.org/Public/Bug/Display.html?id=86265