Ngày phát hành: · Tự động tạo từ dữ liệu nguồn.
Đăng tại Time Dozen:
Phần tóm tắt và thay đổi mốc thời gian được dịch từ ghi chú phát hành IANA; mục gập bên dưới giữ nguyên văn tiếng Anh.
Tóm tắt
- Mexico sẽ không còn áp dụng DST trừ khu vực gần biên giới Hoa Kỳ.
- Chihuahua chuyển sang -06 quanh năm vào 2022-10-30.
- Fiji không còn áp dụng DST.
- Chuyển các Link sang 'backward'.
- Ở dạng vanguard, GMT nay là Zone và Etc/GMT là Link.
- zic nay hỗ trợ Link trỏ tới Link, và dạng vanguard sử dụng điều này.
- Đơn giản hóa bốn zone của Ontario.
- Sửa lỗi Y2438 khi đọc dữ liệu TZif.
- Bật time_t 64-bit trên các nền tảng glibc 32-bit.
- Bỏ hỗ trợ tệp lớn khi không còn cần thiết.
- Trong mã C, dùng một số tính năng C23 nếu có.
- Bỏ giải pháp lách lỗi Qt bug 53071 vốn không còn cần thiết.
Thay đổi mốc thời gian tương lai
- Mexico sẽ không còn áp dụng DST sau 2022, trừ các khu vực gần biên giới Hoa Kỳ tiếp tục áp dụng quy tắc DST của Hoa Kỳ. Vào 2022-10-30 lúc 02:00, bang Chihuahua của Mexico chuyển từ -07 (-06 khi có DST) sang -06 quanh năm, do đó không đổi giờ vào ngày đó. Luật mới quy định rằng Chihuahua gần biên giới Hoa Kỳ không còn áp dụng DST của Hoa Kỳ. (Cảm ơn gera đã báo trước về Chihuahua.)
- Fiji sẽ không áp dụng DST trong 2022/3. (Cảm ơn Shalvin Narayan.) Hiện tại, giả định DST bị đình chỉ vô thời hạn.
Thay đổi dữ liệu
- Chuyển các Link sang 'backward' để việc bảo trì Link dễ dàng và đơn giản hơn. Điều này chỉ ảnh hưởng dữ liệu được tạo ra nếu bạn dùng 'make BACKWARD='.
- GMT nay là Zone và Etc/GMT là Link thay vì ngược lại, vì GMT cần cho hỗ trợ giây nhuận còn Etc/GMT thì không. Tuy nhiên, thay đổi này làm lộ một lỗi trong TZUpdater 2.3.2 nên hiện chỉ có ở dạng vanguard.
- Dạng vanguard nay dùng Link trỏ tới Link, vì zic nay hỗ trợ điều này.
Thay đổi mốc thời gian quá khứ
- Đơn giản hóa bốn zone của Ontario, vì hầu hết các khác biệt sau 1970 dường như là tưởng tượng. (Lỗi do Chris Walton báo.) Chuyển America/Nipigon, America/Rainy_River và America/Thunder_Bay sang 'backzone'; các Link tương thích ngược vẫn hoạt động, dù một số mốc thời gian trước tháng 11 năm 2005 sẽ khác.
Ghi chú khác của bản này (mã nguồn, quy trình build, tài liệu), nguyên văn tiếng Anh
Changes to code
- zic now supports links to links regardless of input line order. For example, if Australia/Sydney is a Zone, the lines Link Australia/Canberra Australia/ACT Link Australia/Sydney Australia/Canberra now work correctly, even though the shell commands ln Australia/Canberra Australia/ACT ln Australia/Sydney Australia/Canberra would fail because the first command attempts to use a link Australia/Canberra that does not exist until after the second command is executed. Previously, zic had unspecified behavior if a Link line's target was another link, and zic often misbehaved if a Link line's target was a later Link line.
- Fix line number in zic's diagnostic for a link to a link.
- Fix a bug that caused localtime to mishandle timestamps starting in the year 2438 when reading data generated by 'zic -b fat' when distant-future DST transitions occur at times given in standard time or in UT, not the usual case of local time. This occurs when the corresponding .zi Rule lines specify DST transitions with TO columns of 'max' and AT columns that end in 's' or 'u'. The number 2438 comes from the 32-bit limit in the year 2038, plus the 400-year Gregorian cycle. (Problem reported by Bradley White.)
- On glibc 2.34 and later, which optionally supports 64-bit time_t on platforms like x86 where time_t was traditionally 32 bits, default time_t to 64 instead of 32 bits. This lets functions like localtime support timestamps after the year 2038, and fixes year-2038 problems in zic when accessing files dated after 2038. To continue to limit time_t to 32 bits on these platforms, use "make CFLAGS='-D_TIME_BITS=32'".
- In C code, do not enable large-file support on platforms like AIX and macOS that no longer need it now that tzcode does not use off_t or related functions like 'stat'. Large-file support is still enabled by default on GNU/Linux, as it is needed for 64-bit time_t support.
- In C code, prefer C23 keywords to pre-C23 macros for alignof, bool, false, and true. Also, use the following C23 features if available: __has_include, unreachable.
- zic no longer works around Qt bug 53071, as the relevant Qt releases have been out of support since 2019. This change affects only fat TZif files, as thin files never had the workaround.
- zdump no longer modifies the environ vector when compiled on platforms lacking tm_zone or when compiled with -DUSE_LTZ=0. This avoid undefined behavior on POSIX platforms.