> > AIX 4.3 stdio/perlio -Duseperlio -Duselongdouble > > AIX 4.3 stdio/perlio -DDEBUGGING -Duseperlio -Duselongdouble > > op/int..........................FAILED at test 13 > > not ok 13 # int(279964589018079/59) is 4745162525730, not 4745162525730 > > With added Devel::Peek::Dump on $y and 4745162525730: > > SV = PVNV(0x20062338) at 0x200480cc > REFCNT = 1 > FLAGS = (NOK,POK,pIOK,pNOK,pPOK,IsUV) > UV = 4294967295 > NV = 4745162525730 > PV = 0x2003d268 "4745162525730"\0 > CUR = 13 > LEN = 35 > SV = NV(0x20046fe8) at 0x2004a9c4 > REFCNT = 1 > FLAGS = (NOK,READONLY,pNOK) > NV = 4745162525730 > > HUH? It seems that the compile-time evalulation of constants leaves the IsUV flag on at all times, even when the resulting constant cannot be an UV anymore: tcsh ibmsp01e:/tmp/jhi/perl ; ./perl -Ilib -MDevel::Peek -le 'Dump(4294967295/1)' SV = PVNV(0x2005b328) at 0x2003722c REFCNT = 1 FLAGS = (IOK,NOK,READONLY,pIOK,pNOK,IsUV) UV = 4294967295 NV = 4294967295 PV = 0 tcsh ibmsp01e:/tmp/jhi/perl ; ./perl -Ilib -MDevel::Peek -le 'Dump(4294967296/1)' SV = PVNV(0x2005b328) at 0x2003722c REFCNT = 1 FLAGS = (NOK,READONLY,pIOK,pNOK,IsUV) UV = 4294967295 NV = 4294967296 PV = 0 tcsh ibmsp01e:/tmp/jhi/perl ; ./perl -Ilib -V:uvsizeuvsize='4'; uvsize='4'; tcsh ibmsp01e:/tmp/jhi/perl ; ./perl -Ilib -MDevel::Peek -le 'Dump(4294967296)'SV = NV(0x20048368) at 0x200371f0 REFCNT = 1 FLAGS = (NOK,READONLY,pNOK) NV = 4294967296 tcsh ibmsp01e:/tmp/jhi/perl ; -- $jhi++; # http://www.iki.fi/jhi/ # There is this special biologist word we use for 'stable'. # It is 'dead'. -- Jack CohenThread Previous | Thread Next