On 11/22/2017 02:30 AM, Zefram wrote:
The binary tzfile usually provides a ruleset applicable to indefinitely many years, in the form of a POSIX TZ string. But that's not the current rules, it's the rules to be applied when all of the file's explicit transitions have run out.
Changing the subject (and subject line).... Currently zic generates a bunch of explicit transitions at the end of the time transition table, even if these transitions merely repeat what a TZ string would generate. This is to support older clients that grok only version-1 tzfile format, and which don't know about the TZ string (which was introduced in version 2 tzfile format). Since version 2 format was introduced in release 2006b, I'm thinking now may be a good time to add an option to zic to suppress explicit transitions at the end of the table if these transitions agree with the TZ string. This will help uncover buggy client code that mishandles TZ string values and therefore mishandles future timestamps. By default this option will be off now (meaning no change to the default behavior), but we could turn it on later.