In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/eab82fd6486ac0971d2f1b8800432a3b8f0b315c?hp=b4b2fefd8bdd72b0f88245101f270e9dc39568f6>

- Log -----------------------------------------------------------------
commit eab82fd6486ac0971d2f1b8800432a3b8f0b315c
Merge: b4b2fef 5730025
Author: Chris 'BinGOs' Williams <[email protected]>
Date:   Tue May 21 13:32:53 2013 +0100

    Merge branch 'smoke-me/coreutils' into blead
-----------------------------------------------------------------------

Summary of changes:
 dist/Module-CoreList/lib/Module/CoreList/Utils.pm |  854 +++++++++++++++++++++
 dist/Module-CoreList/t/utils.t                    |   23 +
 2 files changed, 877 insertions(+), 0 deletions(-)
 create mode 100644 dist/Module-CoreList/lib/Module/CoreList/Utils.pm
 create mode 100644 dist/Module-CoreList/t/utils.t

diff --git a/dist/Module-CoreList/lib/Module/CoreList/Utils.pm 
b/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
new file mode 100644
index 0000000..a04ef6c
--- /dev/null
+++ b/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
@@ -0,0 +1,854 @@
+package Module::CoreList::Utils;
+
+use strict;
+use warnings;
+use vars qw[$VERSION %utilities];
+use Module::CoreList;
+use Module::CoreList::TieHashDelta;
+
+$VERSION = '2.91';
+
+sub utilities {
+    my $perl = shift;
+    $perl = shift if eval { $perl->isa(__PACKAGE__) };
+    return unless $perl or exists $utilities{$perl};
+    return sort keys %{ $utilities{$perl} };
+}
+
+sub first_release_raw {
+    my $util = shift;
+    $util = shift if eval { $util->isa(__PACKAGE__) };
+      #and scalar @_ and $_[0] =~ 
m#\A[a-zA-Z_][0-9a-zA-Z_]*(?:(::|')[0-9a-zA-Z_]+)*\z#;
+    my $version = shift;
+
+    my @perls = $version
+        ? grep { exists $utilities{$_}{ $util } &&
+                        $utilities{$_}{ $util } ge $version } keys %utilities
+        : grep { exists $utilities{$_}{ $util }             } keys %utilities;
+
+    return grep { exists $Module::CoreList::released{$_} } @perls;
+}
+
+sub first_release_by_date {
+    my @perls = &first_release_raw;
+    return unless @perls;
+    return (sort { $Module::CoreList::released{$a} cmp 
$Module::CoreList::released{$b} } @perls)[0];
+}
+
+sub first_release {
+    my @perls = &first_release_raw;
+    return unless @perls;
+    return (sort { $a cmp $b } @perls)[0];
+}
+
+sub removed_from {
+  my @perls = &removed_raw;
+  return shift @perls;
+}
+
+sub removed_from_by_date {
+  my @perls = sort { $Module::CoreList::released{$a} cmp 
$Module::CoreList::released{$b} } &removed_raw;
+  return shift @perls;
+}
+
+sub removed_raw {
+  my $util = shift;
+  $util = shift if eval { $util->isa(__PACKAGE__) };
+  return unless my @perls = sort { $a cmp $b } first_release_raw($util);
+  @perls = grep { exists $Module::CoreList::released{$_} } @perls;
+  my $last = pop @perls;
+  my @removed = grep { $_ > $last } sort { $a cmp $b } keys %utilities;
+  return @removed;
+}
+
+my %delta = (
+    5 => {
+        changed => {
+            'a2p'                   => '1',
+            'c2ph'                  => '1',
+            'cppstdin'              => '1',
+            'find2perl'             => '1',
+            'pstruct'               => '1',
+            's2p'                   => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.001 => {
+        delta_from => 5,
+        changed => {
+            'h2xs'                  => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.002 => {
+        delta_from => 5.001,
+        changed => {
+            'h2ph'                  => '1',
+            'perlbug'               => '1',
+            'perldoc'               => '1',
+            'pod2html'              => '1',
+            'pod2latex'             => '1',
+            'pod2man'               => '1',
+            'pod2text'              => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.00307 => {
+        delta_from => 5.002,
+        changed => {
+            'pl2pm'                 => '1',
+        },
+        removed => {
+           'cppstdin'              => 1,
+           'pstruct'               => 1,
+        }
+    },
+
+    5.004 => {
+        delta_from => 5.00307,
+        changed => {
+            'splain'                => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.005 => {
+        delta_from => 5.00405,
+        changed => {
+            'perlcc'                => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.00503 => {
+        delta_from => 5.005,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.00405 => {
+        delta_from => 5.004,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.006 => {
+        delta_from => 5.00504,
+        changed => {
+            'dprofpp'               => '1',
+            'pod2usage'             => '1',
+            'podchecker'            => '1',
+            'podselect'             => '1',
+            'pstruct'               => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.006001 => {
+        delta_from => 5.006,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.007003 => {
+        delta_from => 5.006002,
+        changed => {
+            'libnetcfg'             => '1',
+            'perlivp'               => '1',
+            'psed'                  => '1',
+            'xsubpp'                => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.008 => {
+        delta_from => 5.007003,
+        changed => {
+            'enc2xs'                => '1',
+            'piconv'                => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.008001 => {
+        delta_from => 5.008,
+        changed => {
+            'cpan'                  => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.009 => {
+        delta_from => 5.008009,
+        changed => {
+        },
+        removed => {
+           'corelist'              => 1,
+           'instmodsh'             => 1,
+           'prove'                 => 1,
+        }
+    },
+
+    5.008002 => {
+        delta_from => 5.008001,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.006002 => {
+        delta_from => 5.006001,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.008003 => {
+        delta_from => 5.008002,
+        changed => {
+            'instmodsh'             => '1',
+            'prove'                 => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.00504 => {
+        delta_from => 5.00503,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.009001 => {
+        delta_from => 5.009,
+        changed => {
+            'instmodsh'             => '1',
+            'prove'                 => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.008004 => {
+        delta_from => 5.008003,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.008005 => {
+        delta_from => 5.008004,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.008006 => {
+        delta_from => 5.008005,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.009002 => {
+        delta_from => 5.009001,
+        changed => {
+            'corelist'              => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.008007 => {
+        delta_from => 5.008006,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.009003 => {
+        delta_from => 5.009002,
+        changed => {
+            'ptar'                  => '1',
+            'ptardiff'              => '1',
+            'shasum'                => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.008008 => {
+        delta_from => 5.008007,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.009004 => {
+        delta_from => 5.009003,
+        changed => {
+            'config_data'           => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.009005 => {
+        delta_from => 5.009004,
+        changed => {
+            'cpan2dist'             => '1',
+            'cpanp'                 => '1',
+            'cpanp-run-perl'        => '1',
+        },
+        removed => {
+           'perlcc'                => 1,
+        }
+    },
+
+    5.010000 => {
+        delta_from => 5.009005,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.008009 => {
+        delta_from => 5.008008,
+        changed => {
+            'corelist'              => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.010001 => {
+        delta_from => 5.010000,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.011 => {
+        delta_from => 5.010001,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.011001 => {
+        delta_from => 5.011,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.011002 => {
+        delta_from => 5.011001,
+        changed => {
+            'perlthanks'            => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.011003 => {
+        delta_from => 5.011002,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.011004 => {
+        delta_from => 5.011003,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.011005 => {
+        delta_from => 5.011004,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.012 => {
+        delta_from => 5.011005,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.013 => {
+        delta_from => 5.012005,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.012001 => {
+        delta_from => 5.012,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.013001 => {
+        delta_from => 5.013,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.013002 => {
+        delta_from => 5.013001,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.013003 => {
+        delta_from => 5.013002,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.013004 => {
+        delta_from => 5.013003,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.012002 => {
+        delta_from => 5.012001,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.013005 => {
+        delta_from => 5.013004,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.013006 => {
+        delta_from => 5.013005,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.013007 => {
+        delta_from => 5.013006,
+        changed => {
+            'ptargrep'              => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.013008 => {
+        delta_from => 5.013007,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.013009 => {
+        delta_from => 5.013008,
+        changed => {
+            'json_pp'               => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.012003 => {
+        delta_from => 5.012002,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.013010 => {
+        delta_from => 5.013009,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.013011 => {
+        delta_from => 5.013010,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.014 => {
+        delta_from => 5.013011,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.014001 => {
+        delta_from => 5.014,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.015 => {
+        delta_from => 5.014004,
+        changed => {
+        },
+        removed => {
+           'dprofpp'               => 1,
+        }
+    },
+
+    5.012004 => {
+        delta_from => 5.012003,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.015001 => {
+        delta_from => 5.015,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.015002 => {
+        delta_from => 5.015001,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.015003 => {
+        delta_from => 5.015002,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.014002 => {
+        delta_from => 5.014001,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.015004 => {
+        delta_from => 5.015003,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.015005 => {
+        delta_from => 5.015004,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.015006 => {
+        delta_from => 5.015005,
+        changed => {
+            'zipdetails'            => '1',
+        },
+        removed => {
+        }
+    },
+
+    5.015007 => {
+        delta_from => 5.015006,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.015008 => {
+        delta_from => 5.015007,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.015009 => {
+        delta_from => 5.015008,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.016 => {
+        delta_from => 5.015009,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.017 => {
+        delta_from => 5.016003,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.017001 => {
+        delta_from => 5.017,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.017002 => {
+        delta_from => 5.017001,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.016001 => {
+        delta_from => 5.016,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.017003 => {
+        delta_from => 5.017002,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.017004 => {
+        delta_from => 5.017003,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.014003 => {
+        delta_from => 5.014002,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.017005 => {
+        delta_from => 5.017004,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.016002 => {
+        delta_from => 5.016001,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.012005 => {
+        delta_from => 5.012004,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.017006 => {
+        delta_from => 5.017005,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.017007 => {
+        delta_from => 5.017006,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.017008 => {
+        delta_from => 5.017007,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.017009 => {
+        delta_from => 5.017008,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.014004 => {
+        delta_from => 5.014003,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.016003 => {
+        delta_from => 5.016002,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.017010 => {
+        delta_from => 5.017009,
+        changed => {
+        },
+        removed => {
+        }
+    },
+
+    5.017011 => {
+        delta_from => 5.017010,
+        changed => {
+        },
+        removed => {
+        }
+    },
+    5.018000 => {
+        delta_from => 5.017011,
+        changed => {
+        },
+        removed => {
+        }
+    },
+    5.019000 => {
+        delta_from => 5.018000,
+        changed => {
+        },
+        removed => {
+            'cpan2dist'             => '1',
+            'cpanp'                 => '1',
+            'cpanp-run-perl'        => '1',
+            'pod2latex'             => '1',
+        }
+    },
+);
+
+for my $version (sort { $a <=> $b } keys %delta) {
+    my $data = $delta{$version};
+
+    tie %{$utilities{$version}}, 'Module::CoreList::TieHashDelta',
+        $data->{changed}, $data->{removed},
+        $data->{delta_from} ? $utilities{$data->{delta_from}} : undef;
+}
+
+# Create aliases with trailing zeros for $] use
+
+$utilities{'5.000'} = $utilities{5};
+
+_create_aliases(\%utilities);
+
+sub _create_aliases {
+    my ($hash) = @_;
+
+    for my $version (keys %$hash) {
+        next unless $version >= 5.010;
+
+        my $padded = sprintf "%0.6f", $version;
+
+        # If the version in string form isn't the same as the numeric version,
+        # alias it.
+        if ($padded ne $version && $version == $padded) {
+            $hash->{$padded} = $hash->{$version};
+        }
+    }
+}
+
+'foo';
diff --git a/dist/Module-CoreList/t/utils.t b/dist/Module-CoreList/t/utils.t
new file mode 100644
index 0000000..4822495
--- /dev/null
+++ b/dist/Module-CoreList/t/utils.t
@@ -0,0 +1,23 @@
+use strict;
+use warnings;
+use Test::More tests => 9;
+
+BEGIN { require_ok('Module::CoreList::Utils'); }
+
+ok( defined $Module::CoreList::Utils::utilities{5}{a2p}, '5 had a2p' );
+is( Module::CoreList::Utils->first_release('a2p'), 5, 'a2p first released in 
5' );
+is( Module::CoreList::Utils::first_release('a2p'), 5, 'a2p first released in 
5' );
+is( Module::CoreList::Utils->first_release('corelist'), 5.008009, 'corelist 
with v5.8.9');
+is( Module::CoreList::Utils->first_release_by_date('corelist'), 5.009002, 
'corelist with v5.9.2');
+is( Module::CoreList::Utils::first_release_by_date('corelist'), 5.009002, 
'corelist with v5.9.2');
+{
+  my @expected = qw(a2p c2ph cppstdin find2perl h2xs pstruct s2p);
+  {
+    my @foo = Module::CoreList::Utils->utilities(5.001);
+    is_deeply( \@foo, \@expected, '5.001 utils all present and correct' );
+  }
+  {
+    my @foo = Module::CoreList::Utils::utilities(5.001);
+    is_deeply( \@foo, \@expected, '5.001 utils all present and correct' );
+  }
+}

--
Perl5 Master Repository

Reply via email to