Hello community,

here is the log from the commit of package perl-Math-BigInt for 
openSUSE:Factory checked in at 2017-03-31 15:08:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Math-BigInt (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Math-BigInt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Math-BigInt"

Fri Mar 31 15:08:23 2017 rev:31 rq:482419 version:1.999811

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Math-BigInt/perl-Math-BigInt.changes        
2017-02-15 10:06:49.616636155 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Math-BigInt.new/perl-Math-BigInt.changes   
2017-03-31 15:08:27.141165376 +0200
@@ -1,0 +2,49 @@
+Fri Mar 17 06:58:23 UTC 2017 - [email protected]
+
+- updated to 1.999811
+   see /usr/share/doc/packages/perl-Math-BigInt/CHANGES
+
+  2017-03-15 v1.999811 pjacklam
+  
+   * Fix an old in the Math::BigFloat methods as_hex(), as_oct(), and as_bin()
+     methods resulting in loss of accuracy. This bug was introduced in bug in
+     Math-BigInt-1.76. Due to a naive copy and paste by me, and lack of tests,
+     this bug was also present in the newer to_hex(), to_oct(), and to_bin()
+     methods. This shows the bug, as it did not print "0xffff...":
+  
+         print Math::BigFloat -> from_hex("f" x 30) -> as_hex();
+  
+   * Fix incorrect formatting in the output from the Math::BigFloat methods
+     to_hex(), to_oct(), and to_bin() when the output was zero. A prefix was
+     added when it shouldn't have been.
+  
+   * Add tests to bigintpm.inc and bigfltpm.inc for better testing of as_hex(),
+     as_oct(), and as_bin() as well as to_hex(), to_oct(), and to_bin().
+  
+   * "Synchronize" tests and code formatting in bigintpm.inc and bigfltpm.inc.
+
+-------------------------------------------------------------------
+Fri Mar  3 06:57:10 UTC 2017 - [email protected]
+
+- updated to 1.999810
+   see /usr/share/doc/packages/perl-Math-BigInt/CHANGES
+
+  2017-03-01 v1.999810 pjacklam
+  
+   * CPAN RT #120240 revealed that the problems with undefined values is still
+     present. After a close examination, I believe the only way to get this
+     really working is to to make blog() call objectify() differently depending
+     on whether the base for the logarithm is undefined or not. That way we can
+     avoid objectify() converting the undefined value to a zero. Ideally, we
+     should warn about undefined values when used in any other context, but 
we'll
+     handle that in a later release. See also the related changelog entry for
+     v1.999801.
+  
+   * Fix the way the argument count is computed in objectify(). When an 
argument
+     count of 0 is given, it means that we should objectify all input 
arguments.
+     However, it turned out that the actual argument count was computed
+     incorrectly.
+  
+   * Fix CPAN RT #120242 rearding c3 method resolution.
+
+-------------------------------------------------------------------

Old:
----
  Math-BigInt-1.999809.tar.gz

New:
----
  Math-BigInt-1.999811.tar.gz

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

Other differences:
------------------
++++++ perl-Math-BigInt.spec ++++++
--- /var/tmp/diff_new_pack.ho2bGh/_old  2017-03-31 15:08:27.753078865 +0200
+++ /var/tmp/diff_new_pack.ho2bGh/_new  2017-03-31 15:08:27.757078299 +0200
@@ -17,14 +17,14 @@
 
 
 Name:           perl-Math-BigInt
-Version:        1.999809
+Version:        1.999811
 Release:        0
 %define cpan_name Math-BigInt
 Summary:        Arbitrary size integer/float math package
 License:        Artistic-1.0 or GPL-1.0+
 Group:          Development/Libraries/Perl
 Url:            http://search.cpan.org/dist/Math-BigInt/
-Source0:        
http://www.cpan.org/authors/id/P/PJ/PJACKLAM/%{cpan_name}-%{version}.tar.gz
+Source0:        
https://cpan.metacpan.org/authors/id/P/PJ/PJACKLAM/%{cpan_name}-%{version}.tar.gz
 Source1:        cpanspec.yml
 BuildArch:      noarch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -64,6 +64,7 @@
 
 %files -f %{name}.files
 %defattr(-,root,root,755)
-%doc BUGS CHANGES CREDITS examples GOALS HISTORY LICENSE NEW README TODO
+%doc BUGS CHANGES CREDITS examples GOALS HISTORY NEW README TODO
+%license LICENSE
 
 %changelog

++++++ Math-BigInt-1.999809.tar.gz -> Math-BigInt-1.999811.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/CHANGES 
new/Math-BigInt-1.999811/CHANGES
--- old/Math-BigInt-1.999809/CHANGES    2017-02-10 12:01:15.000000000 +0100
+++ new/Math-BigInt-1.999811/CHANGES    2017-03-15 11:21:43.000000000 +0100
@@ -1,3 +1,40 @@
+2017-03-15 v1.999811 pjacklam
+
+ * Fix an old in the Math::BigFloat methods as_hex(), as_oct(), and as_bin()
+   methods resulting in loss of accuracy. This bug was introduced in bug in
+   Math-BigInt-1.76. Due to a naive copy and paste by me, and lack of tests,
+   this bug was also present in the newer to_hex(), to_oct(), and to_bin()
+   methods. This shows the bug, as it did not print "0xffff...":
+
+       print Math::BigFloat -> from_hex("f" x 30) -> as_hex();
+
+ * Fix incorrect formatting in the output from the Math::BigFloat methods
+   to_hex(), to_oct(), and to_bin() when the output was zero. A prefix was
+   added when it shouldn't have been.
+
+ * Add tests to bigintpm.inc and bigfltpm.inc for better testing of as_hex(),
+   as_oct(), and as_bin() as well as to_hex(), to_oct(), and to_bin().
+
+ * "Synchronize" tests and code formatting in bigintpm.inc and bigfltpm.inc.
+
+2017-03-01 v1.999810 pjacklam
+
+ * CPAN RT #120240 revealed that the problems with undefined values is still
+   present. After a close examination, I believe the only way to get this
+   really working is to to make blog() call objectify() differently depending
+   on whether the base for the logarithm is undefined or not. That way we can
+   avoid objectify() converting the undefined value to a zero. Ideally, we
+   should warn about undefined values when used in any other context, but we'll
+   handle that in a later release. See also the related changelog entry for
+   v1.999801.
+
+ * Fix the way the argument count is computed in objectify(). When an argument
+   count of 0 is given, it means that we should objectify all input arguments.
+   However, it turned out that the actual argument count was computed
+   incorrectly.
+
+ * Fix CPAN RT #120242 rearding c3 method resolution.
+
 2017-02-10 v1.999809 pjacklam
 
  * When a new method is added to Math::BigInt or Math::BigFloat, and this new
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/MANIFEST.SKIP 
new/Math-BigInt-1.999811/MANIFEST.SKIP
--- old/Math-BigInt-1.999809/MANIFEST.SKIP      2016-07-11 13:08:02.000000000 
+0200
+++ new/Math-BigInt-1.999811/MANIFEST.SKIP      2017-03-01 12:54:11.000000000 
+0100
@@ -10,3 +10,4 @@
 \.*tmp
 .*\.patch\z
 ^Math-BigInt-
+~\z
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/META.json 
new/Math-BigInt-1.999811/META.json
--- old/Math-BigInt-1.999809/META.json  2017-02-10 12:06:49.000000000 +0100
+++ new/Math-BigInt-1.999811/META.json  2017-03-15 11:25:23.000000000 +0100
@@ -39,6 +39,6 @@
       }
    },
    "release_status" : "stable",
