On 13 Feb 2004, Ketil Malde wrote:
Axel Simon <A.Simon@kent.ac.uk> writes:
I wonder if such an effort is worthwhile. If all pointers are suddenly twice the size then the footprint of a program roughly doubles. [...] It would be interesting if Haskell programs could run in the lower 4 GB while running in 64 bit mode. Then you could have large data structures (or memory mapped files) in C land.
That's an interesting possibility -- at least part of my program is a large UArray of Word8, which could probably be FFI'ed relatively easily.
... but which doesn't need to be, because UArrays of Word8 will not grow in size, no matter how large the pointers. :-) Seriously, this seems like a good approach to supporting 64 bits cheaply: put everything in the lower 4GB except for arrays. (They'd have an indirection box with a 64-bit pointer in the lower 4GB.) Does anyone need more than 4GB of non-array data?
Hmm..how about 32 bit pointers, but with 8 byte boundary alignment? This should give an effective pointer size of 35 bits, adressing up to 32Gb.
This is also a good idea. -- Ben