Hello community,

here is the log from the commit of package perl-version for openSUSE:Factory 
checked in at 2015-04-15 16:27:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-version (Old)
 and      /work/SRC/openSUSE:Factory/.perl-version.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-version"

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-version/perl-version.changes        
2014-10-01 11:23:53.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-version.new/perl-version.changes   
2015-04-15 16:27:29.000000000 +0200
@@ -1,0 +2,243 @@
+Tue Apr 14 19:25:08 UTC 2015 - [email protected]
+
+- updated to 0.9912
+   see /usr/share/doc/packages/perl-version/Changes
+
+  2015-01-20  John Peacock  <[email protected]>
+  
+       * .hgtags, Makefile.PL, README, lib/version.pm, lib/version/regex.pm,
+       t/00impl-pp.t, t/01base.t, t/02derived.t, t/03require.t,
+       t/05sigdie.t, t/06noop.t, t/07locale.t, t/08_corelist.t,
+       t/09_list_util.t, t/coretests.pm, vperl/vpp.pm,
+       vutil/lib/version/vxs.pm, vutil/vutil.c:
+       flow: Merged <hotfix> '0.9912' to <develop> ('develop').
+       [646e8c5c4769] [tip] <develop>
+  
+       * .hgtags:
+       Added tag 0.9912 for changeset d95ec600e4b8
+       [d0a8bd97c2d8]
+  
+       * flow: Merged <hotfix> '0.9912' to <master> ('default').
+       [d95ec600e4b8] [0.9912]
+  
+       * flow: Closed <hotfix> '0.9912'.
+       [d4a3dc59d496] <hotfix/0.9912>
+  
+       * Makefile.PL, README, lib/version.pm, lib/version/regex.pm, t/00impl-
+       pp.t, t/01base.t, t/02derived.t, t/03require.t, t/05sigdie.t,
+       t/06noop.t, t/07locale.t, t/08_corelist.t, t/09_list_util.t,
+       vperl/vpp.pm, vutil/lib/version/vxs.pm:
+       Ready for release
+       [2e8e456b5f69] <hotfix/0.9912>
+  
+       * vperl/vpp.pm, vutil/vutil.c:
+       Ignore leading zeros when parsing qv versions
+       [8d4f602d49bc] <hotfix/0.9912>
+  
+       * t/coretests.pm:
+       Add test before fixing behavior.
+       [73ad9715162c] <hotfix/0.9912>
+  
+       * .shipit, t/coretests.pm, vperl/vpp.pm, vutil/vutil.c:
+       Finish reverting the ill-advised alpha->normal code
+       [468d3b498d58] <hotfix/0.9912>
+  
+       * flow: Created branch 'hotfix/0.9912'.
+       [a9f6f567d387] <hotfix/0.9912>
+  
+       * vperl/vpp.pm, vutil/vutil.c:
+       Ignore leading zeros when parsing qv versions
+       [7e36d3c46d88] [default/development] <release/0.9912>
+  
+       * t/coretests.pm:
+       Add test before fixing behavior.
+       [d4befa972a57] <release/0.9912>
+  
+       * vperl/vpp.pm, vutil/vutil.c:
+       Initial cap on warnings to be consistent with perldig
+       [d0cce4fa33ac] <release/0.9912>
+  
+  2015-01-19  John Peacock  <[email protected]>
+  
+       * vperl/vpp.pm, vutil/vutil.c:
+       Always use numeric warnings and prefix them to make perldiag more
+       useful
+       [6345b0e62b3e] [github/development] <release/0.9912>
+  
+  2015-01-18  John Peacock  <[email protected]>
+  
+       * flow: Created branch 'release/0.9912'.
+       [0a04b5e70190] <release/0.9912>
+  
+       * Initial:
+       Merge in dupe heads
+       [397c2045b0c1] [default/master, github/master]
+  
+  2015-01-18  John Peacock  <[email protected]>
+  
+       * Initial:
+       Commit an empty file to start over
+       [8becec36c4af]
+  
+  2015-01-18  John Peacock  <[email protected]>
+  
+       * flow: Merged <feature> 'alpha_normal' to <develop> ('develop').
+       [7f1bbc22403f] <develop>
+  
+       * flow: Closed <feature> 'alpha_normal'.
+       [d4ec344eaf25] <feature/alpha_normal>
+  
+       * Makefile.PL, README, lib/version.pm, lib/version/regex.pm, t/00impl-
+       pp.t, t/01base.t, t/02derived.t, t/03require.t, t/05sigdie.t,
+       t/06noop.t, t/07locale.t, t/08_corelist.t, t/09_list_util.t,
+       vperl/vpp.pm, vutil/lib/version/vxs.pm:
+       Bump versions to 0.9912
+       [cdba24734cbb] <feature/alpha_normal>
+  
+       * README:
+       Hopefully this will be true
+       [9bb4a810f212] <feature/alpha_normal>
+  
+       * Makefile.PL:
+       Picky, picky, picky. Resolves
+  
+        https://rt.cpan.org/Public/Bug/Display.html?id=101600
+       [05740f0e1d4a] <feature/alpha_normal>
+  
+       * .shipit, Makefile.PL, lib/version.pm, lib/version/regex.pm, t
+       /00impl-pp.t, t/01base.t, t/02derived.t, t/03require.t,
+       t/05sigdie.t, t/06noop.t, t/07locale.t, t/08_corelist.t,
+       t/09_list_util.t, t/coretests.pm, vperl/vpp.pm,
+       vutil/lib/version/vxs.pm, vutil/vutil.c:
+       Reapply this change now
+       [0652edbe911d] <feature/alpha_normal>
+  
+       * flow: Created branch 'feature/alpha_normal'.
+       [8cb2f4e319c3] <feature/alpha_normal>
+  
+  2015-01-17  John Peacock  <[email protected]>
+  
+       * .hgtags:
+       Removed tag v0.9910
+       [eb66489945fd] <develop>
+  
+       * .hgtags:
+       Added tag 0.9910 for changeset 4d00adc23f19
+       [6d03680705f6] <develop>
+  
+       * flow: Merged <hotfix> '0.9911' to <develop> ('develop').
+       [55a3bfc0b3fc] <develop>
+  
+       * .hgtags:
+       Added tag 0.9911 for changeset fb394f4ac5fc
+       [3127ec2a07b6]
+  
+       * flow: Merged <hotfix> '0.9911' to <master> ('default').
+       [fb394f4ac5fc] [0.9911]
+  
+       * flow: Closed <hotfix> '0.9911'.
+       [d4bec652869d] <hotfix/0.9911>
+  
+       * .shipit:
+       Need to disable this because it doesn't understand hotfix branches
+       [2b1b81b21756] <hotfix/0.9911>
+  
+       * Makefile.PL, lib/version.pm, lib/version/regex.pm, t/00impl-pp.t,
+       t/01base.t, t/02derived.t, t/03require.t, t/05sigdie.t, t/06noop.t,
+       t/07locale.t, t/08_corelist.t, t/09_list_util.t, t/coretests.pm,
+       vperl/vpp.pm, vutil/lib/version/vxs.pm, vutil/vutil.c:
+       Pull out the changed behavior of normal(), since it breaks M::B
+       [a6c92bf7e426] <hotfix/0.9911>
+  
+       * .shipit:
+       Restore the Finish step and remember to use it this time.
+       [9a8e87ab3743] <hotfix/0.9911>
+  
+       * flow: Created branch 'hotfix/0.9911'.
+       [83a460962b55] <hotfix/0.9911>
+  
+       * .shipit:
+       Checking in changes prior to tagging of version 0.9910.
+  
+       Changelog diff is:
+       [1f732d03f5eb]
+  
+       * .hgtags:
+       Added tag v0.9910 for changeset 4d00adc23f19
+       [58b1b7d17dd4]
+  
+       * flow: Merged <release> '0.9910' to <master> ('default').
+       [4d00adc23f19] [0.9910]
+  
+       * flow: Merged <release> '0.9910' to <develop> ('develop').
+       [8ac3661f1f71] <develop>
+  
+       * flow: Closed <release> '0.9910'.
+       [6890ac6a6a3e] <release/0.9910>
+  
+  2014-06-22  John Peacock  <[email protected]>
+  
+       * README, vutil/vutil.c, vutil/vxs.inc:
+       [PATCH] version distribution dVAR updates. commit
+       9bdbb2bdbd72d8d02cb8bcb0d27e7eeeacd415af Author: Jarkko Hietaniemi
+       <[email protected]>
+       [267cb6097a5f] <release/0.9910>
+  
+  2014-12-23  David Mitchell  <[email protected]>
+  
+       * README, vutil/vutil.c:
+       [PATCH] 'version': vutil.c: silence overflow warnings
+  
+       From a3f461a88988cef9a89c13ab42c50556750ede51 Mon Sep 17 00:00:00
+       2001 Running 'clang -fsanitize=undefined' on the perl test suite
+       triggers a number of warnings:
+  
+        vutil.c:354:9: runtime error: signed integer overflow: 750283776 +
+       1705032704 cannot be represented in type 'int' vutil.c:354:25:
+       runtime error: signed integer overflow: 6 * 1000000000 cannot be
++++ 46 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/perl-version/perl-version.changes
++++ and /work/SRC/openSUSE:Factory/.perl-version.new/perl-version.changes

