On 2026-03-09 08:21, Steffen Nurpmeso via tz wrote:
Guy Harris via tz wrote in
<[email protected]>:
|On Mar 8, 2026, at 4:41 AM, Dag-Erling Smørgrav <[email protected]> wrote:
|> Guy Harris via tz <[email protected]> writes:
|>> Paul Eggert via tz <[email protected]> writes:
|>>> On my Ubuntu 25.10 platform, my email client (Thunderbird) uses the
|>>> GNU C library to read TZif data. I was talking about that usage, not
|>>> any ICU usage.
|>> So that's a case of an independent reimplementation of the same
|>> C/POSIX API that the tzcode implements. [...]
|>
|> Yes, an independent reimplementation maintained by [checks notes] some
|> guy named Paul Eggert. I bet he sucks.
|
|And not as independent as I'd originally thrught:
|
| https://lists.iana.org/hyperkitty/list/[email protected]/thread/3TRCQROTP2WT4O\
| KEWC6UKAQ34WOJT5OH/
|
|"The GNU C Library (see prep.ai.mit.edu:pub/gnu/glibc-1.05.tar.z) is \
|derived from Olson's 1989 code. Here are its changes:..."
...
|The musl C library, used by some *other* Linux distributions, has its \
|own separate implementation.
But to note it started over half a decade before the RFC on
some binary file format.
|And then there's the code used by at least a plurality of smartphones \
|on the planet, from the Bionic C library, which looks more directly \
|tzcode-derived.
|
|I don't know what code Huawei's doing in its collection of various \
|operating systems all of which, at least from the collection of Wikipedia \
|pages about those various operating systems, seem to be based on each \
|other in some cyclic graph, uses, so I can't speak for their smartphones.
|
|But most of those have, as I noted, constraints stemming from a desire \
|to Look Somewhat Like C and Unix.
|
|Various *other* programming languages have their own libraries. I don't \
|have a list of which ones are wrappers around the C/POSIX APIs and \
|which are completely independent. Some of the latter, as noted, don't \
|read TZif files.
RFC 8536 came in 2019. 9636 in 2024. There are changes to 8536.
There is a new format. There are bugs. There are what i would
interpret as "wild" in-code comments.
For some practice, see for example [585a0a78f9] of musl's
src/time/__tz.c:
explicitly prefer 64-bit/v2 zoneinfo tables
since commit 38143339646a4ccce8afe298c34467767c899f51, the condition
sizeof(time_t) > 4 is always true, so there is no functional change
being made here. but semantically, the 64-bit tables should always be
preferred now, because upstream zic (zoneinfo compiler) has quietly
switched to emitting empty 32-bit tables by default, and the resulting
backwards-incompatible zoneinfo files will be encountered in the wild.
Most distros try hard to maintain backward compatibility of data and files, so
users don't have to figure out some new time zone id setting, although mobiles
may have other goals.
Most libraries incorporate code changes for reliability on their own release
schedules, often derived from BSD releases which stay pretty close to the
reference implementation, although they may use their own lower level time
functions.
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retrancher but when there is no more to cut
-- Antoine de Saint-Exupéry