Skip to content

Releases: ioccc-src/mkiocccentry

Release 1.2 2024-07-04

05 Jul 01:08
Compare
Choose a tag to compare

Fixed txzchk(1) for BSD (in particular NetBSD) by #include <sys/wait.h>.
Thanks to @SirWumpus for the report!

Changed txzchk TXZCHK_VERSION"1.0.3 2024-03-02" to"1.0.6 2024-06-25".

Updated bug_report.sh script with new option -m make to specify path to
make(1). The script now also tries to find gmake, first and if that fails
it will look for make. In the case that it is not a regular executable file it
is considered a command line error along the lines of 'command not found'. This
helps simplify the handling of the error codes as without make(1) the script
is essentially useless anyway (or mostly useless).

Changed bug_report.sh BUG_REPORT_VERSION from "1.0.3 2024-06-26""
to "1.0.4 2024-06-26"`. Man page updated for these changes.

Fixed bugs that prevented NetBSD from compiling this code. Fixed
a number of compiler warnings under NetBSD. Thanks to @SirWumpus
for the detailed bug report and his assistance in testing.

Fixed a bug that caused iocccsize(1) to crash on some systems, such
as MacOS under Apple Silicon, when given a binary blob such as the
iocccsize binary as input.

Changed iocccsize IOCCCSIZE_VERSION from "28.14 2024-01-04"
to "28.15 2024-06-27".

Updated Makefile.example to be more like IOCCC winning entry Makefiles.

Expanded remarks.example.md to include more information about
IOCCC markdown guidelines as well as more consistent with the new
IOCCC submission process.

Improve the Makefile to allow for NetBSD to run make prep,
make slow_prep and make release.

Changed test_ioccc/prep.sh PREP_VERSION from "1.0.1 2024-03-02"
to "1.0.2 2024-07-03".

Disabled parallel make for most of the repo.

Updated .github/workflows/codeql.yml to use up to date actions for
checkout, node setup, Initialize CodeQL, Autobuild, and Perform CodeQL Analysis.

Added .github/workflows/test.yml to perform make actions such as
make slow_prep and make test as part of the GitHub workflow.

Fix .github/dependabot.yml to set an update schedule for GitHub Actions.

Changed MKIOCCCENTRY_REPO_VERSION from "1.1 2024-05-19"
to "1.2 2024-07-04".

Release 1.1.1 2024-06-23

23 Jun 19:58
Compare
Choose a tag to compare

Changed LOCATION_VERSION to "1.0.4 2024-05-22".

Fixed usage string in location_main.c: it did not suggest that one can specify
more than one location but it can.

Added to the README.md brief documentation of the location(1) tool (it was not
there at all) and fixed some typos and added some clarity in the location.1
man page.

Updated the Rule 2a size from 4096 to 4993: a change that keeps the
"Rule 2b:Rule 2a" ratio (that was recently changed from 2053 to 2503)
similar to the 2001-2020 IOCCC era.

mkiocccentry 1.1 2024-05-19

20 May 16:32
30979b0
Compare
Choose a tag to compare

Release 1.1 2024-05-19

Release version 1.1 of the mkiocccentry tool set.

Release 1.0.64 2024-05-18

Changed all submission_num to submit_slot (including json tags) and changed
all MAX_SUBMISSION_NUM to MAX_SUBMIT_SLOT_NUM and
all MAX_SUBMISSION_CHARS to MAX_SUBMIT_SLOT_CHARS and
changed relater comment and prompt text to be more consistent with the
pending submit server AND reduce the chance that someone revising their
submission incorrectly thinks they need to increment that value each time.

Remove formed_UTC JSON member from .auth.json and .info.json.
The formed_UTC JSON member was redundant in that it was simply
a different coding of the formed_timestamp in ASCII date string form.
It was a source of errors in editing formed_timestamp values.

Changed INFO_VERSION from "1.15 2024-03-02"
to "1.16 2024-05-18" as a result of the JSON member name above changes.

Changed AUTH_VERSION from "1.21 2024-03-04"
to "1.22 2024-05-18" s a result of the JSON member name above changes.

Fix soup/reset_tstamp.sh and soup/Makefile to look for the
correct location of the limit_ioccc.h file and fixed the prompts
result messages.

Changed soup/reset_tstamp.sh RESET_TSTAMP_VERSION from "1.0.1 2024-03-02"
to "1.0.2 2024-05-15" as a result of the above changes.

Changed MKIOCCCENTRY_VERSION from "1.0.5 2024-05-15"
to "1.0.6 2024-05-19" as a result of the above changes.

Changed TXZCHK_VERSION from "1.0.4 2024-05-16"
to "1.0.5 2024-05-19" as a result of the above changes.

Performed make reset_min_timestamp to change MIN_TIMESTAMP from 1675547786
to 1716103155 due to the changes in both .auth.json and .info.json.

Release 1.0.63 2024-05-16

Changed more references of entry to submission and entries to
submissions and updated the man pages for mkiocccentry(1) and chkentry(1)
about this as there are places where it is NOT appropriate to update the terms.
It might be that there are no more places where entry or entries is used
incorrectly (except perhaps for iocccsize.c) but the other terms have not been
checked.

Make txzchk(1) not show output if -q specified. Updated version to "1.0.4 2024-05-16".

The mkiocccentry(1) tool prints both the location name and the
common location name when prompting the user to validate author
location data.

Release 1.0.62 2024-05-15

Changed MKIOCCCENTRY_REPO_VERSION from "1.0.1 2023-02-14"
to "1.0.62 2024-05-15" to match the above release version.

Changed IOCCC_CONTEST from "IOCCCMOCK"
to "IOCCC28" for testing purposes. :-)

Changed IOCCC_YEAR from "2023"
to "2024" for testing purposes. :-)

Changed MKIOCCCENTRY_VERSION from "1.0.4 2024-03-04"
to "1.0.5 2024-05-15" because of the above constant changes.

The filename formed by mkiocccentry(1) was changed
to start with submit. instead of entry..

Changed FNAMCHK_VERSION from "1.0.1 2024-03-02"
to "1.0.2 2024-05-15" because of the above change.

Updated mkiocccentry(1) and chkentry(1) man pages accordingly.

Updated the test files according to the above changes.

Release 1.0.61 2024-03-07

Remove from comments the winner_handle. Fixed the regexp of an allowed handle
(in comments and in strings). It is regrettable but due to the use of
posix_plus_safe() additional characters are allowed that might be better left
out (these have been allowed for a long time but the comments and strings said
otherwise). The regexp that is allowed for author_handles is:

^[0-9A-Za-z][0-9A-Za-z._+-]*$

The difference is that it allows upper case characters too. In particular the
old regexp was ^[0-9a-z][0-9a-z._+-]*$.

Typo fix in txzchk.h: referred to posix_safe_plus() instead of
posix_plus_safe().

Change words entry and entries to submission and submissions (exception:
in iocccsize).

Added FAQ 12 "Why do these tools sometimes use the incorrect IOCCC terms?".

Release 1.0.59 2024-03-04

Added a distinction between a "common name" and "name" for locations.

Added -c to the location command line to change using "name"
(the default) to ""common name".

Removed location_name JSON member from .auth.json.

While mkiocccentry will ask the user to verify their location_code
by also showing them the location_name, it will no longer add
the JSON member with the JSON member name of "location_name" to .auth.json.

Changed LOCATION_VERSION from "1.0.2 2023-08-04" to "1.0.3 2024-03-03".
Changed MKIOCCCENTRY_VERSION from "1.0.3 2024-03-02 to "1.0.4 2024-03-04".
Changed IOCCC_auth_version from "1.20 2024-03-02" to "1.21 2024-03-04".
Changed MKIOCCCENTRY_REPO_VERSION from "1.0.1 2023-02-14" to "1.1 2023-03-04".

Added a simple make unstall rule to uninstall all files installed by this repo.

Release 1.0.58 2024-03-02

Address part (possibly all) of the issue of new IOCCC terms (only part because
some things need to be decided still especially with file names and related
specifics but possibly all if it's decided these should stay the same).

Changed version of txzchk to "1.0.3 2024-03-02".
Changed version of fnamchk to "1.0.1 2024-03-02".
Changed version of mkiocccentry to "1.0.3 2024-03-04".
Changed AUTH_VERSION to "1.20 2024-03-02".
Changed INFO_VERSION to "1.15 2024-03-02".

In many cases the word entry was changed to submission. For chkentry and
mkiocccentry it has been decided to keep the names. However in text, variable
and comments the word is now submission. It is not clear, however, if a
submission directory needs to have a different prefix (currently it's entry.).
If this is necessary then more changes will have to be made. If it needs to be
renamed then changes in fnamchk and txzchk plus data files (at the very
least - there might be other places that'd have to be updated) will have to be
made.

winner/winners changed to winning author/winning authors (a more
thorough check has to be performed to make sure all are caught, see below). A
winning submission is an entry and at least in some cases this is now clear. In
the case of winner_handle (or even just winner handle) this was not changed.
There already exists an author_handle and that's what is in the files but in
comments winner_handle also exists. In other words this ambiguity should be
addressed.

The json past_winner was changed to past_winning_author. This
involved updating some patch files and all the auth json files as well.

Typo fix in bug_report.sh. No version update.

In many cases (not all) the year 2023 was changed to 2024. The IOCCC_YEAR was
NOT updated to 2024 as this causes other problems that require a bit more time.

A fun problem to resolve is the text along the lines of 'submit your entry'
being changed to 'submit your submission'. In some cases the surrounding text
was reworded but not in all. If you like this can be submissions all the way
down!

Release 1.0.57 2024-01-21

Rename "print_test" to "pr_jparse_test". The name "print_test" was
too generic and might conflict with some test print application
if it was installed.

Release 1.0.56 2024-01-20

Changed "iocccsize_version" in JSON files (those that were "28.13 2023-02-04") to ""28.14 2024-01-04". This fixed a problem with make prep
failing due to the script chkentry_test.sh failing due to many errors
reported, some of which didn't seem to make any sense whatever.

Change fd_is_ready() to return true if isatty(fd).

Release 1.0.55 2023-11-07

Add another forbidden file name in submissions: prog.alt (prog.alt.c is
allowed).

Modularise the checks for invalid filenames in entries. For instance in
check_extra_file() there's no need to check each extra filename and then give
the same error message changing the macro of the filename that's disallowed when
we can just print the string being tested against. The only difference is that
there's one if (with multiple checks) and instead of duplicating the same error
message we just print it once with the string being tested against. Note that
there are two sets of checks: one for extra files being required filenames and
another for disallowed filenames.

Make sure to use the macros for the filenames, not the literal strings (e.g. use
PROG_FILENAME not "prog").

Check filenames in alphabetical order (I think :-) .. very tired so maybe missed
one or two).

Note that the function check_extra_file() CANNOT be used in every case so it's
not used except in chkentry!

Release 1.0.54 2023-11-06

The following filenames are no longer allowed in an entry's extra files list:

  • README.md
  • prog
  • prog.orig
  • prog.orig.c
  • index.html
  • inventory.html

The mkiocccentry tool checks for this, giving an error early on (rather than
making the user retry after inputting more details). The function
test_extra_file() now checks for these files too, giving an error if any are
found.

New mkiocccentry version: 1.0.2 2023-11-06.

txzchk also checks for these files in the tarball. New version: 1.0.2
2023-11-06.

Release 1.0.53 2023-09-13

Minor fix in jval and jnamval - new version "0.0.15 2023-09-13". The ne
operator for -S and -n already was parsed (by foresight that it would
be needed, maybe) but it was not in the help. Also I decided to change the order
of the enum so that JSON_CMP_OP_NE comes right after JSON_CMP_OP_EQ rather
than at the end.

Man pages updated - added ne to -S and -n options.

Release 1.0.52 2023-08-09

New version of jval and jnamval, "0.0.14 2023-08-09".

Fixed the lists of -S and -n option parsing. For now it should just be a
string that's strdup()d. The operators are in the list in the order specified,
one list for strings and one list for numbers. This can be c...

Read more

mkiocccentry 1.0.0 2023-02-04

06 Feb 05:45
Compare
Choose a tag to compare

Release 1.0.0 2023-02-04

Resolved all macOS -Weverything issues worth addressing. See
test_ioccc/static_analysis.md for details and to see how you can also help as
well as the fixes we applied, what might need to be fixed and what we ignore
(and why we choose to ignore them). Note that originally the commit ids were
bogus and although we fixed those in that file the git commit log obviously has
the bogus ids.

Restore Makefile use -Werror and use of -O0. With the exception of the dbg code,
use of -Werror and compiling with -O0 -g is restored in various Makefiles while
version 1.0.0 is still in development.

Fix some memory leaks detected with valgrind. See
test_ioccc/dynamic_analysis.md for details and to see how you might also help.

Exit codes checked for consistency across usage strings, man pages and the tools
themselves.

Changed DBG_VERSION from "2.6 2022-11-09" to "2.8 2023-01-29".
Minor improvements made on when warning messages are printed.
Added dbg_version as a global string for users of the dbg.a library.

Changed DYN_ARRAY_VERSION from "2.0 2022-06-09" to "2.1 2023-01-21" and then
from "2.1 2023-01-21" to "2.2 2023-01-22".
Added dyn_array_version as a global string for users of the dyn_array.a library.

Changed JSON_PARSER_VERSION from "0.12 2022-11-09" to "0.13 2023-01-21".
Added json_parser_version as a global string for users of the jparse.a library.

Moved JPARSE_VERSION "0.11 2022-07-04" from jparse_main.h to jparse.h.
Added jparse_version as a global string for users of the jparse.a library.

Changed JNUM_GEN_VERSION from "0.7 2022-05-01" to "0.8 2023-01-22".
Current JNUM_CHK_VERSION is "0.8 2022-05-01".
Fixed bug where jnum_gen.c had JNUM_CHK_VERSION.

Added SOUP_VERSION as "1.0 2023-01-21".
Added soup_version as a global string for users of the soup.a library.

Changed jsemtblgen so that -P prefix will always be used on function names.
Use of -M func will override any specific member name.
Changed JSEMTBLGEN_VERSION from "0.4 2022-07-13" to "0.6 2023-01-22".
The jsemtblgen tool, with the -I option, will not print duplicate
extern function declarations.

Fixed a number of tests relating to conversion of floating point values.
Corrected jparse/test_jparse/jnum_test.c test results for
the as_double is an integer test cases.

Added a system to notice "Notice:" messages and count then for make prep.
The test_ioccc/prep.sh tool removed the generated bug report log file
if the bug-report.sh tool does an exit 0, even if there are notices.
Changed BUG_REPORT_VERSION from "0.12 2023-01-24" to "0.13 2023-01-24".
Then with more improvements (see below) it was changed to "0.14 2023-01-30". The
improvements: check for Makefile in all subdirectories, check for overriding
makefile.local in all subdirectories and check that all subdirectories exist and
are readable and are executable.

Changed PREP_VERSION from "0.3 2023-01-24" to "0.4 2023-01-24".

Moved static variables from header to source files.

Fix segfault when author length is too long from NULL pointer dereference: due
to an else being left off from an if after rejecting the author, freeing and
setting to NULL the code went on to check for unique author names which would
then dereference the just rejected NULL author name. See commit
48ea6cc.

Go through all files and fix typos and do a check for consistency in messages as
well (error, debug, general, warnings etc.). This excludes .json, .txt and .err
files under test_ioccc/ as there's no point in checking them (some of the .txt
files do have text that would trigger spellchecking problems but they're part of
invalid tarball listings). The iocccsize related files have not been checked.
Where the alternative and incorrect English (that is American English) spelling
was in the repo it was untouched as it is after all the International Obfuscated
C Code Contest, not the Obfuscated C Code Contest for people who use proper
English. :-)

Fix some grammar errors. More could probably be done later but whether this is
worth it can be TBD at another time. There are some places that are problematic
in fixing and it's time consuming to find all the remaining issues. Besides,
this is for the IOCCC so if a few things here and there are misleading or
confusing it's probably not all that bad anyway! :-)

Improved man pages, error messages and documentation. Went through all
documentation and fixed noticed problems, typos, formatting issues etc.

Add CodeQL Analysis for GitHub commits: added codeql.yml as a new GitHub
workflow.

Fix internal Makefile rules to do with the
dbg repo.
Fold in .gitignore from dbg repo.

Improve Makefile #! lines.

Fix shellcheck errors under macOS.

Moved utf8_test(8) to test_ioccc/man/man8.

Improve getopt() calls. We now control the error messages for better output like
removing "-h help mode" when -h is specified. Compress the '?', ':' and default
cases by way of new function check_invalid_option().

Fix bug_report.sh options -l and -x.

Improve dyn_alloc code robustness.

Fix several implicit signed conversion issues and double precision floating
point tests. Improve other fixes to various warnings.

Change remaining calls to strtok() to strtok_r().

Remove duplicate object in jparse Makefile.

Update README.md for information on how to help (for when we're ready for such
help). The note that we're not yet ready will be removed once we are.

Fixed debug calls in jparse.y to match the functions being called that changed
due to making the parser re-entrant.

Fixed various compile errors in systems that were not initially tested (debian
and linux in general depending on the issue).

Improve prep.sh so that issues reported are more specific. In particular it will
show which rule failed rather than just that a make action failed.

Change in txzchk the txzpath to tarball_path to be clearer what it is.

Fix double notices by bug_report.sh for unknown versions of tools.

Improve how bug_report.sh reports on missing commands.

Fix man pages to use formatting macros throughout and add them to the SYNOPSIS
and OPTIONS sections. This makes run_usage.sh (which was always a quick, dirty
and ugly hack) even less useful but not entirely useless. Update checknr call
in Makefiles so that checknr is aware of the additional macros.

Fix (prevent) stray jparse related files after bug_report.sh.

Fix potential NULL pointer dereferences.

Improve make clobber so that specific files and directories that were being
erroneously being removed no longer are removed.

Make it easier to make soup. :-) Yes this is for fun only and that sentence has
a slight hint.

Typo fix in soup/location.c: although ions have their place when peroxide ions
in particular combine with water and diluted acids it forms hydrogen peroxide
which has ended up killing people when those unaware of the dangers
misunderstand the request that someone would like a glass of H2O too. Thus we
should get rid of stray ions in the repo and now have. See commit
532d337 for details.

Make parameters in usage() functions consistent across all files. Add usage() to
utf8_test.c and improve usage message. Change VERSION to UTF8_TEST_VERSION in
utf8_test.c.

Change boldness of foo([138]) in man pages so that only foo is in bold.

Fix usage message in fnamchk.

Change some local variables to not be the name of functions in the dbg library
(which the files in question used).
Improve iocccsize -h output. This includes adding version information to the
message.

Add version information to jsemcgen -h. More generally fix shell script -h
version in several scripts to print script name and version string.

Remove extra spaces in all_sem_ref.sh -h output.

Remove trailing blank lines to various scripts -h output.

Clarify comments about rule 2a and rule 2b tests.

Improve jsemcgen(8), jsemtblgen(8) and all_sem_ref(8).
Improve output of jsemtblgen -h.

Add FAQ.md for information on getting help with various problems.

Bug fix hostchk.sh. In particular in some cases it would be that the non-zero
exit code would be reported as 0.

Update dbg/README.md to refer to other dbg(3) man pages (the main files not the
symlinks). The jparse/README.md does not refer to an example yet (for the
library) as an example program does not exist. The dyn_array/README.md does not
explain how to link in the library yet because it depends on the dbg repo and it
is not yet determined how this will be approached. Similar can be said for
jparse though we do have json_dbg() and other related functions.

In order to make it easier to run tools from the top level directory, we
changed the default path of fnamchk from "./fnamchk" to "./test_ioccc/fnamchk",
and the path of jparse from "./jparse" to "./jparse/jparse".

Check return value of function yylex_init_extra() and warn with errno
information if non-zero return value. Sequenced exit codes, updated backup
parser files.

Remove unused function string_to_intmax() and change string_to_intmax2() to be
string_to_intmax().

Added IOCCC_NEWS_URL to mkiocccentry.h to define the URL to
read IOCCC news. Added IOCCC_REGISTRATION_READY to mkiocccentry.h
to indicate if the registration process is ready independently from
the submit server.

Fixed coredump in verge when a version string starts with a non-digit
(!isascii() && !isdigit()).

Make verge use string_to_intmax() (instead of string_to_long()) and get rid of
the following unused functions:

        extern long string_to_long(char const *str);
        extern long long string_to_long_long(char const *str);
        extern int string_to_int(char const *str);
        extern unsigned long string_to_unsigned_long(char const *str);
        e...
Read more