Old:
----
  version-0.9909.tar.gz

New:
----
  version-0.9912.tar.gz

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

Other differences:
------------------
++++++ perl-version.spec ++++++
--- /var/tmp/diff_new_pack.6zjUPQ/_old  2015-04-15 16:27:29.000000000 +0200
+++ /var/tmp/diff_new_pack.6zjUPQ/_new  2015-04-15 16:27:29.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-version
 #
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 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-version
-Version:        0.9909
+Version:        0.9912
 Release:        0
 %define cpan_name version
 Summary:        Perl extension for Version Objects

++++++ version-0.9909.tar.gz -> version-0.9912.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/Changes new/version-0.9912/Changes
--- old/version-0.9909/Changes  2014-08-16 14:42:43.000000000 +0200
+++ new/version-0.9912/Changes  2015-01-21 03:40:45.000000000 +0100
@@ -1,8 +1,317 @@
+2015-01-20  John Peacock  <[email protected]>
+
+       * .hgtags, Makefile.PL, README, lib/version.pm, lib/version/regex.pm,
+       t/00impl-pp.t, t/01base.t, t/02derived.t, t/03require.t,
+       t/05sigdie.t, t/06noop.t, t/07locale.t, t/08_corelist.t,
+       t/09_list_util.t, t/coretests.pm, vperl/vpp.pm,
+       vutil/lib/version/vxs.pm, vutil/vutil.c:
+       flow: Merged <hotfix> '0.9912' to <develop> ('develop').
+       [646e8c5c4769] [tip] <develop>
+
+       * .hgtags:
+       Added tag 0.9912 for changeset d95ec600e4b8
+       [d0a8bd97c2d8]
+
+       * flow: Merged <hotfix> '0.9912' to <master> ('default').
+       [d95ec600e4b8] [0.9912]
+
+       * flow: Closed <hotfix> '0.9912'.
+       [d4a3dc59d496] <hotfix/0.9912>
+
+       * Makefile.PL, README, lib/version.pm, lib/version/regex.pm, t/00impl-
+       pp.t, t/01base.t, t/02derived.t, t/03require.t, t/05sigdie.t,
+       t/06noop.t, t/07locale.t, t/08_corelist.t, t/09_list_util.t,
+       vperl/vpp.pm, vutil/lib/version/vxs.pm:
+       Ready for release
+       [2e8e456b5f69] <hotfix/0.9912>
+
+       * vperl/vpp.pm, vutil/vutil.c:
+       Ignore leading zeros when parsing qv versions
+       [8d4f602d49bc] <hotfix/0.9912>
+
+       * t/coretests.pm:
+       Add test before fixing behavior.
+       [73ad9715162c] <hotfix/0.9912>
+
+       * .shipit, t/coretests.pm, vperl/vpp.pm, vutil/vutil.c:
+       Finish reverting the ill-advised alpha->normal code
+       [468d3b498d58] <hotfix/0.9912>
+
+       * flow: Created branch 'hotfix/0.9912'.
+       [a9f6f567d387] <hotfix/0.9912>
+
+       * vperl/vpp.pm, vutil/vutil.c:
+       Ignore leading zeros when parsing qv versions
+       [7e36d3c46d88] [default/development] <release/0.9912>
+
+       * t/coretests.pm:
+       Add test before fixing behavior.
+       [d4befa972a57] <release/0.9912>
+
+       * vperl/vpp.pm, vutil/vutil.c:
+       Initial cap on warnings to be consistent with perldig
+       [d0cce4fa33ac] <release/0.9912>
+
+2015-01-19  John Peacock  <[email protected]>
+
+       * vperl/vpp.pm, vutil/vutil.c:
+       Always use numeric warnings and prefix them to make perldiag more
+       useful
+       [6345b0e62b3e] [github/development] <release/0.9912>
+
+2015-01-18  John Peacock  <[email protected]>
+
+       * flow: Created branch 'release/0.9912'.
+       [0a04b5e70190] <release/0.9912>
+
+       * Initial:
+       Merge in dupe heads
+       [397c2045b0c1] [default/master, github/master]
+
+2015-01-18  John Peacock  <[email protected]>
+
+       * Initial:
+       Commit an empty file to start over
+       [8becec36c4af]
+
+2015-01-18  John Peacock  <[email protected]>
+
+       * flow: Merged <feature> 'alpha_normal' to <develop> ('develop').
+       [7f1bbc22403f] <develop>
+
+       * flow: Closed <feature> 'alpha_normal'.
+       [d4ec344eaf25] <feature/alpha_normal>
+
+       * Makefile.PL, README, lib/version.pm, lib/version/regex.pm, t/00impl-
+       pp.t, t/01base.t, t/02derived.t, t/03require.t, t/05sigdie.t,
+       t/06noop.t, t/07locale.t, t/08_corelist.t, t/09_list_util.t,
+       vperl/vpp.pm, vutil/lib/version/vxs.pm:
+       Bump versions to 0.9912
+       [cdba24734cbb] <feature/alpha_normal>
+
+       * README:
+       Hopefully this will be true
+       [9bb4a810f212] <feature/alpha_normal>
+
+       * Makefile.PL:
+       Picky, picky, picky. Resolves
+
+        https://rt.cpan.org/Public/Bug/Display.html?id=101600
+       [05740f0e1d4a] <feature/alpha_normal>
+
+       * .shipit, Makefile.PL, lib/version.pm, lib/version/regex.pm, t
+       /00impl-pp.t, t/01base.t, t/02derived.t, t/03require.t,
+       t/05sigdie.t, t/06noop.t, t/07locale.t, t/08_corelist.t,
+       t/09_list_util.t, t/coretests.pm, vperl/vpp.pm,
+       vutil/lib/version/vxs.pm, vutil/vutil.c:
+       Reapply this change now
+       [0652edbe911d] <feature/alpha_normal>
+
+       * flow: Created branch 'feature/alpha_normal'.
+       [8cb2f4e319c3] <feature/alpha_normal>
+
+2015-01-17  John Peacock  <[email protected]>
+
+       * .hgtags:
+       Removed tag v0.9910
+       [eb66489945fd] <develop>
+
+       * .hgtags:
+       Added tag 0.9910 for changeset 4d00adc23f19
+       [6d03680705f6] <develop>
+
+       * flow: Merged <hotfix> '0.9911' to <develop> ('develop').
+       [55a3bfc0b3fc] <develop>
+
+       * .hgtags:
+       Added tag 0.9911 for changeset fb394f4ac5fc
+       [3127ec2a07b6]
+
+       * flow: Merged <hotfix> '0.9911' to <master> ('default').
+       [fb394f4ac5fc] [0.9911]
+
+       * flow: Closed <hotfix> '0.9911'.
+       [d4bec652869d] <hotfix/0.9911>
+
+       * .shipit:
+       Need to disable this because it doesn't understand hotfix branches
+       [2b1b81b21756] <hotfix/0.9911>
+
+       * Makefile.PL, lib/version.pm, lib/version/regex.pm, t/00impl-pp.t,
+       t/01base.t, t/02derived.t, t/03require.t, t/05sigdie.t, t/06noop.t,
+       t/07locale.t, t/08_corelist.t, t/09_list_util.t, t/coretests.pm,
+       vperl/vpp.pm, vutil/lib/version/vxs.pm, vutil/vutil.c:
+       Pull out the changed behavior of normal(), since it breaks M::B
+       [a6c92bf7e426] <hotfix/0.9911>
+
+       * .shipit:
+       Restore the Finish step and remember to use it this time.
+       [9a8e87ab3743] <hotfix/0.9911>
+
+       * flow: Created branch 'hotfix/0.9911'.
+       [83a460962b55] <hotfix/0.9911>
+
+       * .shipit:
+       Checking in changes prior to tagging of version 0.9910.
+
+       Changelog diff is:
+       [1f732d03f5eb]
+
+       * .hgtags:
+       Added tag v0.9910 for changeset 4d00adc23f19
+       [58b1b7d17dd4]
+
+       * flow: Merged <release> '0.9910' to <master> ('default').
+       [4d00adc23f19] [0.9910]
+
+       * flow: Merged <release> '0.9910' to <develop> ('develop').
+       [8ac3661f1f71] <develop>
+
+       * flow: Closed <release> '0.9910'.
+       [6890ac6a6a3e] <release/0.9910>
+
+2014-06-22  John Peacock  <[email protected]>
+
+       * README, vutil/vutil.c, vutil/vxs.inc:
+       [PATCH] version distribution dVAR updates. commit
+       9bdbb2bdbd72d8d02cb8bcb0d27e7eeeacd415af Author: Jarkko Hietaniemi
+       <[email protected]>
+       [267cb6097a5f] <release/0.9910>
+
+2014-12-23  David Mitchell  <[email protected]>
+
+       * README, vutil/vutil.c:
+       [PATCH] 'version': vutil.c: silence overflow warnings
+
+       From a3f461a88988cef9a89c13ab42c50556750ede51 Mon Sep 17 00:00:00
+       2001 Running 'clang -fsanitize=undefined' on the perl test suite
+       triggers a number of warnings:
+
+        vutil.c:354:9: runtime error: signed integer overflow: 750283776 +
+       1705032704 cannot be represented in type 'int' vutil.c:354:25:
+       runtime error: signed integer overflow: 6 * 1000000000 cannot be
+       represented in type 'int' vutil.c:355:10: runtime error: signed
+       integer overflow: 1000000000 * 10 cannot be represented in type
+       'int'
+
+       This is because the version string parsing code takes a "maybe
+       overflow, then check to see if we've overflown" approach. Which is
+       perfectly fine, but clashes with clang.
+
+       This commit makes it take the opposite approach of checking each
+       time
+       *before* doing the += mult*i and mult*=10 steps.
+
+       A bit clunky, but ASan only allows you to disable these warnings on
+       a per-function basis, and it's a reasonably large function.
+
+       I suspect that the block of code above this may need similar
+       treatment, but as it wasn't triggering clang warnings, I didn't look
+       at it.
+       --- vutil.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+),
+       5 deletions(-)
+       [d90a6cd2ecba] <release/0.9910>
+
+2014-08-30  John Peacock  <[email protected]>
+
+       * .shipit:
+       Ready to release now
+       [bfd261163ee7] <release/0.9910>
+
+       * .shipit:
+       Try new Finish step
+       [67dc070b3131] <release/0.9910>
+
+2014-08-23  John Peacock  <[email protected]>
+
+       * .hgignore, Makefile.PL:
+       Force the VERSION so we can control the tarball name
+       [616ea2110028] <release/0.9910>
+
+       * vutil/vutil.c, vutil/vutil.h:
+       Apply suggested changes from Karl Williamson
+       [61cfdfe0c2e5] <release/0.9910>
+
+       * flow: Created branch 'release/0.9910'.
+       [a91839728adf] <release/0.9910>
+
 2014-08-16  John Peacock  <[email protected]>
 
