Is more than 63 bits needed for file sizes? =========================================== Old SLUL had a fileoffs type, based on C `off_t`. SLUL-try2 uses 63-bit integers. That's a lot simpler, BUT is there any possibility that a file size would go over 64 bits? E.g. in a disk image, a SAN, or similar? Solution 1: Don't solve, and use separate APIs for huge files ------------------------------------------------------------- For example, as an extension to some file class: class HugeFileOffset long low long high end func seek HugeFileOffset offs code ... end Solution 2: Use the high bit to extend the long type ---------------------------------------------------- Maybe the high bit could be use to pass a pointer instead? (That would of course require that the whole 64-bit address space is not in use.) But how to know whether a function supports this usage or not? It would have to be declared (maybe with some kind of since-version scheme?). Problem ------- Regardless of chosen solution, there's always the problem of type conversions and arithmetic with larger-than-64-bits integers (unless of course all integers are bigintegers). So any larger-than-64-bits type will be inconvenient to use, and many libraries might not support that. Related topic: Biginteger support? Or allow the runtime to decide the maximum integer type? Maybe that could use the high-order-bit hack?