ASSERT_NO_INTERNAL_INDIRECT_CALLS => $ENV{DBIC_ASSERT_NO_INTERNAL_INDIRECT_CALLS} ? 1 : 0,
+ STRESSTEST_UTF8_UPGRADE_GENERATED_COLLAPSER_SOURCE => $ENV{DBIC_STRESSTEST_UTF8_UPGRADE_GENERATED_COLLAPSER_SOURCE} ? 1 : 0,
+
+ STRESSTEST_COLUMN_INFO_UNAWARE_STORAGE => $ENV{DBIC_STRESSTEST_COLUMN_INFO_UNAWARE_STORAGE} ? 1 : 0,
+
IV_SIZE => $Config{ivsize},
OS_NAME => $^O,
use Storable 'nfreeze';
use Scalar::Util qw(weaken blessed reftype);
use List::Util qw(first);
+use Sub::Quote qw(qsub quote_sub);
-# DO NOT edit away without talking to riba first, he will just put it back
-# BEGIN pre-Moo2 import block
-BEGIN {
- my $initial_fatal_bits = (${^WARNING_BITS}||'') & $warnings::DeadBits{all};
-
- local $ENV{PERL_STRICTURES_EXTRA} = 0;
- # load all of these now, so that lazy-loading does not escape
- # the current PERL_STRICTURES_EXTRA setting
- require Sub::Quote;
- require Sub::Defer;
-
- Sub::Quote->import('quote_sub');
- ${^WARNING_BITS} &= ( $initial_fatal_bits | ~ $warnings::DeadBits{all} );
-}
-sub qsub ($) { goto "e_sub } # no point depping on new Moo just for this
-# END pre-Moo2 import block
+# Already correctly prototyped: perlbrew exec perl -MStorable -e 'warn prototype \&Storable::dclone'
+BEGIN { *deep_clone = \&Storable::dclone }
use base 'Exporter';
our @EXPORT_OK = qw(
- sigwarn_silencer modver_gt_or_eq
+ sigwarn_silencer modver_gt_or_eq modver_gt_or_eq_and_lt
fail_on_internal_wantarray fail_on_internal_call
refdesc refcount hrefaddr is_exception
- quote_sub qsub perlstring serialize
+ quote_sub qsub perlstring serialize deep_clone
UNRESOLVABLE_CONDITION
);
eval { $mod->VERSION($ver) } ? 1 : 0;
}
+sub modver_gt_or_eq_and_lt ($$$) {
+ my ($mod, $v_ge, $v_lt) = @_;
+
+ croak "Nonsensical maximum version supplied"
+ if ! defined $v_lt or $v_lt =~ /[^0-9\.\_]/;
+
+ return (
+ modver_gt_or_eq($mod, $v_ge)
+ and
+ ! modver_gt_or_eq($mod, $v_lt)
+ ) ? 1 : 0;
+}
+
{
my $list_ctx_ok_stack_marker;