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.

Oops.

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

Reply via email to