+       * Abandon branch
+       [40dd9d98c543] <tied-version>
+
+       * Abandon branch
+       [1fba9539ca49] <version-math>
+
+       * Abandon branch
+       [9f7dab2e3b63] <version-new>
+
+       * Abandon branch
+       [802e90e66daa] <version-combined>
+
+       * Abandon branch
+       [98825da284e9] <version-xs>
+
+       * flow initialization: Created <develop> trunk: develop.
+       [a06c96873576] <develop>
+
+       * .hgflow:
+       flow initialization: Added configuration file.
+       [90bd285c19ff] <version-xs>
+
+       * .hgflow:
+       flow initialization: Added configuration file.
+       [24d1df41799d] <tied-version>
+
+       * .hgflow:
+       flow initialization: Added configuration file.
+       [3d621fc33f37] <version-math>
+
+       * .hgflow:
+       flow initialization: Added configuration file.
+       [d78406b7976d] <version-new>
+
+       * .hgflow:
+       flow initialization: Added configuration file.
+       [6ce1e6af1058] <version-combined>
+
+       * .hgflow:
+       flow initialization: Added configuration file.
+       [dd443f6b0b8a]
+
+       * Close this branch
+       [6b82507b2ea1] <0.9909>
+
+       * t/coretests.pm:
+       Remove debugging
+       [68e1b230196e]
+
+       * README:
+       Revise README
+       [5e4557ca4717]
+
+       * README:
+       Clean up README
+       [3beec2fae46a]
+
+       * vutil/vutil.c:
+       Do not need to use unsigned
+       [37972ebd5be1]
+
+       * README, lib/version.pm, lib/version/regex.pm, t/00impl-pp.t,
+       t/01base.t, t/02derived.t, t/03require.t, t/05sigdie.t, t/06noop.t,
+       t/07locale.t, t/08_corelist.t, t/09_list_util.t, vperl/vpp.pm,
+       vutil/lib/version/vxs.pm:
+       Bump $VERSION for release
+       [3696ffe9e7a8]
+
+       * README, lib/version.pm, vperl/vpp.pm, vutil/vutil.c:
+       Merge in 0.9909 as released to CPAN
+       [5d7666eff3af]
+
        * .hgtags:
        Tagging version '0.9909' using shipit.