-   "version" : "1.999809",
+   "version" : "1.999811",
    "x_serialization_backend" : "JSON::PP version 2.27400"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/META.yml 
new/Math-BigInt-1.999811/META.yml
--- old/Math-BigInt-1.999809/META.yml   2017-02-10 12:06:47.000000000 +0100
+++ new/Math-BigInt-1.999811/META.yml   2017-03-15 11:25:20.000000000 +0100
@@ -21,5 +21,5 @@
   Math::Complex: '1.39'
   Test::More: '0.94'
   perl: '5.006001'
-version: '1.999809'
+version: '1.999811'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/SIGNATURE 
new/Math-BigInt-1.999811/SIGNATURE
--- old/Math-BigInt-1.999809/SIGNATURE  2017-02-10 12:06:53.000000000 +0100
+++ new/Math-BigInt-1.999811/SIGNATURE  2017-03-15 11:26:48.000000000 +0100
@@ -15,15 +15,15 @@
 Hash: SHA1
 
 SHA1 20104176cd4b0623c201cdb2c9583056898b2afc BUGS
-SHA1 427947bca6aaab32da506d0dff040b01c0cefb37 CHANGES
+SHA1 3688157c3c5e324465ac2a102b4ca0368874bc62 CHANGES
 SHA1 a40e6f05bfd2a3e0542cf9e4971b1d48100eb2fd CREDITS
 SHA1 8d0b726d78afa344fb12508e1b027079699570e4 GOALS
 SHA1 fe61299e80a1dca48fbaa33f0869e3238ec07c70 HISTORY
 SHA1 d7c83d8f89b92a3262a01eb2778d39402e77263a LICENSE
 SHA1 66ec462f7cac003832200f3132b2426d5b1c4edd MANIFEST
-SHA1 86df44fbe1ea7a68897113f0e327d0f0c25b91e3 MANIFEST.SKIP
-SHA1 84f0993213e2fbd080c9c66017e4e3d8825b14e5 META.json
-SHA1 b2b0aa6dbb414625563c42f0e7411dd3f4e080c3 META.yml
+SHA1 5e76f3cc33453fc0617509755b82695402ca81c5 MANIFEST.SKIP
+SHA1 3814f79c63b8f54416fd59033e199fbdf9ef9bbb META.json
+SHA1 37e9b7a5b2d6102fe58eb6e98cc40d93ca76b7d6 META.yml
 SHA1 64057848e0b32a6dc4666981c40443fad32197ff Makefile.PL
 SHA1 4e2191d1724e699862efc5350f480c8e02755112 NEW
 SHA1 813c62e6d3edd18b7b634765ecbd75b2cd6389a0 README
@@ -31,21 +31,21 @@
 SHA1 a8ffc7d3270e481c9d24603a74ba2c0f46cae0e3 examples/1000.txt
 SHA1 3295c03031e6a50199c1acc743a3f3276e6ae59d examples/bigprimes.pl
 SHA1 989bfc0ad145d0f42b1eb65e83d9de018a7ee150 examples/prime.pl
-SHA1 707e4ea0932aab1bd3d8314b539344a20753446d lib/Math/BigFloat.pm
-SHA1 3e54ce7b99815eaad5d0a27574ea3bbb7fca4e93 lib/Math/BigInt.pm
-SHA1 ba034b5b2f2167bc9a16bf051282dcf394abe7c2 lib/Math/BigInt/Calc.pm
-SHA1 40cfd23d1bbe9da59e0e42187aeb345c9e2ca97b lib/Math/BigInt/CalcEmu.pm
-SHA1 b8ef5b71c4d65e813a096823dd5e67d936db8667 lib/Math/BigInt/Lib.pm
+SHA1 c7dbeb239c255749eac2a61266830bcdba464f66 lib/Math/BigFloat.pm
+SHA1 95ecb2c5618146b7cf8e42260567dd8c23246ede lib/Math/BigInt.pm
+SHA1 1c5c504e33b3bbf83ccc4448f5b839b7c7f4a5a5 lib/Math/BigInt/Calc.pm
+SHA1 5c8bcc7494ea09bbe4345f950a3f7bf890b0e478 lib/Math/BigInt/CalcEmu.pm
+SHA1 41b9aa1fd37a233e9d7af2de0d09b9e0f1ff551b lib/Math/BigInt/Lib.pm
 SHA1 385cc7ed3bf3e6290640b9880445ca9a3dea629e t/00sig.t
 SHA1 062a7e33e6697b19e002cdb11f3c648fe6669139 t/01load.t
 SHA1 b2ed9206ca5b69ec3b8bbf850bf4b6dfde518e7e t/02pod.t
 SHA1 47c879490e1a6229d0464805679c67660af7b4b3 t/03podcov.t
-SHA1 a323fbde83f97abdedc14ff923a2ecabb1333e2d t/Math/BigFloat/Subclass.pm
+SHA1 ed28da618fe54da4ab6262d2459896b61c38b597 t/Math/BigFloat/Subclass.pm
 SHA1 079c95d9ecb1e4c0a863c60d66c15c407b162ad9 t/Math/BigInt/BareCalc.pm
 SHA1 e8bff535d485feb97b03fe8217f3446a28d82fe8 t/Math/BigInt/Lib/Minimal.pm
 SHA1 e7eef054ec92ff5d259edfb9b39c932db74ffad3 t/Math/BigInt/Lib/TestUtil.pm
 SHA1 54f99a0bf52a848dbf34e459daef0df4694e543a t/Math/BigInt/Scalar.pm
-SHA1 69c77dbdb12adb852836eaebb0c6957154de4e19 t/Math/BigInt/Subclass.pm
+SHA1 3f15444c9efd2720beab72481ce950192932794f t/Math/BigInt/Subclass.pm
 SHA1 6d11459530fb13a9e3c490cc3cb9040f9b78cdb4 t/_e_math.t
 SHA1 0d67c764487923bd2427c7ac20778308bea548d6 t/alias.inc
 SHA1 bcf4632983c6b52fcc7d694a60899576a4ec8fbe t/author-batan-mbf.t
@@ -155,8 +155,8 @@
 SHA1 75a086f2d747b58afb4fb2de412b2217b2cf11f0 t/author-numify-mbf.t
 SHA1 dc386a2bd21a363c42f3dcbf7e9745632cd3d633 t/author-numify-mbi.t
 SHA1 096ed0c89fca2f4be7ee211521dbc74a2cd39eaf t/author-relop-mbi-mbf.t
-SHA1 9bcf9f3a49e5e1bee5223ad95548affb1d2bc02e t/bare_mbf.t
-SHA1 2a141825c46936a62db3568227923e7153c982ec t/bare_mbi.t
+SHA1 590c5c6aae1b8af3a65115f2cc511994a08d44fd t/bare_mbf.t
+SHA1 4730c87b2161836f3ad9fc20c836fcb8680779db t/bare_mbi.t
 SHA1 f172265d69c5dc6879cb650b5ba1f34374104616 t/bare_mif.t
 SHA1 75daf2820044e03c6a073e2633122c1182da018c t/bdstr-mbf.t
 SHA1 7e5d1349b113ad024efe066e42a50bc9ff595550 t/bdstr-mbi.t
