On 2022-10-06 19:34, Paul Eggert via tz wrote:
On 10/6/22 15:45, Garrett Wollman via tz wrote:
C (intentionally) does not make any requirements on the encoding of a time_t, other than requiring that it be numeric. tzcode contains lots of complexity to deal with the numerous possible different realizations allowed by the C standard.
Despite its complexity, tzcode no longer supports every possibility allowed by the C standard. I removed support for floating-point time_t in 2013e, with the comment "It wasn't tested and probably never worked, no platform used it, and the latest POSIX no longer allows it."
AFAIR only C libraries for IBM 360/370/390/z e.g. IBM OS/MVS and VM/CMS SAS/C, used double time_t to handle the IBM ToD clock (later SysPlex timer IIRC) specified in the arch to update bit 52 (BE) every µs, but provided total 64(/128) bits with as much precision as required for discrete timestamps for hardware error logs. Looks like SAS/C support stopped in 2001. [Gig was porting a Windows 16 bit product to work across IBM OSes!] -- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada This email may be disturbing to some readers as it contains too much technical detail. Reader discretion is advised. [Data in binary units and prefixes, physical quantities in SI.]