Guy Harris via tz wrote in <33322694-56FD-4D92-9365-4B85EA629012@sonic.net>: |On Mar 8, 2026, at 4:41 AM, Dag-Erling Smørgrav <des@des.no> wrote: |> Guy Harris via tz <tz@iana.org> writes: |>> Paul Eggert via tz <tz@iana.org> 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/tz@iana.org/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)