Sync Config::Perl::V to version 0.21
authorH.Merijn Brand <h.m.brand@xs4all.nl>
Fri, 1 Aug 2014 11:14:09 +0000 (13:14 +0200)
committerH.Merijn Brand <h.m.brand@xs4all.nl>
Fri, 1 Aug 2014 11:14:09 +0000 (13:14 +0200)
 * Add tests for each major distribution since 5.6.2
 * Better detect build times
 * Sync with 5.20.1

15 files changed:
MANIFEST
Porting/Maintainers.pl
cpan/Config-Perl-V/V.pm
cpan/Config-Perl-V/t/00_pod.t [deleted file]
cpan/Config-Perl-V/t/01_pod.t [deleted file]
cpan/Config-Perl-V/t/10_base.t
cpan/Config-Perl-V/t/20_plv56.t [new file with mode: 0644]
cpan/Config-Perl-V/t/21_plv58.t [new file with mode: 0644]
cpan/Config-Perl-V/t/22_plv510.t [new file with mode: 0644]
cpan/Config-Perl-V/t/23_plv512.t [new file with mode: 0644]
cpan/Config-Perl-V/t/24_plv514.t [new file with mode: 0644]
cpan/Config-Perl-V/t/25_plv516.t [new file with mode: 0644]
cpan/Config-Perl-V/t/26_plv518.t [new file with mode: 0644]
cpan/Config-Perl-V/t/26_plv5182.t [new file with mode: 0644]
cpan/Config-Perl-V/t/27_plv5200.t [new file with mode: 0644]

index 99ce663..3c38890 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -186,11 +186,18 @@ cpan/Compress-Raw-Zlib/zlib-src/zlib.h            Compress::Raw::Zlib
 cpan/Compress-Raw-Zlib/zlib-src/zutil.c                Compress::Raw::Zlib
 cpan/Compress-Raw-Zlib/zlib-src/zutil.h                Compress::Raw::Zlib
 cpan/Compress-Raw-Zlib/Zlib.xs                 Compress::Raw::Zlib
-cpan/Config-Perl-V/t/00_pod.t                  Config::Perl::V
-cpan/Config-Perl-V/t/01_pod.t                  Config::Perl::V
 cpan/Config-Perl-V/t/10_base.t                 Config::Perl::V
 cpan/Config-Perl-V/t/20_plv510.t               Config::Perl::V
+cpan/Config-Perl-V/t/20_plv56.t                        Config::Perl::V
 cpan/Config-Perl-V/t/21_plv518.t               Config::Perl::V
+cpan/Config-Perl-V/t/21_plv58.t                        Config::Perl::V
+cpan/Config-Perl-V/t/22_plv510.t               Config::Perl::V
+cpan/Config-Perl-V/t/23_plv512.t               Config::Perl::V
+cpan/Config-Perl-V/t/24_plv514.t               Config::Perl::V
+cpan/Config-Perl-V/t/25_plv516.t               Config::Perl::V
+cpan/Config-Perl-V/t/26_plv5182.t              Config::Perl::V
+cpan/Config-Perl-V/t/26_plv518.t               Config::Perl::V
+cpan/Config-Perl-V/t/27_plv5200.t              Config::Perl::V
 cpan/Config-Perl-V/V.pm                                Config::Perl::V
 cpan/CPAN/lib/App/Cpan.pm              helper package for CPAN.pm
 cpan/CPAN/lib/CPAN/API/HOWTO.pod               recipe book for programming with CPAN.pm
