Release version 1.6 2024-10-09 #1003
lcn2
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Release 1.6 2024-10-09
Prep for "Release 1.6 2024-10-10".
This is a pre-Great Fork Merge code freeze for this repo.
We expect to make one minor change before the full Great Fork Merge
when we replace all references for "ioccc-src/temp-test-ioccc"
with "ioccc-src/winner" and replace all links to the
https://ioccc-src.github.io/temp-test-ioccc/
web site with the officialhttps://www.ioccc.org/index.html
web site.Changed
MKIOCCCENTRY_REPO_VERSION
from "1.5.25 2024-10-10"to "1.6 2024-10-10".
Release 1.5.25 2024-10-09
Synced
jparse
from jparse repo. Thisincludes better (additional) testing of JSON encoding/decoding ('Beware of the
dragonfiredrake!' :-) ), a new version
string (UTF-8 version, which is now also displayed in the tools in this repo, as
it also helps identify if there is a mismatch in versions in bug reporting or
something else), amongst various other things. Should one wish to further
progress their dementia! :-) they can look at that repo's log or the
jparse/CHANGES.md file.
New option
-N
tojstrdecode(1)
andjstrencode(1)
to ignore (in decodingand encoding internal to the tool itself, not JSON) all newlines found in data.
Release 1.5.24 2024-10-09
Synced
jparse
from jparse repo. Thiscleans up some code, removes code that's unnecessary and syncs the versions of
all tools to the same:
1.2.0 2024-10-09
. A new version string was added aswell,
JPARSE_UTF8_VERSION
. A bug in a script was also fixed.Removed
soup/entry_time.c
andsoup/entry_time.h
. We calltime(3)
directly from
test_formed_timestam()
insoup/entry_util.c
.Release 1.5.23 2024-10-08
Noted dependency of
MAX_SUBMIT_SLOT
andMAX_TARBALL_LEN
definesin
soup/limit_ioccc.h
with the IOCCC submit server.The files
utf8_posix_map.c
andutf8_posix_map.h
have been renameddefault_handle.c
anddefault_handle.h
respectively to better accountfor their true purpose. Additionally the function
check_utf8_posix_map()
was renamed to
check_default_handle_map()
for the same clarifying reason.Synced
jparse
from jparse repo. Thisshould fix JSON decoding bugs. Although a couple things have to be done still to
close that issue out it appears
everything is good now. Some 'good' JSON files were changed to be 'bad' as they
have invalid UTF-8 bytes, it seems, but if this turns out to be false (or if the
so-called JSON spec allows for accepting it), this can be changed back,
especially as some test suites suggest that those files are legal, even though
multiple sources say otherwise.
Release 1.5.22 2024-10-01
Improve
soup/is_available.sh
to now verify thatchecknr(1)
is reliable andif it is unreliable or cannot be found, the step is skipped in
prep.sh
. Theoriginal version of
checknr(1)
always returned 0 even with an error so thischeck in
is_available.sh
expects a non-zero value, not 0, in order to verifyit works okay, as in order to make sure that it works right we construct a
temporary erroneous man page.
The
prep.sh
here now skipscheck_man
rule ifchecknr
cannot be found or isunreliable.
The Makefiles (except for
dbg
anddyn_array
as these repos do not yet havethe script or the changes) have been updated to better explain the problem if
is_available.sh
reports non-zero.Sync
jparse
from jparse repo with theabove changes (
jparse
is where it originated).Release 1.5.21 2024-09-30
Bug fix
prep.sh
wrt skipped messages, and indent URL of each tool.Make use of
is_available.sh
in the Makefiles.Synced
jparse
from jparse repo with theabove changes to do with the jparse repo.
Release 1.5.20 2024-09-29
Sync
jparse
from jparse repo. Thisincludes a new JSON file with some details about it as well as some fixes in the
README.md file (newer synopsis of some tools) as well as a couple functions
added.
Release 1.5.19 2024-09-27
Add
FOO_BASENAME
to all tools in this repo. This is used in both-V
optionand
-h
option.The
-V
and-h
option of all tools now show the JSON parser version. This isbecause it is helpful to know what parser version is linked in, especially for
any bug reports. This should not normally be a problem as the copies in this
repo are linked in but in case there is a problem it is now done (for some the
parser is actually used so it's even more important).
Sync
jparse/
from jparse repo. The changesconsist of the
FOO_BASENAME
changes described above for the tools in thisrepo, plus a broken link in
jparse_bug_report.sh
. This needs to be done forthe dbg repo and the dyn_array repo.
Fix comment about
CUNKNOWN
in Makefile.example.The
ENTRY_VERSION
has been changed from "1.1 2024-02-11" to "1.2 2024-09-25".Both "title" and "abstract" we added to the
.entry.json
file format.The
entry_JSON_format_version
was changed from "1.1 2024-02-11" to "1.2 2024-09-25".Release 1.5.18 2024-09-24
Sync
jparse/
from jparse repo. Thefollowing was added to the jparse CHANGES.md file:
Implement boolean
unicode
ofstruct json_string
in the decoding functions.If
json_conv_string()
finds that callingjson_decode()
which callsdecode_json_string()
causes the boolunicode
to be false it sets theconverted
boolean tofalse
. This will then flag an error in parsing if thereis an invalid Unicode symbol. This does not mean that decoding all symbols work:
it simply means that we detect if there are invalid Unicode symbols. The check
is done on the original string but if it turns out it has to be done on the
decoded string that can be done easily.
The
json_decode()
had a bug fix: it allocated memory for the return stringwhen
decode_json_string()
does that and this caused a memory leak.If
decode_json_string()
(which is now a static function injson_parse.c
)detects an error, the allocated memory is freed before returning
NULL
.Updated
JSON_PARSER_VERSION
to"1.1.6 2024-09-24"
.Updated
JPARSE_REPO_VERSION
to"1.0.13 2024-09-24"
.Added
MIN
andMAX
macros toutil.h
.Rename
jenc
tobyte2asciistr
injson_parse.c
to avoid confusion about itspurpose.
Expand the output of
jstrencode -t
andjstrdecode -t
to express that theencode/decode tests have not yet been written. This depends on bug Use tar options to disable including of the username/group in the archive. #13 being
resolved first.
Changed optimisation flags in the Makefiles to not specify
-g3
as debugsymbols are almost useless when optimising and we have
-O3
in use. Duringdebugging one can always use:
make C_OPT="-g3" clobber all
to compile in debug symbols or have a file in the respective directories (those
needed) called
makefile.local
with the line:C_OPT= -g3
which is used for development purposes but should not normally be done.
Fix potential use without initialisation of
inputlen
injstrencode.c
.Add function
decode_json_string()
to help simplify thejson_decode()
function as it's quite long. This new function takes the length and calculated
decoded size as well as the pointers (the block of memory, the return length and
the
has_nul
as well) and then allocates thechar *
and does what was thesecond half of the
json_decode()
function. Asjson_encode()
is much simplerit seems like at this time that something like this is not needed. This new
function is not static but it is entirely unclear if that is necessary.
Add to
struct json_string
thebool unicode
. Currently unused (justinitialised to false) the purpose will be to indicate whether or not the string
has any invalid unicode symbols found during decoding.
Add (as
json_utf8.h
andjson_utf8.c
) the filesunicode.h
andunicode.c
from the C unicode library unicode-c
repo, slightly modified to fit
our needs. More modification can be done once the bug in
json_parse.c
'sjson_decode()
function is modified to use what appears to be the functionucs2_to_utf8()
. It is not clear at this point but it might be possible togreatly reduce these new files in code to just the bare minimum of what we
require but right now it is all included, even the repeat macros in the C file
(when
HEADER
is defined which it is not). The test code was removed from thesefiles as that was part of its test suite that we do not need. A link back to the
repo has been added, along with the author and the same header comments in the
files. If it turns out we can just use the UTF-8 decoding algorithm by itself we
might reduce the code to just that, making sure to credit (and link back) the
author. But in the meantime we still have to resolve the UTF-8 decoding bugs.
The Makefiles now compile and link in
json_utf8.c
.Run
make seqcexit
.Add call to
setlocale()
injstrencode.c
andjstrdecode.c
.Fix build of libjparse.a - add
json_utf8.o
.Remove
#line ..
fromjson_utf8.h
.Removed helper function
is_utf8()
as it appears to be not useful and mightactually be incorrect. A copy of this function has been made in the case it
actually does prove useful, unlikely as that seems.
Added
version.h
which has the versions for the repo release, the jparse JSONparser and the jparse tool. The other tools have their respective version in
their source code file. This file was added primarily so that
verge
couldrefer to the JSON parser version. In order to get this to work, the
jparse.y
file now has
#include "version.h"
. This means the backup parser source codehas been rebuilt with
make parser-o
.The tools now have a
FOO_BASENAME
in their header file which is used in boththe usage string and the version option.
The file
test_jparse/pr_jparse_test.h
has been added for that tool.The Makefiles have been updated including new dependencies.
The
FOO_BASENAME
will be done for the tools in this repo too. It was done thisway to make sure that the version strings match the tool without having to type
the string literally more than once.
Release 1.5.17 2024-09-15
Sync
jparse/
from jparse repo. Addedfunction to check a string for UTF-8. Fixed make
check_man
.Added script
soup/is_available.sh
: it takes a single arg and if it can find aprogram by that name (as in by
type -P
) it will return 0; otherwise it returns1.
Fix
check_man
Makefile rule in all Makefiles. Previously it ignored the resultwhich meant that
prep.sh
never reported a problem in a problematic man page.Release 1.5.16 2024-09-13
Sync
jparse/
from jparse repo.This makes some important fixes to the tools
jstrdecode(1)
andjstrencode(1)
where in
jstrdecode(1)
the-Q
option did not work and for both the printingof everything should happen after everything is parsed (especially for the
-Q
option but not strictly for that reason). The
pr_jparse_test
tool had a bugfix as well where the
-h
option did not work.Add to
jstr_test.sh
tests forjstrdecode(1)
options-Q
and-e
(bothseparately and together).
Clarified comment in
jparse.l
and rebuilt backupjparse.c
(jparse.ref.c
).Add an extra sanity check to
jencchk()
: the macroJSON_BYTE_VALUES
mustequal 256. Previously we did check that the table length of
jenc
isJSON_BYTE_VALUES
with the assumption that this was 256 but now we make surethat it is 256, before we check the table length.
Release 1.5.14 2024-09-11
Sync
jparse/
from jparse repo. Thisincludes a number of fixes and improvements to various tools and the Makefiles
(including some that will likely be implemented in the Makefiles here).
Release 1.5.13 2024-09-09
Fix Eszett (
ß
) insoup/utf8_posix_map.c
to map toss
, not just ones
. Inparentheses the word (though all caps)
ESZETT
was added to theSHARP S
(another term for it). This was done to make it easier to find for those of us
used to the German term.
Moved paths used by IOCCC tools out of jparse/util.h and into soup/soup.h, the
obvious location.
Updated the repo release version to account for this change.
Release 1.5.12 2024-09-08
In
test_ioccc/
,soup
and the top level Makefiles the${RM}
variable nowuses the
${Q}
control variable.Other than
dbg
anddyn_array
Makefiles (as those changes have to becommitted over there and then synced) the
RM_V
variable is now empty bydefault as it used to be that the
${RM}
did not use-v
.Remove from
${RM}
the-r
option where it is not needed i.e. when a directoryis not being removed.
Sync
dbg
anddyn_array
subdirectories from the dbgrepo and
dyn_array, with fixes to the Makefiles.
Sync
jparse
subdirectory from jparse repowith some fixes. The changes in particular include:
Fix
make clobber
to removejparse_test.log
andMakefile.orig
.Fix
make legacy_clobber
to removejparse.a
.Fix
${RM}
in Makefiles to use${Q}
variable (not inmake depend
as it isused in an earlier command in the multiple line commands), in some cases changed
from the wrong variable, and
${RM_V}
(where this was not done).Do not use
-r
in rm in Makefiles unless removing a directory, for safety.Do not by default use
-v
forrm
in Makefiles, to match what was previouslydone here.
Release 1.5.11 2024-09-07
Synced
jparse
subdirectory from the jparserepo.
It was decided that error messages in
jparse(1)
could be improved. This wasdone in the following ways:
of that token (along with the line and column).
bad token with the line and column) and then the warning that the JSON tree is
NULL (just like if verbosity specified) and then the error message (from
jparse(1)
itself).The error files in the
bad_loc
have been updated as now the error output haschanged.
Updated
jparse(1)
version to 1.1.6 2024-09-07.Removed timestamps from
beginning
/ending
messages in Makefiles.Fix clone rules in Makefile to exclude the
.github
subdirectory of outsiderepos.
Updated
.exclude
to include (not that that makes sense :-) ) the glob._.DS_Store
which sometimes shows up in macOS (it is different from.DS_Store
).Release 1.5.10 2024-09-06
Synced
jparse
subdirectory from the jparserepo.
Add
-L
option tojparse_test.sh
to disable the error location tests. This isnot usually needed but it can be useful in some cases.
jparse_test.sh
now will, in the case that no file is specified on the commandline, try and read from the default good JSON strings file and the default bad
JSON strings file, in order to verify that things are working well there, too.
Unless some problem occurs this should be the final change for
jparse
untilafter the IOCCC28.
Release 1.5.10 2024-09-05
Synced
jparse
subdirectory from the jparserepo with some useful updates and fixes. See
the git log of that repo for more detailed information. Changes that these
updates required here (and some that are in the jparse subdirectory):
test_ioccc/ioccc_test.sh
script no longer runs thejstr_test.sh
,jnum_chk
tests and it does not runjparse_test.sh
excepton the
test_ioccc/test_JSON
directory as thejparse/Makefile
runs theappropriate tests in
test_jparse/
(in this repo underjparse/test_jparse
) -obviously the jparse repo knows nothing about
test_ioccc/test_JSON
so it hasto be done this way. It's likely that with the
-Z topdir
option (that wasrecently added to
jparse_test.sh
) or some other workaround the script couldrun from
test_ioccc/ioccc_test.sh
but it is redundant and not useful so it nolonger does.
jparse_test.sh
path updates (one of the changes is to fix it to workon its own but this required some changes in test error files) the error files
under
jparse/test_jparse/test_JSON/bad_loc
have been updated here (this isanother reason that we cannot as easily run
jparse_test.sh
fromioccc_test/
without the
-Z topdir
hack or some other workaround).bad_loc
error files are now always tested as if there is not a matchingerror in the file it indicates a problem with the parser.
A useful update (besides the addition of the
-Z topdir
hack) tojparse_test.sh
that was synced here is the new-f
option for the files thathold JSON blobs, one per line: it inverts the check, saying that the JSON blobs
must be invalid. This required a new file here,
jparse/test_jparse/json_teststr_fail.txt
. Asjparse_test.sh
always runs onat least
json_teststr.txt
(if no files specified) it might be good to not havethe option and always run a fail test on the new file but this can be worried
about another time. As the
jparse/test_jparse/Makefile
runs it with thisoption it doesn't matter much anyway.
The
jparse/test_jparse/jparse_test.sh
version is now1.0.5 2024-09-04
(fixedfrom the
more natural:-) international way1.0.5 04-09-2024
thatwas added by habit, to match the format of the other versions); the old version
was
1.0.3 2023-08-01
.make release
should be fine now, after the updates toioccc_test.sh
. Theversion of that script is now
"1.0.2 2024-09-05"
.In the Makefile rules that have echo lines that end with
starting"
and thosethat end with
ending"
it now shows the timestamp (except or thedyn_array
and
dbg
Makefiles as those are from other repos also).Repo release version is now
1.5.10 2024-09-05
(a recent update did not updatethe version string so it jumped more than one). Except for some last minute
fixes that might be required it might be the last release until after IOCCC28
(let's all hope it is!).
Release 1.5.9 2024-09-04
Add to
-V
option of compiled tools that use the jparse library in some form oranother (i.e. links it in) to print out the current json parser version. The
json parser and jparse versions were also updated (from the jparse repo).
Release 1.5.8 2024-09-01
Add to Makefiles the
PREFIX
variable to allow for installing to a differentlocation than the default
/usr/local
.Added some uninstall rules to the Makefile in a number of subdirectories. The
external repos that are synced to this repo have not had any direct changes as
those repos first need those rules (which will be done soon). This is also why
the top level Makefile does not run
make uninstall
in those subdirectories.Once these are all done the top level Makefile can have a simpler uninstall
rule.
Along the lines of silencing (non-verbose)
install
in theinstall
rule onemay now do the same with the uninstall (instead of
INSTALL_V
it isRM_V
).This is only done to be congruent with the
install
rule.Updated the
MKIOCCCENTRY_REPO_VERSION
to"1.5.7 2024-09-01"
.Release 1.5.7 2024-08-31
Synced
jparse
subdirectory from the jparserepo. There was no code change and the only
functionality changes are that the install rule installs more header files (now
in a subdirectory -
/usr/local/include/jparse
) and an uninstall rule is added(for those who wish to deobfuscate their system :-) ).
Updated the
MKIOCCCENTRY_REPO_VERSION
to"1.5.6 2024-08-31"
.Release 1.5.6 2024-08-31
Add to
dyn_array/Makefile
ordyn_test
the flag-L../dbg
in hopes to solvethe workflow failure. If this works then the
dyn_array
repo will also have tohave this added to its Makefile.
Add to
jparse/Makefile
-L../dbg -L../dyn_array
for the same reasons asabove. If this works then the
jparse
repo Makefile will also have to beupdated for this (along with some other pending changes).
Add to
jparse/test_jparse/Makefile
-L../dbg -L../dyn_array
for the abovereasons as well.
Release 1.5.5 2024-08-30
We updated
dbg/
from the dbg repo.We updated
dyn_array/
from the dyn_array repo.We updated
jparse/
from the jparse repo.Renamed
MKIOCCCENTRY_SRC
toINTERNAL_INCLUDE
.Updated the
MKIOCCCENTRY_REPO_VERSION
to"1.5.5 2024-08-30"
.Release 1.5.4 2024-08-29
Rename libraries for easier linking in other applications. In particular the
jparse repo (which currently requires some
changes in order to work on its own but this release is part of that) needs the
dbg
anddyn_array
libraries but in order to link these in properly one mustname them
libdbg.a
andlibdyn_array.a
(i.e. add thelib
) so that one canthen do
-ldbg
and-ldyn_array
. Along the same linesjparse.a
has beenrenamed to
libjparse.a
for linking in (this is something that has not yet beendone in the jparse repo but in order to link it in it will have to be done).
Updated the
MKIOCCCENTRY_REPO_VERSION
to"1.5.4 2024-08-29"
.Release 1.5.3 2024-08-28
Fix
hostchk.sh
that was broken with the recent change ofMKIOCCCENTRY_SRC
.New version for hostchk.sh:
"1.0.2 2024-08-28"
.Release 1.5.2 2024-08-28
Remove dependence of
jparse/jsemtblgen.h
on../iocccsize.h
.Update
dyn_array/
,dbg/
,jparse/
trees as per their GitHub repos.Require
MKIOCCCENTRY_SRC
to be defined in order to compile.We add
C_SPECIAL=${C_SPECIAL}
to all calls to${MAKE}
inthe
Makefile
.Added
${C_SPECIAL}
make variable so we can define special thingson the compile line. Bu default we use
C_SPECIAL= -DMKIOCCCENTRY_SRC
.Improved the
make dbg.help
, andmake dyn_array.help
andmake jparse.help
.Removed
make dgb.replace_from_clone
,make dyn_array.replace_from_clone
,and
make parse.replace_from_clone
.When
make dbg.update_from_clone
is used, we also performa
make depend
where we forceC_SPECIAL=-DMKIOCCCENTRY_SRC
.When
make dyn_array.update_from_clone
is used, we also performa
make depend
where we forceC_SPECIAL=-DMKIOCCCENTRY_SRC
.When
make jparse.update_from_clone
is used, we also performa
make depend
where we forceC_SPECIAL=-DMKIOCCCENTRY_SRC
.The above 3 items allows us to clone from the repo and then to force
make depend
under-DMKIOCCCENTRY_SRC
so that include files fordbg
anddyn_array
will be found under this directory tree.When
make dbg.update_into_clone
is used, we also performa
make depend
where we forceC_SPECIAL=-UMKIOCCCENTRY_SRC
.When
make dyn_array.update_into_clone
is used, we also performa
make depend
where we forceC_SPECIAL=-UMKIOCCCENTRY_SRC
.When
make jparse.update_into_clone
is used, we also performa
make depend
where we forceC_SPECIAL=-UMKIOCCCENTRY_SRC
.The above 3 items allows us to clone from the repo and then to force
make depend
under-UMKIOCCCENTRY_SRC
so that include files fordbg
anddyn_array
will be found under/usr/local/include
.Release 1.5.1 2024-08-28
Move
open_json_dir_file()
fromchkentry.c
toopen_dir_file()
injparse/util.c
.Updated
MKIOCCCENTRY_REPO_VERSION
version to "1.5.1 2024-08-28".This discussion was created from the release Release version 1.6 2024-10-09.
Beta Was this translation helpful? Give feedback.
All reactions