This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update regen/feature.pl
author☢ ℕicolas ℝ <nicolas@atoomic.org>
Wed, 29 Jul 2020 17:23:01 +0000 (11:23 -0600)
committerTodd Rinaldo <toddr@cpan.org>
Thu, 30 Jul 2020 21:46:58 +0000 (16:46 -0500)
Features bundles are built on top of each other.

This change make it easier to read what features
were added from one version to another.
It also helps identify similar bundles.

Features are also now sorted on pod.

Enforce strict & warnings to generate feature.pm

lib/feature.pm
regen/feature.pl

index c2733d9..1d3711e 100644 (file)
@@ -5,7 +5,7 @@
 
 package feature;
 
-our $VERSION = '1.59';
+our $VERSION = '1.60';
 
 our %feature = (
     fc              => 'feature_fc',
@@ -388,51 +388,47 @@ The following feature bundles are available:
   --------- -----------------
   :default  indirect
 
-  :5.10     say state switch indirect
+  :5.10     indirect say state switch
 
-  :5.12     say state switch unicode_strings indirect
+  :5.12     indirect say state switch unicode_strings
 
-  :5.14     say state switch unicode_strings indirect
+  :5.14     indirect say state switch unicode_strings
 
-  :5.16     say state switch unicode_strings
-            unicode_eval evalbytes current_sub fc
-            indirect
+  :5.16     current_sub evalbytes fc indirect say state
+            switch unicode_eval unicode_strings
 
-  :5.18     say state switch unicode_strings
-            unicode_eval evalbytes current_sub fc
-            indirect
+  :5.18     current_sub evalbytes fc indirect say state
+            switch unicode_eval unicode_strings
 
-  :5.20     say state switch unicode_strings
-            unicode_eval evalbytes current_sub fc
-            indirect
+  :5.20     current_sub evalbytes fc indirect say state
+            switch unicode_eval unicode_strings
 
-  :5.22     say state switch unicode_strings
-            unicode_eval evalbytes current_sub fc
-            indirect
+  :5.22     current_sub evalbytes fc indirect say state
+            switch unicode_eval unicode_strings
 
-  :5.24     say state switch unicode_strings
-            unicode_eval evalbytes current_sub fc
-            postderef_qq indirect
+  :5.24     current_sub evalbytes fc indirect
+            postderef_qq say state switch unicode_eval
+            unicode_strings
 
-  :5.26     say state switch unicode_strings
-            unicode_eval evalbytes current_sub fc
-            postderef_qq indirect
+  :5.26     current_sub evalbytes fc indirect
+            postderef_qq say state switch unicode_eval
+            unicode_strings
 
-  :5.28     say state switch unicode_strings
-            unicode_eval evalbytes current_sub fc
-            postderef_qq bitwise indirect
+  :5.28     bitwise current_sub evalbytes fc indirect
+            postderef_qq say state switch unicode_eval
+            unicode_strings
 
-  :5.30     say state switch unicode_strings
-            unicode_eval evalbytes current_sub fc
-            postderef_qq bitwise indirect
+  :5.30     bitwise current_sub evalbytes fc indirect
+            postderef_qq say state switch unicode_eval
+            unicode_strings
 
-  :5.32     say state switch unicode_strings
-            unicode_eval evalbytes current_sub fc
-            postderef_qq bitwise indirect
+  :5.32     bitwise current_sub evalbytes fc indirect
+            postderef_qq say state switch unicode_eval
+            unicode_strings
 
-  :5.34     say state switch unicode_strings
-            unicode_eval evalbytes current_sub fc
-            postderef_qq bitwise indirect
+  :5.34     bitwise current_sub evalbytes fc indirect
+            postderef_qq say state switch unicode_eval
+            unicode_strings
 
 The C<:default> bundle represents the feature set that is enabled before
 any C<use feature> or C<no feature> declaration.
index f312e81..cab3928 100755 (executable)
@@ -14,8 +14,9 @@ BEGIN {
     require './regen/regen_lib.pl';
     push @INC, './lib';
 }
-use strict ;
 
+use strict;
+use warnings;
 
 ###########################################################################
 # Hand-editable data
@@ -44,33 +45,36 @@ my %feature = (
 #       be changed to account.
 
 # 5.odd implies the next 5.even, but an explicit 5.even can override it.
+
+# features bundles
+use constant V5_9_5 => sort qw{say state switch indirect};
+use constant V5_11  => sort ( +V5_9_5, qw{unicode_strings} );
+use constant V5_15  => sort ( +V5_11, qw{unicode_eval evalbytes current_sub fc} );
+use constant V5_23  => sort ( +V5_15, qw{postderef_qq} );
+use constant V5_27  => sort ( +V5_23, qw{bitwise} );
+
 my %feature_bundle = (
-     all     => [ keys %feature ],
-     default =>        [qw(indirect)],
-    "5.9.5"  =>        [qw(say state switch indirect)],
-    "5.10"   =>        [qw(say state switch indirect)],
-    "5.11"   =>        [qw(say state switch unicode_strings indirect)],
-    "5.13"   =>        [qw(say state switch unicode_strings indirect)],
-    "5.15"   =>        [qw(say state switch unicode_strings unicode_eval
-                   evalbytes current_sub fc indirect)],
-    "5.17"   =>        [qw(say state switch unicode_strings unicode_eval
-                   evalbytes current_sub fc indirect)],
-    "5.19"   =>        [qw(say state switch unicode_strings unicode_eval
-                   evalbytes current_sub fc indirect)],
-    "5.21"   =>        [qw(say state switch unicode_strings unicode_eval
-                   evalbytes current_sub fc indirect)],
-    "5.23"   =>        [qw(say state switch unicode_strings unicode_eval
-                   evalbytes current_sub fc postderef_qq indirect)],
-    "5.25"   =>        [qw(say state switch unicode_strings unicode_eval
-                   evalbytes current_sub fc postderef_qq indirect)],
-    "5.27"   =>        [qw(say state switch unicode_strings unicode_eval
-                   evalbytes current_sub fc postderef_qq bitwise indirect)],
-    "5.29"   =>        [qw(say state switch unicode_strings unicode_eval
-                   evalbytes current_sub fc postderef_qq bitwise indirect)],
-    "5.31"   =>        [qw(say state switch unicode_strings unicode_eval
-                   evalbytes current_sub fc postderef_qq bitwise indirect)],
-    "5.33"   =>        [qw(say state switch unicode_strings unicode_eval
-                   evalbytes current_sub fc postderef_qq bitwise indirect)],
+    all     => [ sort keys %feature ],
+    default => [ qw{indirect} ],
+    # using 5.9.5 features bundle
+    "5.9.5" => [ +V5_9_5 ],
+    "5.10"  => [ +V5_9_5 ],
+    # using 5.11 features bundle
+    "5.11"  => [ +V5_11 ],
+    "5.13"  => [ +V5_11 ],
+    # using 5.15 features bundle
+    "5.15"  => [ +V5_15 ],
+    "5.17"  => [ +V5_15 ],
+    "5.19"  => [ +V5_15 ],
+    "5.21"  => [ +V5_15 ],
+    # using 5.23 features bundle
+    "5.23"  => [ +V5_23 ],
+    "5.25"  => [ +V5_23 ],
+    # using 5.27 features bundle
+    "5.27"  => [ +V5_27 ],
+    "5.29"  => [ +V5_27 ],
+    "5.31"  => [ +V5_27 ],
+    "5.33"  => [ +V5_27 ],
 );
 
 my @noops = qw( postderef lexical_subs );
@@ -471,7 +475,7 @@ read_only_bottom_close_and_rename($h);
 __END__
 package feature;
 
-our $VERSION = '1.59';
+our $VERSION = '1.60';
 
 FEATURES