[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Y2K+38 disaster in debian?



Quoting Philip Thiem (ptt@umr.edu):
> Why would 32-bit apps be limited to 32 bit integers??  Didn't we have 32
> bit avallible to us on the 286??  If not, I'm certain we were able to
> get around it then.  Also if any one wants to make use of MMX registers
> there is even a 64-bit ASM MOV command avalible. 
> 
> In fact on my (nonmmx)k6-processor(I don't have a chance to test on a
> 386) this program returns 8 bytes(64 bits) just as it should;
> 
> #include <stdio.h>
> #include <stdlib.h>
> 
> int main(void)
> {
>   long long test;
>   printf("\n\n%i bytes\n\n", sizeof(test);
>   return 0;
> }

1) Posix requires time_t to be a standard integer type. "long long" is
(was?) a non-standard extension. (It was being discussed as a possible
standard.)

2) 64 bit math is _very_ slow on a 32 bit machine. Since time_t is used
all over the place (e.g., the filesystem) you'd seriously slow things
down by making it 64 bits. 

3) Since 64 bit archs already use a 64 bit time_t, this is a problem
that will go away when 32 bit machines are phased out (I can't see most
hardware lasting forty years.)

4) Any program that stores data to disk as a time_t is already broken:
portability is not assured. Any disk file should be stored in a
platform-independent fashion.

Mike Stone


Reply to: