push @DEFINES, '-DVMG_PERL_PATCHLEVEL=' . $pl;
print $pl, "\n";
} else {
+ $pl = undef;
print "none\n";
}
-my $is_as = 0;
+my $as_perl = eval {
+ require ActivePerl;
+ defined &ActivePerl::BUILD ? ActivePerl::BUILD() : undef
+};
+
+my $is_as_822 = 0;
print "Checking if this is ActiveState Perl 5.8.8 build 822 or higher... ";
-if ($^V eq v5.8.8) {
- eval {
- require ActivePerl;
- 1;
- } and do {
- if (defined &ActivePerl::BUILD) {
- my $build = int ActivePerl::BUILD();
- if ($build >= 822) {
- $is_as = 1;
- push @DEFINES, '-DVMG_COMPAT_ARRAY_PUSH_NOLEN=1';
- }
- }
+if ($^V eq v5.8.8 and defined $as_perl and $as_perl >= 822) {
+ $is_as_822 = 1;
+ push @DEFINES, '-DVMG_COMPAT_ARRAY_PUSH_NOLEN=1';
+}
+print $is_as_822 ? "yes\n" : "no\n";
+
+my $is_5110rel = 0;
+print "Checking if this is a released perl 5.11.0 or higher... ";
+if ($^V ge v5.11.0 and not defined $pl) {
+ my $describe = $Config{git_describe};
+ # An empty 'describe' is fine
+ if (defined $describe and $describe !~ /^GitLive-/) {
+ $is_5110rel = 1;
+ push @DEFINES, '-DVMG_COMPAT_ARRAY_PUSH_NOLEN=0';
}
}
-print $is_as ? "yes\n" : "no\n";
+print $is_5110rel ? "yes\n" : "no\n";
# Threads, Windows and 5.8.x don't seem to be best friends
if ($^O eq 'MSWin32' && $^V lt v5.9.0) {
push @DEFINES, '-DVMG_MULTIPLICITY=0';
+ print "Thread safety disabled for perl 5.8.x on Windows.\n"
}
# Fork emulation got "fixed" in 5.10.1
if ($^O eq 'MSWin32' && $^V lt v5.10.1) {
push @DEFINES, '-DVMG_FORKSAFE=0';
+ print "Fork safety not ensured for perl 5.8.x and 5.10.0 on Windows.\n";
}
@DEFINES = (DEFINE => join ' ', @DEFINES) if @DEFINES;