On Sat, Sep 24, 2016 at 1:14 PM, Brooks Harris <bro...@edlmax.com> wrote: > Fundamentally, the early implementations of POSIX and the many systems based > on its heritage cannot represent "23:59:60" and so most systems are > *indeterminate* at (or near) the Leap Second.
s/early/all/ here. POSIX defines time_t without leap seconds so you cannot properly implement them in a standards conforming way. System time is in UT<something-kinda-like-UT,but-not-really>, and there's any number of kludges that can kinda make the kinda less kinda and more UTC-like. Sadly, there's no standardization of the kludges people come up with, which leads to many issues. There are semi-standard APIs that can return additional information that you can use to transform your POSIX time stamp into something that you can unambiguously recover UTC from (well, actually, they return a tuple with a time_t plus other meta data you need to unambiguously make the transformation), but these APIs aren't widely used, and often the meta-data stream you need to make them useful is out of date because leap second knowledge has such a short forward-looking time horizon. Plus there's a lot of ignorance about what a leap second is, unlike a leap day, that people don't even know they need to code for it or allow for it to exist. The standard is fundamentally broken and cannot be fixed without breaking assumptions that run deep in much code. There's too many programs that get them wrong, with a pervasive attitude of "it's just a second, so who cares" that's hard to counter. I tend to view smearing as a repudiation of the concept of leap seconds. Let's do this kludge to keep the crazy world of nutty software written by people that don't know or don't care about leap seconds hobbling along at the expense of a bit of accuracy in time to try to shoe-horn the POSIX time_t without leap seconds standard with the reality of leap seconds. Better to not have them in the first place, but that ship sailed 40 yaers ago. Warner _______________________________________________ LEAPSECS mailing list LEAPSECS@leapsecond.com https://pairlist6.pair.net/mailman/listinfo/leapsecs