Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re^2: emulate 32-bit on perl 64

by Eliya (Vicar)
on Jan 11, 2012 at 16:55 UTC ( [id://947380]=note: print w/replies, xml ) Need Help??


in reply to Re: emulate 32-bit on perl 64
in thread emulate 32-bit on perl 64

As long as you are very careful to use unsigned arithmetic and specify bitmasks that are no larger than the integer-size you know that you are using, code like this ought to be transportable.

Unfortunately, it's not always quite as simple in the general case.  For example, if the 32-bit code relies on specific overflow/wrap-over effects. Consider the following very simple case:

my $result = (0xffffffff + 2) & 0xffffffff; print $result;

Although the result is masked down to 32 bits, it differs depending on the perl being used:

32-bit perl: 4294967295 64-bit perl: 1

(I'm not saying it cannot be done, but it requires taking into account the specific overflow behavior, IV/UV to NV conversions of 32-bit perls, etc. — simple 0xffffffff AND-masking isn't enough.)

Replies are listed 'Best First'.
Re^3: emulate 32-bit on perl 64
by Anonymous Monk on Apr 01, 2013 at 03:19 UTC
    Erm, *what*? Why does 32-bit perl (I just tested on MirBSD/i386, it does behave as you said) not wraparound? Urgh!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://947380]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (3)
As of 2025-07-08 11:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.