This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
pad.c:pad_push: Don’t bother with IS_PADGV
[perl5.git] / regen / keywords.pl
index 5f36956..b77fd67 100755 (executable)
@@ -33,6 +33,8 @@ while (<DATA>) {
     push @{$by_strength{$strength}}, $keyword;
 }
 
+# If this hash changes, make sure the equivalent hash in
+# dist/B-Deparse/Deparse.pm is also updated.
 my %feature_kw = (
        given   => 'switch',
        when    => 'switch',
@@ -43,6 +45,12 @@ my %feature_kw = (
        say     => 'say',
 
        state   => 'state',
+
+       evalbytes=>'evalbytes',
+
+       __SUB__ => '__SUB__',
+
+       fc      => 'fc',
        );
 
 my %pos = map { ($_ => 1) } @{$by_strength{'+'}};
@@ -62,12 +70,11 @@ print $c <<"END";
 #define PERL_IN_KEYWORDS_C
 #include "perl.h"
 #include "keywords.h"
+#include "feature.h"
 
 I32
 Perl_keyword (pTHX_ const char *name, I32 len, bool all_keywords)
 {
-  dVAR;
-
   PERL_ARGS_ASSERT_KEYWORD;
 
 $switch
@@ -89,7 +96,7 @@ END
   elsif (my $feature = $feature_kw{$k}) {
     $feature =~ s/([\\"])/\\$1/g;
     return <<END;
-return (all_keywords || FEATURE_IS_ENABLED("$feature") ? ${sign}KEY_$k : 0);
+return (all_keywords || FEATURE_\U$feature\E_IS_ENABLED ? ${sign}KEY_$k : 0);
 END
   }
   return <<END;
@@ -99,6 +106,10 @@ END
 
 read_only_bottom_close_and_rename($_, [$0]) foreach $c, $h;
 
+
+# coresub_op in op.c expects __FILE__, __LINE__ and __PACKAGE__ to be the
+# first three.
+
 __END__
 
  NULL
@@ -107,10 +118,10 @@ __END__
 -__PACKAGE__
 +__DATA__
 +__END__
+-__SUB__
 +AUTOLOAD
 +BEGIN
 +UNITCHECK
--CORE
 +DESTROY
 +END
 +INIT
@@ -159,10 +170,12 @@ __END__
 -eof
 -eq
 +eval
+-evalbytes
 -exec
 +exists
 -exit
 -exp
+-fc
 -fcntl
 -fileno
 -flock