BrowserUk has asked for the wisdom of the Perl Monks concerning the following question:
I use 64-bit Windows and have sufficient physical memory to benefit considerably from doing so. But, when compiling many *nix-developed code(*), for 64-bit, I encounter myriad warnings and some outright errors, because of the difference between the compilation data models used by the two platforms.
Specifically,
This allows pointers to be assigned to ulongs without loss.
Pointers cannot be assigned to longs without loss.
Regardless of the wisdom or superiority of one choice over the other, the situation exists and has to be lived with. Currently:
Though I've seen a couple of failures that might be attributable to incompatibnility. But they only occor once Perl starts getting close to 4GB barrier and by that time it is already into swapping. Clear diagnosis is impossible due to the system running like a dog.
I've been looking into what it would take to try and fix-up the warnings for Perl64. The problem lies in the pervasive assumption that a pointer will fit in a long. Ostensibly, the fix is define any typedef or variable that must accept a pointer as a long long rather than a long, but it is never quite that simple.
So, to the question.
Does anyone know of any good discussion/wisdom/examples of coding for LP64 .v. LLP64 portability?
(*)To give topical reference: Perl and Parrot suffer this.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: [OT] LLP64 .v. LP64 portability
by ikegami (Patriarch) on Apr 21, 2010 at 05:35 UTC | |
by BrowserUk (Patriarch) on Apr 21, 2010 at 06:34 UTC | |
by syphilis (Archbishop) on Apr 21, 2010 at 09:10 UTC | |
by BrowserUk (Patriarch) on Apr 21, 2010 at 10:39 UTC | |
by ikegami (Patriarch) on Apr 22, 2010 at 02:44 UTC | |
| |
by ikegami (Patriarch) on Apr 21, 2010 at 14:38 UTC | |
by BrowserUk (Patriarch) on Apr 21, 2010 at 19:39 UTC | |
by ikegami (Patriarch) on Apr 21, 2010 at 20:11 UTC | |
by ikegami (Patriarch) on Apr 21, 2010 at 20:19 UTC | |
|