This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Reset the iterator when an array is cleared
[perl5.git] / regen / feature.pl
index 1c91fa2..1a85d0a 100755 (executable)
@@ -37,19 +37,16 @@ my %feature = (
 #       versions, any code below that uses %BundleRanges will have to
 #       be changed to account.
 
+# 5.odd implies the next 5.even, but an explicit 5.even can override it.
 my %feature_bundle = (
      all     => [ keys %feature ],
      default =>        [qw(array_base)],
     "5.9.5"  =>        [qw(say state switch array_base)],
     "5.10"   =>        [qw(say state switch array_base)],
     "5.11"   =>        [qw(say state switch unicode_strings array_base)],
-    "5.12"   =>        [qw(say state switch unicode_strings array_base)],
     "5.13"   =>        [qw(say state switch unicode_strings array_base)],
-    "5.14"   =>        [qw(say state switch unicode_strings array_base)],
     "5.15"   =>        [qw(say state switch unicode_strings unicode_eval
                    evalbytes current_sub fc)],
-    "5.16"   =>        [qw(say state switch unicode_strings unicode_eval
-                   evalbytes current_sub fc)],
     "5.17"   =>        [qw(say state switch unicode_strings unicode_eval
                    evalbytes current_sub fc)],
 );
@@ -58,6 +55,11 @@ my %feature_bundle = (
 ###########################################################################
 # More data generated from the above
 
+for (keys %feature_bundle) {
+    next unless /^5\.(\d*[13579])\z/;
+    $feature_bundle{"5.".($1+1)} ||= $feature_bundle{$_};
+}
+
 my %UniqueBundles; # "say state switch" => 5.10
 my %Aliases;       #  5.12 => 5.11
 for( sort keys %feature_bundle ) {
@@ -336,7 +338,7 @@ read_only_bottom_close_and_rename($h);
 __END__
 package feature;
 
-our $VERSION = '1.28';
+our $VERSION = '1.29';
 
 FEATURES
 
@@ -435,7 +437,8 @@ C<use feature 'unicode_strings'> tells the compiler to use Unicode semantics
 in all string operations executed within its scope (unless they are also
 within the scope of either C<use locale> or C<use bytes>).  The same applies
 to all regular expressions compiled within the scope, even if executed outside
-it.
+it.  It does not change the internal representation of strings, but only how
+they are interpreted.
 
 C<no feature 'unicode_strings'> tells the compiler to use the traditional
 Perl semantics wherein the native character set semantics is used unless it is