|>|> (e-mail address removed) writes:
|>|>>>
|>|>>> C does not mandate the use of 32-bit integers for time_t.
|>|>>> This is truly an implementation issue, and the fix is so easy that
|>|>>> implementors have no excuse for not fixing the problem right now.
|>|>>
|>|>> Binary compatibility with existing code seems like a pretty good excuse
|>|>> to me.
|>|>
|>|> Precisely which binary interfaces did you have in mind?
Why are you looking for a precise list of interfaces? Why do you
imagine that he does have, or should have, one or mores specific
binary interfaces in mind? Why should he have anything in mind other
than the fact that changing the size of a type that is passed through
a binary interface is generally problematic; and even more so if it's
a pointer to the type rather than the type itself?
|>| One is the binary interface between a program and a dynamically linked
|>| C library, like say the time function. ....
Again, C does not have binary interfaces.
There is a binary interface between the caller of the time functions
and the time functions themselves; that the interface is specified by
a platform-specific document rather than by the C standard is
irrelevant to the comment made above about binary compatibility, as is
the fact that it may be a very different interface on different
platforms.
All that matters is that such as change will probably render code
compiled for a 32-bit time_t incompatible with other code compiled for
a 64-bit time_t, if they communicate with each other or with the
standard library using time_t.
Elsewhere in this thread you've described features of some ABIs that
would allow passing time_t values as function arguments without loss
of value, but you haven't indicated how many ABIs you're aware of that
have those features; since registers at least 64-bits wide are one of
the requirements, such ABIs are certainly far from universal at this
time. In any event, those features won't help at all with pointers to
time_t, nor with aggregates containing time_t.