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

Reply via email to