@@ -164,11 +164,11 @@
 SHA1 ed5547fcac28f575d1bbd2e3e5f6fe5f6146c321 t/bestr-mbi.t
 SHA1 96bd46866ad45ceed4eedc1c33a3105ee1ae2bc5 t/bfib-mbi.t
 SHA1 e6bd71c0d21c7199106b5580e2fbd186b6b01d29 t/big_pi_e.t
-SHA1 709cef0e13fd2a85f007482877bfdcf42bf5f8d4 t/bigfltpm.inc
-SHA1 b79b49c9653b1ab538753a9857d3bd1dc134f1a0 t/bigfltpm.t
+SHA1 b6e1b050cc36155e07df1e6f3b495c9f8a15a192 t/bigfltpm.inc
+SHA1 9ce986af92d35f94702607dcb4346e4f242a42b2 t/bigfltpm.t
 SHA1 b601bb8f081b3e2c5626995e66f3fe1cdef8af6e t/bigintc.t
-SHA1 f05bb12c2eaafa41b4409146cc160d37d8424670 t/bigintpm.inc
-SHA1 635900d55b826d5221ef77bc760f498718e77810 t/bigintpm.t
+SHA1 b27b994895f5f08dc63f93ce42b5952520f29820 t/bigintpm.inc
+SHA1 ebc6a2433d3cafabb0ee182e59fd3627145e8f46 t/bigintpm.t
 SHA1 9aac2eda0e723298c8f9ddadffde39a8c16fb171 t/bigints.t
 SHA1 3f4bf6d2717d47117ab987cc6ff8d38991cdd383 t/biglog.t
 SHA1 128c6cb0ef562637e7b44bafa83188b058392392 t/bigroot.t
@@ -179,7 +179,7 @@
 SHA1 c97164e3ae794f8d2f141be42e5f7af4f2dd674b t/bsstr-mbi.t
 SHA1 dcaf0d82455c9a814da942383cbceb2da7ad3a4c t/calling-class-methods.t
 SHA1 63e873c5cdcccfb338fb9220d33904027865e9cf t/calling-instance-methods.t
-SHA1 0b78fc72dafd67450fac6f35b8cd2ef312523fcd t/calling.t
+SHA1 738f639a5d08f788760977c8838e51ecf2663f6a t/calling.t
 SHA1 c403d1c64ae6c3b803fc8cd0d10a1df15219057f t/config.t
 SHA1 af01ecfb6f43bb518c67185eb063c196e2dbdc48 t/const_mbf.t
 SHA1 17eb15c35392945a5b3ed2b711f7d166fca294de t/constant.t
@@ -221,28 +221,28 @@
 SHA1 a23c4c5027ff03a39504f43936de66606bb11703 t/sparts-mbf.t
 SHA1 f766d72f97efd1328b8bc18edd0f9a2b5550c870 t/sparts-mbi.t
 SHA1 ab253275ec4288308f6ea6ecf0744e24cb3c356a t/sub_ali.t
-SHA1 7b25cae704b5574d658858700ff3624fc563e722 t/sub_mbf.t
-SHA1 c5d499796b7ceafad0e228828619514df4773df4 t/sub_mbi.t
+SHA1 3a71b6973d0621a741e13dcd5390000c6c576086 t/sub_mbf.t
+SHA1 e094f0cfd091f662cbc1f67a0a31705e41c9232c t/sub_mbi.t
 SHA1 8a1adad6483302054e1c14af6e09fb72e8bfec91 t/sub_mif.t
 SHA1 b9f56157a8517bce2e7b1bae4c989d58546f5b2c t/trap.t
 SHA1 308a86ca4f8be1884927b2f2303f6af1cdc75403 t/upgrade.inc
 SHA1 bf2b5c05eabe003ec82a46e0ae931f609ec3b896 t/upgrade.t
 SHA1 df0e45b746691e397ed8e80d88df15459b349483 t/upgrade2.t
-SHA1 12b27f15d45fd7dd1c69b5b678373fcba7e6a04d t/upgradef.t
+SHA1 257bcadfc428cc61445eb24c57b515449c24e636 t/upgradef.t
 SHA1 69b741efceefd35226a10e8daccf30805bbfb447 t/use.t
 SHA1 4929caee039e617d8ced7339e8e99b8a18330b56 t/use_lib1.t
 SHA1 32d44e17e2a03d0c5abe72b1414e79bf02ea821e t/use_lib2.t
 SHA1 ccc05714cf95f7394dd51a0bf976e74e8f62dfe7 t/use_lib3.t
 SHA1 5b4760d5c552d8857a665180a444a98fb5017ca2 t/use_lib4.t
 SHA1 6f8e43710067bed0b0872fafdeb751c9a68732c4 t/use_mbfw.t
-SHA1 0a82a7eb45e422b6fb8301400fdd98f8a3ec5886 t/with_sub.t
+SHA1 d54fb22dd59d13eab7ee2cc04d05bba5401a5099 t/with_sub.t
 -----BEGIN PGP SIGNATURE-----
 
-iQEcBAEBAgAGBQJYnZ7KAAoJEGcmPl2fr166Hy8H/ihoEd++XQ6mgj2tw71IEgTq
-IyJoUAhd7YsXBB1lRbpq3uGKUifvY/BBtTShdp+eGOS/bd5SFtBavw0npyyrBMCI
-wtDgH57B5lexpV0RW4irkQqM48sHWC74HXhc/Wv66d2q7k6Z+IOed+r4po3kGz9a
-rVOC67Lu7d/8Cl0OoW6GSbwtMbzva7JyFT85Q8F1TLGxT7uuxiPLXq5+ky0OmEbz
-tFwjUFLQK37zRawb0hbMJztnMYCg7KvfkWSyTtXjg+XT/+txXUP3udGULM/pywco
-Xi4Su2I60Cn67NM5WX1tYNwvxU4ULsx6kJiesGvHuR5x6DQ7S4dmMHkeSnn5PHo=
-=LUnS
+iQEcBAEBAgAGBQJYyRaUAAoJEGcmPl2fr166VZUIAJBK4p/1MTcOr0f3QqGRs9Y1
+yiTLJBajV7sFJCmo+7erQYpZs+qrwP5O4ycLuAmFH0J4g63Cdnfe8PQx2JD91LCO
+6jK+88ZgJomcORdKhKfK+SniMpY3VaY/FwWHAK1K+nLmWbS1I8hVwoEuS1FAbhlk
+ydFKpak9JIEHjPsgsZjAo1thK560+MJnphRFixa7uFsYMtd72UkQdG7HngTTCx6I
+mnoaPWb0fFxisApXB8JhNMKCS4TZSiodBJEWoBMhwGtBkn4Szw3Jy7XUrZ9r+RWa
+NkPdF5dF5dq/4YaN4N6RMeIG5FQK3B0NWsJSQWnivtESe6Zai79C/NpTLpv0Iek=
+=wZed
 -----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/lib/Math/BigFloat.pm 
new/Math-BigInt-1.999811/lib/Math/BigFloat.pm
--- old/Math-BigInt-1.999809/lib/Math/BigFloat.pm       2017-02-06 
16:38:47.000000000 +0100
+++ new/Math-BigInt-1.999811/lib/Math/BigFloat.pm       2017-03-15 
10:37:34.000000000 +0100
@@ -19,7 +19,7 @@
 use Carp ();
 use Math::BigInt ();
 