-       [28f76b8d2918] [tip] <0.9909>
+       [28f76b8d2918] <0.9909>
 
 2014-08-15  John Peacock  <[email protected]>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/META.json new/version-0.9912/META.json
--- old/version-0.9909/META.json        2014-08-16 14:42:43.000000000 +0200
+++ new/version-0.9912/META.json        2015-01-21 03:40:44.000000000 +0100
@@ -4,7 +4,7 @@
       "John Peacock <[email protected]>"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter 
version 2.120921",
+   "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter 
version 2.143240",
    "license" : [
       "perl_5"
    ],
@@ -41,5 +41,15 @@
       }
    },
    "release_status" : "stable",
-   "version" : "0.9909"
+   "resources" : {
+      "bugtracker" : {
+         "mailto" : "[email protected]",
+         "web" : "https://rt.cpan.org/Public/Dist/Display.html?Name=version";
+      },
+      "repository" : {
+         "type" : "hg",
+         "url" : "https://bitbucket.org/jpeacock/version";
+      }
+   },
+   "version" : "0.9912"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/META.yml new/version-0.9912/META.yml
--- old/version-0.9909/META.yml 2014-08-16 14:42:43.000000000 +0200
+++ new/version-0.9912/META.yml 2015-01-21 03:40:44.000000000 +0100
@@ -3,24 +3,27 @@
 author:
   - 'John Peacock <[email protected]>'
 build_requires:
-  ExtUtils::MakeMaker: 0
+  ExtUtils::MakeMaker: '0'
 configure_requires:
-  ExtUtils::MakeMaker: 0
+  ExtUtils::MakeMaker: '0'
 dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 
2.120921'
+generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 
2.143240'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
-  version: 1.4
+  version: '1.4'
 name: version
 no_index:
   directory:
     - t
     - inc
 requires:
-  ExtUtils::MakeMaker: 6.17
-  File::Temp: 0.13
-  Test::More: 0.45
-  parent: 0.221
-  perl: 5.006002
-version: 0.9909
+  ExtUtils::MakeMaker: '6.17'
+  File::Temp: '0.13'
+  Test::More: '0.45'
+  parent: '0.221'
+  perl: '5.006002'
+resources:
+  bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=version
+  repository: https://bitbucket.org/jpeacock/version
+version: '0.9912'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/Makefile.PL 
new/version-0.9912/Makefile.PL
--- old/version-0.9909/Makefile.PL      2014-08-15 12:41:35.000000000 +0200
+++ new/version-0.9912/Makefile.PL      2015-01-21 03:37:28.000000000 +0100
@@ -52,7 +52,7 @@
         'parent'                => 0.221,
     );
 
-    WriteMakefile( VERSION_FROM    => 'lib/version.pm',
+    WriteMakefile( VERSION         => '0.9912',
                    NAME            => 'version',
                    LICENSE         => 'perl',
                    MIN_PERL_VERSION=> 5.006002,
@@ -94,6 +94,19 @@
                           'hg log --style changelog > Changes'
                        ),
                    },
+                   META_MERGE => {
+                       "meta-spec" => { version => 2 },
+                       resources => {
+                           repository => {
+                               type => 'hg',
+                               url => 'https://bitbucket.org/jpeacock/version'
+                           },
+                           bugtracker => {
+                               web => 
'https://rt.cpan.org/Public/Dist/Display.html?Name=version',
+                               mailto => '[email protected]',
+                           },
+                       },
+                   },
                  );
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/README new/version-0.9912/README
--- old/version-0.9909/README   2014-08-15 12:58:25.000000000 +0200
+++ new/version-0.9912/README   2015-01-21 03:37:57.000000000 +0100
@@ -1,17 +1,72 @@
-version 0.9909
+version 0.9912
 ==================================
 
