[LEAPSECS] Common Calendar Time (CCT) -Brooks Harris

Brooks Harris brooks at edlmax.com
Sun Jan 19 02:10:41 EST 2014


On 2014-01-18 09:39 AM, Zefram wrote:

> Joseph Gwinn wrote:

>> No. If your poke around into how time is used, you will discover that

>> what is stored in the cound of seconds since the Epoch. Broken-down

>> time is used only when there is a human to be humored.

> Sure, scalar time_t values are used underneath, and I didn't say

> otherwise. That's what time_t is for. The kernel even increments the

> time_t clock, most of the time, as if it's a linear count of seconds,

> which is how it behaves on the small scale outside the immediate

> vicinity of leap seconds. But a kernel that knows about leap seconds

> then introduces a discontinuity in the scalar value, somewhere near each

> leap, to maintain the scalar<->UTC relationship.

Yes, two related issues -

1) There's no specification how the kernel should behave.
2) The POSIX API has its shortcomings, as you note, and these are
tangled with the kernel's behavior.

On Windows, in c/c++, the POSIX API is implemented as a sub-system which
in turn calls proprietary Windows time APIs, like ::GetSystemTime(),

::GetFileTime() and related. Divining exactly how those are behaving is

a challenge. Some parts of the POSIX API are just not implemented, and
some versions of MSVC c/c++ implement non-standard 64-bit versions.

Also, not all versions of POSIX are equally good. I've found smoking gun
bugs in some implementations of gmtime() and related.

Meantime, as you note in
http://www.fysh.org/~zefram/time/prog_on_time_scales.pdf, Disseminating
Leap Schedule to Machines, is a missing link in the whole UTC world is a
well defined and reliable method of obtaining the proper metadata (Leap
Seconds table, announce signals, etc). This needs to be addressed
somehow by somebody.


>

>> POSIX time is defined without reference to NTP,

> Indeed. The two definitions are separate, but match in most of their

> design features.


POSIX count "steps back" on Leap Second insertion. NTP count "freezes"
on Leap Second insertion. Either way there's an ambiguity, so that's one
design feature they share :-).

NTP *does* refer to POSIX - Figure 4: Interesting Historic NTP Dates
refers to "First day UNIX" and locates it 63072000 seconds before
1972-01-01T00:00:00Z (UTC). This helps solve one problem - when,
exactly, was the POSIX "the Epoch".

-Brooks


>

> -zefram

> _______________________________________________

> LEAPSECS mailing list

> LEAPSECS at leapsecond.com

> http://six.pairlist.net/mailman/listinfo/leapsecs

>

>




More information about the LEAPSECS mailing list