-our $VERSION = '1.999809';
+our $VERSION = '1.999811';
 
 require Exporter;
 our @ISA        = qw/Math::BigInt/;
@@ -2143,16 +2143,24 @@
 }
 
 sub blog {
-    my ($class, $x, $base, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : 
objectify(2, @_);
-
-    # If called as $x -> blog() or $x -> blog(undef), don't objectify the
-    # undefined base, since undef signals that the base is Euler's number.
-    #unless (ref($x) && !defined($base)) {
-    #    # objectify is costly, so avoid it
-    #    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-    #        ($class, $x, $base, $a, $p, $r) = objectify(2, @_);
-    #    }
-    #}
+    # Return the logarithm of the operand. If a second operand is defined, that
+    # value is used as the base, otherwise the base is assumed to be Euler's
+    # constant.
+
+    my ($class, $x, $base, $a, $p, $r);
+
+    # Don't objectify the base, since an undefined base, as in $x->blog() or
+    # $x->blog(undef) signals that the base is Euler's number.
+
+    if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) {
+        # E.g., Math::BigFloat->blog(256, 2)
+        ($class, $x, $base, $a, $p, $r) =
+          defined $_[2] ? objectify(2, @_) : objectify(1, @_);
+    } else {
+        # E.g., Math::BigFloat::blog(256, 2) or $x->blog(2)
+        ($class, $x, $base, $a, $p, $r) =
+          defined $_[1] ? objectify(2, @_) : objectify(1, @_);
+    }
 
     return $x if $x->modify('blog');
 
@@ -4033,10 +4041,11 @@
 
 sub to_hex {
     # return number as hexadecimal string (only for integers defined)
+
     my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
 
     return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
-    return '0x0' if $x->is_zero();
+    return '0' if $x->is_zero();
 
     return $nan if $x->{_es} ne '+';    # how to do 1e-1 in hex?
 
@@ -4044,12 +4053,13 @@
     if (! $MBI->_is_zero($x->{_e})) {   # > 0
         $z = $MBI->_lsft($z, $x->{_e}, 10);
     }
-    $z = Math::BigInt->new($x->{sign} . $MBI->_num($z));
-    $z->to_hex();
+    my $str = $MBI->_to_hex($z);
+    return $x->{sign} eq '-' ? "-$str" : $str;
 }
 
 sub to_oct {
     # return number as octal digit string (only for integers defined)
+
     my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
 
     return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
@@ -4061,16 +4071,17 @@
     if (! $MBI->_is_zero($x->{_e})) {   # > 0
         $z = $MBI->_lsft($z, $x->{_e}, 10);
     }
-    $z = Math::BigInt->new($x->{sign} . $MBI->_num($z));
-    $z->to_oct();
+    my $str = $MBI->_to_oct($z);
+    return $x->{sign} eq '-' ? "-$str" : $str;
 }
 
 sub to_bin {
     # return number as binary digit string (only for integers defined)
+
     my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
 
     return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
-    return '0b0' if $x->is_zero();
+    return '0' if $x->is_zero();
 
     return $nan if $x->{_es} ne '+';    # how to do 1e-1 in binary?
 
@@ -4078,12 +4089,13 @@
     if (! $MBI->_is_zero($x->{_e})) {   # > 0
         $z = $MBI->_lsft($z, $x->{_e}, 10);
     }
-    $z = Math::BigInt->new($x->{sign} . $MBI->_num($z));
-    $z->to_bin();
+    my $str = $MBI->_to_bin($z);
+    return $x->{sign} eq '-' ? "-$str" : $str;
 }
 
 sub as_hex {
     # return number as hexadecimal string (only for integers defined)
+
     my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
 
     return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
@@ -4095,16 +4107,17 @@
     if (! $MBI->_is_zero($x->{_e})) {   # > 0
         $z = $MBI->_lsft($z, $x->{_e}, 10);
     }
-    $z = Math::BigInt->new($x->{sign} . $MBI->_num($z));
-    $z->as_hex();
+    my $str = $MBI->_as_hex($z);
+    return $x->{sign} eq '-' ? "-$str" : $str;
 }
 
 sub as_oct {
     # return number as octal digit string (only for integers defined)
+
     my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
 
     return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
-    return '0' if $x->is_zero();
+    return '00' if $x->is_zero();
 
     return $nan if $x->{_es} ne '+';    # how to do 1e-1 in octal?
 
@@ -4112,12 +4125,13 @@
     if (! $MBI->_is_zero($x->{_e})) {   # > 0
         $z = $MBI->_lsft($z, $x->{_e}, 10);
     }
-    $z = Math::BigInt->new($x->{sign} . $MBI->_num($z));
-    $z->as_oct();
+    my $str = $MBI->_as_oct($z);
+    return $x->{sign} eq '-' ? "-$str" : $str;
 }
 
 sub as_bin {
     # return number as binary digit string (only for integers defined)
+
     my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
 
     return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
@@ -4129,8 +4143,8 @@
     if (! $MBI->_is_zero($x->{_e})) {   # > 0
         $z = $MBI->_lsft($z, $x->{_e}, 10);
     }
-    $z = Math::BigInt->new($x->{sign} . $MBI->_num($z));
-    $z->as_bin();
+    my $str = $MBI->_as_bin($z);
+    return $x->{sign} eq '-' ? "-$str" : $str;
 }
 
 sub numify {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/lib/Math/BigInt/Calc.pm 
new/Math-BigInt-1.999811/lib/Math/BigInt/Calc.pm
--- old/Math-BigInt-1.999809/lib/Math/BigInt/Calc.pm    2017-02-06 
16:38:37.000000000 +0100
+++ new/Math-BigInt-1.999811/lib/Math/BigInt/Calc.pm    2017-03-15 
10:37:26.000000000 +0100
@@ -7,7 +7,7 @@
 use Carp;
 use Math::BigInt::Lib;
 
-our $VERSION = '1.999809';
+our $VERSION = '1.999811';
 
 our @ISA = ('Math::BigInt::Lib');
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/lib/Math/BigInt/CalcEmu.pm 
new/Math-BigInt-1.999811/lib/Math/BigInt/CalcEmu.pm
--- old/Math-BigInt-1.999809/lib/Math/BigInt/CalcEmu.pm 2017-02-06 
16:38:34.000000000 +0100
+++ new/Math-BigInt-1.999811/lib/Math/BigInt/CalcEmu.pm 2017-03-15 
10:37:19.000000000 +0100
@@ -4,7 +4,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '1.999809';
+our $VERSION = '1.999811';
 
 package Math::BigInt;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/lib/Math/BigInt/Lib.pm 
new/Math-BigInt-1.999811/lib/Math/BigInt/Lib.pm
--- old/Math-BigInt-1.999809/lib/Math/BigInt/Lib.pm     2017-02-06 
16:38:12.000000000 +0100
+++ new/Math-BigInt-1.999811/lib/Math/BigInt/Lib.pm     2017-03-15 
10:37:16.000000000 +0100
@@ -4,7 +4,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '1.999809';
+our $VERSION = '1.999811';
 
 use Carp;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/lib/Math/BigInt.pm 
new/Math-BigInt-1.999811/lib/Math/BigInt.pm
--- old/Math-BigInt-1.999809/lib/Math/BigInt.pm 2017-02-10 10:34:43.000000000 
+0100
+++ new/Math-BigInt-1.999811/lib/Math/BigInt.pm 2017-03-15 10:37:31.000000000 
+0100
@@ -20,7 +20,7 @@
 
 use Carp ();
 
-our $VERSION = '1.999809';
+our $VERSION = '1.999811';
 
 our @ISA = qw(Exporter);
 our @EXPORT_OK = qw(objectify bgcd blcm);
@@ -2385,14 +2385,19 @@
     # value is used as the base, otherwise the base is assumed to be Euler's
     # constant.
 
+    my ($class, $x, $base, @r);
+
     # Don't objectify the base, since an undefined base, as in $x->blog() or
     # $x->blog(undef) signals that the base is Euler's number.
 
-    # set up parameters
-    my ($class, $x, $base, @r) = (undef, @_);
-    # objectify is costly, so avoid it
-    if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
-        ($class, $x, $base, @r) = objectify(2, @_);
+    if (!ref($_[0]) && $_[0] =~ /^[A-Za-z]|::/) {
+        # E.g., Math::BigInt->blog(256, 2)
+        ($class, $x, $base, @r) =
+          defined $_[2] ? objectify(2, @_) : objectify(1, @_);
+    } else {
+        # E.g., Math::BigInt::blog(256, 2) or $x->blog(2)
+        ($class, $x, $base, @r) =
+          defined $_[1] ? objectify(2, @_) : objectify(1, @_);
     }
 
     return $x if $x->modify('blog');
@@ -3750,7 +3755,8 @@
     # Class->badd(Class->(1), 2);  => classname x (scalar), ref x, scalar y
     # Math::BigInt::badd(1, 2);    => scalar x, scalar y
 
-    # A shortcut for the common case $x->unary_op():
+    # A shortcut for the common case $x->unary_op(), in which case the argument
+    # list is (0, $x) or (1, $x).
 
     return (ref($_[1]), $_[1]) if @_ == 2 && ($_[0] || 0) == 1 && ref($_[1]);
 
@@ -3763,7 +3769,6 @@
     # Get the number of arguments to objectify.
 
     my $count = shift;
-    $count ||= @_;
 
     # Initialize the output array.
 
@@ -3773,17 +3778,18 @@
     # class name. Otherwise, if the first argument looks like a class name,
     # then use that as our class name. Otherwise, use the default class name.
 
-    {
-        if (ref($a[0])) {               # reference?
-            unshift @a, ref($a[0]);
-            last;
-        }
-        if ($a[0] =~ /^[A-Z].*::/) {    # string with class name?
-            last;
-        }
-        unshift @a, $class;             # default class name
+    my $class;
+    if (ref($a[0])) {                   # reference?
+        $class = ref($a[0]);
+    } elsif ($a[0] =~ /^[A-Z].*::/) {   # string with class name?
+        $class = shift @a;
+    } else {
+        $class = __PACKAGE__;           # default class name
     }
 
+    $count ||= @a;
+    unshift @a, $class;
+
     no strict 'refs';
 
     # What we upgrade to, if anything.
@@ -3801,12 +3807,6 @@
 
     for my $i (1 .. $count) {
 
-        # Don't do anything with undefs. This special treatment is necessary
-        # because blog() might have a second operand which is undef, to signify
-        # that the default Euler base should be used.
-
-        next unless defined $a[$i];
-
         my $ref = ref $a[$i];
 
         # Perl scalars are fed to the appropriate constructor.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/t/Math/BigFloat/Subclass.pm 
new/Math-BigInt-1.999811/t/Math/BigFloat/Subclass.pm
--- old/Math-BigInt-1.999809/t/Math/BigFloat/Subclass.pm        2016-07-11 
13:08:05.000000000 +0200
+++ new/Math-BigInt-1.999811/t/Math/BigFloat/Subclass.pm        2017-02-28 
09:16:32.000000000 +0100
@@ -14,9 +14,9 @@
 
 our ($accuracy, $precision, $round_mode, $div_scale);
 
-our @ISA = qw(Exporter Math::BigFloat);
+our @ISA = qw(Math::BigFloat Exporter);
 
-our $VERSION = "0.06";
+our $VERSION = "0.07";
 
 use overload;                   # inherit overload from BigInt
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/t/Math/BigInt/Subclass.pm 
new/Math-BigInt-1.999811/t/Math/BigInt/Subclass.pm
--- old/Math-BigInt-1.999809/t/Math/BigInt/Subclass.pm  2016-07-11 
13:08:05.000000000 +0200
+++ new/Math-BigInt-1.999811/t/Math/BigInt/Subclass.pm  2017-02-28 
09:16:33.000000000 +0100
@@ -14,10 +14,10 @@
 our $lib;
 our ($accuracy, $precision, $round_mode, $div_scale);
 
-our @ISA = qw(Exporter Math::BigInt);
+our @ISA = qw(Math::BigInt Exporter);
 our @EXPORT_OK = qw(bgcd objectify);
 
-our $VERSION = "0.05";
+our $VERSION = "0.06";
 
 use overload;                   # inherit overload from BigInt
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/t/bare_mbf.t 
new/Math-BigInt-1.999811/t/bare_mbf.t
--- old/Math-BigInt-1.999809/t/bare_mbf.t       2016-12-31 09:38:11.000000000 
+0100
+++ new/Math-BigInt-1.999811/t/bare_mbf.t       2017-03-14 18:01:36.000000000 
+0100
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 2436;
+use Test::More tests => 2482;
 
 use lib 't';
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/t/bare_mbi.t 
new/Math-BigInt-1.999811/t/bare_mbi.t
--- old/Math-BigInt-1.999809/t/bare_mbi.t       2016-11-21 14:31:19.000000000 
+0100
+++ new/Math-BigInt-1.999811/t/bare_mbi.t       2017-03-14 18:01:36.000000000 
+0100
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 3913;           # tests in require'd file
+use Test::More tests => 3942;           # tests in require'd file
 
 use lib 't';
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/t/bigfltpm.inc 
new/Math-BigInt-1.999811/t/bigfltpm.inc
--- old/Math-BigInt-1.999809/t/bigfltpm.inc     2016-12-31 09:27:09.000000000 
+0100
+++ new/Math-BigInt-1.999811/t/bigfltpm.inc     2017-03-14 17:35:31.000000000 
+0100
@@ -23,7 +23,6 @@
     if (/^\$/) {
         $setup = $_;
         $setup =~ s/\$/\$${CLASS}::/g;  # round_mode, div_scale
-        #print "\$setup== $setup\n";
         next;
     }
 
@@ -38,7 +37,7 @@
     $try = qq|\$x = $CLASS->new("$args[0]");|;
     if ($f eq "bnorm") {
         $try .= qq| \$x;|;
-    } elsif ($f =~ /^is_(zero|one|negative|positive|odd|even|nan|int)$/) {
+    } elsif ($f =~ /^is_(zero|one|odd|even|negative|positive|nan|int)$/) {
         $try .= qq| \$x->$f();|;
     } elsif ($f eq "is_inf") {
         $try .= qq| \$x->is_inf("$args[1]");|;
@@ -50,8 +49,12 @@
         $try .= qq| \$x->accuracy($args[1]); \$x->precision($args[2]);|;
         $try .= ' $x->bstr();';
     # some unary ops
-    } elsif ($f =~ /^b(nan|sstr|neg|floor|ceil|int|abs)$/) {
+    } elsif ($f =~ 
/^b(nan|floor|ceil|int|sstr|neg|abs|sgn|inc|dec|not|sqrt|exp|fac)$/) {
         $try .= qq| \$x->$f();|;
+    } elsif ($f =~ /^(numify|length|as_number)$/) {
+        $try .= qq| \$x->$f();|;
+    } elsif ($f =~ /^(to|as)_(hex|oct|bin)$/) {
+        $try .= " \$x->$f();";
     # overloaded functions
     } elsif ($f =~ /^(log|exp|sin|cos|atan2|int|neg|abs|sqrt)$/) {
         $try .= qq| \$x = $f(\$x);|;
@@ -65,14 +68,8 @@
     } elsif ($f eq "mantissa") {
         # ->bstr() to see if an object is returned
         $try .= ' $x->mantissa()->bstr();';
-    } elsif ($f =~ /^(numify|length|as_number|as_hex|as_bin)$/) {
-        $try .= qq| \$x->$f();|;
     } elsif ($f eq "bpi") {
         $try .= qq| $CLASS->bpi(\$x);|;
-    } elsif ($f eq "binc") {
-        $try .= ' $x->binc();';
-    } elsif ($f eq "bdec") {
-        $try .= ' $x->bdec();';
     } elsif ($f eq "bround") {
         $try .= qq| $setup; \$x->bround($args[1]);|;
     } elsif ($f eq "bfround") {
@@ -666,7 +663,7 @@
 1::0
 
 &brsft
-NaNbrsft:2:NaN
+invalid:2:NaN
 0:2:0
 1:1:0.5
 2:1:1
@@ -675,7 +672,7 @@
 32:3:4
 
 &blsft
-NaNblsft:0:NaN
+invalid:0:NaN
 2:1:4
 4:3:32
 5:3:40
@@ -685,7 +682,7 @@
 &bnorm
 1:1
 -0:0
-bnormNaN:NaN
+invalid:NaN
 +inf:inf
 -inf:-inf
 123:123
@@ -771,20 +768,74 @@
 3:abc:inf
 
 &as_hex
+128:0x80
+-128:-0x80
+0:0x0
+-0:0x0
+1:0x1
+0x123456789123456789:0x123456789123456789
 +inf:inf
 -inf:-inf
-hexNaN:NaN
-0:0x0
-5:0x5
--5:-0x5
+invalid:NaN
 
 &as_bin
+128:0b10000000
+-128:-0b10000000
+0:0b0
+-0:0b0
+1:0b1
+0b1010111101010101010110110110110110101:0b1010111101010101010110110110110110101
+0x123456789123456789:0b100100011010001010110011110001001000100100011010001010110011110001001
 +inf:inf
 -inf:-inf
-hexNaN:NaN
-0:0b0
-5:0b101
--5:-0b101
+invalid:NaN
+
+&as_oct
+128:0200
+-128:-0200
+0:00
+-0:00
+1:01
+0b1010111101010101010110110110110110101:01275252666665
+0x123456789123456789:044321263611044321263611
++inf:inf
+-inf:-inf
+invalid:NaN
+
+&to_hex
+128:80
+-128:-80
+0:0
+-0:0
+1:1
+0x123456789123456789:123456789123456789
++inf:inf
+-inf:-inf
+invalid:NaN
+
+&to_bin
+128:10000000
+-128:-10000000
+0:0
+-0:0
+1:1
+0b1010111101010101010110110110110110101:1010111101010101010110110110110110101
+0x123456789123456789:100100011010001010110011110001001000100100011010001010110011110001001
++inf:inf
+-inf:-inf
+invalid:NaN
+
+&to_oct
+128:200
+-128:-200
+0:0
+-0:0
+1:1
+0b1010111101010101010110110110110110101:1275252666665
+0x123456789123456789:44321263611044321263611
++inf:inf
+-inf:-inf
+invalid:NaN
 
 &numify
 # uses bsstr() so 5 => 5e+0 to be compatible w/ Perls output
@@ -936,7 +987,7 @@
 $div_scale = 40
 
 &bneg
-bnegNaN:NaN
+invalid:NaN
 +inf:-inf
 -inf:inf
 +0:0
@@ -948,7 +999,7 @@
 -123456.789:123456.789
 
 &babs
-babsNaN:NaN
+invalid:NaN
 +inf:inf
 -inf:inf
 +0:0
@@ -964,7 +1015,7 @@
 +inf:5:inf
 -inf:5:-inf
 0:5:0
-NaNfround:5:NaN
+invalid:5:NaN
 +10123456789:5:10123000000
 -10123456789:5:-10123000000
 +10123456789.123:5:10123000000
@@ -1040,7 +1091,7 @@
 +inf:5:inf
 -inf:5:-inf
 0:5:0
-NaNffround:5:NaN
+invalid:5:NaN
 +1.23:-1:1.2
 +1.234:-1:1.2
 +1.2345:-1:1.2
@@ -1172,9 +1223,9 @@
 0.01234567:-12:0.012345670000
 
 &bcmp
-bcmpNaN:bcmpNaN:
-bcmpNaN:+0:
-+0:bcmpNaN:
+invalid:invalid:
+invalid:+0:
++0:invalid:
 +0:+0:0
 -1:+0:-1
 +0:-1:1
@@ -1245,9 +1296,9 @@
 NaN:-inf:
 
 &bacmp
-bcmpNaN:bcmpNaN:
-bcmpNaN:+0:
-+0:bcmpNaN:
+invalid:invalid:
+invalid:+0:
++0:invalid:
 +0:+0:0
 -1:+0:1
 +0:-1:-1
@@ -1314,13 +1365,13 @@
 5:-inf:-1
 -1:-inf:-1
 # return undef
-+inf:bacmpNaN:
-bacmpNaN:inf:
--inf:bacmpNaN:
-bacmpNaN:-inf:
++inf:invalid:
+invalid:inf:
+-inf:invalid:
+invalid:-inf:
 
 &bdec
-bdecNaN:NaN
+invalid:NaN
 +inf:inf
 -inf:-inf
 +0:-1
@@ -1336,7 +1387,7 @@
 99:98
 
 &binc
-bincNaN:NaN
+invalid:NaN
 +inf:inf
 -inf:-inf
 +0:1
@@ -1358,10 +1409,10 @@
 -inf:+inf:NaN
 +inf:+inf:inf
 -inf:-inf:-inf
-baddNaN:+inf:NaN
-baddNaN:+inf:NaN
-+inf:baddNaN:NaN
--inf:baddNaN:NaN
+invalid:+inf:NaN
+invalid:+inf:NaN
++inf:invalid:NaN
+-inf:invalid:NaN
 +0:+0:0
 +1:+0:1
 +0:+1:1
@@ -1406,10 +1457,10 @@
 -inf:+inf:-inf
 +inf:+inf:NaN
 -inf:-inf:NaN
-baddNaN:+inf:NaN
-baddNaN:+inf:NaN
-+inf:baddNaN:NaN
--inf:baddNaN:NaN
+invalid:+inf:NaN
+invalid:+inf:NaN
++inf:invalid:NaN
+-inf:invalid:NaN
 +0:+0:0
 +1:+0:1
 +0:+1:-1
@@ -1450,10 +1501,10 @@
 abc:+0:0:NaN
 +0:abc:0:NaN
 +0:0:abc:NaN
-NaNmul:+inf:0:NaN
-NaNmul:-inf:0:NaN
--inf:NaNmul:0:NaN
-+inf:NaNmul:0:NaN
+invalid:+inf:0:NaN
+invalid:-inf:0:NaN
+-inf:invalid:0:NaN
++inf:invalid:0:NaN
 +inf:+inf:0:inf
 +inf:-inf:0:-inf
 -inf:+inf:0:-inf
@@ -1518,10 +1569,10 @@
 abc:abc:NaN
 abc:+0:NaN
 +0:abc:NaN
-+inf:NaNmul:NaN
-+inf:NaNmul:NaN
-NaNmul:+inf:NaN
-NaNmul:-inf:NaN
++inf:invalid:NaN
++inf:invalid:NaN
+invalid:+inf:NaN
+invalid:-inf:NaN
 +inf:+inf:inf
 +inf:-inf:-inf
 +inf:-inf:-inf
@@ -1899,7 +1950,7 @@
 2:0
 
 &is_int
-NaNis_int:0
+invalid:0
 0:1
 1:1
 2:1
@@ -1955,7 +2006,7 @@
 123:123 0
 -123:-123 0
 -1200:-12 2
-NaNparts:NaN NaN
+invalid:NaN NaN
 +inf:inf inf
 -inf:-inf inf
 
@@ -1967,7 +2018,7 @@
 -1200:2
 +inf:inf
 -inf:inf
-NaNexponent:NaN
+invalid:NaN
 
 &mantissa
 0:0
@@ -1977,7 +2028,7 @@
 -1200:-12
 +inf:inf
 -inf:-inf
-NaNmantissa:NaN
+invalid:NaN
 
 &length
 123:3
@@ -1987,7 +2038,7 @@
 12345678901234567890:20
 
 &is_zero
-NaNzero:0
+invalid:0
 +inf:0
 -inf:0
 0:1
@@ -1995,7 +2046,7 @@
 1:0
 
 &is_one
-NaNone:0
+invalid:0
 +inf:0
 -inf:0
 0:0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/t/bigfltpm.t 
new/Math-BigInt-1.999811/t/bigfltpm.t
--- old/Math-BigInt-1.999809/t/bigfltpm.t       2016-12-31 09:38:32.000000000 
+0100
+++ new/Math-BigInt-1.999811/t/bigfltpm.t       2017-03-14 17:35:00.000000000 
+0100
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 2436            # tests in require'd file
+use Test::More tests => 2482            # tests in require'd file
                          + 19;          # tests in this file
 
 use Math::BigInt only => 'Calc';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/t/bigintpm.inc 
new/Math-BigInt-1.999811/t/bigintpm.inc
--- old/Math-BigInt-1.999809/t/bigintpm.inc     2016-12-31 10:05:26.000000000 
+0100
+++ new/Math-BigInt-1.999811/t/bigintpm.inc     2017-03-14 17:35:31.000000000 
+0100
@@ -77,29 +77,27 @@
     } elsif ($f eq "bone") {
         $try .= qq| \$x->bone("$args[1]");|;
     # some unary ops
-    } elsif ($f =~ 
/^b(nan|floor|ceil|int|sstr|neg|abs|sgn|inc|dec|not|sqrt|fac)$/) {
+    } elsif ($f =~ 
/^b(nan|floor|ceil|int|sstr|neg|abs|sgn|inc|dec|not|sqrt|exp|fac)$/) {
         $try .= " \$x->$f();";
-    # overloaded functions
-    } elsif ($f =~ /^(log|exp|sin|cos|atan2|int|neg|abs|sqrt)$/) {
-        $try .= " \$x = $f(\$x);";
     } elsif ($f =~ /^(numify|length|stringify)$/) {
         $try .= " \$x->$f();";
     } elsif ($f =~ /^(to|as)_(hex|oct|bin)$/) {
         $try .= " \$x->$f();";
-    } elsif ($f eq "exponent") {
-        # ->bstr() to see if an object is returned
-        $try .= ' $x = $x->exponent()->bstr();';
-    } elsif ($f eq "mantissa") {
-        # ->bstr() to see if an object is returned
-        $try .= ' $x = $x->mantissa()->bstr();';
+    # overloaded functions
+    } elsif ($f =~ /^(log|exp|sin|cos|atan2|int|neg|abs|sqrt)$/) {
+        $try .= " \$x = $f(\$x);";
     } elsif ($f eq "parts") {
         $try .= ' ($m, $e) = $x->parts();';
         # ->bstr() to see if an object is returned
         $try .= ' $m = $m->bstr(); $m = "NaN" if !defined $m;';
         $try .= ' $e = $e->bstr(); $e = "NaN" if !defined $e;';
         $try .= ' "$m,$e";';
-    } elsif ($f eq "bexp") {
-        $try .= " \$x->bexp();";
+    } elsif ($f eq "exponent") {
+        # ->bstr() to see if an object is returned
+        $try .= ' $x = $x->exponent()->bstr();';
+    } elsif ($f eq "mantissa") {
+        # ->bstr() to see if an object is returned
+        $try .= ' $x = $x->mantissa()->bstr();';
     } elsif ($f eq "bpi") {
         $try .= " $CLASS\->bpi(\$x);";
     } else {
@@ -997,9 +995,9 @@
 
 &blog
 #
-NaNlog:2:NaN
-122:NaNlog:NaN
-NaNlog1:NaNlog:NaN
+invalid:2:NaN
+122:invalid:NaN
+invalid:invalid:NaN
 #
 122:inf:0
 inf:122:inf
@@ -1069,7 +1067,7 @@
 1:0
 +inf:0
 -inf:1
-NaNneg:0
+invalid:0
 
 &is_positive
 0:0
@@ -1077,12 +1075,12 @@
 1:1
 +inf:1
 -inf:0
-NaNneg:0
+invalid:0
 
 &is_int
 -inf:0
 +inf:0
-NaNis_int:0
+invalid:0
 1:1
 0:1
 123e12:1
@@ -1126,9 +1124,9 @@
 -987654321:+123456789:1
 -123:+4567889:-1
 # NaNs
-acmpNaN:123:
-123:acmpNaN:
-acmpNaN:acmpNaN:
+invalid:123:
+123:invalid:
+invalid:invalid:
 # infinity
 +inf:+inf:0
 -inf:-inf:0
@@ -1390,8 +1388,8 @@
 &bone
 2:+:1
 2:-:-1
-boneNaN:-:-1
-boneNaN:+:1
+invalid:-:-1
+invalid:+:1
 2:abc:1
 3::1
 
@@ -1500,7 +1498,7 @@
 -100:-100
 
 &bneg
-bnegNaN:NaN
+invalid:NaN
 +inf:-inf
 -inf:inf
 abd:NaN
@@ -1511,7 +1509,7 @@
 -123456789:123456789
 
 &babs
-babsNaN:NaN
+invalid:NaN
 +inf:inf
 -inf:inf
 0:0
@@ -1529,9 +1527,9 @@
 -123456789:-1
 
 &bcmp
-bcmpNaN:bcmpNaN:
-bcmpNaN:0:
-0:bcmpNaN:
+invalid:invalid:
+invalid:0:
+0:invalid:
 0:0:0
 -1:0:-1
 0:-1:1
@@ -1597,10 +1595,10 @@
 -inf:+inf:NaN
 +inf:+inf:inf
 -inf:-inf:-inf
-baddNaN:+inf:NaN
-baddNaN:+inf:NaN
-+inf:baddNaN:NaN
--inf:baddNaN:NaN
+invalid:+inf:NaN
+invalid:+inf:NaN
++inf:invalid:NaN
+-inf:invalid:NaN
 0:0:0
 1:0:1
 0:1:1
@@ -1724,10 +1722,10 @@
 abc:+0:0:NaN
 +0:abc:0:NaN
 +0:0:abc:NaN
-NaNmul:+inf:0:NaN
-NaNmul:-inf:0:NaN
--inf:NaNmul:0:NaN
-+inf:NaNmul:0:NaN
+invalid:+inf:0:NaN
+invalid:-inf:0:NaN
+-inf:invalid:0:NaN
++inf:invalid:0:NaN
 +inf:+inf:0:inf
 +inf:-inf:0:-inf
 -inf:+inf:0:-inf
@@ -1784,10 +1782,10 @@
 abc:abc:NaN
 abc:+0:NaN
 +0:abc:NaN
-NaNmul:+inf:NaN
-NaNmul:-inf:NaN
--inf:NaNmul:NaN
-+inf:NaNmul:NaN
+invalid:+inf:NaN
+invalid:-inf:NaN
+-inf:invalid:NaN
++inf:invalid:NaN
 +inf:+inf:inf
 +inf:-inf:-inf
 -inf:+inf:-inf
@@ -2814,7 +2812,7 @@
 
 &bfac
 -1:NaN
-NaNfac:NaN
+invalid:NaN
 +inf:inf
 -inf:NaN
 0:1
@@ -3084,7 +3082,7 @@
 &bround
 $round_mode("trunc")
 0:12:0
-NaNbround:12:NaN
+invalid:12:NaN
 +inf:12:inf
 -inf:12:-inf
 1234:0:1234
@@ -3185,7 +3183,7 @@
 
 &is_zero
 0:1
-NaNzero:0
+invalid:0
 +inf:0
 -inf:0
 123:0
@@ -3194,7 +3192,7 @@
 
 &is_one
 0:0
-NaNone:0
+invalid:0
 +inf:0
 -inf:0
 1:1
@@ -3205,7 +3203,7 @@
 # floor, ceil, and int are pretty pointless in integer space, but play safe
 &bfloor
 0:0
-NaNfloor:NaN
+invalid:NaN
 +inf:inf
 -inf:-inf
 -1:-1
@@ -3215,7 +3213,7 @@
 abc:NaN
 
 &bceil
-NaNceil:NaN
+invalid:NaN
 +inf:inf
 -inf:-inf
 0:0
@@ -3244,7 +3242,7 @@
 0x123456789123456789:0x123456789123456789
 +inf:inf
 -inf:-inf
-NaNas_hex:NaN
+invalid:NaN
 
 &as_bin
 128:0b10000000
@@ -3256,7 +3254,7 @@
 
0x123456789123456789:0b100100011010001010110011110001001000100100011010001010110011110001001
 +inf:inf
 -inf:-inf
-NaNas_bin:NaN
+invalid:NaN
 
 &as_oct
 128:0200
@@ -3268,7 +3266,42 @@
 0x123456789123456789:044321263611044321263611
 +inf:inf
 -inf:-inf
-NaNas_oct:NaN
+invalid:NaN
+
+&to_hex
+128:80
+-128:-80
+0:0
+-0:0
+1:1
+0x123456789123456789:123456789123456789
++inf:inf
+-inf:-inf
+invalid:NaN
+
+&to_bin
+128:10000000
+-128:-10000000
+0:0
+-0:0
+1:1
+0b1010111101010101010110110110110110101:1010111101010101010110110110110110101
+0x123456789123456789:100100011010001010110011110001001000100100011010001010110011110001001
++inf:inf
+-inf:-inf
+invalid:NaN
+
+&to_oct
+128:200
+-128:-200
+0:0
+-0:0
+1:1
+0b1010111101010101010110110110110110101:1275252666665
+0x123456789123456789:44321263611044321263611
++inf:inf
+-inf:-inf
+invalid:NaN
 
 # overloaded functions
 &log
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/t/bigintpm.t 
new/Math-BigInt-1.999811/t/bigintpm.t
--- old/Math-BigInt-1.999809/t/bigintpm.t       2016-11-23 15:01:53.000000000 
+0100
+++ new/Math-BigInt-1.999811/t/bigintpm.t       2017-03-14 17:35:00.000000000 
+0100
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 3913            # tests in require'd file
+use Test::More tests => 3942            # tests in require'd file
                          + 20;          # tests in this file
 
 use Math::BigInt only => 'Calc';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/t/calling.t 
new/Math-BigInt-1.999811/t/calling.t
--- old/Math-BigInt-1.999809/t/calling.t        2017-02-06 16:38:08.000000000 
+0100
+++ new/Math-BigInt-1.999811/t/calling.t        2017-03-15 10:37:06.000000000 
+0100
@@ -6,7 +6,7 @@
 use warnings;
 use lib 't';
 
-my $VERSION = '1.999809';       # adjust manually to match latest release
+my $VERSION = '1.999811';       # adjust manually to match latest release
 
 use Test::More tests => 5;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/t/sub_mbf.t 
new/Math-BigInt-1.999811/t/sub_mbf.t
--- old/Math-BigInt-1.999809/t/sub_mbf.t        2016-12-31 09:58:03.000000000 
+0100
+++ new/Math-BigInt-1.999811/t/sub_mbf.t        2017-03-14 18:00:12.000000000 
+0100
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 2436            # tests in require'd file
+use Test::More tests => 2482            # tests in require'd file
                          + 6;           # tests in this file
 
 use lib 't';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/t/sub_mbi.t 
new/Math-BigInt-1.999811/t/sub_mbi.t
--- old/Math-BigInt-1.999809/t/sub_mbi.t        2016-07-11 13:08:07.000000000 
+0200
+++ new/Math-BigInt-1.999811/t/sub_mbi.t        2017-03-14 18:00:12.000000000 
+0100
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 3913            # tests in require'd file
+use Test::More tests => 3942            # tests in require'd file
                          + 5;           # tests in this file
 
 use lib 't';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/t/upgradef.t 
new/Math-BigInt-1.999811/t/upgradef.t
--- old/Math-BigInt-1.999809/t/upgradef.t       2016-07-11 13:08:07.000000000 
+0200
+++ new/Math-BigInt-1.999811/t/upgradef.t       2017-02-28 09:16:33.000000000 
+0100
@@ -10,7 +10,7 @@
 
 use Math::BigFloat;
 require Exporter;
-our @ISA = qw/Exporter Math::BigFloat/;
+our @ISA = qw/Math::BigFloat Exporter/;
 
 use overload;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Math-BigInt-1.999809/t/with_sub.t 
new/Math-BigInt-1.999811/t/with_sub.t
--- old/Math-BigInt-1.999809/t/with_sub.t       2016-12-31 09:38:45.000000000 
+0100
+++ new/Math-BigInt-1.999811/t/with_sub.t       2017-03-14 18:56:45.000000000 
+0100
@@ -5,7 +5,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 2436            # tests in require'd file
+use Test::More tests => 2482            # tests in require'd file
                          + 1;           # tests in this file
 
 use Math::BigFloat with => 'Math::BigInt::Subclass',


Reply via email to