Unfortunately, the temporary hacks that accommodate CLDR for this
year’s changes in Canada trigger a bug in libstdc++ std::chrono
from GCC 14.1 (2024) through 16.1 (2026) that mishandles today’s
timestamps in America/Edmonton and America/Vancouver.
See GCC bug 124851; a fix is planned for GCC 16.2.
Work around the problem by using names rather than numbers in the
temporary hacks’ RULES columns; this accommodates GCC’s bug while
continuing to accommodate CLDR’s bug.

I ran across this bug when looking into a bug of Waybar,
a status bar for Wayland compositors.
Waybar mishandles current timestamps for Edmonton and Vancouver.
The Waybar bug evidently is caused by the std::chrono bug.
* NEWS: Mention this.
* northamerica (America/Edmonton, America/Vancouver): Use ‘Canada’,
not ‘1:00’, for the RULES column in this year’s temporary hack.
---
 NEWS         | 7 +++++++
 northamerica | 4 ++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/NEWS b/NEWS
index f898775e..35816c2f 100644
--- a/NEWS
+++ b/NEWS
@@ -33,6 +33,13 @@ Unreleased, experimental changes
     like New York, reverting to 2024a behavior.  This change affects
     only timestamps before 1966-10-30 at 01:00 standard time.
 
+  Other data changes
+
+    The temporary hacks used for North American timekeeping changes
+    now work around a bug in libstdc++ from GCC 14.1 through 16.1;
+    see GCC bug 124851, which affects std::chrono.  This data change
+    does not affect TZif files or timestamps.
+
   Changes to code
 
     zic now rejects Link targets that would have invalid names.
diff --git a/northamerica b/northamerica
index b542adb1..9d05e891 100644
--- a/northamerica
+++ b/northamerica
@@ -1996,7 +1996,7 @@ Zone America/Edmonton     -7:33:52 -      LMT     1906 Sep
                        -7:00   Edm     M%sT    1987
                        -7:00   Canada  M%sT    2026 Jun 18
                        # Temporary hack; see above.
-                       -7:00   1:00    MDT     2026 Nov  1  2:00
+                       -7:00   Canada  MDT     2026 Nov  1  2:00
                        # End of temporary hack.
                        -6:00   -       CST
 
@@ -2103,7 +2103,7 @@ Zone America/Vancouver    -8:12:28 -      LMT     1884
                        -8:00   Vanc    P%sT    1987
                        -8:00   Canada  P%sT    2026 Mar  9
                        # Temporary hack; see above.
-                       -8:00   1:00    PDT     2026 Nov  1  2:00
+                       -8:00   Canada  PDT     2026 Nov  1  2:00
                        # End of temporary hack.
                        -7:00   -       MST
 Zone America/Dawson_Creek -8:00:56 -   LMT     1884
-- 
2.55.0

Reply via email to