Releases: ioccc-src/mkiocccentry
release version 2.4.6 2025-04-26
Release version 2.4.5 2025-04-25
Release 2.4.5 2025-04-25
We released mkiocccentry toolkit version 2.4.5 2025-04-25.
While you are NOT required to use this release in order to submit to IOCCC28,
we do RECOMMEND that you install and use it, because among other things, it provides:
- Fixed and improved how topdir is scanned to not count ignored files and directories against max allowed.
- Clarified the purpose of a submission title to emphasize NOT contain name(s).
Release version 2.4.4 2025-03-15
Release 2.4.4 2025-03-15
IMPORTANT NOTE:
While you are NOT required to use this release in order to submit to IOCCC28,
we do RECOMMEND that you use and install this release of the mkiocccentry toolkit.
BACKWARD COMPATIBILITY:
This release is backward compatible with both "Release 2.4.2 2025-03-02".
This release is backward compatible with both "Release 2.4.3 2025-03-11".
Submissions made under "Release 2.4.2 2025-03-02" remain valid for IOCCC28.
Submissions made under "Release 2.4.3 2025-03-11" remain valid for IOCCC28.
RELEASE DETAILS FOLLOW:
Set locale to C, the official locale of the IOCCC.
See the "programmer's apology" of the set_ioccc_locale()
function in soup/location_util.c
for more details.
Updated MKIOCCCENTRY_VERSION
to "2.0.3 2025-03-14".
Updated FNAMCHK_VERSION
to "2.0.1 2025-03-14".
Maintain MIN_FNAMCHK_VERSION
as "2.0.0 2025-02-28".
Updated TXZCHK_VERSION
to "2.0.3 2025-03-14"
Updated CHKENTRY_VERSION
to "2.0.3 2025-03-14".
Sync jparse repo to jparse/
. This
updates the jparse(3)
man page with additional functions (with two new
files added), adds to all the tools (early on main()
- no libraries)
setlocale(LC_ALL, "");
to use the system's default locale based on
$LANG
. Additionally a macro and variable were renamed to better reflect
what they are (this does not affect any code in mkiocccentry toolkit however).
Release version 2.4.3 2025-03-11
Release 2.4.3 2025-03-11
IMPORTANT NOTE:
While you are NOT required to use this release in order to submit to IOCCC28,
we do RECOMMEND that you use and install this release of the mkiocccentry toolkit.
BACKWARD COMPATIBILITY:
This release is backward compatible with "Release 2.4.2 2025-03-02".
Submissions made under "Release 2.4.2 2025-03-02" remain valid for IOCCC28.
RELEASE DETAILS FOLLOW:
Fix search of tools under $PATH
.
Fix bugs in resolve_path()
where even if one had ./
or /
in front of the
path it could end up resolving a path that is not a regular executable file
(when it did not have a /
in the path this did not happen). Another bug was
fixed where if $PATH
is NULL or empty and the path is not a regular executable
file it still would be a strdup()d copy of the original path.
The above solved a problem where we could get the tools to be found (if they
exist) if we also did a check for is_file()
and is_exec()
but with the above
fixes we only have to check for != NULL
.
The find_utils()
functions now takes a corresponding bool *
for each tool to
find. If the boolean is not NULL then we search for that tool. If it is NULL and
the char **
is not NULL then we set the *tool
to NULL. This way the caller
can, if they wish and they are careful, decide whether or not to find all the
tools. For example txzchk
only looks for tar
if test mode is not enabled.
And although as a safety check before free()ing the pointer we do check that
test mode was not used we do not technically need it as long as we pass in
&tar
(although we do give NULL so we do need to check it).
Sync copyright fixes from jparse.
Force set nul_warning
to false in mkiocccentry(1)
and disable checking of
it in chkentry(1)
. Post IOCCC28 it will be removed from struct info, the
.info.json files and chkentry(1) that checks it.
Rather than directly put in true
in the writing of the .info.json file, force
set first_rule_is_all
to true
in mkiocccentry(1)
and reference that
boolean in the writing of the .info.json file.
Changed MIN_MKIOCCCENTRY_VERSION
to "2.0.1 2025-03-02"
Updated MKIOCCCENTRY_VERSION
to "2.0.2 2025-03-11"
.
Changed MIN_TXZCHK_VERSION
to "2.0.1 2025-03-02"
.
Updated TXZCHK_VERSION
to "2.0.2 2025-03-11"
.
Changed MIN_CHKENTRY_VERSION
to "2.0.1 2025-03-02"
.
Updated CHKENTRY_VERSION
to "2.0.2 2025-03-11"
.
Resolve issue #1229. Add -U UUID
to mkiocccentry(1)
to set the username.
Also fixed an error with -u uuidfile
where it would not set the test
boolean
to true if the UUID was "true"
.
The -u uuidfile
and -U UUID
options may not be used with -i answers
,
-d
, nor -s seed
.
Partial fix to issue #1208. The -x
option to force delete the
submission directory and -r rm
option to set path to rm(1)
were added to
mkiocccentry(1)
as part of issue #1208. The part of issue #1208 that was NOT
done was moved into issue #1235: and that will be completed later for IOCCC29.
Fixed bug where overwrite_answers
was always true by default in mkiocccentry(1)
.
Updated man page for the above changes.
Resolved issues #1233 and #1218. Both mkiocccentry(1)
and txzchk(1)
(the only ones
that use other tools) now search $PATH
for the tools first by way of the
find_utils()
function (modified a fair bit) and a new util function in jparse
called resolve_path()
. The jparse util functions shell_cmd()
and
pipe_open()
were also improved to resolve paths if no /
is in the command
name. As for make
: we now search for gmake
first as the Makefiles we need
are GNU Makefiles.
Add missing -r
to rm
in mkiocccentry_test.sh
.
Resolve issue #1206. Some people wanted this option to submit multiple
submissions without having to repeatedly copy/paste their username UUID. Now they
can just put the UUID in a text file and use -u uuid
. If the file is not a regular
readable file or it does not have a valid UUID it'll prompt like before. If the
-i answers
flag is used it is not relevant.
Resolve issue #1210. The directory/file lists to be ignored prompting was
confusing to some people. The question of 'Is this OK?' was reworded to 'Do you
wish to continue?' and the explanation is hopefully a bit clearer too.
Resolve issue #1221. Removed the check for first rule is all (in Makefiles).
This allows one to also have earlier on the format of CC:= cc
rather than just
CC= cc
, should they wish. The .info.json
file still has this bool but it's
always set to true and chkentry will ignore it. AFTER IOCCC28 it will be
removed from .info.json
and chkentry(1)
code will no longer have the functions
involved.
Resolve issue #1209. Although not labelled 'top priority' it was already done in
the code. If topdir
is the same as workdir
it is an error. If workdir
is under
topdir
it is an error. If topdir
is somehow slipped into the submission
directory it is an error. If workdir
is encountered in topdir
we skip it with
fts_set()
so as to not descend into it. Also, we now check that the
directories are directories an are the right permissions, prior to even trying
to scan/copy files/directories (to show a better error message).
Resolve issue #1214. With guidance from @SirWumpus and Landon, and at their
request, the iocccsize tool no longer warns against wordbuf warning unless
verbosity is high enough; in mkiocccentry(1)
it sets the boolean to true or false
depending on the result but it only notes it as a fun fact, suggesting the user
note it in their remarks. Post IOCCC28 the bool will be removed from .info.json
and chkentry(1)
functions for it will be removed. For now the function that
checks this value in chkentry(1)
simply returns true. Additionally, the wrong
variable was being referenced in soup/rule_count.c
- it was referencing
counts.wordbuf_warning
when it should have been referencing
counts.ungetc_error
. Also, because rule 13 no longer restricts UTF the char
warning is only shown if verbose enough. This did not need to be updated in
mkiocccentry as it's only referenced #ifdef ASCII_ONLY
and before that check
is in soup/rule_count.c
the code does #undef ASCII_ONLY
(and it's not even
referenced in mkiocccentry.c).
Resolve issue #1215.
Now the version checks for chkentry(1)
are a >= check. Uses code from
jparse/verge.c
. Its main()
was moved to verge_main.c
and verge.c
now has
a new function vercmp()
. verge.o
is linked into the library and chkentry
now uses it. Also there are new arrays that we called 'poisoned versions' and
this allows for bad versions to be excluded. Each tool and some other versions
have a minimum version allowed which at this time is equivalent to the current
release. If a version is incremented then the minimum version would be changed
to be the version at the time the contest opens. In this way uploaded
submissions will not be invalidated. As for poisoned versions the lists are
currently empty (just NULL terminated - must be last element).
Updated test_ioccc/gen_test_JSON.sh
to have a new function -
get_version
. This was necessary so we can use grep -v MIN_
. If it was in the
same function it would cause another MIN_
macro to be excluded from
limit_ioccc.h
which was a problem. Updated the script's version to
"1.0.2 2025-03-07"
.
Release version 2.4.2 2025-03-02
Release 2.4.2 2025-03-02
Resolve issue #1201.
Fix a number of bugs in chkentry(1)
and add new option to ignore permissions
of files and directories (-P
). This option is only meant for the judges and
just like with -i
and -w
using it when verifying a submission puts one at
grave risk of violating the rules; it is not even documented outside the usage
message and the man page.
Fix display issues in mkiocccentry(1)
and chkentry(1)
with regards to file
permissions.
The above fixes required updates to the jparse utility functions so the jparse
repo was synced to jparse/
.
Fix chdir(2)
error in chkentry(1)
in some places (it did not restore the
directory after a call to find_paths()
).
Add missing calls to errp()
in txzchk
. This might be important in some
cases as we're now at the point of the next contest. The calls are specific to
the functions popen(3)
in pipe_open()
and system(3)
in shell_cmd()
. In
linux in some cases popen() will set errno; in macOS it is unreliable. For
system(3)
it appears that errno is not set so warnp()
/errp()
were changed
to the non-errno versions.
Updated SOUP_VERSION
to "2.0.1 2025-03-02"
.
Updated MKIOCCCENTRY_VERSION
to "2.0.1 2025-03-02"
.
Updated CHKENTRY_VERSION
to "2.0.1 2025-03-02"
.
Updated TXZCHK_VERSION
to "2.0.1 2025-03-02"
.
Release 2.4.1 2025-03-01
Fix critical bug in jparse/ copyfile()
function.
Release version 2.4.0 2025-02-28
Release 2.4.0 2025-02-28
Fix and improve warning of -y
and -Y
in mkiocccentry
.
The code did not explicitly check for -Y
; it just used the implicit -y
from
-Y
. That is fixed and now if not -q
show a simple summary but always show
the longer warning to be sure that they know. As for -Y
it really ought to be
used only for the test script but even -y
should be used with EXTREME
caution.
Add extra sanity checks in check_submission_dir()
: it now checks towards the
beginning if the required files exist (that is, the three user submitted files,
not the JSON file as those don't exist yet, though it does check that they do
not exist as dot files here would be an error) and are readable and if they are
not size 0 (for Makefile and remarks.md - prog.c may be empty).
Updated some literal strings of the three required filenames (as above) to their
macros in both mkiocccentry and txzchk.
Fixes in chkentry
with checking if files exist or do not exist (depending on
options) and also add checks for file sizes for certain files, namely Makefile,
remarks.md (in non-winning mode) as well as index.html (in winning mode) and
README.md (in winning mode).
Error messages were improved in chkentry
as well though there are some places
(the manifest check) where they could be improved (this would require lower
level changes that we do not have time for before the freeze later today).
Sync jparse repo to jparse/
for new util
function (that uses its file_size()
function) is_empty()
. This is used in
the update to chkentry
.
Added copyright message to jparse files (at the request of Landon some while
back).
More work on the chkentry_test.sh
script. The script is in better shape so
that when the directories are generated (they cannot be static due to version
changes - at least without a new option) the script should hopefully be easily
updated (though it depends maybe on how the new directories are generated).
Resequence exit codes in jparse/util.c
.
Updated versions of jparse
by changing x.y.z
to x.y+1.0
except that for
those under < 2.0.0
they have been changed to 2.0.0
.
chkentry
now looks for directories that are the wrong permissions as well as
directories with a depth beyond the max as well as any type of file other than a
regular file or directory.
Bug fix an enum in jparse which caused a util function (used in the above fix to
chkentry) to fail.
Updated SOUP_VERSION "2.0.0 2025-02-28"
.
Updated MKIOCCCENTRY_VERSION
to "2.0.0 2025-02-28"
.
Updated FNAMCHK_VERSION
to "2.0.0 2025-02-28"
.
Updated TXZCHK_VERSION
to "2.0.0 2025-02-28"
.
Updated CHKENTRY_VERSION
to "2.0.0 2025-02-28"
.
Updated the version of test_ioccc/chkentry_test.sh
, test_ioccc/hostchk.sh
,
test_ioccc/ioccc_test.sh
, test_ioccc/mkiocccentry_test.sh
,
test_ioccc/prep.sh
and test_ioccc/txzchk_test.sh
to "2.0.0 2025-02-28"
.
Release 2.3.44 2025-02-27
Prepare for code freeze (28 February 2025) with some final changes, some
important (and useful) and some not that important (but done to be complete).
Sync jparse repo to jparse/
before code
freeze (28 February 2025).
Updated copyright messages, some missing, some updated (based on brief
discussions a while back and more recently, recent updates to code and perhaps
other things) to many files.
The script bug_report.sh
actually can have the script in the TOOLS variable as
it will not actually cause an infinite loop as it only gets the version of the
tool - which is quite useful to know that the user is using the most recent
version of the script. This was also done in jparse/
but that doesn't matter
here; it's only mentioned due to the sync.
Enhance mkiocccentry
prompting with -i answers
used. Instead of always
answering yes even when an issue is found, unless the new option -Y
is used,
give the user a chance to confirm things are okay (in particular, it allows one
to answer no to a question; it does not prompt you for everything as that would
defeat the purpose of the answers file). The use of -Y
is highly discouraged
unless you are certain you're good to go and it is mostly used for
mkiocccentry_test.sh
which needs to be non-interactive.
Improve usage string about workdir
and topdir
to make certain things a bit
clearer.
Updated MKIOCCCENTRY_VERSION
to "1.2.35 2025-02-27"
.
Updated MKIOCCCENTRY_TEST_VERSION
to "1.0.15 2025-02-26"
.
Release 2.3.44 2025-02-26
Remove unused arg in write_json_files()
.
Updated MKIOCCCENTRY_VERSION
to "1.2.34 2025-02-26"
.
Release 2.3.43 2025-02-25
Improve mkiocccentry_test.sh
- add only required files test.
Updated MKIOCCCENTRY_TEST_VERSION
to "1.0.14 2025-02-25"
.
Plug a loophole in chkentry(1)
and make it do even more tests that were
missing/not previously thought of.
Updated CHKENTRY_VERSION
to "1.1.5 2025-02-25"
.
Release 2.3.42 2025-02-24
Disable -g3
in Makefile as use of -O
option (besides level 0) makes
debugging much harder so one should not typically use both. This was done in
dbg
and dyn_array
(and opened a pull request in both repos) too; I did
jparse/
(in the repo) a while back for the same reason as cited here.
Fun facts: the repo version is: "2.3.42 2025-02-24"
and so the last two digits
of the version number itself and the last two digits of the date in the version
are opposites (and thus anagrams) for 42, the Ultimate Answer to/of Life, the
Universe and Everything; but no matter
how absurd it is, and no matter how obvious it was a joke and no matter how much
Douglas Adams explicitly said it was a
joke,
people still think it's serious and people still have stated it is real and some
astronomers even spent years studying
it
only to claim that it really is 42! That means that the real
Vogons are
humans, at least until that hyperspace
bypass is formed. :-)
BTW: Landon told me that: at Google Headquarters (previously SGI) at building 42
there is a very hidden copy of The Hitchhiker's Guide to the Galaxy (H2G2) with
drawings and other things that Douglas Adams requested Landon taunt them
[Google] to find and he's had a lot of joy in doing so since very few have been
able to find it (and Landon is one of the very few who know about it).
Okay so there's some fun totally unrelated to the changes but it's fun so why
not? :-)
Fix bug in mkiocccentry
where a submission topdir which only had the three
required files would abort with an error (due to list being not NULL but empty
due to a typo).
Sync jparse repo to jparse/
for some
upcoming fixes to chkentry
(I thought of a loophole in a new option that was
being finalised and more was discovered after this).
chkentry
has had a partial fix but more needs to be done (for the loophole I
thought of with the -w
option). Unfortunately the other things took more time
than I hoped and I cannot get it in today - and fixes and improvements to the
FTS functions requires a minor update to chkentry (both in chkentry.c
and
soup/entry_util.c
) minor change or else it will not compile and also will
likely segfault.
Updated MKIOCCCENTRY_VERSION
to "1.2.33 2025-02-24"
.
Updated CHKENTRY_VERSION
to "1.1.4 2025-02-24"
.
NOTE: the MKIOCCCENTRY_VERSION
in this commit was by accident "1.2.33 2025-02-34"
but we have retroactively fixed it. Thus if you check out this
specific commit you would see that the version is a mismatch here.
Release 2.3.41 2025-02-23
Much work on issue #1152 done.
Both -w
and -i
have been implemented. The man page has not been updated as
the error codes need to be reconsidered now that the tool does more checks.
Depending on the -i path
or -w
(or both) options different checks are now
performed, not just semantics tests (indeed one can actually skip the JSON tests
entirely by -i info -i auth
but other things are still done). The
mkiocccentry
tool will not use either option which is the strictest mode.
Besides error codes needing to be reviewed and the man page (and if necessary
other documentation) being updated, unless something was missed the only thing
left to do is to fix the test script to work with the one arg only model.
Sync jparse repo to jparse/
for some
updates that were necessary for the above to be implemented.
Fixed mkiocccentry
to check for executable filenames by the function, not by
the filenames themselves.
Added the files soup/chk_sem_auth.c
and soup/chk_sem_info.c
to the less
picky variable in soup/Makefile
as the lines are quite long now, due to the
fact that another arg had to be given to the callback functions for the manifest
checks update.
Release 2.3.40 2025-02-22
Significantly simplify and refactor the FTS functions in jparse/util.c. A great
deal of thought and effort was put into this and when the topdir
is passed to
chk_manifest()
(which is being worked on) it will be far easier. The benefit
of these changes, besides being much cleaner, simpler and it being modularised,
is that if some issue is discovered or some new feature is needed (as has
already happened numerous times) function calls do not have to be updated.
mkiocccentry
has been updated to use the simplified interface as well.
A note: jparse/
has not been fully synced because of a change in `json_...
Release version 2.3.3 2025-01-04
Release 2.3.3 2025-01-04
Added soup/not_a_comment.sh
to test if file that exists
contains a non-#-comment.
Both make prep
and make release
will issue a notice (via
soup/not_a_comment.sh
) if a non-empty Makefile.local
is found
containing more than just comments. This will allow for one to
keep a Makefile.local
with only comments in it, without raising
a notice as such a file will not impact the make procedure.
Then if one needs to temporary add comments (perhaps by un-commenting
lines in a Makefile.local
file), one can. However if one then
forgets, then the notice will alert you to the potential problem.
Changed test_ioccc/prep.sh
PREP_VERSION from "1.0.4 2024-11-16"
to "1.0.5 2025-01-03".
Changed MKIOCCCENTRY_REPO_VERSION
from "2.3.1 2025-01-01"
to "2.3.3 2025-01-04".
Release 2.3.2 2025-01-01
Fix exit code errors in jparse_test.sh
.
Remove rule rebuild_jparse_err_files
from top level Makefile. This rule should
only be in jparse/. The reason it would cause a failure is because of argv[0]
being in error messages and since in this repo jparse
binary is in a
subdirectory it changes the name of the program so the error files are
incorrect. It might be possible to do a cd jparse && ...
but this is not
necessary as there are no error location files in this repo itself due to
precisely this reason.
Happy New Year!
Disabled 2 invalid JSON string encode/decode tests.
Release 2.3.1 2024-12-31
Fix a minor issue relating to the invalid UUID error message.
Changed MKIOCCCENTRY_REPO_VERSION
from "2.3 2024-12-31"
to "2.3.1 2024-12-31".
Changed SOUP_VERSION
from "1.1.3 2024-12-31"
to "1.1.4 2024-12-31".
Release version 2.3 2024-12-31
Release 2.3 2024-12-31
Improve jparse
error messages in yyerror()
.
In particular, instead of surrounding the bad token with <>
s, which could be
one of the invalid chars and which might make someone think that that's the
problematic character, do not surround it any more. Since it is by itself after
the ':' (and the next char is the newline) it should be clearer this way.
Updated JPARSE_VERSION
and JPARSE_LIBRARY_VERSION
to "1.2.8 2024-12-31"
and "2.2.3 2024-12-31"
respectively.
NOTE: there is ABSOLUTELY NO functional change in the above, just a
display improvement, and so it's a useful change to include here too.
Fix typo in jparse
's rebuild_jparse_err_files
rule that was causing a
display problem. Also here the -v flag cannot depend on the VERBOSITY
level as
the script was designed specifically for -v 0! This has been fixed.
Moved party.json
and party.json.err
files from
test_ioccc/test_JSON/general.json/bad_loc
to the jparse repo so that it's now
under jparse/test_jparse/test_JSON/bad_loc
. This had to be done due to the
improvement with yyerror()
and how the error messages have to be exact. It
might be possible to fix the issue but it is not worth it as long as jparse here
tests location errors and it now does. Plus party.json
belongs in jparse
anyway.
Updated test_ioccc/ioccc_test.sh
to use option -L
in jparse_test.sh
as we no longer want to test error location messages. This is the only
functional difference in this commit.
Updated ioccc_test.sh
version to: "1.0.3 2024-12-31"
.
mkiocccentry
updated to show that the registration URL and submit server URL
are available and to show what file and what slot to upload, how to register
etc. The macros that checked for the readiness of these servers are no more as
they are always ready now even if one can only register if in pending and open
and only submit if status is open.
Updated mkiocccentry version to
"1.1.2 2024-12-31"and soup version to
"1.1.3 2024-12-31"`. The reason the soup version was updated is because of
macro changes, including new ones for the URLs.
Release 2.2 2024-12-30
Resolve issues #1044, #1045 and #1046.
Fix tools for filename length rule (part of rule 17)
Fix mkiocccentry
, chkentry
and txzchk
for the requirement of filenames to
be of length > 0 && <= 99 as per rule 17.
This is somewhat involved and required all the JSON test files to be updated
(for versions) as well as some new JSON files.
A new macro MAX_FILENAME_LEN
had to be added. Then in soup/entry_util.c
a new
function called test_filename_len()
was added. This function is then used in
txzchk.c
(function check_all_txz_files()
), mkiocccentry.c
(in the check_*()
functions) and then, for chkentry
, in chk_validate.c
the function
chk_extra_file()
; it is not necessary in the code that checks for the required
files as the functions that test those files check for exact filenames. The
function test_extra_file()
calls the new function as test_extra_file()
does
a variety of kinds of tests on the file.
A new bad txzchk test file was also added (with its corresponding .err file).
The mkiocccentry_test.sh
script along with txzchk_test.sh
(see above) and
chkentry_test.sh
now test for too long filenames and too short filenames. In
the case of mkiocccentry_test.sh
a change in the script itself had to be made
so the version was updated to "1.0.2 2024-12-30"
from "1.0.1 2023-02-05"
.
Changed SOUP_VERSION
to "1.1.2 2024-12-30"
from "1.1.1 2024-12-26"
.
Changed MKIOCCCENTRY_VERSION
to "1.1.1 2024-12-30"
from "1.1.0 2024-12-28"
.
Changed TXZCHK_VERSION
to "1.0.9 2024-12-30"
from "1.0.8 2024-07-11"
.
Changed CHKENTRY_VERSION
to "1.0.3 2024-12-30"
from "1.0.2 2024-08-26"
.
Release version 2.1 2024-12-28
Release 2.1 2024-12-28
This is a formal release for public use.
Changed MKIOCCCENTRY_REPO_VERSION
from "2.0 2024-11-17"
to "2.1 2024-12-28".
Updated Makefile.example
from
Makefile.example from the other repo
Release 2.0.3 2024-12-27
Resolve issue #1037
The submit server details are now ready!
Also change the temp-test-ioccc URLs to the main IOCCC website, for once the
Great Fork Merge is performed and the IOCCC website is updated.
Updated mkiocccentry
version to: "1.1.0 2024-12-28"
.
Release 2.0.2 2024-12-27
Resolve issue #1039
This syncs jparse from jparse repo with a variety of bug fixes and improvements,
including a lot of documentation updates.
Release 2.0.1 2024-12-26
Fix issues #1036, #1035 and #1033
The issues in respective order:
- Typo fix in mkiocccentry.c ('You title must ...' -> 'Your title must
...'). - mkiocccentry UUID type 4 was too strict
- Renamed makefile.local -> Makefile.local.
Updated version of mkiocccentry due to the above changes. For the second
one new macros are in soup/limit_ioccc.h so the soup version has been
updated as well.
Release version 2.0 2024-11-17
Release 2.0 2024-11-17
This is a formal release for public use.
Changed MKIOCCCENTRY_REPO_VERSION
from "1.6.13 2024-11-16"
to "2.0 2024-11-17".
This repo is now under a CODE FREEZE.
Only super-critical bugs that have a significant impact the running
of IOCCC28 or the Great Fork Merge process and the temp-test-ioccc
repo will be considered until sometime after the winners of IOCCC28 have
been released.
Release 1.6.14 2024-11-17
Update from dbg and jparse repos.
Prep for code freeze and formal release for IOCCC28.
Release 1.6.13 2024-11-16
Added minor changes to the jparse/jstrdecode(1)
tool.
Release 1.6.12 2024-11-16
Add missing -q
option to txzchk
.
Release 1.6.11 2024-11-15
Fixes and improvements in jparse
synced from the jparse
repo. This includes an update to the jparse
library and some bug fixes and additions to the jstrdecode and jstrencode tools.
Typo fix in mkiocccentry.c.
Also roll back a commit in chkentry.c - a work in progress for after IOCCC28
that was, in a rush to leave the house but still get important fixes in, was
accidentally committed yesterday.
Release 1.6.10 2024-11-14
Synced jparse/
from the jparse repo. The
term encode
and decode
were swapped back to the original meaning. This
problem occurred due to the fact that when focusing for some time on the
encoding/decoding bug of \uxxxx
code points in the jparse repo the fact that
it is a JSON encoder was lost in focus. This change also means that terms
were swapped here.
In the process of an issue in 'the other repo', some bugs were uncovered in
jstrencode(1)
but this should not, I believe, affect the timeline of the next
IOCCC, fortunately. The website tools have to be updated which I will work on
next a bit later on today.
Release 1.6.9 2024-11-09
Synced jparse/
from the jparse repo. This
came from discussion on JSON debug output as well as discussion about wording. A
fix in one of the man pages was also made (no longer true statement) and the man
pages and utils README.md were all expanded with more details and examples.
Release 1.6.8 2024-11-08
Synced jparse/
from the jparse repo. This
includes some important bug fixes in a utility function that resulted, in debug
output, invalid JSON, plus an incorrect calculation in one case.
Release 1.6.7 2024-11-07
Synced jparse/
from the jparse repo to
remove unused code and extra sanity checks added to a function and to match a
filename change.
Improve (to help parse output a bit better) the scripts bug_report.sh
and
hostchk.sh
.
Release 1.6.6 2024-11-05
Synced jparse/
from the jparse repo with
some important documentation changes along with some typo fixes.
Release 1.6.5 2024-11-03
Sync the jparse/
directory from jparse
repo. This adds some extra sanity checks in
jstrencode(1)
/jstrdecode(1)
and it also makes some fixes to the change in
decode/encode terminology, namely to do with comments. An unused macro (after a
fix) was removed. Comments were updated and improved in jparse.l
and
jparse.y
. Regenerated parser backup files.
Release 1.6.4 2024-11-01
Sync the jparse/
directory from jparse
repo. This includes some important bug fixes,
namely that some codepoints that were rejected are no longer rejected as later
Unicode standards allow them. This means that the
JSONTestSuite files now completely pass
jparse.
The CODE_OF_CONDUCT.md
was removed from jparse/
as it referred to the IOCCC
judges which is not correct. Until a better way of doing this is derived, this
file no longer exists. To be clear the mkiocccentry CODE_OF_CONDUCT.md
still
exists!
Release 1.6.3 2024-10-31
Sync the jparse/
directory from jparse
repo. This includes some important bug fixes,
including a segfault when JSON debug level was specified and a string was
encountered (the problem was that when has_nul
was removed it the format
specifier, a %s
, was not removed).
A more significant change (that only requires minor changes in mkiocccentry
code) is that the tools jstrencode(1)
and jstrdecode(1)
were swapped as
according to other sources, converting a code point to another character
(accented character, emoji etc.) is encoding, not decoding. This means that
functions and comments were also changed. Only minor changes in this repo had to
be made, as noted, however and specifically function name changes.
With this merged the temp-test-ioccc repo will have to have the scripts updated
to use the right tool (not jstrdecode but jstrencode) and the correct version
(2.0.0).
Release 1.6.2 2024-10-30
Sync the jparse/
directory from jparse
repo. This includes some important bug fixes,
especially in the make install
rule that did not install a header file. Not
having this would cause a compilation error if one were to try and include
jparse/jparse.h
outside this repo.
The jparse_bug_report.sh
script has an improvement that will test compile a
jparse program to see if the system can link in libjparse.a
, libdbg.a
and
libdyn_array.a
. This script is not needed for this repo though.
Release 1.6.2 2024-10-23
Fix annoying bug where the MKIOCCCENTRY_ANSWERS_VERSION
could not be in
soup/version.h
and the MKIOCCCENTRY_ANSWERS_EOF
could not be in
mkiocccentry.h
.
Fix write_echo()
in test_ioccc/prep.sh
to not leave lines in the log file
that simply say OK
.
Release 1.6.1 2024-10-22
Sync the jparse/
directory with state, as of 2024-10-22, of the
jparse repo . Those updates
include improvements to the jparse test suite including new test cases,
test suite improvements, and related man pages. The jstrencode(1)
,
jstrdecode(1)
and related Unicode / UTF-8 functions have been improved.
Changed MKIOCCCENTRY_ANSWERS_VERSION
from "MKIOCCCENTRY_ANSWERS-IOCCCMOCK-1.0"
to "MKIOCCCENTRY_ANSWERS_IOCCC28-1.0".
Changed MKIOCCCENTRY_REPO_VERSION
from "1.6 2024-10-10"
to 1.6.1 2024-10-22.