-Full version object support, with patch for bug in Perl 5.10.0 core
-version support.
+Object oriented versions for all Perl releases from 5.6.2 onward.  Replaces
+the core version code for all Perl releases from 5.10.0 onwards.
+
+Although this code has been fully integrated into the latest Perl release
+itself (e.g. bleadperl), the CPAN release is considered upstream.  The source
+code itself is available from two mirrors:
+
+    https://bitbucket.org/jpeacock/version (primary)
+    https://github.com/JohnPeacock/version.git (secondary)
+
+and a bug queue here:
+
+   https://rt.cpan.org/Dist/Display.html?Queue=version
+
+Patches welcomed.
+
+IMPORTANT NOTE - 0.9906 is the last release that fully supports Perl
+releases prior to 5.6.2.  It is just too much trouble to continue to
+fight to maintain full backward compatibility.
 
 YOU SHOULD INSTALL THIS RELEASE WHEN USING VERSION OBJECTS IN PERL 5.10.0.
 There was a bug caused by objects serialized by YAML that will cause Perl
 5.10.0 to segfault.  As long as some module calls 'use version', then the
 replacement code will take effect and Perl will not crash.
 
-IMPORTANT NOTE - 0.9906 is the last release that fully supports Perl
-releases prior to 5.6.2.  It is just too much trouble to continue to
-fight to maintain full backward compatibility.
+Major Changes in 0.9912 - 2015-01-20
+=====================================
+
+Complete reverting the ill-conceived alpha->normal() code, resolves:
+
+    https://rt.cpan.org/Ticket/Display.html?id=101632
+
+Skip leading zeros when parsing dotted-decimal versions after the
+first element, resolves:
+
+    https://rt.cpan.org/Ticket/Display.html?id=101628
+
+Minor change to report the correct rt.cpan.org URL, resolves:
+
+    https://rt.cpan.org/Public/Bug/Display.html?id=101600
+
+Major Change in 0.9911 - 2015-01-17
+=====================================
+Backout change to normal() and numify() because it breaks Module::Build
+
+Major Changes in 0.9910 - 2015-01-17
+=====================================
+Ensure that calling either normal() or numify() on an alpha version
+is explicitly a lossy operation, and add a warning to that effect.  Forbid
+trailing bare decimal for dotted-decimal versions.  Change heuristic in vpp
+to better resolve v-string versions.  Various cleanups.
+
+Resolves:
+
+    https://rt.cpan.org/Ticket/Display.html?id=93603
+    https://rt.cpan.org/Ticket/Display.html?id=93715
+    https://rt.cpan.org/Ticket/Display.html?id=93721
+    https://rt.cpan.org/Ticket/Display.html?id=95896
+    https://rt.cpan.org/Ticket/Display.html?id=96100
+    https://rt.cpan.org/Ticket/Display.html?id=96620
+    https://rt.cpan.org/Ticket/Display.html?id=96699
+
+Patch from Dave Mitchell to rewrite the parser and avoid warnings
+from clang.  Resolves
+
+    https://rt.cpan.org/Ticket/Display.html?id=101501
 
 Major Changes in 0.9909 - 2014-08-15
 =====================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/lib/version/regex.pm 
new/version-0.9912/lib/version/regex.pm
--- old/version-0.9909/lib/version/regex.pm     2014-08-15 12:54:50.000000000 
+0200
+++ new/version-0.9912/lib/version/regex.pm     2015-01-21 03:37:58.000000000 
+0100
@@ -4,7 +4,7 @@
 
 use vars qw($VERSION $CLASS $STRICT $LAX);
 
-$VERSION = 0.9909;
+$VERSION = 0.9912;
 
 #--------------------------------------------------------------------------#
 # Version regexp components
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/lib/version.pm 
new/version-0.9912/lib/version.pm
--- old/version-0.9909/lib/version.pm   2014-08-16 14:42:40.000000000 +0200
+++ new/version-0.9912/lib/version.pm   2015-01-21 03:37:58.000000000 +0100
@@ -3,10 +3,14 @@
 
 use 5.006002;
 use strict;
+use warnings::register;
+if ($] >= 5.015) {
+    warnings::register_categories(qw/version/);
+}
 
 use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
 
-$VERSION = 0.9909;
+$VERSION = 0.9912;
 $CLASS = 'version';
 
 # !!!!Delete this next block completely when adding to Perl core!!!!
@@ -23,6 +27,8 @@
        *version::_VERSION = \&version::vpp::_VERSION;
        *version::vcmp = \&version::vpp::vcmp;
        *version::new = \&version::vpp::new;
