Home | History | Annotate | only in /src/lib/libc/compat/time
History log of /src/lib/libc/compat/time
RevisionDateAuthorComments
 1.3 16-Sep-2023  christos Update tzcode from 2022g to 2023c:

Release 2023c - 2023-03-28 12:42:14 -0700

Release 2023b - 2023-03-23 19:50:38 -0700

Release 2023a - 2023-03-22 12:39:33 -0700

Changes to code

You can now tell tzselect local time, to simplify later choices.
Select the 'time' option in its first prompt.

You can now compile with -DTZNAME_MAXIMUM=N to limit time zone
abbreviations to N bytes (default 255). The reference runtime
library now rejects POSIX-style TZ strings that contain longer
abbreviations, treating them as UTC. Previously the limit was
platform dependent and abbreviations were silently truncated to
16 bytes even when the limit was greater than 16.

The code by default is now designed for C99 or later. To build in
a C89 environment, compile with -DPORT_TO_C89. To support C89
callers of the tzcode library, compile with -DSUPPORT_C89. The
two new macros are transitional aids planned to be removed in a
future version, when C99 or later will be required.

The code now builds again on pre-C99 platforms, if you compile
with -DPORT_TO_C89. This fixes a bug introduced in 2022f.

On C23-compatible platforms tzcode no longer uses syntax like
'static [[noreturn]] void usage(void);'. Instead, it uses
'[[noreturn]] static void usage(void);' as strict C23 requires.
(Problem reported by Houge Langley.)

The code's functions now constrain their arguments with the C
'restrict' keyword consistently with their documentation.
This may allow future optimizations.

zdump again builds standalone with ckdadd and without setenv,
fixing a bug introduced in 2022g. (Problem reported by panic.)

leapseconds.awk can now process a leap seconds file that never
expires; this might be useful if leap seconds are discontinued.

Changes to commentary

tz-link.html has a new section "Coordinating with governments and
distributors". (Thanks to Neil Fuller for some of the text.)

To improve tzselect diagnostics, zone1970.tab's comments column is
now limited to countries that have multiple timezones.

Note that leap seconds are planned to be discontinued by 2035.
 1.2 11-Jan-2009  christos merge another directory that cvs missed.
 1.1 08-Nov-2008  christos branches: 1.1.2;
file Makefile.inc was initially added on branch christos-time_t.
 1.1.2.2 10-Nov-2008  christos this completes the symbol implementation for now. New we need to debug...
 1.1.2.1 08-Nov-2008  christos new files for time_t
 1.1 16-Sep-2023  christos Update tzcode from 2022g to 2023c:

Release 2023c - 2023-03-28 12:42:14 -0700

Release 2023b - 2023-03-23 19:50:38 -0700

Release 2023a - 2023-03-22 12:39:33 -0700

Changes to code

You can now tell tzselect local time, to simplify later choices.
Select the 'time' option in its first prompt.

You can now compile with -DTZNAME_MAXIMUM=N to limit time zone
abbreviations to N bytes (default 255). The reference runtime
library now rejects POSIX-style TZ strings that contain longer
abbreviations, treating them as UTC. Previously the limit was
platform dependent and abbreviations were silently truncated to
16 bytes even when the limit was greater than 16.

The code by default is now designed for C99 or later. To build in
a C89 environment, compile with -DPORT_TO_C89. To support C89
callers of the tzcode library, compile with -DSUPPORT_C89. The
two new macros are transitional aids planned to be removed in a
future version, when C99 or later will be required.

The code now builds again on pre-C99 platforms, if you compile
with -DPORT_TO_C89. This fixes a bug introduced in 2022f.

On C23-compatible platforms tzcode no longer uses syntax like
'static [[noreturn]] void usage(void);'. Instead, it uses
'[[noreturn]] static void usage(void);' as strict C23 requires.
(Problem reported by Houge Langley.)

The code's functions now constrain their arguments with the C
'restrict' keyword consistently with their documentation.
This may allow future optimizations.

zdump again builds standalone with ckdadd and without setenv,
fixing a bug introduced in 2022g. (Problem reported by panic.)

leapseconds.awk can now process a leap seconds file that never
expires; this might be useful if leap seconds are discontinued.

Changes to commentary

tz-link.html has a new section "Coordinating with governments and
distributors". (Thanks to Neil Fuller for some of the text.)

To improve tzselect diagnostics, zone1970.tab's comments column is
now limited to countries that have multiple timezones.

Note that leap seconds are planned to be discontinued by 2035.
 1.2 11-Jan-2009  christos merge another directory that cvs missed.
 1.1 10-Nov-2008  christos branches: 1.1.2;
file compat_difftime.c was initially added on branch christos-time_t.
 1.1.2.1 10-Nov-2008  christos this completes the symbol implementation for now. New we need to debug...
 1.4 11-Sep-2024  christos Merge tzcode-2024b

Release 2024b - 2024-09-04 12:27:47 -0700

Changes to code

localtime.c now always uses a TZif file's time type 0 to handle
timestamps before the file's first transition. Formerly,
localtime.c sometimes inferred a different time type, in order to
handle problematic data generated by zic 2018e or earlier. As it
is now safe to assume more recent versions of zic, there is no
longer a pressing need to fail to conform RFC 8536 section 3.2,
which requires using time type 0 in this situation. This change
does not affect behavior when reading TZif files generated by zic
2018f and later.

POSIX.1-2024 removes asctime_r and ctime_r and does not let
libraries define them, so remove them except when needed to
conform to earlier POSIX. These functions are dangerous as they
can overrun user buffers. If you still need them, add
-DSUPPORT_POSIX2008 to CFLAGS.

The SUPPORT_C89 option now defaults to 1 instead of 0, fixing a
POSIX-conformance bug introduced in 2023a.

tzselect now supports POSIX.1-2024 proleptic TZ strings. Also, it
assumes POSIX.2-1992 or later, as practical porting targets now
all support that, and it uses some features from POSIX.1-2024 if
available.

Changes to build procedure

'make check' no longer requires curl and Internet access.

The build procedure now assumes POSIX.2-1992 or later, to simplify
maintenance. To build on Solaris 10, the only extant system still
defaulting to pre-POSIX, prepend /usr/xpg4/bin to PATH.

Changes to documentation

The documentation now reflects POSIX.1-2024.

Changes to commentary

Commentary about historical transitions in Portugal and her former
colonies has been expanded with links to many relevant legislation.
(Thanks to Tim Parenti.)
 1.3 21-Feb-2011  christos branches: 1.3.56;
remove duplicate weak aliases
 1.2 11-Jan-2009  christos branches: 1.2.4;
merge another directory that cvs missed.
 1.1 08-Nov-2008  christos branches: 1.1.2;
file compat_localtime.c was initially added on branch christos-time_t.
 1.1.2.3 10-Nov-2008  christos version tzet{,wall}
 1.1.2.2 10-Nov-2008  christos this completes the symbol implementation for now. New we need to debug...
 1.1.2.1 08-Nov-2008  christos new files for time_t
 1.2.4.1 05-Mar-2011  bouyer Sync with HEAD
 1.3.56.1 02-Aug-2025  perseant Sync with HEAD

RSS XML Feed