X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/429a5ce7398d47be4197dc655076a6fb2a8dc641..5f8a8dc2063e97069e9cba3dcf0af31374112448:/ext/B/defsubs_h.PL diff --git a/ext/B/defsubs_h.PL b/ext/B/defsubs_h.PL index 7f4ea30..eefaa7e 100644 --- a/ext/B/defsubs_h.PL +++ b/ext/B/defsubs_h.PL @@ -4,6 +4,7 @@ #!perl my ($out) = __FILE__ =~ /(^.*)\.PL/i; $out =~ s/_h$/.h/; +unlink $out if -l $out; open(OUT,">$out") || die "Cannot open $file:$!"; print "Extracting $out...\n"; print OUT <<"END"; @@ -13,23 +14,59 @@ print OUT <<"END"; END foreach my $const (qw( - AVf_REAL + CVf_ANON + CVf_ASSERTION + CVf_CLONE + CVf_CLONED + CVf_CONST + CVf_LOCKED + CVf_LVALUE + CVf_METHOD + CVf_NODEBUG + CVf_UNIQUE + CVf_WEAKOUTSIDE + GVf_IMPORTED_AV + GVf_IMPORTED_CV + GVf_IMPORTED_HV + GVf_IMPORTED_SV HEf_SVKEY - SVf_READONLY SVTYPEMASK - GVf_IMPORTED_AV GVf_IMPORTED_HV - GVf_IMPORTED_SV GVf_IMPORTED_CV - CVf_CLONE CVf_CLONED CVf_ANON CVf_OLDSTYLE - CVf_UNIQUE CVf_NODEBUG CVf_METHOD CVf_LOCKED - CVf_LVALUE CVf_CONST CVf_WEAKOUTSIDE CVf_ASSERTION - SVpad_OUR SVf_FAKE SVf_IVisUV - SVf_IOK SVf_NOK SVf_POK SVf_ROK - SVp_IOK SVp_NOK SVp_POK - SVt_PVGV SVt_PVHV - SVs_RMG SVs_SMG + SVTYPEMASK + SVf_FAKE + SVf_IOK + SVf_IVisUV + SVf_NOK + SVf_POK + SVf_READONLY + SVf_ROK + SVp_IOK + SVp_NOK + SVp_POK + SVpad_OUR + SVs_RMG + SVs_SMG + SVt_PVGV + SVt_PVHV + PAD_FAKELEX_ANON + PAD_FAKELEX_MULTI )) { doconst($const); } + +if ($] < 5.009) { + # This is only present in 5.10, but it's useful to B::Deparse to be able + # to import a dummy value from B + doconst(OPpPAD_STATE); +} + +if ($] >= 5.009) { + # Constant not present in 5.8.x + doconst(CVf_ISXSUB); +} else { + # Constant not present after 5.8.x + doconst(AVf_REAL); +} + foreach my $file (qw(op.h cop.h)) { my $path = $^O eq 'MacOS' ? ":::$file" : "../../$file";