Release version 1.6 2024-10-09 #1003
Closed
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
Uh oh!
There was an error while loading. Please reload this page.
-
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.htmlweb site.Changed
MKIOCCCENTRY_REPO_VERSIONfrom "1.5.25 2024-10-10"to "1.6 2024-10-10".
Release 1.5.25 2024-10-09
Synced
jparsefrom 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
-Ntojstrdecode(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
jparsefrom 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.candsoup/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_SLOTandMAX_TARBALL_LENdefinesin
soup/limit_ioccc.hwith the IOCCC submit server.The files
utf8_posix_map.candutf8_posix_map.hhave been renameddefault_handle.canddefault_handle.hrespectively 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
jparsefrom 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.shto 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.shexpects 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.shhere now skipscheck_manrule ifchecknrcannot be found or isunreliable.
The Makefiles (except for
dbganddyn_arrayas these repos do not yet havethe script or the changes) have been updated to better explain the problem if
is_available.shreports non-zero.Sync
jparsefrom jparse repo with theabove changes (
jparseis where it originated).Release 1.5.21 2024-09-30
Bug fix
prep.shwrt skipped messages, and indent URL of each tool.Make use of
is_available.shin the Makefiles.Synced
jparsefrom jparse repo with theabove changes to do with the jparse repo.
Release 1.5.20 2024-09-29
Sync
jparsefrom 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_BASENAMEto all tools in this repo. This is used in both-Voptionand
-hoption.The
-Vand-hoption 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_BASENAMEchanges 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
CUNKNOWNin Makefile.example.The
ENTRY_VERSIONhas been changed from "1.1 2024-02-11" to "1.2 2024-09-25".Both "title" and "abstract" we added to the
.entry.jsonfile format.The
entry_JSON_format_versionwas 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
unicodeofstruct json_stringin the decoding functions.If
json_conv_string()finds that callingjson_decode()which callsdecode_json_string()causes the boolunicodeto be false it sets theconvertedboolean 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_VERSIONto"1.1.6 2024-09-24".Updated
JPARSE_REPO_VERSIONto"1.0.13 2024-09-24".Added
MINandMAXmacros toutil.h.Rename
jenctobyte2asciistrinjson_parse.cto avoid confusion about itspurpose.
Expand the output of
jstrencode -tandjstrdecode -tto 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
-g3as debugsymbols are almost useless when optimising and we have
-O3in use. Duringdebugging one can always use:
make C_OPT="-g3" clobber allto compile in debug symbols or have a file in the respective directories (those
needed) called
makefile.localwith the line:C_OPT= -g3which is used for development purposes but should not normally be done.
Fix potential use without initialisation of
inputleninjstrencode.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_nulas 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_stringthebool 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.handjson_utf8.c) the filesunicode.handunicode.cfrom 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
HEADERis 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.candjstrdecode.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.hwhich 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
vergecouldrefer to the JSON parser version. In order to get this to work, the
jparse.yfile now has
#include "version.h". This means the backup parser source codehas been rebuilt with
make parser-o.The tools now have a
FOO_BASENAMEin their header file which is used in boththe usage string and the version option.
The file
test_jparse/pr_jparse_test.hhas been added for that tool.The Makefiles have been updated including new dependencies.
The
FOO_BASENAMEwill 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_manMakefile rule in all Makefiles. Previously it ignored the resultwhich meant that
prep.shnever 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-Qoption did not work and for both the printingof everything should happen after everything is parsed (especially for the
-Qoption but not strictly for that reason). The
pr_jparse_testtool had a bugfix as well where the
-hoption did not work.Add to
jstr_test.shtests forjstrdecode(1)options-Qand-e(bothseparately and together).
Clarified comment in
jparse.land rebuilt backupjparse.c(jparse.ref.c).Add an extra sanity check to
jencchk(): the macroJSON_BYTE_VALUESmustequal 256. Previously we did check that the table length of
jencisJSON_BYTE_VALUESwith 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.cto map toss, not just ones. Inparentheses the word (though all caps)
ESZETTwas 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/,soupand the top level Makefiles the${RM}variable nowuses the
${Q}control variable.Other than
dbganddyn_arrayMakefiles (as those changes have to becommitted over there and then synced) the
RM_Vvariable is now empty bydefault as it used to be that the
${RM}did not use-v.Remove from
${RM}the-roption where it is not needed i.e. when a directoryis not being removed.
Sync
dbganddyn_arraysubdirectories from the dbgrepo and
dyn_array, with fixes to the Makefiles.
Sync
jparsesubdirectory from jparse repowith some fixes. The changes in particular include:
Fix
make clobberto removejparse_test.logandMakefile.orig.Fix
make legacy_clobberto removejparse.a.Fix
${RM}in Makefiles to use${Q}variable (not inmake dependas 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
-rin rm in Makefiles unless removing a directory, for safety.Do not by default use
-vforrmin Makefiles, to match what was previouslydone here.
Release 1.5.11 2024-09-07
Synced
jparsesubdirectory 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_lochave been updated as now the error output haschanged.
Updated
jparse(1)version to 1.1.6 2024-09-07.Removed timestamps from
beginning/endingmessages in Makefiles.Fix clone rules in Makefile to exclude the
.githubsubdirectory of outsiderepos.
Updated
.excludeto include (not that that makes sense :-) ) the glob._.DS_Storewhich sometimes shows up in macOS (it is different from.DS_Store).Release 1.5.10 2024-09-06
Synced
jparsesubdirectory from the jparserepo.
Add
-Loption tojparse_test.shto disable the error location tests. This isnot usually needed but it can be useful in some cases.
jparse_test.shnow 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
jparseuntilafter the IOCCC28.
Release 1.5.10 2024-09-05
Synced
jparsesubdirectory 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.shscript no longer runs thejstr_test.sh,jnum_chktests and it does not runjparse_test.shexcepton the
test_ioccc/test_JSONdirectory as thejparse/Makefileruns theappropriate tests in
test_jparse/(in this repo underjparse/test_jparse) -obviously the jparse repo knows nothing about
test_ioccc/test_JSONso it hasto be done this way. It's likely that with the
-Z topdiroption (that wasrecently added to
jparse_test.sh) or some other workaround the script couldrun from
test_ioccc/ioccc_test.shbut it is redundant and not useful so it nolonger does.
jparse_test.shpath 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_lochave been updated here (this isanother reason that we cannot as easily run
jparse_test.shfromioccc_test/without the
-Z topdirhack or some other workaround).bad_locerror 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 topdirhack) tojparse_test.shthat was synced here is the new-foption 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.shalways 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/Makefileruns it with thisoption it doesn't matter much anyway.
The
jparse/test_jparse/jparse_test.shversion is now1.0.5 2024-09-04(fixedfrom the
more natural:-) international way1.0.5 04-09-2024thatwas added by habit, to match the format of the other versions); the old version
was
1.0.3 2023-08-01.make releaseshould 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_arrayand
dbgMakefiles 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
-Voption 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
PREFIXvariable 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 uninstallin those subdirectories.Once these are all done the top level Makefile can have a simpler uninstall
rule.
Along the lines of silencing (non-verbose)
installin theinstallrule onemay now do the same with the uninstall (instead of
INSTALL_Vit isRM_V).This is only done to be congruent with the
installrule.Updated the
MKIOCCCENTRY_REPO_VERSIONto"1.5.7 2024-09-01".Release 1.5.7 2024-08-31
Synced
jparsesubdirectory 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_VERSIONto"1.5.6 2024-08-31".Release 1.5.6 2024-08-31
Add to
dyn_array/Makefileordyn_testthe flag-L../dbgin hopes to solvethe workflow failure. If this works then the
dyn_arrayrepo will also have tohave this added to its Makefile.
Add to
jparse/Makefile-L../dbg -L../dyn_arrayfor the same reasons asabove. If this works then the
jparserepo Makefile will also have to beupdated for this (along with some other pending changes).
Add to
jparse/test_jparse/Makefile-L../dbg -L../dyn_arrayfor 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_SRCtoINTERNAL_INCLUDE.Updated the
MKIOCCCENTRY_REPO_VERSIONto"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
dbganddyn_arraylibraries but in order to link these in properly one mustname them
libdbg.aandlibdyn_array.a(i.e. add thelib) so that one canthen do
-ldbgand-ldyn_array. Along the same linesjparse.ahas beenrenamed to
libjparse.afor 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_VERSIONto"1.5.4 2024-08-29".Release 1.5.3 2024-08-28
Fix
hostchk.shthat 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.hon../iocccsize.h.Update
dyn_array/,dbg/,jparse/trees as per their GitHub repos.Require
MKIOCCCENTRY_SRCto 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.helpandmake 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_cloneis used, we also performa
make dependwhere we forceC_SPECIAL=-DMKIOCCCENTRY_SRC.When
make dyn_array.update_from_cloneis used, we also performa
make dependwhere we forceC_SPECIAL=-DMKIOCCCENTRY_SRC.When
make jparse.update_from_cloneis used, we also performa
make dependwhere we forceC_SPECIAL=-DMKIOCCCENTRY_SRC.The above 3 items allows us to clone from the repo and then to force
make dependunder-DMKIOCCCENTRY_SRCso that include files fordbganddyn_arraywill be found under this directory tree.When
make dbg.update_into_cloneis used, we also performa
make dependwhere we forceC_SPECIAL=-UMKIOCCCENTRY_SRC.When
make dyn_array.update_into_cloneis used, we also performa
make dependwhere we forceC_SPECIAL=-UMKIOCCCENTRY_SRC.When
make jparse.update_into_cloneis used, we also performa
make dependwhere we forceC_SPECIAL=-UMKIOCCCENTRY_SRC.The above 3 items allows us to clone from the repo and then to force
make dependunder-UMKIOCCCENTRY_SRCso that include files fordbganddyn_arraywill be found under/usr/local/include.Release 1.5.1 2024-08-28
Move
open_json_dir_file()fromchkentry.ctoopen_dir_file()injparse/util.c.Updated
MKIOCCCENTRY_REPO_VERSIONversion 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