index 4f6e9d8..f80fb86 100755 (executable)
@@ -224,9 +224,13 @@ use File::Glob qw(:case);
     },
 
     'Config::Perl::V' => {
-        'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.20.tgz',
+        'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.21.tgz',
         'FILES'        => q[cpan/Config-Perl-V],
-        'EXCLUDED'     => ['examples/show-v.pl'],
+        'EXCLUDED'     => [qw(
+               examples/show-v.pl
+               t/00_pod.t
+               t/01_pod.t
+               )],
     },
 
     'constant' => {
index 066acac..738a53c 100644 (file)
@@ -8,7 +8,7 @@ use warnings;
 use Config;
 use Exporter;
 use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
-$VERSION     = "0.20";
+$VERSION     = "0.21";
 @ISA         = ("Exporter");
 @EXPORT_OK   = qw( plv2hash summary myconfig signature );
 %EXPORT_TAGS = (
@@ -29,21 +29,21 @@ $VERSION     = "0.20";
 my %BTD = map { $_ => 0 } qw(
 
     DEBUGGING
-    NO_MATHOMS
     NO_HASH_SEED
+    NO_MATHOMS
     NO_TAINT_SUPPORT
     PERL_BOOL_AS_CHAR
     PERL_DISABLE_PMC
     PERL_DONT_CREATE_GVSV
     PERL_EXTERNAL_GLOB
-    PERL_HASH_FUNC_SIPHASH
-    PERL_HASH_FUNC_SDBM
     PERL_HASH_FUNC_DJB2
-    PERL_HASH_FUNC_SUPERFAST
     PERL_HASH_FUNC_MURMUR3
     PERL_HASH_FUNC_ONE_AT_A_TIME
     PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
     PERL_HASH_FUNC_ONE_AT_A_TIME_OLD
+    PERL_HASH_FUNC_SDBM
+    PERL_HASH_FUNC_SIPHASH
+    PERL_HASH_FUNC_SUPERFAST
     PERL_IS_MINIPERL
     PERL_MALLOC_WRAP
     PERL_MEM_LOG
@@ -78,12 +78,13 @@ my %BTD = map { $_ => 0 } qw(
     HAVE_INTERP_INTERN
     MULTIPLICITY
     MYMALLOC
-    PERLIO_LAYERS
     PERL_DEBUG_READONLY_COW
     PERL_DEBUG_READONLY_OPS
     PERL_GLOBAL_STRUCT
+    PERL_GLOBAL_STRUCT_PRIVATE
     PERL_IMPLICIT_CONTEXT
     PERL_IMPLICIT_SYS
+    PERLIO_LAYERS
     PERL_MAD
     PERL_MICRO
     PERL_NEED_APPCTX
@@ -102,6 +103,7 @@ my %BTD = map { $_ => 0 } qw(
     USE_LARGE_FILES
     USE_LOCALE_COLLATE
     USE_LOCALE_NUMERIC
+    USE_LOCALE_TIME
     USE_LONG_DOUBLE
     USE_PERLIO
     USE_REENTRANT_API
@@ -229,27 +231,26 @@ sub _make_derived
 sub plv2hash
 {
     my %config;
-    for (split m/\n+/ => join "\n", @_) {
-
-       if (s/^Summary of my\s+(\S+)\s+\(\s*(.*?)\s*\)//) {
-           $config{"package"} = $1;
-           my $rev = $2;
-           $rev =~ s/^ revision \s+ (\S+) \s*//x and $config{revision} = $1;
-           $rev and $config{version_patchlevel_string} = $rev;
-           my ($rel) = $config{package} =~ m{perl(\d)};
-           my ($vers, $subvers) = $rev =~ m{version\s+(\d+)\s+subversion\s+(\d+)};
-           defined $vers && defined $subvers && defined $rel and
-               $config{version} = "$rel.$vers.$subvers";
-           next;
-           }
 
-       if (s/^\s+(Snapshot of:)\s+(\S+)//) {
-           $config{git_commit_id_title} = $1;
-           $config{git_commit_id}       = $2;
-           next;
-           }
+    my $pv = join "\n" => @_;
+
+    if ($pv =~ m/^Summary of my\s+(\S+)\s+\(\s*(.*?)\s*\)/m) {
+       $config{"package"} = $1;
+       my $rev = $2;
+       $rev =~ s/^ revision \s+ (\S+) \s*//x and $config{revision} = $1;
+       $rev and $config{version_patchlevel_string} = $rev;
+       my ($rel) = $config{"package"} =~ m{perl(\d)};
+       my ($vers, $subvers) = $rev =~ m{version\s+(\d+)\s+subversion\s+(\d+)};
+       defined $vers && defined $subvers && defined $rel and
+           $config{version} = "$rel.$vers.$subvers";
+       }
+
+    if ($pv =~ m/^\s+(Snapshot of:)\s+(\S+)/) {
+       $config{git_commit_id_title} = $1;
+       $config{git_commit_id}       = $2;
+       }
 
-       my %kv = m/\G,?\s*([^=]+)=('[^']+?'|\S+)/gc;
+    if (my %kv = ($pv =~ m/\b(\w+)\s*=\s*('[^']+?'|\S+)/g)) {
 
        while (my ($k, $v) = each %kv) {
            $k =~ s/\s+$//;
@@ -260,8 +261,21 @@ sub plv2hash
            $config{$k} = $v;
            }
        }
+
     my $build = { %empty_build };
+
+    $pv =~ m{^\s+Compiled at\s+(.*)}m
+       and $build->{stamp}   = $1;
+    $pv =~ m{^\s+Locally applied patches:(?:\s+|\n)(.*)}m
+       and $build->{patches} = [ split m/\n+/, $1 ];
+    $pv =~ m{^\s+Compile-time options:(?:\s+|\n)(.*)}m
+       and map { $build->{options}{$_} = 1 } split m/\s+|\n/ => $1;
+
     $build->{osname} = $config{osname};
+    $pv =~ m{^\s+Built under\s+(.*)}m
+       and $build->{osname}  = $1;
+    $config{osname} ||= $build->{osname};
+
     return _make_derived ({
        build           => $build,
        environment     => {},
@@ -322,20 +336,9 @@ sub myconfig
        }
     else {
        #y $pv = qx[$^X -e"sub Config::myconfig{};" -V];
-       my $pv = qx[$^X -V];
-          $pv =~ s{.*?\n\n}{}s;
-          $pv =~ s{\n(?:  \s+|\t\s*)}{\0}g;
-
-       # print STDERR $pv;
-
-       $pv =~ m{^\s+Built under\s+(.*)}m
-           and $build->{osname}  = $1;
-       $pv =~ m{^\s+Compiled at\s+(.*)}m
-           and $build->{stamp}   = $1;
-       $pv =~ m{^\s+Locally applied patches:(?:\s+|\0)(.*)}m
-           and $build->{patches} = [ split m/\0+/, $1 ];
-       $pv =~ m{^\s+Compile-time options:(?:\s+|\0)(.*)}m
-           and map { $build->{options}{$_} = 1 } split m/\s+|\0/ => $1;
+       my $cnf = plv2hash (qx[$^X -V]);
+
+       $build->{$_} = $cnf->{build}{$_} for qw( osname stamp patches options );
        }
 
     my @KEYS = keys %ENV;
diff --git a/cpan/Config-Perl-V/t/00_pod.t b/cpan/Config-Perl-V/t/00_pod.t
deleted file mode 100644 (file)
index 67d0815..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/perl
-
-use Test::More;
-
-eval "use Test::Pod 1.00";
-plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;
-all_pod_files_ok ();
diff --git a/cpan/Config-Perl-V/t/01_pod.t b/cpan/Config-Perl-V/t/01_pod.t
deleted file mode 100644 (file)
index f2c148d..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/perl
-
-use Test::More;
-
-eval "use Test::Pod::Coverage tests => 1";
-plan skip_all => "Test::Pod::Coverage required for testing POD Coverage" if $@;
-pod_coverage_ok ("Config::Perl::V", "Config::Perl::V is covered");
index b840ef5..a0a220c 100644 (file)
@@ -18,9 +18,7 @@ BEGIN {
     }
 
 ok (my $conf = Config::Perl::V::myconfig,      "Read config");
-for (qw( build environment config inc )) {
-    ok (exists $conf->{build},                 "Has build entry");
-    }
+ok (exists $conf->{$_},        "Has $_ entry") for qw( build environment config inc );
 is (lc $conf->{build}{osname}, lc $conf->{config}{osname}, "osname");
 
 SKIP: {
diff --git a/cpan/Config-Perl-V/t/20_plv56.t b/cpan/Config-Perl-V/t/20_plv56.t
new file mode 100644 (file)
index 0000000..f4cc998
--- /dev/null
@@ -0,0 +1,68 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 9;
+    unless ($ENV{PERL_CORE}) {
+       require Test::NoWarnings;
+       Test::NoWarnings->import ();
+       $tests++;
+       }
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Mar 23 2010 17:34:56", "Build time");
+is ($conf->{config}{"package"}, "perl5", "reconstructed \%Config{package}");
+is ($conf->{config}{version}, "5.6.2", "reconstructed \%Config{version}");
+
+__END__
+Summary of my perl5 (revision 5.0 version 6 subversion 2) configuration:
+  Platform:
+    osname=linux, osvers=2.6.31.12-0.2-default, archname=i686-linux-64int-perlio
+    uname='linux nb09 2.6.31.12-0.2-default #1 smp 2010-03-16 21:25:39 +0100 i686 i686 i386 gnulinux '
+    config_args='-Dusedevel -Duse64bitint -Duseperlio -des -Dusedevel -Uinstallusrbinperl -Dprefix=/media/Tux/perls'
+    hint=recommended, useposix=true, d_sigaction=define
+    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
+    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
+    use64bitint=define use64bitall=undef uselongdouble=undef
+  Compiler:
+    cc='cc', ccflags ='-DDEBUGGING -fno-strict-aliasing -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
+    optimize='-O2',
+    cppflags='-DDEBUGGING -fno-strict-aliasing -I/pro/local/include'
+    ccversion='', gccversion='4.4.1 [gcc-4_4-branch revision 150839]', gccosandvers=''
+    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
+    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
+    alignbytes=4, usemymalloc=n, prototype=define
+  Linker and Libraries:
+    ld='cc', ldflags ='-L/pro/local/lib'
+    libpth=/pro/local/lib /lib /usr/lib /usr/local/lib
+    libs=-lnsl -lgdbm -ldb -ldl -lm -lc -lcrypt -lutil
+    perllibs=-lnsl -ldl -lm -lc -lcrypt -lutil
+    libc=/lib/libc-2.10.1.so, so=so, useshrplib=false, libperl=libperl.a
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
+    cccdlflags='-fpic', lddlflags='-shared -L/pro/local/lib'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options: DEBUGGING USE_64_BIT_INT USE_LARGE_FILES
+  Built under linux
+  Compiled at Mar 23 2010 17:34:56
+  @INC:
+    /media/Tux/perls/lib/5.6.2/i686-linux-64int-perlio
+    /media/Tux/perls/lib/5.6.2
+    /media/Tux/perls/lib/site_perl/5.6.2/i686-linux-64int-perlio
+    /media/Tux/perls/lib/site_perl/5.6.2
+    /media/Tux/perls/lib/site_perl
+    .
diff --git a/cpan/Config-Perl-V/t/21_plv58.t b/cpan/Config-Perl-V/t/21_plv58.t
new file mode 100644 (file)
index 0000000..1e6ce62
--- /dev/null
@@ -0,0 +1,72 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 9;
+    unless ($ENV{PERL_CORE}) {
+       require Test::NoWarnings;
+       Test::NoWarnings->import ();
+       $tests++;
+       }
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Oct 21 2010 14:50:53", "Build time");
+is ($conf->{config}{version}, "5.8.9", "reconstructed \%Config{version}");
+is ($conf->{config}{usethreads}, "define", "This was a threaded perl");
+
+__END__
+Summary of my perl5 (revision 5 version 8 subversion 9) configuration:
+  Platform:
+    osname=linux, osvers=2.6.34.7-0.4-desktop, archname=i686-linux-thread-multi-64int-ld
+    uname='linux tux09.procura.nl 2.6.34.7-0.4-desktop #1 smp preempt 2010-10-07 19:07:51 +0200 i686 i686 i386 gnulinux '
+    config_args='-Dusedevel -Dusethreads -Duseithreads -Duse64bitint -Duselongdouble -Duseperlio -des -Dusedevel -Uinstallusrbinperl -Dprefix=/media/Tux/perls-t'
+    hint=recommended, useposix=true, d_sigaction=define
+    usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
+    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
+    use64bitint=define use64bitall=undef uselongdouble=define
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
+    optimize='-O2',
+    cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -I/pro/local/include'
+    ccversion='', gccversion='4.5.0 20100604 [gcc-4_5-branch revision 160292]', gccosandvers=''
+    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
+    ivtype='long long', ivsize=8, nvtype='long double', nvsize=12, Off_t='off_t', lseeksize=8
+    alignbytes=4, prototype=define
+  Linker and Libraries:
+    ld='cc', ldflags ='-L/pro/local/lib'
+    libpth=/pro/local/lib /lib /usr/lib /usr/local/lib
+    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
+    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
+    libc=/lib/libc-2.11.2.so, so=so, useshrplib=false, libperl=libperl.a
+    gnulibc_version='2.11.2'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/pro/local/lib'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options: DEBUGGING MULTIPLICITY PERL_IMPLICIT_CONTEXT
+                        PERL_MALLOC_WRAP THREADS_HAVE_PIDS USE_64_BIT_INT
+                        USE_FAST_STDIO USE_ITHREADS USE_LARGE_FILES
+                        USE_LONG_DOUBLE USE_PERLIO USE_REENTRANT_API
+  Built under linux
+  Compiled at Oct 21 2010 14:50:53
+  @INC:
+    /media/Tux/perls-t/lib/5.8.9/i686-linux-thread-multi-64int-ld
+    /media/Tux/perls-t/lib/5.8.9
+    /media/Tux/perls-t/lib/site_perl/5.8.9/i686-linux-thread-multi-64int-ld
+    /media/Tux/perls-t/lib/site_perl/5.8.9
+    .
diff --git a/cpan/Config-Perl-V/t/22_plv510.t b/cpan/Config-Perl-V/t/22_plv510.t
new file mode 100644 (file)
index 0000000..4b1e267
--- /dev/null
@@ -0,0 +1,56 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 8;
+    unless ($ENV{PERL_CORE}) {
+       require Test::NoWarnings;
+       Test::NoWarnings->import ();
+       $tests++;
+       }
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, 0, "No build time known");
+is ($conf->{config}{version}, "5.10.0", "reconstructed \%Config{version}");
+
+__END__
+Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
+  Platform:
+    osname=linux, osvers=2.6.22.13-0.3-default, archname=i686-linux-64int
+    uname='linux nb09 2.6.22.13-0.3-default #1 smp 20071119 15:02:58 utc i686 i686 i386 gnulinux '
+    config_args='-Duse64bitint -des'
+    hint=recommended, useposix=true, d_sigaction=define
+    useithreads=undef, usemultiplicity=undef
+    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
+    use64bitint=define, use64bitall=undef, uselongdouble=undef
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags ='-fno-strict-aliasing -pipe -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
+    optimize='-O2 -g',
+    cppflags='-fno-strict-aliasing -pipe -I/pro/local/include'
+    ccversion='', gccversion='4.2.1 (SUSE Linux)', gccosandvers=''
+    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
+    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
+    alignbytes=4, prototype=define
+  Linker and Libraries:
+    ld='cc', ldflags ='-L/pro/local/lib'
+    libpth=/pro/local/lib /lib /usr/lib /usr/local/lib
+    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
+    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
+    libc=/lib/libc-2.6.1.so, so=so, useshrplib=false, libperl=libperl.a
+    gnulibc_version='2.6.1'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/pro/local/lib'
diff --git a/cpan/Config-Perl-V/t/23_plv512.t b/cpan/Config-Perl-V/t/23_plv512.t
new file mode 100644 (file)
index 0000000..9f4b146
--- /dev/null
@@ -0,0 +1,73 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 10;
+    unless ($ENV{PERL_CORE}) {
+       require Test::NoWarnings;
+       Test::NoWarnings->import ();
+       $tests++;
+       }
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Dec 20 2010 12:46:00", "Build time");
+is ($conf->{config}{version}, "5.12.2", "reconstructed \%Config{version}");
+is ($conf->{config}{gccversion}, "", "not built with gcc");
+is ($conf->{config}{ccversion}, "B3910B", "built with HP C-ANSI-C");
+
+__END__
+Summary of my perl5 (revision 5 version 12 subversion 2) configuration:
+
+  Platform:
+    osname=hpux, osvers=11.31, archname=IA64.ARCHREV_0-LP64-ld
+    uname='hp-ux x2 b.11.31 u ia64 2977233888 unlimited-user license '
+    config_args='-Duse64bitall -Duselongdouble -des'
+    hint=recommended, useposix=true, d_sigaction=define
+    useithreads=undef, usemultiplicity=undef
+    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
+    use64bitint=define, use64bitall=define, uselongdouble=define
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags =' -Ae -DPERL_DONT_CREATE_GVSV +Z -z -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64 -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 ',
+    optimize='+O2 +Onolimit',
+    cppflags='-Aa -D__STDC_EXT__ -DPERL_DONT_CREATE_GVSV +Z -z -D_HPUX_SOURCE -Ae -DPERL_DONT_CREATE_GVSV +Z -z -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64 -I/pro/local/include'
+    ccversion='B3910B', gccversion='', gccosandvers=''
+    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
+    ivtype='long', ivsize=8, nvtype='long double', nvsize=16, Off_t='off_t', lseeksize=8
+    alignbytes=16, prototype=define
+  Linker and Libraries:
+    ld='/usr/bin/ld', ldflags ='-L/pro/local/lib +DD64 -L/usr/lib/hpux64'
+    libpth=/pro/local/lib /usr/lib/hpux64 /lib /usr/lib /usr/ccs/lib /usr/local/lib
+    libs=-lcl -lpthread -lnsl -lnm -ldb -ldl -ldld -lm -lsec -lc
+    perllibs=-lcl -lpthread -lnsl -lnm -ldl -ldld -lm -lsec -lc
+    libc=/usr/lib/hpux64/libc.so, so=so, useshrplib=false, libperl=libperl.a
+    gnulibc_version=''
+  Dynamic Linking:
+    dlsrc=dl_hpux.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-B,deferred '
+    cccdlflags='+Z', lddlflags='-b +vnocompatwarnings -L/pro/local/lib -L/usr/lib/hpux64'
+
+
+Characteristics of this binary (from libperl):
+  Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP USE_64_BIT_ALL
+                        USE_64_BIT_INT USE_LARGE_FILES USE_LONG_DOUBLE
+                        USE_PERLIO USE_PERL_ATOF
+  Built under hpux
+  Compiled at Dec 20 2010 12:46:00
+  @INC:
+    /pro/lib/perl5/site_perl/5.12.2/IA64.ARCHREV_0-LP64-ld
+    /pro/lib/perl5/site_perl/5.12.2
+    /pro/lib/perl5/5.12.2/IA64.ARCHREV_0-LP64-ld
+    /pro/lib/perl5/5.12.2
+    .
diff --git a/cpan/Config-Perl-V/t/24_plv514.t b/cpan/Config-Perl-V/t/24_plv514.t
new file mode 100644 (file)
index 0000000..81a8016
--- /dev/null
@@ -0,0 +1,74 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 10;
+    unless ($ENV{PERL_CORE}) {
+       require Test::NoWarnings;
+       Test::NoWarnings->import ();
+       $tests++;
+       }
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "May 11 2012 16:36:53", "Build time");
+is ($conf->{config}{version}, "5.14.2", "reconstructed \%Config{version}");
+is ($conf->{config}{gccversion}, "", "not built with gcc");
+is ($conf->{config}{ccversion}, "11.1.0.8", "xlc version");
+
+__END__
+Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
+
+  Platform:
+    osname=aix, osvers=5.3.0.0, archname=aix-64all
+    uname='aix i3 3 5 0004898ad300 '
+    config_args='-Dusedevel -Duse64bitall -Uversiononly -Dinc_version_list=none -des'
+    hint=recommended, useposix=true, d_sigaction=define
+    useithreads=undef, usemultiplicity=undef
+    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
+    use64bitint=define, use64bitall=define, uselongdouble=undef
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='xlc -q64', ccflags ='-q64 -DDEBUGGING -qlanglvl=extended -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -qlanglvl=extended -I/pro/local/include -q64 -DUSE_64_BIT_ALL -q64',
+    optimize='-O',
+    cppflags='-DDEBUGGING -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -I/pro/local/include'
+    ccversion='11.1.0.8', gccversion='', gccosandvers=''
+    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
+    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
+    alignbytes=8, prototype=define
+  Linker and Libraries:
+    ld='ld', ldflags ='-L/usr/local/ppc64/lib64 -b64 -q64 -L/pro/local/lib -brtl -bdynamic -b64'
+    libpth=/usr/local/ppc64/lib64 /lib /usr/lib /usr/ccs/lib /usr/local/lib /usr/lib64
+    libs=-lbind -lnsl -ldbm -ldb -ldl -lld -lm -lcrypt -lc
+    perllibs=-lbind -lnsl -ldl -lld -lm -lcrypt -lc
+    libc=/lib/libc.a, so=a, useshrplib=false, libperl=libperl.a
+    gnulibc_version=''
+  Dynamic Linking:
+    dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags='  -bE:/pro/lib/perl5/5.14.2/aix-64all/CORE/perl.exp'
+    cccdlflags=' ', lddlflags='-b64  -bhalt:4 -G -bI:$(PERL_INC)/perl.exp -bE:$(BASEEXT).exp -bnoentry -lc -lm -L/usr/local/ppc64/lib64 -L/pro/local/lib'
+
+
+Characteristics of this binary (from libperl):
+  Compile-time options: DEBUGGING PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
+                        PERL_PRESERVE_IVUV PERL_USE_DEVEL USE_64_BIT_ALL
+                        USE_64_BIT_INT USE_LARGE_FILES USE_PERLIO
+                        USE_PERL_ATOF
+  Built under aix
+  Compiled at May 11 2012 16:36:53
+  @INC:
+    /pro/lib/perl5/site_perl/5.14.2/aix-64all
+    /pro/lib/perl5/site_perl/5.14.2
+    /pro/lib/perl5/5.14.2/aix-64all
+    /pro/lib/perl5/5.14.2
+    .
diff --git a/cpan/Config-Perl-V/t/25_plv516.t b/cpan/Config-Perl-V/t/25_plv516.t
new file mode 100644 (file)
index 0000000..734940a
--- /dev/null
@@ -0,0 +1,74 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 9;
+    unless ($ENV{PERL_CORE}) {
+       require Test::NoWarnings;
+       Test::NoWarnings->import ();
+       $tests++;
+       }
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Mar 12 2013 08:36:17", "Build time");
+is ($conf->{config}{version}, "5.16.3", "reconstructed \%Config{version}");
+is ($conf->{config}{ccversion}, "", "Using gcc. nonn-gcc version should not be defined");
+
+__END__
+Summary of my perl5 (revision 5 version 16 subversion 3) configuration:
+   
+  Platform:
+    osname=linux, osvers=3.4.33-2.24-desktop, archname=i686-linux-64int
+    uname='linux lx09 3.4.33-2.24-desktop #1 smp preempt tue feb 26 03:34:33 utc 2013 (5f00a32) i686 i686 i386 gnulinux '
+    config_args='-Duse64bitint -Duselongdouble -des'
+    hint=previous, useposix=true, d_sigaction=define
+    useithreads=undef, usemultiplicity=undef
+    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
+    use64bitint=define, use64bitall=undef, uselongdouble=undef
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
+    optimize='-O2',
+    cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
+    ccversion='', gccversion='4.7.1 20120723 [gcc-4_7-branch revision 189773]', gccosandvers=''
+    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
+    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
+    alignbytes=4, prototype=define
+  Linker and Libraries:
+    ld='cc', ldflags ='-L/pro/local/lib -fstack-protector'
+    libpth=/pro/local/lib /lib /usr/lib /usr/local/lib
+    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
+    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
+    libc=/lib/libc-2.15.so, so=so, useshrplib=false, libperl=libperl.a
+    gnulibc_version='2.15'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/pro/local/lib -fstack-protector'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
+                        PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_64_BIT_INT
+                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
+                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO
+                        USE_PERL_ATOF
+  Built under linux
+  Compiled at Mar 12 2013 08:36:17
+  @INC:
+    /pro/lib/perl5/site_perl/5.16.3/i686-linux-64int
+    /pro/lib/perl5/site_perl/5.16.3
+    /pro/lib/perl5/5.16.3/i686-linux-64int
+    /pro/lib/perl5/5.16.3
+    .
diff --git a/cpan/Config-Perl-V/t/26_plv518.t b/cpan/Config-Perl-V/t/26_plv518.t
new file mode 100644 (file)
index 0000000..330fe34
--- /dev/null
@@ -0,0 +1,102 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 35;
+    unless ($ENV{PERL_CORE}) {
+       require Test::NoWarnings;
+       Test::NoWarnings->import ();
+       $tests++;
+       }
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "May 18 2013 17:34:20", "Build time");
+is ($conf->{config}{version}, "5.18.0", "reconstructed \$Config{version}");
+
+# Some random checks
+is ($conf->{build}{options}{$_}, 0, "Runtime option $_") for qw(
+    DEBUG_LEAKING_SCALARS NO_HASH_SEED PERL_MEM_LOG_STDERR PERL_MEM_LOG_ENV
+    PERL_MEM_LOG_TIMESTAMP PERL_MICRO USE_ATTRIBUTES_FOR_PERLIO VMS_DO_SOCKETS );
+
+my %check = (
+    alignbytes      => 4,
+    api_version     => 18,
+    bincompat5005   => "undef",
+    byteorder       => 12345678,
+    cc              => "cc",
+    cccdlflags      => "-fPIC",
+    ccdlflags       => "-Wl,-E",
+    config_args     => "-Duse64bitint -Duselongdouble -des",
+    gccversion      => "4.7.2 20130108 [gcc-4_7-branch revision 195012]",
+    gnulibc_version => "2.17",
+    ivsize          => 8,
+    ivtype          => "long long",
+    ld              => "cc",
+    lddlflags       => "-shared -O3 -L/pro/local/lib -fstack-protector",
+    ldflags         => "-L/pro/local/lib -fstack-protector",
+    libc            => "/lib/libc-2.17.so",
+    lseektype       => "off_t",
+    osvers          => "3.7.10-1.4-desktop",
+    use64bitint     => "define",
+    );
+is ($conf->{config}{$_}, $check{$_}, "reconstructed \$Config{$_}") for sort keys %check;
+
+__END__
+Summary of my perl5 (revision 5 version 18 subversion 0) configuration:
+   
+  Platform:
+    osname=linux, osvers=3.7.10-1.4-desktop, archname=i686-linux-64int-ld
+    uname='linux test 3.7.10-1.4-desktop #1 smp preempt fri apr 19 12:06:34 utc 2013 (8ef74f8) i686 i686 i386 gnulinux '
+    config_args='-Duse64bitint -Duselongdouble -des'
+    hint=recommended, useposix=true, d_sigaction=define
+    useithreads=undef, usemultiplicity=undef
+    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
+    use64bitint=define, use64bitall=undef, uselongdouble=define
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
+    optimize='-O3',
+    cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include'
+    ccversion='', gccversion='4.7.2 20130108 [gcc-4_7-branch revision 195012]', gccosandvers=''
+    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
+    ivtype='long long', ivsize=8, nvtype='long double', nvsize=12, Off_t='off_t', lseeksize=8
+    alignbytes=4, prototype=define
+  Linker and Libraries:
+    ld='cc', ldflags ='-L/pro/local/lib -fstack-protector'
+    libpth=/pro/local/lib /lib /usr/lib /usr/local/lib
+    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
+    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
+    libc=/lib/libc-2.17.so, so=so, useshrplib=false, libperl=libperl.a
+    gnulibc_version='2.17'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC', lddlflags='-shared -O3 -L/pro/local/lib -fstack-protector'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
+                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
+                        PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_INT
+                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
+                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LONG_DOUBLE
+                        USE_PERLIO USE_PERL_ATOF
+  Built under linux
+  Compiled at May 18 2013 17:34:20
+  @INC:
+    /pro/lib/perl5/site_perl/5.18.0/i686-linux-64int-ld
+    /pro/lib/perl5/site_perl/5.18.0
+    /pro/lib/perl5/5.18.0/i686-linux-64int-ld
+    /pro/lib/perl5/5.18.0
+    .
diff --git a/cpan/Config-Perl-V/t/26_plv5182.t b/cpan/Config-Perl-V/t/26_plv5182.t
new file mode 100644 (file)
index 0000000..b8ee12c
--- /dev/null
@@ -0,0 +1,130 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 118;
+    unless ($ENV{PERL_CORE}) {
+       require Test::NoWarnings;
+       Test::NoWarnings->import ();
+       $tests++;
+       }
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Jan  9 2014 09:22:04", "Build time");
+is ($conf->{config}{version}, "5.18.2", "reconstructed \$Config{version}");
+
+# Some random checks
+is ($conf->{build}{options}{$_}, 0, "Runtime option $_") for qw(
+    DEBUG_LEAKING_SCALARS NO_HASH_SEED PERL_MEM_LOG_STDERR PERL_MEM_LOG_ENV
+    PERL_MEM_LOG_TIMESTAMP PERL_MICRO USE_ATTRIBUTES_FOR_PERLIO VMS_DO_SOCKETS );
+is ($conf->{build}{options}{$_}, 0, "Runtime option $_ unset") for qw(
+    DEBUGGING DEBUG_LEAKING_SCALARS DEBUG_LEAKING_SCALARS_FORK_DUMP
+    DECCRTL_SOCKETS FAKE_THREADS FCRYPT HAVE_INTERP_INTERN MULTIPLICITY
+    MYMALLOC NO_HASH_SEED NO_MATHOMS NO_TAINT_SUPPORT PERL_BOOL_AS_CHAR
+    PERL_DEBUG_READONLY_COW PERL_DEBUG_READONLY_OPS PERL_DISABLE_PMC
+    PERL_EXTERNAL_GLOB PERL_GLOBAL_STRUCT PERL_GLOBAL_STRUCT_PRIVATE
+    PERL_HASH_FUNC_DJB2 PERL_HASH_FUNC_MURMUR3 PERL_HASH_FUNC_ONE_AT_A_TIME
+    PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_HASH_FUNC_ONE_AT_A_TIME_OLD
+    PERL_HASH_FUNC_SDBM PERL_HASH_FUNC_SIPHASH PERL_HASH_FUNC_SUPERFAST
+    PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS PERL_IS_MINIPERL PERL_MAD
+    PERL_MALLOC_WRAP PERL_MEM_LOG PERL_MEM_LOG_ENV PERL_MEM_LOG_ENV_FD
+    PERL_MEM_LOG_NOIMPL PERL_MEM_LOG_STDERR PERL_MEM_LOG_TIMESTAMP PERL_MICRO
+    PERL_NEED_APPCTX PERL_NEED_TIMESBASE PERL_NEW_COPY_ON_WRITE
+    PERL_OLD_COPY_ON_WRITE PERL_PERTURB_KEYS_DETERMINISTIC
+    PERL_PERTURB_KEYS_DISABLED PERL_PERTURB_KEYS_RANDOM PERL_POISON
+    PERL_PRESERVE_IVUV PERL_RELOCATABLE_INCPUSH PERL_SAWAMPERSAND
+    PERL_TRACK_MEMPOOL PERL_USES_PL_PIDSTATUS PERL_USE_DEVEL
+    PERL_USE_SAFE_PUTENV PL_OP_SLAB_ALLOC THREADS_HAVE_PIDS UNLINK_ALL_VERSIONS
+    USE_64_BIT_ALL USE_64_BIT_INT USE_ATTRIBUTES_FOR_PERLIO USE_FAST_STDIO
+    USE_HASH_SEED_EXPLICIT USE_IEEE USE_ITHREADS USE_LARGE_FILES USE_LOCALE
+    USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME
+    USE_LONG_DOUBLE USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API USE_SFIO
+    USE_SITECUSTOMIZE USE_SOCKS VMS_DO_SOCKETS VMS_SHORTEN_LONG_SYMBOLS
+    VMS_SYMBOL_CASE_AS_IS
+    );
+is ($conf->{build}{options}{$_}, 1, "Runtime option $_ set") for qw(
+    HAS_TIMES PERL_DONT_CREATE_GVSV PERLIO_LAYERS
+    );
+
+my %check = (
+    alignbytes      => 4,
+    api_version     => 18,
+    bincompat5005   => "undef",
+    byteorder       => 12345678,
+    cc              => "cc",
+    cccdlflags      => "-fPIC",
+    ccdlflags       => "-Wl,-E",
+    config_args     => "-Duse64bitint -Duselongdouble -des",
+    gccversion      => "4.8.1 20130909 [gcc-4_8-branch revision 202388]",
+    gnulibc_version => "2.18",
+    ivsize          => 8,
+    ivtype          => "long long",
+    ld              => "cc",
+    lddlflags       => "-shared -O2 -L/pro/local/lib -fstack-protector",
+    ldflags         => "-L/pro/local/lib -fstack-protector",
+    libc            => "/lib/libc-2.18.so",
+    lseektype       => "off_t",
+    osvers          => "3.11.6-4-desktop",
+    use64bitint     => "define",
+    );
+is ($conf->{config}{$_}, $check{$_}, "reconstructed \$Config{$_}") for sort keys %check;
+
+__END__
+Summary of my perl5 (revision 5 version 18 subversion 2) configuration:
+   
+  Platform:
+    osname=linux, osvers=3.11.6-4-desktop, archname=i686-linux-64int-ld
+    uname='linux lx09 3.11.6-4-desktop #1 smp preempt wed oct 30 18:04:56 utc 2013 (e6d4a27) i686 i686 i386 gnulinux '
+    config_args='-Duse64bitint -Duselongdouble -des'
+    hint=recommended, useposix=true, d_sigaction=define
+    useithreads=undef, usemultiplicity=undef
+    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
+    use64bitint=define, use64bitall=undef, uselongdouble=define
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
+    optimize='-O2',
+    cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include'
+    ccversion='', gccversion='4.8.1 20130909 [gcc-4_8-branch revision 202388]', gccosandvers=''
+    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
+    ivtype='long long', ivsize=8, nvtype='long double', nvsize=12, Off_t='off_t', lseeksize=8
+    alignbytes=4, prototype=define
+  Linker and Libraries:
+    ld='cc', ldflags ='-L/pro/local/lib -fstack-protector'
+    libpth=/pro/local/lib /lib /usr/lib /usr/local/lib
+    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
+    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
+    libc=/lib/libc-2.18.so, so=so, useshrplib=false, libperl=libperl.a
+    gnulibc_version='2.18'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/pro/local/lib -fstack-protector'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
+                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
+                        PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_INT
+                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
+                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LONG_DOUBLE
+                        USE_PERLIO USE_PERL_ATOF
+  Built under linux
+  Compiled at Jan  9 2014 09:22:04
+  @INC:
+    /pro/lib/perl5/site_perl/5.18.2/i686-linux-64int-ld
+    /pro/lib/perl5/site_perl/5.18.2
+    /pro/lib/perl5/5.18.2/i686-linux-64int-ld
+    /pro/lib/perl5/5.18.2
+    .
diff --git a/cpan/Config-Perl-V/t/27_plv5200.t b/cpan/Config-Perl-V/t/27_plv5200.t
new file mode 100644 (file)
index 0000000..1bfab33
--- /dev/null
@@ -0,0 +1,128 @@
+#!/pro/bin/perl
+
+use strict;
+use warnings;
+
+BEGIN {
+    use Test::More;
+    my $tests = 110;
+    unless ($ENV{PERL_CORE}) {
+       require Test::NoWarnings;
+       Test::NoWarnings->import ();
+       $tests++;
+       }
+
+    plan tests => $tests;
+    }
+
+use Config::Perl::V;
+
+ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl -v block");
+ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
+
+is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
+is ($conf->{build}{stamp}, "Jun 30 2014 15:37:09", "No build time known");
+is ($conf->{config}{version}, "5.20.0", "reconstructed \$Config{version}");
+
+is ($conf->{build}{options}{$_}, 0, "Runtime option $_ unset") for qw(
+    DEBUGGING DEBUG_LEAKING_SCALARS DEBUG_LEAKING_SCALARS_FORK_DUMP
+    DECCRTL_SOCKETS FAKE_THREADS FCRYPT HAVE_INTERP_INTERN MYMALLOC NO_HASH_SEED
+    NO_MATHOMS NO_TAINT_SUPPORT PERL_BOOL_AS_CHAR PERL_DEBUG_READONLY_COW
+    PERL_DEBUG_READONLY_OPS PERL_DISABLE_PMC PERL_DONT_CREATE_GVSV
+    PERL_EXTERNAL_GLOB PERL_GLOBAL_STRUCT PERL_GLOBAL_STRUCT_PRIVATE
+    PERL_HASH_FUNC_DJB2 PERL_HASH_FUNC_MURMUR3 PERL_HASH_FUNC_ONE_AT_A_TIME
+    PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_HASH_FUNC_ONE_AT_A_TIME_OLD
+    PERL_HASH_FUNC_SDBM PERL_HASH_FUNC_SIPHASH PERL_HASH_FUNC_SUPERFAST
+    PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS PERL_IS_MINIPERL PERL_MAD
+    PERL_MALLOC_WRAP PERL_MEM_LOG PERL_MEM_LOG_ENV PERL_MEM_LOG_ENV_FD
+    PERL_MEM_LOG_NOIMPL PERL_MEM_LOG_STDERR PERL_MEM_LOG_TIMESTAMP PERL_MICRO
+    PERL_NEED_APPCTX PERL_NEED_TIMESBASE PERL_NEW_COPY_ON_WRITE
+    PERL_OLD_COPY_ON_WRITE PERL_PERTURB_KEYS_DETERMINISTIC
+    PERL_PERTURB_KEYS_DISABLED PERL_PERTURB_KEYS_RANDOM PERL_POISON
+    PERL_PRESERVE_IVUV PERL_RELOCATABLE_INCPUSH PERL_SAWAMPERSAND
+    PERL_TRACK_MEMPOOL PERL_USES_PL_PIDSTATUS PERL_USE_DEVEL
+    PERL_USE_SAFE_PUTENV PL_OP_SLAB_ALLOC THREADS_HAVE_PIDS UNLINK_ALL_VERSIONS
+    USE_64_BIT_ALL USE_64_BIT_INT USE_ATTRIBUTES_FOR_PERLIO USE_FAST_STDIO
+    USE_HASH_SEED_EXPLICIT USE_IEEE USE_ITHREADS USE_LARGE_FILES USE_LOCALE
+    USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME
+    USE_LONG_DOUBLE USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API USE_SFIO
+    USE_SITECUSTOMIZE USE_SOCKS VMS_DO_SOCKETS VMS_SHORTEN_LONG_SYMBOLS
+    VMS_SYMBOL_CASE_AS_IS
+    );
+is ($conf->{build}{options}{$_}, 1, "Runtime option $_ set") for qw(
+    HAS_TIMES MULTIPLICITY PERLIO_LAYERS
+    );
+
+my %check = (
+    alignbytes      => 4,
+    api_version     => 20,
+    bincompat5005   => "undef",
+    byteorder       => 12345678,
+    cc              => "cc",
+    cccdlflags      => "-fPIC",
+    ccdlflags       => "-Wl,-E",
+    config_args     => "-Dusedevel -Uversiononly -Dinc_version_list=none -Duse64bitint -Dusethreads -Duseithreads -Duselongdouble -des",
+    gccversion      => "4.8.1 20130909 [gcc-4_8-branch revision 202388]",
+    gnulibc_version => "2.18",
+    ivsize          => 8,
+    ivtype          => "long long",
+    ld              => "cc",
+    lddlflags       => "-shared -O2 -L/pro/local/lib -fstack-protector",
+    ldflags         => "-L/pro/local/lib -fstack-protector",
+    libc            => "libc-2.18.so",
+    lseektype       => "off_t",
+    osvers          => "3.11.10-17-desktop",
+    use64bitint     => "define",
+    );
+is ($conf->{config}{$_}, $check{$_}, "reconstructed \$Config{$_}") for sort keys %check;
+
+__END__
+Summary of my perl5 (revision 5 version 20 subversion 0) configuration:
+   
+  Platform:
+    osname=linux, osvers=3.11.10-17-desktop, archname=i686-linux-thread-multi-64int-ld
+    uname='linux lx09 3.11.10-17-desktop #1 smp preempt mon jun 16 15:28:13 utc 2014 (fba7c1f) i686 i686 i386 gnulinux '
+    config_args='-Dusedevel -Uversiononly -Dinc_version_list=none -Duse64bitint -Dusethreads -Duseithreads -Duselongdouble -des'
+    hint=recommended, useposix=true, d_sigaction=define
+    useithreads=define, usemultiplicity=define
+    use64bitint=define, use64bitall=undef, uselongdouble=define
+    usemymalloc=n, bincompat5005=undef
+  Compiler:
+    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
+    optimize='-O2',
+    cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include'
+    ccversion='', gccversion='4.8.1 20130909 [gcc-4_8-branch revision 202388]', gccosandvers=''
+    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
+    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
+    ivtype='long long', ivsize=8, nvtype='long double', nvsize=12, Off_t='off_t', lseeksize=8
+    alignbytes=4, prototype=define
+  Linker and Libraries:
+    ld='cc', ldflags ='-L/pro/local/lib -fstack-protector'
+    libpth=/usr/local/lib /usr/lib/gcc/i586-suse-linux/4.8/include-fixed /usr/lib/gcc/i586-suse-linux/4.8/../../../../i586-suse-linux/lib /usr/lib /pro/local/lib /lib
+    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc -lgdbm_compat
+    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
+    libc=libc-2.18.so, so=so, useshrplib=false, libperl=libperl.a
+    gnulibc_version='2.18'
+  Dynamic Linking:
+    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
+    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/pro/local/lib -fstack-protector'
+
+
+Characteristics of this binary (from libperl): 
+  Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
+                        PERL_DONT_CREATE_GVSV
+                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
+                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
+                        PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
+                        PERL_USE_DEVEL USE_64_BIT_INT USE_ITHREADS
+                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
+                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LONG_DOUBLE
+                        USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API
+  Built under linux
+  Compiled at Jun 30 2014 15:37:09
+  @INC:
+    /pro/lib/perl5/site_perl/5.20.0/i686-linux-thread-multi-64int-ld
+    /pro/lib/perl5/site_perl/5.20.0
+    /pro/lib/perl5/5.20.0/i686-linux-thread-multi-64int-ld
+    /pro/lib/perl5/5.20.0
+    .