Frank Heckenbach wrote:
BTW, I'm not sure that C ABIs will actually change in the future. Maybe C programmers will simply become used to using `long' almost everywhere, just like programmers of Borland Pascal and, especially, compatible 32 bit compilers, use `LongInt' regularly ...
It would seem to come down to whether you might consider the C standard types as fixed to their original definitions on the DEC PDP-11 (actually PDP-8, to be pedantic), or if they were intended to "breathe" with the machine word size. The original whitebook stated:
Machine Bits ======================= PDP-11 16 Honeywell 6000 36 IBM 370 32 Interdata 8/32 32
The ANSI version eliminated the reference to specific sizes, but I think the intent was clearly on the side of int being the natural register size for the machine. If there is doubt, the question can always be carried to comp.lang.c, Dennis Ritchie himself reads the group.
There is also clearly a precedent for int eventually promoting. The PDP-11 was 16 bits int, the PC was 16 bits int, and now 32 bits. The 16 bit to 32 bit promotion algorithim appears to have been to leave the int size at the "old" 16 bit meaning, then finally upgrading it to 32 bits when it became clear that 16 bit machines were dying off on the desktop.
The trend for 32 bit adaption on the desktop was:
Introduction of 80386 October, 1985 Majority of desktops changed to 32 bit processors Approx 1990 Widespread use of 32 bit software 1995-
The changeover of desktops to 32 bits without software to run on them was accomplished mainly by Intels willingness to sell the the 80386 as faster 16 bit processor as well, which AMD is doing, and apparently Intel will follow.
Now thats 10 years from introduction of a 32 bit processor to widespread program conversion (typically programmers won't use a model that isn't the majority of installed user base).
I personally think thats longer than the 64 bit conversion length will be. The 32 bit applications mainly waited for the operating system to convert, and this is occurring faster for the 32 bit to 64 bit changeover. The limit this time is more likely to be the approximate 3 to 5 year time it takes for the majority of desktops to experience a hardware upgrade.