[tz] leap-seconds.list format

Byron Torres b at torresjrjr.com
Tue Feb 6 22:25:21 UTC 2024


Good day,

I write here to you knowledgeable people in the hopes you can
clarify some things regarding the format of leap-seconds.list file.
Please forgive me if there is a more appropriate place to ask.

Recently it seems the IERS has changed the format of the
leap-seconds.list file they serve[1], from the old format by NIST[2].
The comments are reworded, the lines wrap at a large width, and most
importantly, the whitespace between the decimal timestamps and
time-differences, previously a tab, have been replaced with spaces.

[1] https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list
[2] ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list

This, coupled with the fact that the tz repository recently began
fetching from this source (I understand that is because the NIST source
was flaky), has broken a leap-seconds.list parser[3] used by the
standard library of the Hare systems programming language[4], a language
akin to a modern C. I'm the maintainer of the Hare stdlib date/time
subsystem[5].

[3] https://git.sr.ht/~sircmpwn/hare/tree/d0c057dbbb0f1ee9179769e187c0fbd3b00327d4/item/time/chrono/leapsec.ha#L72
[4] https://harelang.org/
[5] https://harelang.org/who

For context, Hare sources leap-seconds.list for UTC-TAI leapsecond data
and implements timescales like UTC, TAI, GPS, etc. Hare could source
from a TZIF file specified by $TZ, but the decoupling of timezone and
leapsecond data allows for multi-timescale programming. We are working
to improve Hare and to begin stable quarterly releases, so we ideally
want guarantees for how leap-seconds.list is formatted.

My questions are:

* What was the motivation for the changes in IERS'es leap-seconds.list
  file? Is there a record of discussion regarding this?

* What was the motivation specifically for the spaces-to-tab change?
  Did another commonly used software implement a forgiving parser?

* What is the history of the leap-seconds.list file and file format?

* Is the format for leap-seconds.list defined? Where and how strongly?

* If there is no strong, formal definition, would a formal definition of
  the leap-seconds.list file format be welcome? To whom could I
  coordinate with?

* Could at least the spaces be changed back to tabs?
  Personally, I do not like the idea of a make-time conversion script.
  It would be ideal for the source file to make this change, but before
  I email the contact mentioned in the new file, I thought to prod here
  first.


Timely regards,
b



More information about the tz mailing list