On 05/23/2014 01:51 PM, Arthur David Olson wrote:
Do we face a similar challenge in the 32-bit realm?
Not for Glib, no. It uses 64-bit signed integers internally. If this were a problem in the 32-bit realm, wouldn't we have already run into it? Some of tzdata's transitions are before 1901 and thus predate the 32-bit window, so I assume that for many years we've been approximating them with a transition at -2**31 -- is my assumption incorrect? One other thought, just for fun. In the 64-bit realm, we could use the timestamp of the Big Bang, as time stamps before then are physically suspect anyway. If we use POSIX time, our current best guess is that the Big Bang happened 13.82 billion years ago, which (if we use the POSIX origin of 1970) would make it -13,820,000,000 * 365.2425 * 86400, or -436117076640000000 -- a 59-bit number. A downside of using -436117076640000000 is that we'd need to update that number as we get better estimates of when the Big Bang occurred, but maybe we could consider this to be part of the fun. After all, if Unix had been developed on a 64-bit machine and had used the Big Bang for the time_t origin, a lot of bugs would have been avoided in the first place....