[LEAPSECS] Common Calendar Time (CCT) -Brooks Harris
    Joseph Gwinn 
    joegwinn at comcast.net
       
    Sun Jan 19 14:06:08 EST 2014
    
    
  
On Sat, 18 Jan 2014 23:10:41 -0800, Brooks Harris wrote:
> 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 is the count 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.
It's true that POSIX governs APIs (application-program interfaces), and 
does not govern kernel implementation details.  This is as intended.
 
> 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.
Yes.
 
> 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.
I didn't write the referenced article.  I just scanned it, but don't 
see how is solves the problems POSIX tries to solve.  And there are 
plenty of articles on how time ought to be determined and represented - 
the matter is still very much in play with  respect to UTC and the 
possible dropping of leap seconds.  This may or may not be settled 
during my career.
>>> 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".
Ok.  I meant a normative reference, in the sense of coordinated 
standards.  An interesting historical note isn't really coordination.
Joe Gwinn
    
    
More information about the LEAPSECS
mailing list