+       *version::numify = \&version::vpp::numify;
+       *version::normal = \&version::vpp::normal;
        if ($] >= 5.009000) {
            no strict 'refs';
            *version::stringify = \&version::vpp::stringify;
@@ -39,6 +45,8 @@
        *version::_VERSION = \&version::vxs::_VERSION;
        *version::vcmp = \&version::vxs::VCMP;
        *version::new = \&version::vxs::new;
+       *version::numify = \&version::vxs::numify;
+       *version::normal = \&version::vxs::normal;
        if ($] >= 5.009000) {
            no strict 'refs';
            *version::stringify = \&version::vxs::stringify;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/lib/version.pod 
new/version-0.9912/lib/version.pod
--- old/version-0.9909/lib/version.pod  2014-08-15 12:43:31.000000000 +0200
+++ new/version-0.9912/lib/version.pod  2015-01-21 02:54:36.000000000 +0100
@@ -270,7 +270,7 @@
 trailing zeroes.
 
  version->declare('v1.2')->numify;  # 1.002
- version->parse('1.2')->numify;     # 1.2
+ version->parse('1.2')->numify;     # 1.200
 
 =head2 stringify()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/t/00impl-pp.t 
new/version-0.9912/t/00impl-pp.t
--- old/version-0.9909/t/00impl-pp.t    2014-08-15 12:54:50.000000000 +0200
+++ new/version-0.9912/t/00impl-pp.t    2015-01-21 03:37:58.000000000 +0100
@@ -9,7 +9,7 @@
 BEGIN {
     (my $coretests = $0) =~ s'[^/]+\.t'coretests.pm';
     require $coretests;
-    use_ok('version::vpp', 0.9909);
+    use_ok('version::vpp', 0.9912);
 }
 
 BaseTests("version::vpp","new","qv");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/t/01base.t 
new/version-0.9912/t/01base.t
--- old/version-0.9909/t/01base.t       2014-08-15 12:54:50.000000000 +0200
+++ new/version-0.9912/t/01base.t       2015-01-21 03:37:58.000000000 +0100
@@ -9,7 +9,7 @@
 BEGIN {
     (my $coretests = $0) =~ s'[^/]+\.t'coretests.pm';
     require $coretests;
-    use_ok('version', 0.9909);
+    use_ok('version', 0.9912);
 }
 
 BaseTests("version","new","qv");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/t/02derived.t 
new/version-0.9912/t/02derived.t
--- old/version-0.9909/t/02derived.t    2014-08-15 12:54:50.000000000 +0200
+++ new/version-0.9912/t/02derived.t    2015-01-21 03:37:58.000000000 +0100
@@ -10,7 +10,7 @@
 BEGIN {
     (my $coretests = $0) =~ s'[^/]+\.t'coretests.pm';
     require $coretests;
-    use_ok("version", 0.9909);
+    use_ok("version", 0.9912);
     # If we made it this far, we are ok.
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/t/03require.t 
new/version-0.9912/t/03require.t
--- old/version-0.9909/t/03require.t    2014-08-15 12:54:50.000000000 +0200
+++ new/version-0.9912/t/03require.t    2015-01-21 03:37:58.000000000 +0100
@@ -14,7 +14,7 @@
 # Don't want to use, because we need to make sure that the import doesn't
 # fire just yet (some code does this to avoid importing qv() and delare()).
 require_ok("version");
-is $version::VERSION, 0.9909, "Make sure we have the correct class";
+is $version::VERSION, 0.9912, "Make sure we have the correct class";
 ok(!"main"->can("qv"), "We don't have the imported qv()");
 ok(!"main"->can("declare"), "We don't have the imported declare()");
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/t/05sigdie.t 
new/version-0.9912/t/05sigdie.t
--- old/version-0.9909/t/05sigdie.t     2014-08-15 12:54:50.000000000 +0200
+++ new/version-0.9912/t/05sigdie.t     2015-01-21 03:37:58.000000000 +0100
@@ -14,7 +14,7 @@
 }
 
 BEGIN {
-    use version 0.9909;
+    use version 0.9912;
 }
 
 pass "Didn't get caught by the wrong DIE handler, which is a good thing";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/t/06noop.t 
new/version-0.9912/t/06noop.t
--- old/version-0.9909/t/06noop.t       2014-08-15 12:54:50.000000000 +0200
+++ new/version-0.9912/t/06noop.t       2015-01-21 03:37:58.000000000 +0100
@@ -7,7 +7,7 @@
 use Test::More qw/no_plan/;
 
 BEGIN {
-    use_ok('version', 0.9909);
+    use_ok('version', 0.9912);
 }
 
 my $v1 = version->new('1.2');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/t/07locale.t 
new/version-0.9912/t/07locale.t
--- old/version-0.9909/t/07locale.t     2014-08-15 12:54:50.000000000 +0200
+++ new/version-0.9912/t/07locale.t     2015-01-21 03:37:58.000000000 +0100
@@ -11,7 +11,7 @@
 use Config;
 
 BEGIN {
-    use_ok('version', 0.9909);
+    use_ok('version', 0.9912);
 }
 
 SKIP: {
@@ -20,7 +20,7 @@
            if(!$Config{d_setlocale});
 
        # test locale handling
-       my $warning;
+       my $warning = '';
 
        local $SIG{__WARN__} = sub { $warning = $_[0] };
 
@@ -53,8 +53,6 @@
        setlocale( LC_ALL, $orig_loc); # reset this before possible skip
        skip 'Cannot test RT#46921 with Perl < 5.008', 1
            if ($] < 5.008);
-       skip 'Cannot test RT#46921 with pure Perl module', 1
-           if exists $INC{'version/vpp.pm'};
        my ($fh, $filename) = tempfile('tXXXXXXX', SUFFIX => '.pm', UNLINK => 
1);
        (my $package = basename($filename)) =~ s/\.pm$//;
        print $fh <<"EOF";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/t/08_corelist.t 
new/version-0.9912/t/08_corelist.t
--- old/version-0.9909/t/08_corelist.t  2014-08-15 12:54:50.000000000 +0200
+++ new/version-0.9912/t/08_corelist.t  2015-01-21 03:37:58.000000000 +0100
@@ -5,7 +5,7 @@
 #########################
 
 use Test::More tests => 3;
-use_ok("version", 0.9909);
+use_ok("version", 0.9912);
 
 # do strict lax tests in a sub to isolate a package to test importing
 SKIP: {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/t/09_list_util.t 
new/version-0.9912/t/09_list_util.t
--- old/version-0.9909/t/09_list_util.t 2014-08-15 12:54:50.000000000 +0200
+++ new/version-0.9912/t/09_list_util.t 2015-01-21 03:37:58.000000000 +0100
@@ -4,7 +4,7 @@
 #########################
 
 use strict;
-use_ok("version", 0.9909);
+use_ok("version", 0.9912);
 use Test::More;
 
 BEGIN {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/t/coretests.pm 
new/version-0.9912/t/coretests.pm
--- old/version-0.9909/t/coretests.pm   2014-08-15 12:41:35.000000000 +0200
+++ new/version-0.9912/t/coretests.pm   2015-01-21 03:38:16.000000000 +0100
@@ -592,7 +592,40 @@
        eval {my $v = $CLASS->new({1 => 2}) };
        like $@, qr/Invalid version format/, 'Do not crash for garbage';
     }
-
+    { # https://rt.cpan.org/Ticket/Display.html?id=93603
+       eval {my $v = $CLASS->$method('.1.')};
+       like $@, qr/trailing decimal/, 'Forbid trailing decimals';
+       eval {my $v = $CLASS->$method('.1.2.')};
+       like $@, qr/trailing decimal/, 'Forbid trailing decimals';
+    }
+    { # https://rt.cpan.org/Ticket/Display.html?id=93715
+       eval {my $v = $CLASS->new(v1.2)};
+       unlike $@, qr/non-numeric data/, 'Handle short v-strings';
+       eval {my $v = $CLASS->new(v1)};
+       unlike $@, qr/non-numeric data/, 'Handle short v-strings';
+    }
+    {
+       my $two31 = '2147483648';
+       my $v = $CLASS->new($two31);
+       is "$v", 'v.Inf', 'Element Exceeds VERSION_MAX';
+       like $warning, qr/Integer overflow in version/, 'Overflow warning';
+       $v = $CLASS->new("1.$two31.$two31");
+       is "$v", 'v.Inf', 'Element Exceeds VERSION_MAX';
+       like $warning, qr/Integer overflow in version/, 'Overflow warning';
+    }
+    {
+       # now as a number
+       $two31 = 2**31;
+       $v = $CLASS->new($two31);
+       is "$v", 'v.Inf', 'Element Exceeds VERSION_MAX';
+       like $warning, qr/Integer overflow in version/, 'Overflow warning';
+    }
+    { # https://rt.cpan.org/Ticket/Display.html?id=101628
+       undef $warning;
+       $v = $CLASS->new('1.1.00000000010');
+       is $v->normal, "v1.1.10", 'Ignore leading zeros';
+       unlike $warning, qr/Integer overflow in version/, 'No overflow warning';
+    }
 }
 
 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/vperl/vpp.pm 
new/version-0.9912/vperl/vpp.pm
--- old/version-0.9909/vperl/vpp.pm     2014-08-15 12:54:50.000000000 +0200
+++ new/version-0.9912/vperl/vpp.pm     2015-01-21 03:38:38.000000000 +0100
@@ -119,11 +119,18 @@
 
 use 5.006002;
 use strict;
+use warnings::register;
 
 use Config;
-use vars qw($VERSION $CLASS @ISA $LAX $STRICT);
-$VERSION = 0.9909;
+use vars qw($VERSION $CLASS @ISA $LAX $STRICT $WARN_CATEGORY);
+$VERSION = 0.9912;
 $CLASS = 'version::vpp';
+if ($] > 5.015) {
+    warnings::register_categories(qw/version/);
+    $WARN_CATEGORY = 'version';
+} else {
+    $WARN_CATEGORY = 'numeric';
+}
 
 require version::regex;
 *version::vpp::is_strict = \&version::regex::is_strict;
