Release 2020f - 2020-12-29 00:17:46 -0800
No changes to tzdata, just to a part of the build procedure
not used on NetBSD
Release 2020e - 2020-12-22 15:14:34 -0800
Volgograd switched to Moscow time on 2020-12-27 at 02:00.
Correct many pre-1986 transitions, fixing entries originally
derived from Shanks. The fixes include changes to:
Australia, Bahamas, Bermuda, Belize, Ghana, Israel and Palestine,
Kenya and adjacent, Nigeria and adjacent, Seychelles, Vanuatu
Australia/Currie has been moved to the 'backward' file and its
corrected data moved to the 'backzone' file.
To better match legislation in Turks and Caicos, the 2015 shift to
year-round observance of -04 is now modeled as AST throughout before
returning to Eastern Time with US DST in 2018, rather than as
maintaining EDT until 2015-11-01.
Fix based on patch provided by Kobayashi Takashi. This brings nl(1) further
in to POSIX compliance. Verified behavior with classic SysV nl(1) and GNU
nl(1). There could still be edge cases here not specified by POSIX.
This variable was intended to help the compilers produce efficient code
by avoiding a duplicate memory read. As it turned out, GCC 5.5 doesn't
need this help, and probably newer compilers don't need it either. Well
done, GCC, keeping track of the memory locations even if the pointer to
it changes in the middle.
After the previous clean up in for.c 1.123 from 2020-12-30, GCC 5.5 did
not inline the function SubstVarLong anymore since it was now called
from 2 places. GCC didn't notice that the function call was essentially
the same since in differed only in the end character.
By combining the cases for ${V} and $(V), the code becomes even shorter
than before, while still being understandable.
At this point, the number of iteration items is always a multiple of the
number of iteration variables, which makes any addition more complicated
than absolutely necessary.
The comma expression in ForReadMore may be a nice trick, but it's not as
easy to read as a simple if-then-else chain. Test for '{' before '('
since BSD makefiles use braces by convention.
This removes the redundancy of mentioning the function name in the error
message. This redundancy had been correct in all but 2 cases:
build_real_imag and tsize.
Having 2 lines of source code per assertion is too much, especially
since most of this code is redundant anyway. Extract the common code
and the additional negation into a simple function instead.
Even with -DDEBUG and -DYYDEBUG, the debug output is not detailed enough
to clearly see what happens.
Add some custom debug logging to the parser, mainly for demonstration
purposes, and also to find out how to fix the test d_struct_init_nested.