Hello community,

here is the log from the commit of package perl-Scalar-List-Utils for 
openSUSE:Factory checked in at 2016-02-17 10:25:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Scalar-List-Utils (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Scalar-List-Utils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Scalar-List-Utils"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-Scalar-List-Utils/perl-Scalar-List-Utils.changes
    2015-08-25 08:54:36.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.perl-Scalar-List-Utils.new/perl-Scalar-List-Utils.changes
       2016-02-17 12:20:31.000000000 +0100
@@ -1,0 +2,21 @@
+Sat Feb 13 10:39:02 UTC 2016 - [email protected]
+
+- updated to 1.43
+   see /usr/share/doc/packages/perl-Scalar-List-Utils/Changes
+
+  1.43 -- 2016/02/08 15:05:23
+       [CHANGES]
+        * Updated documentation
+        * Added MIN_PERL_VERSION to Makefile.PL
+        * Added "use warnings" to all tests
+        * Added MANIEST.SKIP patterns for common editor backup/swapfiles
+        * Test product(0,0) (RT105415)
+  
+       [BUGFIXES]
+        * Fix build on non-C99 compilers
+        * Avoid divide-by-zero exception if product()'s accumulator is IV zero
+          (RT105415)
+        * Possible fix for SvTEMP issues in first and any/all/none/notall
+          (RT96343)
+
+-------------------------------------------------------------------

Old:
----
  Scalar-List-Utils-1.42.tar.gz

New:
----
  Scalar-List-Utils-1.43.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Scalar-List-Utils.spec ++++++
--- /var/tmp/diff_new_pack.yw66df/_old  2016-02-17 12:20:32.000000000 +0100
+++ /var/tmp/diff_new_pack.yw66df/_new  2016-02-17 12:20:32.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-Scalar-List-Utils
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Scalar-List-Utils
-Version:        1.42
+Version:        1.43
 Release:        0
 %define cpan_name Scalar-List-Utils
 Summary:        Common Scalar and List utility subroutines
@@ -36,7 +36,7 @@
 
 %prep
 %setup -q -n %{cpan_name}-%{version}
-find . -type f -print0 | xargs -0 chmod 644
+find . -type f ! -name \*.pl -print0 | xargs -0 chmod 644
 
 %build
 %{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}"

++++++ Scalar-List-Utils-1.42.tar.gz -> Scalar-List-Utils-1.43.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/Changes 
new/Scalar-List-Utils-1.43/Changes
--- old/Scalar-List-Utils-1.42/Changes  2015-04-23 02:30:54.000000000 +0200
+++ new/Scalar-List-Utils-1.43/Changes  2016-02-08 16:05:37.000000000 +0100
@@ -1,3 +1,18 @@
+1.43 -- 2016/02/08 15:05:23
+       [CHANGES]
+        * Updated documentation
+        * Added MIN_PERL_VERSION to Makefile.PL
+        * Added "use warnings" to all tests
+        * Added MANIEST.SKIP patterns for common editor backup/swapfiles
+        * Test product(0,0) (RT105415)
+
+       [BUGFIXES]
+        * Fix build on non-C99 compilers
+        * Avoid divide-by-zero exception if product()'s accumulator is IV zero
+          (RT105415)
+        * Possible fix for SvTEMP issues in first and any/all/none/notall
+          (RT96343)
+
 1.42 -- 2015/04/32 01:25:55
        [CHANGES]
         * Added List::Util::unpairs() - the inverse of pairs()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/ListUtil.xs 
new/Scalar-List-Utils-1.43/ListUtil.xs
--- old/Scalar-List-Utils-1.42/ListUtil.xs      2015-04-23 02:28:41.000000000 
+0200
+++ new/Scalar-List-Utils-1.43/ListUtil.xs      2016-02-03 01:56:58.000000000 
+0100
@@ -96,7 +96,7 @@
 CODE:
 {
     int index;
-    NV retval;
+    NV retval = 0.0; /* avoid 'uninit var' warning */
     SV *retsv;
     int magic;
 
@@ -212,16 +212,72 @@
             break;
         case ACC_IV:
             if(is_product) {
-                if(!SvNOK(sv) && SvIOK(sv) && (SvIV(sv) < IV_MAX / retiv)) {
-                    retiv *= SvIV(sv);
-                    break;
+                /* TODO: Consider if product() should shortcircuit the moment 
its
+                 *   accumulator becomes zero
+                 */
+                /* XXX testing flags before running get_magic may
+                 * cause some valid tied values to fallback to the NV path
+                 * - DAPM */
+                if(!SvNOK(sv) && SvIOK(sv)) {
+                    IV i = SvIV(sv);
+                    if (retiv == 0) /* avoid later division by zero */
+                        break;
+                    if (retiv < 0) {
+                        if (i < 0) {
+                            if (i >= IV_MAX / retiv) {
+                                retiv *= i;
+                                break;
+                            }
+                        }
+                        else {
+                            if (i <= IV_MIN / retiv) {
+                                retiv *= i;
+                                break;
+                            }
+                        }
+                    }
+                    else {
+                        if (i < 0) {
+                            if (i >= IV_MIN / retiv) {
+                                retiv *= i;
+                                break;
+                            }
+                        }
+                        else {
+                            if (i <= IV_MAX / retiv) {
+                                retiv *= i;
+                                break;
+                            }
+                        }
+                    }
                 }
                 /* else fallthrough */
             }
             else {
-                if(!SvNOK(sv) && SvIOK(sv) && (SvIV(sv) < IV_MAX - retiv)) {
-                    retiv += SvIV(sv);
-                    break;
+                /* XXX testing flags before running get_magic may
+                 * cause some valid tied values to fallback to the NV path
+                 * - DAPM */
+                if(!SvNOK(sv) && SvIOK(sv)) {
+                    IV i = SvIV(sv);
+                    if (retiv >= 0 && i >= 0) {
+                        if (retiv <= IV_MAX - i) {
+                            retiv += i;
+                            break;
+                        }
+                        /* else fallthrough */
+                    }
+                    else if (retiv < 0 && i < 0) {
+                        if (retiv >= IV_MIN - i) {
+                            retiv += i;
+                            break;
+                        }
+                        /* else fallthrough */
+                    }
+                    else {
+                        /* mixed signs can't overflow */
+                        retiv += i;
+                        break;
+                    }
                 }
                 /* else fallthrough */
             }
@@ -327,6 +383,7 @@
         dMULTICALL;
         I32 gimme = G_SCALAR;
 
+        PERL_UNUSED_VAR(newsp);
         PUSH_MULTICALL(cv);
         for(index = 2 ; index < items ; index++) {
             GvSV(bgv) = args[index];
@@ -380,10 +437,15 @@
     if(!CvISXSUB(cv)) {
         dMULTICALL;
         I32 gimme = G_SCALAR;
+
+        PERL_UNUSED_VAR(newsp);
         PUSH_MULTICALL(cv);
 
         for(index = 1 ; index < items ; index++) {
-            GvSV(PL_defgv) = args[index];
+            SV *def_sv = GvSV(PL_defgv) = args[index];
+#  ifdef SvTEMP_off
+            SvTEMP_off(def_sv);
+#  endif
             MULTICALL;
             if(SvTRUEx(*PL_stack_sp)) {
 #  ifdef PERL_HAS_BAD_MULTICALL_REFCOUNT
@@ -448,9 +510,13 @@
         I32 gimme = G_SCALAR;
         int index;
 
+        PERL_UNUSED_VAR(newsp);
         PUSH_MULTICALL(cv);
         for(index = 1; index < items; index++) {
-            GvSV(PL_defgv) = args[index];
+            SV *def_sv = GvSV(PL_defgv) = args[index];
+#  ifdef SvTEMP_off
+            SvTEMP_off(def_sv);
+#  endif
 
             MULTICALL;
             if(SvTRUEx(*PL_stack_sp) ^ invert) {
@@ -529,6 +595,8 @@
 
     for(i = 0; i < items; i++) {
         SV *pair = args_copy[i];
+        AV *pairav;
+
         SvGETMAGIC(pair);
 
         if(SvTYPE(pair) != SVt_RV)
@@ -536,8 +604,8 @@
         if(SvTYPE(SvRV(pair)) != SVt_PVAV)
             croak("Not an ARRAY reference at List::Util::unpack() argument 
%d", i);
 
-        // TODO: assert pair is an ARRAY ref
-        AV *pairav = (AV *)SvRV(pair);
+        /* TODO: assert pair is an ARRAY ref */
+        pairav = (AV *)SvRV(pair);
 
         EXTEND(SP, 2);
 
@@ -626,6 +694,7 @@
         dMULTICALL;
         I32 gimme = G_SCALAR;
 
+        PERL_UNUSED_VAR(newsp);
         PUSH_MULTICALL(cv);
         for(; argi < items; argi += 2) {
             SV *a = GvSV(agv) = stack[argi];
@@ -710,6 +779,7 @@
         dMULTICALL;
         I32 gimme = G_SCALAR;
 
+        PERL_UNUSED_VAR(newsp);
         PUSH_MULTICALL(cv);
         for(; argi < items; argi += 2) {
             SV *a = GvSV(agv) = stack[argi];
@@ -800,13 +870,15 @@
         dMULTICALL;
         I32 gimme = G_ARRAY;
 
+        PERL_UNUSED_VAR(newsp);
         PUSH_MULTICALL(cv);
         for(; argi < items; argi += 2) {
-            SV *a = GvSV(agv) = args_copy ? args_copy[argi] : stack[argi];
-            SV *b = GvSV(bgv) = argi < items-1 ? 
+            int count;
+
+            GvSV(agv) = args_copy ? args_copy[argi] : stack[argi];
+            GvSV(bgv) = argi < items-1 ?
                 (args_copy ? args_copy[argi+1] : stack[argi+1]) :
                 &PL_sv_undef;
-            int count;
 
             MULTICALL;
             count = PL_stack_sp - PL_stack_base;
@@ -844,13 +916,14 @@
     {
         for(; argi < items; argi += 2) {
             dSP;
-            SV *a = GvSV(agv) = args_copy ? args_copy[argi] : ST(argi);
-            SV *b = GvSV(bgv) = argi < items-1 ? 
-                (args_copy ? args_copy[argi+1] : ST(argi+1)) :
-                &PL_sv_undef;
             int count;
             int i;
 
+            GvSV(agv) = args_copy ? args_copy[argi] : ST(argi);
+            GvSV(bgv) = argi < items-1 ?
+                (args_copy ? args_copy[argi+1] : ST(argi+1)) :
+                &PL_sv_undef;
+
             PUSHMARK(SP);
             count = call_sv((SV*)cv, G_ARRAY);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/MANIFEST 
new/Scalar-List-Utils-1.43/MANIFEST
--- old/Scalar-List-Utils-1.42/MANIFEST 2015-04-23 02:31:07.000000000 +0200
+++ new/Scalar-List-Utils-1.43/MANIFEST 2016-02-08 16:07:27.000000000 +0100
@@ -7,8 +7,6 @@
 Makefile.PL
 MANIFEST                       This list of files
 multicall.h
-MYMETA.json
-MYMETA.yml
 ppport.h
 README
 t/00version.t
@@ -31,6 +29,7 @@
 t/reduce.t
 t/refaddr.t
 t/reftype.t
+t/rt-96343.t
 t/scalarutil-proto.t
 t/shuffle.t
 t/stack-corruption.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/META.json 
new/Scalar-List-Utils-1.43/META.json
--- old/Scalar-List-Utils-1.42/META.json        2015-04-23 02:31:07.000000000 
+0200
+++ new/Scalar-List-Utils-1.43/META.json        2016-02-08 16:07:26.000000000 
+0100
@@ -3,8 +3,8 @@
    "author" : [
       "Graham Barr <[email protected]>"
    ],
-   "dynamic_config" : 1,
-   "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter 
version 2.142690",
+   "dynamic_config" : 0,
+   "generated_by" : "ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter 
version 2.150005",
    "license" : [
       "perl_5"
    ],
@@ -32,15 +32,23 @@
       },
       "runtime" : {
          "requires" : {
-            "Test::More" : "0"
+            "Test::More" : "0",
+            "perl" : "5.006"
          }
       }
    },
    "release_status" : "stable",
    "resources" : {
+      "bugtracker" : {
+         "mailto" : "[email protected]",
+         "web" : 
"https://rt.cpan.org/Public/Dist/Display.html?Name=Scalar-List-Utils";
+      },
       "repository" : {
-         "url" : "https://github.com/Scalar-List-Utils/Scalar-List-Utils";
+         "type" : "git",
+         "url" : "https://github.com/Scalar-List-Utils/Scalar-List-Utils.git";,
+         "web" : "https://github.com/Scalar-List-Utils/Scalar-List-Utils";
       }
    },
-   "version" : "1.42"
+   "version" : "1.43",
+   "x_serialization_backend" : "JSON::PP version 2.27300"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/META.yml 
new/Scalar-List-Utils-1.43/META.yml
--- old/Scalar-List-Utils-1.42/META.yml 2015-04-23 02:31:07.000000000 +0200
+++ new/Scalar-List-Utils-1.43/META.yml 2016-02-08 16:07:26.000000000 +0100
@@ -6,8 +6,8 @@
   ExtUtils::MakeMaker: '0'
 configure_requires:
   ExtUtils::MakeMaker: '0'
-dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 
2.142690'
+dynamic_config: 0
+generated_by: 'ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter 
version 2.150005'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -19,6 +19,9 @@
     - inc
 requires:
   Test::More: '0'
+  perl: '5.006'
 resources:
-  repository: https://github.com/Scalar-List-Utils/Scalar-List-Utils
-version: '1.42'
+  bugtracker: 
https://rt.cpan.org/Public/Dist/Display.html?Name=Scalar-List-Utils
+  repository: https://github.com/Scalar-List-Utils/Scalar-List-Utils.git
+version: '1.43'
+x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/MYMETA.json 
new/Scalar-List-Utils-1.43/MYMETA.json
--- old/Scalar-List-Utils-1.42/MYMETA.json      2015-04-23 02:30:57.000000000 
+0200
+++ new/Scalar-List-Utils-1.43/MYMETA.json      1970-01-01 01:00:00.000000000 
+0100
@@ -1,46 +0,0 @@
-{
-   "abstract" : "Common Scalar and List utility subroutines",
-   "author" : [
-      "Graham Barr <[email protected]>"
-   ],
-   "dynamic_config" : 0,
-   "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter 
version 2.142690",
-   "license" : [
-      "perl_5"
-   ],
-   "meta-spec" : {
-      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec";,
-      "version" : "2"
-   },
-   "name" : "Scalar-List-Utils",
-   "no_index" : {
-      "directory" : [
-         "t",
-         "inc"
-      ]
-   },
-   "prereqs" : {
-      "build" : {
-         "requires" : {
-            "ExtUtils::MakeMaker" : "0"
-         }
-      },
-      "configure" : {
-         "requires" : {
-            "ExtUtils::MakeMaker" : "0"
-         }
-      },
-      "runtime" : {
-         "requires" : {
-            "Test::More" : "0"
-         }
-      }
-   },
-   "release_status" : "stable",
-   "resources" : {
-      "repository" : {
-         "url" : "https://github.com/Scalar-List-Utils/Scalar-List-Utils";
-      }
-   },
-   "version" : "1.42"
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/MYMETA.yml 
new/Scalar-List-Utils-1.43/MYMETA.yml
--- old/Scalar-List-Utils-1.42/MYMETA.yml       2015-04-23 02:30:57.000000000 
+0200
+++ new/Scalar-List-Utils-1.43/MYMETA.yml       1970-01-01 01:00:00.000000000 
+0100
@@ -1,24 +0,0 @@
----
-abstract: 'Common Scalar and List utility subroutines'
-author:
-  - 'Graham Barr <[email protected]>'
-build_requires:
-  ExtUtils::MakeMaker: '0'
-configure_requires:
-  ExtUtils::MakeMaker: '0'
-dynamic_config: 0
-generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 
2.142690'
-license: perl
-meta-spec:
-  url: http://module-build.sourceforge.net/META-spec-v1.4.html
-  version: '1.4'
-name: Scalar-List-Utils
-no_index:
-  directory:
-    - t
-    - inc
-requires:
-  Test::More: '0'
-resources:
-  repository: https://github.com/Scalar-List-Utils/Scalar-List-Utils
-version: '1.42'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/Makefile.PL 
new/Scalar-List-Utils-1.43/Makefile.PL
--- old/Scalar-List-Utils-1.42/Makefile.PL      2012-09-27 19:30:16.000000000 
+0200
+++ new/Scalar-List-Utils-1.43/Makefile.PL      2016-02-04 16:14:28.000000000 
+0100
@@ -28,13 +28,24 @@
   ( $PERL_CORE
     ? ()
     : (
-      INSTALLDIRS => ($] < 5.011 ? q[perl] : q[site]),
-      PREREQ_PM   => {'Test::More' => 0,},
+      INSTALLDIRS      => ($] < 5.011 ? q[perl] : q[site]),
+      PREREQ_PM        => {'Test::More' => 0,},
       (eval { ExtUtils::MakeMaker->VERSION(6.31) } ? (LICENSE => 'perl') : ()),
+      (eval { ExtUtils::MakeMaker->VERSION(6.48) } ? (MIN_PERL_VERSION => 
'5.006') : ()),
       ( eval { ExtUtils::MakeMaker->VERSION(6.46) } ? (
           META_MERGE => {
+            'meta-spec' => { version => 2 },
+            dynamic_config => 0,
             resources => {    ##
-              repository => 
'https://github.com/Scalar-List-Utils/Scalar-List-Utils',
+              repository => {
+                url => 
'https://github.com/Scalar-List-Utils/Scalar-List-Utils.git',
+                web => 
'https://github.com/Scalar-List-Utils/Scalar-List-Utils',
+                type => 'git',
+              },
+              bugtracker => {
+                mailto => '[email protected]',
+                web => 
'https://rt.cpan.org/Public/Dist/Display.html?Name=Scalar-List-Utils',
+              },
             },
           }
           )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/lib/List/Util/XS.pm 
new/Scalar-List-Utils-1.43/lib/List/Util/XS.pm
--- old/Scalar-List-Utils-1.42/lib/List/Util/XS.pm      2015-04-23 
02:30:54.000000000 +0200
+++ new/Scalar-List-Utils-1.43/lib/List/Util/XS.pm      2016-02-08 
16:05:07.000000000 +0100
@@ -1,8 +1,9 @@
 package List::Util::XS;
 use strict;
+use warnings;
 use List::Util;
 
-our $VERSION = "1.42";       # FIXUP
+our $VERSION = "1.43";       # FIXUP
 $VERSION = eval $VERSION;    # FIXUP
 
 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/lib/List/Util.pm 
new/Scalar-List-Utils-1.43/lib/List/Util.pm
--- old/Scalar-List-Utils-1.42/lib/List/Util.pm 2015-04-23 02:30:54.000000000 
+0200
+++ new/Scalar-List-Utils-1.43/lib/List/Util.pm 2016-02-08 16:05:07.000000000 
+0100
@@ -7,6 +7,7 @@
 package List::Util;
 
 use strict;
+use warnings;
 require Exporter;
 
 our @ISA        = qw(Exporter);
@@ -14,7 +15,7 @@
   all any first min max minstr maxstr none notall product reduce sum sum0 
shuffle
   pairs unpairs pairkeys pairvalues pairmap pairgrep pairfirst
 );
-our $VERSION    = "1.42";
+our $VERSION    = "1.43";
 our $XS_VERSION = $VERSION;
 $VERSION    = eval $VERSION;
 
@@ -48,7 +49,15 @@
 
 =head1 SYNOPSIS
 
-    use List::Util qw(first max maxstr min minstr reduce shuffle sum);
+    use List::Util qw(
+      reduce any all none notall first
+
+      max maxstr min minstr product sum sum0
+
+      pairs pairkeys pairvalues pairfirst pairgrep pairmap
+
+      shuffle
+    );
 
 =head1 DESCRIPTION
 
@@ -67,7 +76,9 @@
 
 =cut
 
-=head2 $result = reduce { BLOCK } @list
+=head2 reduce
+
+    $result = reduce { BLOCK } @list
 
 Reduces C<@list> by calling C<BLOCK> in a scalar context multiple times,
 setting C<$a> and C<$b> each time. The first call will be with C<$a> and C<$b>
@@ -289,22 +300,23 @@
 I<Since version 1.29.>
 
 A convenient shortcut to operating on even-sized lists of pairs, this function
-returns a list of ARRAY references, each containing two items from the given
-list. It is a more efficient version of
+returns a list of C<ARRAY> references, each containing two items from the
+given list. It is a more efficient version of
 
     @pairs = pairmap { [ $a, $b ] } @kvlist
 
 It is most convenient to use in a C<foreach> loop, for example:
 
-    foreach my $pair ( pairs @KVLIST ) {
+    foreach my $pair ( pairs @kvlist ) {
        my ( $key, $value ) = @$pair;
        ...
     }
 
-Since version C<1.39> these ARRAY references are blessed objects, recognising
-the two methods C<key> and C<value>. The following code is equivalent:
+Since version C<1.39> these C<ARRAY> references are blessed objects,
+recognising the two methods C<key> and C<value>. The following code is
+equivalent:
 
-    foreach my $pair ( pairs @KVLIST ) {
+    foreach my $pair ( pairs @kvlist ) {
        my $key   = $pair->key;
        my $value = $pair->value;
        ...
@@ -316,7 +328,7 @@
 
 I<Since version 1.42.>
 
-The inverse function to C<pairs>; this function takes a list of ARRAY
+The inverse function to C<pairs>; this function takes a list of C<ARRAY>
 references containing two elements each, and returns a flattened list of the
 two values from each of the pairs, in order. This is notionally equivalent to
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/lib/Scalar/Util.pm 
new/Scalar-List-Utils-1.43/lib/Scalar/Util.pm
--- old/Scalar-List-Utils-1.42/lib/Scalar/Util.pm       2015-04-23 
02:30:54.000000000 +0200
+++ new/Scalar-List-Utils-1.43/lib/Scalar/Util.pm       2016-02-08 
16:05:07.000000000 +0100
@@ -7,6 +7,7 @@
 package Scalar::Util;
 
 use strict;
+use warnings;
 require Exporter;
 
 our @ISA       = qw(Exporter);
@@ -16,7 +17,7 @@
   dualvar isdual isvstring looks_like_number openhandle readonly set_prototype
   tainted
 );
-our $VERSION    = "1.42";
+our $VERSION    = "1.43";
 $VERSION   = eval $VERSION;
 
 require List::Util; # List::Util loads the XS
@@ -74,8 +75,8 @@
 
 C<Scalar::Util> contains a selection of subroutines that people have expressed
 would be nice to have in the perl core, but the usage would not really be high
-enough to warrant the use of a keyword, and the size so small such that being
-individual extensions would be wasteful.
+enough to warrant the use of a keyword, and the size would be so small that 
+being individual extensions would be wasteful.
 
 By default C<Scalar::Util> does not export any subroutines.
 
@@ -89,7 +90,7 @@
 
     my $pkg = blessed( $ref );
 
-If C<$ref> is a blessed reference the name of the package that it is blessed
+If C<$ref> is a blessed reference, the name of the package that it is blessed
 into is returned. Otherwise C<undef> is returned.
 
     $scalar = "foo";
@@ -108,7 +109,7 @@
 
     my $addr = refaddr( $ref );
 
-If C<$ref> is reference the internal memory address of the referenced value is
+If C<$ref> is reference, the internal memory address of the referenced value is
 returned as a plain integer. Otherwise C<undef> is returned.
 
     $addr = refaddr "string";           # undef
@@ -122,7 +123,7 @@
 
     my $type = reftype( $ref );
 
-If C<$ref> is a reference the basic Perl type of the variable referenced is
+If C<$ref> is a reference, the basic Perl type of the variable referenced is
 returned as a plain string (such as C<ARRAY> or C<HASH>). Otherwise C<undef>
 is returned.
 
@@ -138,7 +139,7 @@
     weaken( $ref );
 
 The lvalue C<$ref> will be turned into a weak reference. This means that it
-will not hold a reference count on the object it references. Also when the
+will not hold a reference count on the object it references. Also, when the
 reference count on that object reaches zero, the reference will be set to
 undef. This function mutates the lvalue passed as its argument and returns no
 value.
@@ -242,8 +243,8 @@
     $bar = $foo + 0;
     $dual = isdual($foo);               # true
 
-Note that although C<$!> appears to be dual-valued variable, it is actually
-implemented using a tied scalar:
+Note that although C<$!> appears to be a dual-valued variable, it is
+actually implemented as a magical variable inside the interpreter:
 
     $! = 1;
     print("$!\n");                      # "Operation not permitted"
@@ -258,7 +259,7 @@
 
     my $vstring = isvstring( $var );
 
-If C<$var> is a scalar which was coded as a vstring the result is true.
+If C<$var> is a scalar which was coded as a vstring, the result is true.
 
     $vs   = v49.46.48;
     $fmt  = isvstring($vs) ? "%vd" : "%s"; #true
@@ -328,15 +329,6 @@
 The version of perl that you are using does not implement Vstrings, to use
 L</isvstring> you will need to use a newer release of perl.
 
-=item C<NAME> is only available with the XS version of Scalar::Util
-
-C<Scalar::Util> contains both perl and C implementations of many of its
-functions so that those without access to a C compiler may still use it.
-However some of the functions are only available when a C compiler was
-available to compile the XS version of the extension.
-
-At present that list is: weaken, isweak, dualvar, isvstring, set_prototype
-
 =back
 
 =head1 KNOWN BUGS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/lib/Sub/Util.pm 
new/Scalar-List-Utils-1.43/lib/Sub/Util.pm
--- old/Scalar-List-Utils-1.42/lib/Sub/Util.pm  2015-04-23 02:30:54.000000000 
+0200
+++ new/Scalar-List-Utils-1.43/lib/Sub/Util.pm  2016-02-08 16:05:07.000000000 
+0100
@@ -15,7 +15,7 @@
   subname set_subname
 );
 
-our $VERSION    = "1.42";
+our $VERSION    = "1.43";
 $VERSION   = eval $VERSION;
 
 require List::Util; # as it has the XS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/t/product.t 
new/Scalar-List-Utils-1.43/t/product.t
--- old/Scalar-List-Utils-1.42/t/product.t      2014-08-27 22:58:45.000000000 
+0200
+++ new/Scalar-List-Utils-1.43/t/product.t      2016-02-08 16:05:07.000000000 
+0100
@@ -3,8 +3,9 @@
 use strict;
 use warnings;
 
-use Test::More tests => 13;
+use Test::More tests => 25;
 
+use Config;
 use List::Util qw(product);
 
 my $v = product;
@@ -19,6 +20,18 @@
 $v = product(-1);
 is( $v, -1, 'one -1');
 
+$v = product(0, 1, 2);
+is( $v, 0, 'first factor zero' );
+
+$v = product(0, 1);
+is( $v, 0, '0 * 1');
+
+$v = product(1, 0);
+is( $v, 0, '1 * 0');
+
+$v = product(0, 0);
+is( $v, 0, 'two 0');
+
 my $x = -3;
 
 $v = product($x, 3);
@@ -86,3 +99,29 @@
   is($t, 567, 'overload returning non-overload');
 }
 
+SKIP: {
+  skip "IV is not at least 64bit", 8 unless $Config{ivsize} >= 8;
+
+  my $t;
+  my $min = -(1<<31);
+  my $max = (1<<31)-1;
+
+  $t = product($min, $min);
+  is($t,  1<<62, 'min * min');
+  $t = product($min, $max);
+  is($t, (1<<31) - (1<<62), 'min * max');
+  $t = product($max, $min);
+  is($t, (1<<31) - (1<<62), 'max * min');
+  $t = product($max, $max);
+  is($t,  (1<<62)-(1<<32)+1, 'max * max');
+
+  $t = product($min*8, $min);
+  cmp_ok($t, '>',  (1<<61), 'min*8*min'); # may be an NV
+  $t = product($min*8, $max);
+  cmp_ok($t, '<', -(1<<61), 'min*8*max'); # may be an NV
+  $t = product($max, $min*8);
+  cmp_ok($t, '<', -(1<<61), 'min*max*8'); # may be an NV
+  $t = product($max, $max*8);
+  cmp_ok($t, '>',  (1<<61), 'max*max*8'); # may be an NV
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/t/rt-96343.t 
new/Scalar-List-Utils-1.43/t/rt-96343.t
--- old/Scalar-List-Utils-1.42/t/rt-96343.t     1970-01-01 01:00:00.000000000 
+0100
+++ new/Scalar-List-Utils-1.43/t/rt-96343.t     2016-02-08 16:05:07.000000000 
+0100
@@ -0,0 +1,35 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More;
+
+{
+  use List::Util qw( first );
+
+  my $hash = {
+    'HellO WorlD' => 1,
+  };
+
+  is( ( first { 'hello world' eq lc($_) } keys %$hash ), "HellO WorlD",
+    'first (lc$_) perserves value' );
+}
+
+{
+  use List::Util qw( any );
+
+  my $hash = {
+    'HellO WorlD' => 1,
+  };
+
+  my $var;
+
+  no warnings 'void';
+  any { lc($_); $var = $_; } keys %$hash;
+
+  is( $var, 'HellO WorlD',
+    'any (lc$_) leaves value undisturbed' );
+}
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Scalar-List-Utils-1.42/t/sum.t 
new/Scalar-List-Utils-1.43/t/sum.t
--- old/Scalar-List-Utils-1.42/t/sum.t  2014-08-27 22:58:45.000000000 +0200
+++ new/Scalar-List-Utils-1.43/t/sum.t  2016-02-08 16:05:07.000000000 +0100
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 15;
+use Test::More tests => 17;
 
 use Config;
 use List::Util qw(sum);
@@ -91,9 +91,17 @@
 }
 
 SKIP: {
-  skip "IV is not at least 64bit", 1 unless $Config{ivsize} >= 8;
+  skip "IV is not at least 64bit", 3 unless $Config{ivsize} >= 8;
 
   # Sum using NV will only preserve 53 bits of integer precision
   my $t = sum(1<<60, 1);
   cmp_ok($t, '>', 1<<60, 'sum uses IV where it can');
+
+  my $min = -(1<<63);
+  my $max = (1<<63)-1;
+
+  $t = sum($min, $max);
+  is($t, -1, 'min + max');
+  $t = sum($max, $min);
+  is($t, -1, 'max + min');
 }


Reply via email to