in reply to Re: XS: returning a 64-bit unsigned int?
in thread XS: returning a 64-bit unsigned int?

Seems you can, provided you look in the wrong part of the manual for the api. :(


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
  • Comment on Re^2: XS: returning a 64-bit unsigned int?

Replies are listed 'Best First'.
Re^3: XS: returning a 64-bit unsigned int?
by Anonymous Monk on Sep 27, 2011 at 06:58 UTC
    Right, but shouldn't newSVuv make a UV and not an IV? Talk about false advertising :)

      Perl claims the right to convert among equivalent representations. It's an optimisation that an UV isn't used unless needed since UVs require extra handling.

      >perl -MDevel::Peek -e"Dump(0x7FFFFFFF)" SV = IV(0x1de9d00) at 0x1de9d04 REFCNT = 1 FLAGS = (PADTMP,IOK,READONLY,pIOK) IV = 2147483647 >perl -MDevel::Peek -e"Dump(0x80000000)" SV = IV(0x4a9d00) at 0x4a9d04 REFCNT = 1 FLAGS = (PADTMP,IOK,READONLY,pIOK,IsUV) UV = 2147483648
      shouldn't newSVuv make a UV and not an IV? Talk about false advertising :)

      I concur completely. But you think that ones bad, what d'ya think newSVrv( rv ) does?


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.