Subject: | SVf_IVisUV is not set for uint64 |
Date: | Thu, 29 Nov 2018 19:24:16 +0000 |
To: | "bug-Math-Int64 [...] rt.cpan.org" <bug-Math-Int64 [...] rt.cpan.org> |
From: | Yuriy Z <zazik [...] hotmail.com> |
Hello,
I have an issue with Math::Int64 package about SVf_IVisUV flag in uint64 SV.
Apparently, it is not set unlike in native unsigned numbers.
(Perl64-5.26):
use Devel::Peek;
use Math::UInt64 qw(uint64);
my $var1 = uint64('12297829380182385186');
my $var2 = 12297829380182385186;
Dump $var1;
Dump $var2;
output:
SV = IV(0x4811c60) at 0x4811c70
REFCNT = 1
FLAGS = (ROK)
RV = 0x2ded370
SV = PVMG(0x4850ac8) at 0x2ded370
REFCNT = 1
FLAGS = (OBJECT,IOK,READONLY,pIOK)
IV = -6148914693527166430
NV = 0
PV = 0
STASH = 0x485fc30 "Math::UInt64"
SV = IV(0x4812320) at 0x4812330
REFCNT = 1
FLAGS = (IOK,pIOK,IsUV)
UV = 12297829380182385186
Obviously, I can check stash class name, but it adds a certain overhead that I try to avoid.
Did you have some other technique in mind determining whether it's unsigned or is it a bug?
Thank you,
Yuriy.