Word length and byte order: a progress report

Developers
2010-03-27
2012-11-20
  • Arthur Norman
    Arthur Norman
    2010-03-27

    Over the last few weeks I have been adapting CSL with a view that an executable "reduce" or "recuce.exe" be able to use a "reduce.img" made on pretty well any other machine. Specifically that whether the machine that made the image file was 32 or 64 bit and whether it was big-endian or little-endian should not matter. A result of achieving this is that one can have just a singtle "reduce.img" made once (anywhere) and use it on any system. A particularly important use of this is that it means that Mac Reduce executable can be created "fat" for ppc, i386 and x86_64 and shoudl work (with the same reduce.img file) whatever sort of mac you are on.

    I have now run a full set of Reduce tests on one 32 bit machine using an image made on a 64-bit one and one set of tests on a 64-bit machine using an image made on a 32-bit one and those cases worked. But I have tried some other tests that still crash for reasons I do not understand (yet).

    The code that adjust things for word length aby byte order is horrid and messy! But anybody who is feeling adventurous and has access to a range of (maybe virtual) machines of varying shapes may like to help test this and see if they can track down the remaining bugs. I have found the Hercules z-arch emulator with Linux a way to get a 64-bit big-endian world to try.

    Arthur