|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.