Clear questions and runnable code get the best and fastest answer |
|
PerlMonks |
Re^3: bigint == horrible performance?by mojotoad (Monsignor) |
on Nov 08, 2011 at 09:39 UTC ( [id://936709]=note: print w/replies, xml ) | Need Help?? |
So I've bumped into some stuff lately. XS extensions with no particular expectation of whether you're on an actual 64-bit bus or not. Perl itself actually recommends that it be compiled into 32-bit mode even when on a 64-bit architecture because the docs suppose <it will rarely be actually required>. (those are semi-quotes)
So now, in the XS world, I've found myself facing a couple of things: 64 bit stuff and ipv6 (128 bits). In the XS world, Math::Int64 works quite nicely. However, I get way too many explosions with Math::128 at this point. So, I end up using packed arrays and timely casting, while hopefully not misplacing network byte-order. 32-bit (and I guess 64-bit?) perl has unsigned, int, 'double', and 'string'. (e.g. UV, IV, NV, and PV). There is no native perl guarantee for 64-bit or 128-bit other than a string. I understand the perils of assuming too much about the data types. But in the world of XS, <whimper>
Cheers,
In Section
Seekers of Perl Wisdom
|
|