I would have thought that the parsing would be done offline (e.g. after each TZDB release), and the TZDB data would be converted into a different format that is more amenable to the computation that your code is performing.
It will be! However, it is quite likely that some users will want to be able to use their system's copy of tzdb, as the language I'm using is statically linked.
there has been a standard parsed data format (now called "TZif")
I was not aware of this! Now that I search, I see that there is existing tooling from the Unicode Consortium to parse this format. Given that, it'll make things quite a bit easier on my end. In any situation, having 24:00 where 0:00 is a possibility remains a bit odd, even if that is what the original sources say. Jacob Pratt On Tue, Apr 4, 2023 at 4:08 PM Arthur David Olson via tz <tz@iana.org> wrote:
Since the very beginning of this project, there has been a standard parsed data format (now called "TZif") and the `zic` utility has been shipped to do the parsing. Indeed, for a long time, the behavior of `zic` was the only specification of the human-readable data format.
Indeed there was no standards-organization documentation in the early days; the only thing available was a manual entry (tzfile.5); that entry did not always capture the complete picture.
@dashdashado
On Tue, Apr 4, 2023 at 3:57 PM Garrett Wollman via tz <tz@iana.org> wrote:
<<On Tue, 04 Apr 2023 12:45:54 -0700, Brian Park via tz <tz@iana.org> said:
I am curious to hear that your TZDB parsing is exposed to your end-users and is in the critical path. I would have thought that the parsing would be done offline (e.g. after each TZDB release), and the TZDB data would be converted into a different format that is more amenable to the computation that your code is performing.
Since the very beginning of this project, there has been a standard parsed data format (now called "TZif") and the `zic` utility has been shipped to do the parsing. Indeed, for a long time, the behavior of `zic` was the only specification of the human-readable data format.
Of course, this format was designed for easy access by the C standard library routines and not by JavaScript, but it would in theory not be difficult to modify the `zic` source code to generate a different output format that was more amenable to document-processing languages.
-GAWollman