
Duncan Coutts
The question is what should we do about it, if anything? A certain amount of machine dependent behaviour would seem to be useful. Even machine-dependent Int it's not in the H98 standard, implementations would want to add it as an efficiency extension and then we're back to the same place because one machine-dependent type infects all types.
I think defining a platform-independent core would be useful, not only from an engineering perspective. Having the semantics defined for the bulk of the language is better than having none or an unnecessarily complex one. If you then really want to, you can always instantiate the semantics to the platform you're using, adding Int and friends, but not delving down into the MachineInfo -> realm, which no implementation is going to use, anyway: I've yet to see a Haskell implementation that allows one program to be run across multiple processors of e.g. different bitsizes, and if it existed, it'd most likely limit any sane use to that platform-independent core. Thinking about GPU's, different FPE exception models and all that punk, I guess we'd have CReal as platform-independent, IEEEFloat/IEEEDouble as platform-independent-as-long-as-you-don't-blow-them-up, and Float/Double as not even necessarily providing IEEE semantics. -- (c) this sig last receiving data processing entity. Inspect headers for copyright history. All rights reserved. Copying, hiring, renting, performance and/or quoting of this signature prohibited.