X32 ABI
en.wikipedia.org
en.wikipedia.org
Btw: ghc always welcomes new contributors! Getting started can be as simple as trying to build ghc HEAD on your favorite platform and reporting any test suite bugs or bugs in your own experimentation. If you get stuck or confused, the ghc irc channel on freenode is full of folks happy to help out too!
With all the talk of 64bit CPU on the new iPhone 5s with only 1GB of RAM. I wonder if it will be subject to the 64bit memory address penalty, or if iOS is using something similar to X32?
[1] http://www.phoronix.com/scan.php?page=news_item&px=MTM1OTA
[1] http://www.mikeash.com/pyblog/friday-qa-2013-09-27-arm64-and...
You can use them as tagged pointers [1], and I think that Apple's Obj-C runtime actually does this. (I don't know for sure, as it's not really something I'm interested in, but I think I saw an article about it. I could be wrong.)
The wackiest thing about that is... if there are multiple pointers to an object (kind of the point of reference counting) and the reference count is part of the pointer... well... I don't really see that working well at all. OTOH I could see there being some optimization that means some callers might not need to modify the global reference count, only the one in their reference.
Mike Ash wrote an excellent summary:
http://www.mikeash.com/pyblog/friday-qa-2013-09-27-arm64-and...
A + B = 100
2A + B = 190
=> A = 90, B = 10
So if 90% of your memory usage is pointers, this is great. But I don't think that this is a typical workload. Otherwise, the performance advantage is not as clear.Wikipedia notes that "On average x32 is 5–8% faster on the SPEC CPU integer benchmarks compared to x86-64 but it can as likely be much slower. There is no speed advantage over x86-64 in the SPEC CPU floating point benchmarks."
Perhaps the reason that no tier-one Linux distro ships with x32 images is that the additional complexity of supporting an additional ABI is not seen to be worth the modest performance increases.
[1]: http://www.spec.org/cpu2000/CINT2000/181.mcf/docs/181.mcf.ht...
https://wiki.openjdk.java.net/display/HotSpot/CompressedOops
Definitely interesting though. Once support matures, I'll be interested in trying it out.