@@ -148,16 +155,6 @@
     'abs'      => \&vnoop,
 );
 
-eval "use warnings";
-if ($@) {
-    eval '
-       package
-       warnings;
-       sub enabled {return $^W;}
-       1;
-    ';
-}
-
 sub import {
     no strict 'refs';
     my ($class) = shift;
@@ -196,7 +193,7 @@
     }
 
     if (exists($args{'UNIVERSAL::VERSION'})) {
-       local $^W;
+       no warnings qw/redefine/;
        *UNIVERSAL::VERSION
                = \&{$CLASS.'::_VERSION'};
     }
@@ -438,6 +435,10 @@
        # trailing non-numeric data
        return BADVERSION($s,$errstr,"Invalid version format (non-numeric 
data)");
     }
+    if ($saw_decimal > 1 && ($d-1) eq '.') {
+       # no trailing period allowed
+       return BADVERSION($s,$errstr,"Invalid version format (trailing 
decimal)");
+    }
 
     if (defined $sqv) {
        $$sqv = $qv;
@@ -560,7 +561,14 @@
                last;
            }
            elsif ( $pos eq '.' ) {
-               $s = ++$pos;
+               $pos++;
+               if ($qv) {
+                   # skip leading zeros
+                   while ($pos eq '0') {
+                       $pos++;
+                   }
+               }
+               $s = $pos;
            }
            elsif ( $pos eq '_' && isDIGIT($pos+1) ) {
                $s = ++$pos;
@@ -717,6 +725,10 @@
     my $digit = $self->{version}[0];
     my $string = sprintf("%d.", $digit );
 
+    if ($alpha and warnings::enabled()) {
+       warnings::warn($WARN_CATEGORY, 'alpha->numify() is lossy');
+    }
+
     for ( my $i = 1 ; $i < $len ; $i++ ) {
        $digit = $self->{version}[$i];
        if ( $width < 3 ) {
@@ -752,6 +764,8 @@
        Carp::croak("Invalid version object");
     }
     my $alpha = $self->{alpha} || "";
+    my $qv = $self->{qv} || "";
+
     my $len = $#{$self->{version}};
     my $digit = $self->{version}[0];
     my $string = sprintf("v%d", $digit );
@@ -925,16 +939,16 @@
 sub _un_vstring {
     my $value = shift;
     # may be a v-string
-    if ( length($value) >= 3 && $value !~ /[._]/
+    if ( length($value) >= 1 && $value !~ /[,._]/
        && _is_non_alphanumeric($value)) {
        my $tvalue;
-       if ( $] ge 5.008_001 ) {
+       if ( $] >= 5.008_001 ) {
            $tvalue = _find_magic_vstring($value);
            $value = $tvalue if length $tvalue;
        }
-       elsif ( $] ge 5.006_000 ) {
+       elsif ( $] >= 5.006_000 ) {
            $tvalue = sprintf("v%vd",$value);
-           if ( $tvalue =~ /^v\d+(\.\d+){2,}$/ ) {
+           if ( $tvalue =~ /^v\d+(\.\d+)*$/ ) {
                # must be a v-string
                $value = $tvalue;
            }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/vutil/lib/version/vxs.pm 
new/version-0.9912/vutil/lib/version/vxs.pm
--- old/version-0.9909/vutil/lib/version/vxs.pm 2014-08-15 12:54:50.000000000 
+0200
+++ new/version-0.9912/vutil/lib/version/vxs.pm 2015-01-21 03:38:39.000000000 
+0100
@@ -5,7 +5,7 @@
 use strict;
 
 use vars qw(@ISA $VERSION $CLASS );
-$VERSION = 0.9909;
+$VERSION = 0.9912;
 $CLASS = 'version::vxs';
 
 eval {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/vutil/vutil.c 
new/version-0.9912/vutil/vutil.c
--- old/version-0.9909/vutil/vutil.c    2014-08-15 12:50:21.000000000 +0200
+++ new/version-0.9912/vutil/vutil.c    2015-01-21 03:39:01.000000000 +0100
@@ -41,7 +41,7 @@
     bool alpha = FALSE;
     const char *d = s;
 
-    PERL_ARGS_ASSERT_PRESCAN_VERSION;
+    PERL_ARGS_ASSERT_PRESCAN_VERSION; PERL_UNUSED_CONTEXT;
 
     if (qv && isDIGIT(*d))
        goto dotted_decimal_version;
@@ -224,6 +224,11 @@
        /* trailing non-numeric data */
        BADVERSION(s,errstr,"Invalid version format (non-numeric data)");
     }
+    if (saw_decimal > 1 && d[-1] == '.') {
+       /* no trailing period allowed */
+       BADVERSION(s,errstr,"Invalid version format (trailing decimal)");
+    }
+
 
     if (sqv)
        *sqv = qv;
@@ -348,17 +353,24 @@
                }
                else {
                    while (--end >= s) {
-                       orev = rev;
-                       rev += (*end - '0') * mult;
-                       mult *= 10;
-                       if (   (PERL_ABS(orev) > PERL_ABS(rev)) 
-                           || (PERL_ABS(rev) > VERSION_MAX )) {
+                       int i  = (*end - '0');
+                        if (   (mult == VERSION_MAX)
+                            || (i > VERSION_MAX / mult)
+                            || (i * mult > VERSION_MAX - rev))
+                        {
                            Perl_ck_warner(aTHX_ packWARN(WARN_OVERFLOW), 
                                           "Integer overflow in version");
                            end = s - 1;
                            rev = VERSION_MAX;
                            vinf = 1;
                        }
+                        else
+                            rev += i * mult;
+
+                        if (mult > VERSION_MAX / 10)
+                            mult = VERSION_MAX;
+                        else
+                            mult *= 10;
                    }
                } 
            }
@@ -369,8 +381,14 @@
                s = last;
                break;
            }
-           else if ( *pos == '.' )
-               s = ++pos;
+           else if ( *pos == '.' ) {
+               pos++;
+               if (qv) {
+                   while (*pos == '0')
+                       ++pos;
+               }
+               s = pos;
+           }
            else if ( *pos == '_' && isDIGIT(pos[1]) )
                s = ++pos;
            else if ( *pos == ',' && isDIGIT(pos[1]) )
@@ -459,7 +477,6 @@
 Perl_new_version(pTHX_ SV *ver)
 #endif
 {
-    dVAR;
     SV * const rv = newSV(0);
     PERL_ARGS_ASSERT_NEW_VERSION;
     if ( ISA_VERSION_OBJ(ver) ) /* can just copy directly */
@@ -621,6 +638,7 @@
 #endif
         { /* Braces needed because macro just below declares a variable */
         STORE_NUMERIC_LOCAL_SET_STANDARD();
+        LOCK_NUMERIC_STANDARD();
        if (sv) {
            Perl_sv_catpvf(aTHX_ sv, "%.9"NVff, SvNVX(ver));
            len = SvCUR(sv);
@@ -630,6 +648,7 @@
            len = my_snprintf(tbuf, sizeof(tbuf), "%.9"NVff, SvNVX(ver));
            buf = tbuf;
        }
+        UNLOCK_NUMERIC_STANDARD();
         RESTORE_NUMERIC_LOCAL();
         }
        while (buf[len-1] == '0' && len > 0) len--;
@@ -820,6 +839,11 @@
     }
 
 
+    if (alpha) {
+       Perl_ck_warner(aTHX_ packWARN(WARN_NUMERIC),
+                      "alpha->numify() is lossy");
+    }
+
     /* attempt to retrieve the version array */
     if ( !(av = MUTABLE_AV(SvRV(*hv_fetchs(MUTABLE_HV(vs), "version", FALSE))) 
) ) {
        return newSVpvs("0");
@@ -890,6 +914,7 @@
 {
     I32 i, len, digit;
     bool alpha = FALSE;
+    bool qv = FALSE;
     SV *sv;
     AV *av;
 
@@ -902,6 +927,9 @@
 
     if ( hv_exists(MUTABLE_HV(vs), "alpha", 5 ) )
        alpha = TRUE;
+    if ( hv_exists(MUTABLE_HV(vs), "qv", 2) )
+       qv = TRUE;
+
     av = MUTABLE_AV(SvRV(*hv_fetchs(MUTABLE_HV(vs), "version", FALSE)));
 
     len = av_len(av);
@@ -1082,3 +1110,5 @@
     }
     return retval;
 }
+
+/* ex: set ro: */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/vutil/vutil.h 
new/version-0.9912/vutil/vutil.h
--- old/version-0.9909/vutil/vutil.h    2014-08-15 12:44:11.000000000 +0200
+++ new/version-0.9912/vutil/vutil.h    2015-01-21 02:54:36.000000000 +0100
@@ -239,3 +239,13 @@
 #  define RESTORE_NUMERIC_LOCAL()
 # endif
 #endif
+
+#ifndef LOCK_NUMERIC_STANDARD
+#define LOCK_NUMERIC_STANDARD()
+#endif
+
+#ifndef UNLOCK_NUMERIC_STANDARD
+#define UNLOCK_NUMERIC_STANDARD()
+#endif
+
+/* ex: set ro: */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/version-0.9909/vutil/vxs.inc 
new/version-0.9912/vutil/vxs.inc
--- old/version-0.9909/vutil/vxs.inc    2014-08-15 12:46:36.000000000 +0200
+++ new/version-0.9912/vutil/vxs.inc    2015-01-21 02:54:36.000000000 +0100
@@ -86,7 +86,6 @@
 
 VXS(universal_version)
 {
-    dVAR;
     dXSARGS;
     HV *pkg;
     GV **gvp;
@@ -185,7 +184,6 @@
 
 VXS(version_new)
 {
-    dVAR;
     dXSARGS;
     SV *vs;
     SV *rv;
@@ -225,7 +223,6 @@
     default:
     case 0:
         Perl_croak_nocontext("Usage: version::new(class, version)");
-        break;
     }
 
     svarg0 = ST(0);
@@ -267,7 +264,6 @@
 
 VXS(version_stringify)
 {
-     dVAR;
      dXSARGS;
      if (items < 1)
         croak_xs_usage(cv, "lobj, ...");
@@ -282,7 +278,6 @@
 
 VXS(version_numify)
 {
-     dVAR;
      dXSARGS;
      if (items < 1)
         croak_xs_usage(cv, "lobj, ...");
@@ -296,7 +291,6 @@
 
 VXS(version_normal)
 {
-     dVAR;
      dXSARGS;
      if (items != 1)
         croak_xs_usage(cv, "ver");
@@ -311,7 +305,6 @@
 
 VXS(version_vcmp)
 {
-     dVAR;
      dXSARGS;
      if (items < 1)
         croak_xs_usage(cv, "lobj, ...");
@@ -347,7 +340,6 @@
 
 VXS(version_boolean)
 {
-    dVAR;
     dXSARGS;
     SV *lobj;
     if (items < 1)
@@ -368,7 +360,6 @@
 
 VXS(version_noop)
 {
-    dVAR;
     dXSARGS;
     if (items < 1)
        croak_xs_usage(cv, "lobj, ...");
@@ -383,7 +374,6 @@
 void
 S_version_check_key(pTHX_ CV * cv, const char * key, int keylen)
 {
-    dVAR;
     dXSARGS;
     if (items != 1)
        croak_xs_usage(cv, "lobj");
@@ -408,7 +398,6 @@
 
 VXS(version_qv)
 {
-    dVAR;
     dXSARGS;
     PERL_UNUSED_ARG(cv);
     SP -= items;


Reply via email to