Merge pull request #127 from xexyl/mod

Updated FAQ per recent mkiocccentry issues

1 of 4 updates that are connected with the
[Release version 2.4.3 2025-03-11](https://github.com/ioccc-src/mkiocccentry/releases/tag/2.4.3)
of the [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) otherwise
known as "the other repo".
This commit is contained in:
Landon Curt Noll authored and GitHub committed 2025-03-12 18:44:06 -07:00
commit 5f2dc62c85
2 files changed
+115 -50

No files matched your search

+51 -25
View File
@@ -425,7 +425,7 @@
<!-- BEFORE: 1st line of markdown file: faq.md -->
<h1 id="ioccc-faq-table-of-contents">IOCCC FAQ Table of Contents</h1>
<p>This is FAQ version <strong>28.2.13 2025-03-01</strong>.</p>
<p>This is FAQ version <strong>28.2.14 2025-03-09</strong>.</p>
<h2 id="entering-the-ioccc-the-bare-minimum-you-need-to-know">0. <a href="#enter_questions">Entering the IOCCC: the bare minimum you need to know</a></h2>
<ul>
<li><strong>Q 0.0</strong>: <a class="normal" href="#enter">How can I enter the IOCCC?</a></li>
@@ -454,6 +454,7 @@
<li><strong>Q 1.6</strong>: <a class="normal" href="#extra-files">What are extra files and how may I include additional files beyond the max allowed?</a></li>
<li><strong>Q 1.7</strong>: <a class="normal" href="#ai">May I use AI, Virtual coding assistants, or similar tools to write my submission?</a></li>
<li><strong>Q 1.8</strong>: <a class="normal" href="#rule17">What are the details behind Rule 17?</a></li>
<li><strong>Q 1.9</strong>: <a class="normal" href="#uuid_file">How can I avoid re-entering my UUID to mkiocccentry?</a></li>
</ul>
<h2 id="ioccc-judging-process">2. <a href="#judging_proceess">IOCCC Judging process</a></h2>
<ul>
@@ -1495,6 +1496,23 @@ do this <strong>AFTER</strong> the <a href="status.html">contest status</a> has
<a href="#open">open</a>.
</p>
<p>Jump to: <a href="#">top</a></p>
<div id="uuid_file">
<h3 id="q-1.9-how-can-i-avoid-re-entering-my-uuid-to-mkiocccentry">Q 1.9: How can I avoid re-entering my UUID to mkiocccentry?</h3>
</div>
<p>Because some people might want to submit more than one submission, an option to
read the UUID from a file exists, so that you don’t have to repeatedly copy and
paste the UUID in. If the file is not a regular readable file or it does not
have a valid UUID, you will be prompted as if you had not used the option. If
you use the <code>-i answers</code> feature this will not be used as the UUID is included
in the answers file.</p>
<p>To use this feature all you have to do is put the UUID in a text file, in a
single line, with no spaces before or after it, and then run:</p>
<pre><code> mkiocccentry -u uuid workdir topdir</code></pre>
<p>where <code>uuid</code> is the file containing your UUID, <code>workdir</code> is the workdir and
<code>topdir</code> is the topdir.</p>
<p>See also the
FAQ on “<a href="#answers_file">the answers file</a>”.</p>
<p>Jump to: <a href="#">top</a></p>
<hr style="width:50%;text-align:left;margin-left:0">
<hr style="width:50%;text-align:left;margin-left:0">
<div id="judging_process">
@@ -1864,6 +1882,15 @@ will be asked to verify country code prior to being asked the other questions.
If you fail to enter other author information correctly you will be prompted
right away to fix it. Afterwards, when the author information is collected, it
will ask you to confirm. This procedure happens for each author.</p>
<p>In the case of <code>-i answers</code> option being used, you will not have to put in most
information but you will have to confirm the lists of files and directories are
correct, unless you use <code>-Y</code> (which we do not recommend).</p>
<p>If <code>topdir</code> is not a readable (<code>+r</code>), searchable (<code>+x</code>) directory it is an error.</p>
<p>If <code>workdir</code> is not a writable (<code>+w</code>), searchable (<code>+x</code>) directory it is an error.</p>
<p>If <code>workdir</code> is in <code>topdir</code> the program will not descend into it (the workdir).</p>
<p>If <code>topdir</code> is the same (by device and inode) as <code>workdir</code> it is an error.
If somehow <code>topdir</code> or <code>workdir</code> is found under the submission directory (by
device and inode) it is an error (and you should report it as a bug.</p>
<p>In more detail the <code>mkiocccentry(1)</code> tool performs the below steps.</p>
<ol start="0" type="1">
<li>Ask the user for a submission ID (see the <a href="next/register.html">how to register</a>
@@ -1872,13 +1899,15 @@ the importance of this).
<ul>
<li>If this is an invalid UUID (malformed), you will be asked to correct it
until it is.</li>
<li>If the <code>-u uuid</code> option is used and the UUID in the file <code>uuid</code> is not malformed,
the user will not be prompted for a UUID.</li>
</ul></li>
<li>Ask the user for the submission slot (the submission number; see <a href="next/register.html">how to
register</a> and <a href="next/rules.html#rule17">Rule 17</a> for more details).
<ul>
<li>If this is out of range (see <code>MAX_SUBMIT_SLOT</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h">limit_ioccc.h</a>)
and you will be asked to correct it until it is.</li>
you will be asked to correct it until it is.</li>
</ul></li>
<li>Make the submission directory under <code>topdir</code> in the form of
<code>workdir/submit.USERNAME-SLOT</code>.
@@ -2244,7 +2273,7 @@ information about the author or authors of the submission, in JSON format.</p>
<ul>
<li>The current version of the <code>.auth.json</code> file.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> match <strong>THIS</strong> IOCCC’s <code>.auth.json</code> version, defined as
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>.auth.json</code> version, defined as
<code>AUTH_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
@@ -2273,7 +2302,7 @@ this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<ul>
<li>The version of <code>mkiocccentry</code> that formed this <code>.auth.json</code> file.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> match <strong>THIS</strong> IOCCC’s <code>mkiocccentry</code> version,
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>mkiocccentry</code> version,
defined as <code>MKIOCCCENTRY_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
@@ -2283,7 +2312,7 @@ this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li>The version of <code>chkentry</code> that was used to validate the submission
directory, including the <code>.auth.json</code> file.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> match <strong>THIS</strong> IOCCC’s <code>chkentry</code> version, defined
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>chkentry</code> version, defined
as <code>CHKENTRY_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
@@ -2293,7 +2322,7 @@ this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li>The version of <code>fnamchk</code> that <code>txzchk</code> uses to validate the filename of
the xz compressed tarball.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> match <strong>THIS</strong> IOCCC’s <code>fnamchk</code> version in order for it
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>fnamchk</code> version in order for it
to be valid. If this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li><p><code>IOCCC_contest_id</code> (double quoted string)</p>
<ul>
@@ -2533,7 +2562,7 @@ for more information.</p>
<ul>
<li>The current version of the <code>.info.json</code> files.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> match <strong>THIS</strong> IOCCC’s <code>.info.json</code> version, defined as
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>.info.json</code> version, defined as
<code>INFO_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
@@ -2562,7 +2591,7 @@ this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<ul>
<li>The version of <code>mkiocccentry</code> that formed this <code>.auth.json</code> file.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> match <strong>THIS</strong> IOCCC’s <code>mkiocccentry</code> version,
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>mkiocccentry</code> version,
defined as <code>MKIOCCCENTRY_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
@@ -2571,7 +2600,7 @@ this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<ul>
<li>The version of <code>iocccsize</code> that was used for this <code>.info.json</code> file.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> match <strong>THIS</strong> IOCCC’s <code>iocccentry</code> version,
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>iocccentry</code> version,
defined as <code>IOCCCSIZE_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
@@ -2581,7 +2610,7 @@ this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li>The version of <code>chkentry</code> that was used to validate the submission
directory, including the <code>.info.json</code> file.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> match <strong>THIS</strong> IOCCC’s <code>chkentry</code> version, defined
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>chkentry</code> version, defined
as <code>CHKENTRY_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
@@ -2591,7 +2620,7 @@ this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li>The version of <code>fnamchk</code> that <code>txzchk</code> uses to validate the filename of
the xz compressed tarball.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> match <strong>THIS</strong> IOCCC’s <code>fnamchk</code> version, defined
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>fnamchk</code> version, defined
as <code>FNAMCHK_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
@@ -2600,7 +2629,7 @@ this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<ul>
<li>The version of <code>txzchk</code> used to validate the xz compressed tarball.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> match <strong>THIS</strong> IOCCC’s <code>txzchk</code> version, defined
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>txzchk</code> version, defined
as <code>TXZCHK_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
@@ -2711,11 +2740,8 @@ bit set - octet value &gt;= 128); see <a href="next/rules.html#rule13">Rule 13</
</ul></li>
<li><p><code>wordbuf_warning</code> (boolean)</p>
<ul>
<li><code>true</code> if <code>prog.c</code> triggered a word buffer overflow (see <code>iocccsize</code>),
else <code>false</code>.</li>
</ul>
<p><strong>IMPORTANT:</strong> this does <strong>NOT</strong> mean that your code has been checked for buffer
overflows in general.</p></li>
<li>This is ignored and will be removed for IOCCC29 and beyond.</li>
</ul></li>
<li><p><code>ungetc_warning</code> (boolean)</p>
<ul>
<li><code>true</code> if <code>prog.c</code> triggered an <code>ungetc(3)</code> error, else <code>false</code>.</li>
@@ -2733,11 +2759,11 @@ FAQ on “<a href="#makefile">Makefile</a>”
for more information.</p></li>
<li><p><code>first_rule_is_all</code> (boolean)</p>
<ul>
<li><code>true</code> if the first rule in the <code>Makefile</code> file is <code>all</code>, else <code>false</code>.</li>
<li>This is ignored and will be removed for IOCCC29 and beyond.</li>
</ul>
<p><strong>IMPORTANT:</strong> if the <code>Makefile</code> file does <strong>NOT</strong> have an <code>all</code> rule or it is not
first and this boolean is <code>true</code> then you stand a good chance of having your
submission rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!</p>
<p><strong>IMPORTANT:</strong>: if the <code>Makefile</code> file does <strong>NOT</strong> have an <code>all</code> rule then
you stand a good chance of having your submission rejected for violating
<a href="next/rules.html#rule17">Rule 17</a>!</p>
<p>See the
FAQ on “<a href="#makefile">Makefile</a>”
for more information.</p></li>
@@ -2746,8 +2772,7 @@ for more information.</p></li>
<li><code>true</code> if the <code>Makefile</code> file has an <code>all</code> rule, else <code>false</code>.</li>
</ul>
<p><strong>IMPORTANT:</strong> if the <code>Makefile</code> file does <strong>NOT</strong> have an <code>all</code> rule and this
boolean is <code>true</code>, or if it does <strong>NOT</strong> have an <code>all</code> rule but
<code>first_rule_is_all</code> is <code>true</code> then you stand a good chance of having your
boolean is <code>true</code> then you stand a good chance of having your
submission rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!</p>
<p>See the
FAQ on “<a href="#makefile">Makefile</a>”
@@ -2913,8 +2938,9 @@ this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
problems with it or the submission directory, <strong>it is an error</strong>. If there is an
error the tarball will <strong>NOT</strong> be formed by <code>mkiocccentry</code>; otherwise the
<code>txzchk(1)</code> tool will be executed on the tarball.</p>
<p>The <a href="judges.html">Judges</a> <strong>WILL</strong> use <code>chkentry(1)</code> on this file during the
judging process and if it does not pass your submission <strong>WILL BE</strong> rejected.</p>
<p>When the <a href="judges.html">Judges</a> use <code>chkentry(1)</code> on your submission directory,
if this JSON file is invalid JSON or does not match the requirements outlined
above, or if any other is found, your submission <strong>WILL BE</strong> rejected.</p>
<p>An obvious example where <code>chkentry</code> would fail to validate <code>.info.json</code> is if
there is a mismatch of type in the JSON file with what is expected, for
instance, if in <code>.info.json</code> the <code>no_comment</code> that we chose to not comment on is
+64 -25
View File
@@ -1,6 +1,6 @@
# IOCCC FAQ Table of Contents
This is FAQ version **28.2.13 2025-03-01**.
This is FAQ version **28.2.14 2025-03-09**.
## 0. [Entering the IOCCC: the bare minimum you need to know](#enter_questions)
@@ -28,6 +28,7 @@ This is FAQ version **28.2.13 2025-03-01**.
- **Q 1.6**: <a class="normal" href="#extra-files">What are extra files and how may I include additional files beyond the max allowed?</a>
- **Q 1.7**: <a class="normal" href="#ai">May I use AI, Virtual coding assistants, or similar tools to write my submission?</a>
- **Q 1.8**: <a class="normal" href="#rule17">What are the details behind Rule 17?</a>
- **Q 1.9**: <a class="normal" href="#uuid_file">How can I avoid re-entering my UUID to mkiocccentry?</a>
## 2. [IOCCC Judging process](#judging_proceess)
@@ -629,6 +630,7 @@ Jump to: [top](#)
Jump to: [top](#)
<div id="answers_file">
### Q 1.0: How can I avoid re-entering the information to mkiocccentry?
</div>
@@ -1265,6 +1267,31 @@ do this **AFTER** the [contest status](status.html) has changed to
Jump to: [top](#)
<div id="uuid_file">
### Q 1.9: How can I avoid re-entering my UUID to mkiocccentry?
</div>
Because some people might want to submit more than one submission, an option to
read the UUID from a file exists, so that you don't have to repeatedly copy and
paste the UUID in. If the file is not a regular readable file or it does not
have a valid UUID, you will be prompted as if you had not used the option. If
you use the `-i answers` feature this will not be used as the UUID is included
in the answers file.
To use this feature all you have to do is put the UUID in a text file, in a
single line, with no spaces before or after it, and then run:
``` <!---sh-->
mkiocccentry -u uuid workdir topdir
```
where `uuid` is the file containing your UUID, `workdir` is the workdir and
`topdir` is the topdir.
See also the
FAQ on "[the answers file](#answers_file)".
Jump to: [top](#)
<hr style="width:50%;text-align:left;margin-left:0">
@@ -1740,6 +1767,20 @@ If you fail to enter other author information correctly you will be prompted
right away to fix it. Afterwards, when the author information is collected, it
will ask you to confirm. This procedure happens for each author.
In the case of `-i answers` option being used, you will not have to put in most
information but you will have to confirm the lists of files and directories are
correct, unless you use `-Y` (which we do not recommend).
If `topdir` is not a readable (`+r`), searchable (`+x`) directory it is an error.
If `workdir` is not a writable (`+w`), searchable (`+x`) directory it is an error.
If `workdir` is in `topdir` the program will not descend into it (the workdir).
If `topdir` is the same (by device and inode) as `workdir` it is an error.
If somehow `topdir` or `workdir` is found under the submission directory (by
device and inode) it is an error (and you should report it as a bug.
In more detail the `mkiocccentry(1)` tool performs the below steps.
0. Ask the user for a submission ID (see the [how to register](next/register.html)
@@ -1747,11 +1788,13 @@ for more details on how to obtain this and [Rule 17](next/rules.html#rule17) for
the importance of this).
* If this is an invalid UUID (malformed), you will be asked to correct it
until it is.
* If the `-u uuid` option is used and the UUID in the file `uuid` is not malformed,
the user will not be prompted for a UUID.
1. Ask the user for the submission slot (the submission number; see [how to
register](next/register.html) and [Rule 17](next/rules.html#rule17) for more details).
* If this is out of range (see `MAX_SUBMIT_SLOT` in
[limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h))
and you will be asked to correct it until it is.
you will be asked to correct it until it is.
2. Make the submission directory under `topdir` in the form of
`workdir/submit.USERNAME-SLOT`.
* If this directory already exists it is an error.
@@ -2146,7 +2189,7 @@ In order of the file's contents we describe each required field, below:
- `IOCCC_auth_version` (double quoted string)
* The current version of the `.auth.json` file.
**IMPORTANT:** this **MUST** match **THIS** IOCCC's `.auth.json` version, defined as
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `.auth.json` version, defined as
`AUTH_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
@@ -2176,7 +2219,7 @@ In order of the file's contents we describe each required field, below:
- `mkiocccentry_version` (double quoted string)
* The version of `mkiocccentry` that formed this `.auth.json` file.
**IMPORTANT:** this **MUST** match **THIS** IOCCC's `mkiocccentry` version,
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `mkiocccentry` version,
defined as `MKIOCCCENTRY_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
@@ -2186,7 +2229,7 @@ In order of the file's contents we describe each required field, below:
* The version of `chkentry` that was used to validate the submission
directory, including the `.auth.json` file.
**IMPORTANT:** this **MUST** match **THIS** IOCCC's `chkentry` version, defined
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `chkentry` version, defined
as `CHKENTRY_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
@@ -2196,7 +2239,7 @@ In order of the file's contents we describe each required field, below:
* The version of `fnamchk` that `txzchk` uses to validate the filename of
the xz compressed tarball.
**IMPORTANT:** this **MUST** match **THIS** IOCCC's `fnamchk` version in order for it
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `fnamchk` version in order for it
to be valid. If this is not the case your submission **WILL BE** rejected!
- `IOCCC_contest_id` (double quoted string)
@@ -2431,7 +2474,7 @@ In order of the file's contents we describe each required field, below:
- `IOCCC_info_version` (double quoted string)
* The current version of the `.info.json` files.
**IMPORTANT:** this **MUST** match **THIS** IOCCC's `.info.json` version, defined as
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `.info.json` version, defined as
`INFO_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
@@ -2461,7 +2504,7 @@ In order of the file's contents we describe each required field, below:
- `mkiocccentry_version` (double quoted string)
* The version of `mkiocccentry` that formed this `.auth.json` file.
**IMPORTANT:** this **MUST** match **THIS** IOCCC's `mkiocccentry` version,
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `mkiocccentry` version,
defined as `MKIOCCCENTRY_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
@@ -2470,7 +2513,7 @@ In order of the file's contents we describe each required field, below:
- `iocccsize_version` (double quoted string)
* The version of `iocccsize` that was used for this `.info.json` file.
**IMPORTANT:** this **MUST** match **THIS** IOCCC's `iocccentry` version,
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `iocccentry` version,
defined as `IOCCCSIZE_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
@@ -2480,7 +2523,7 @@ In order of the file's contents we describe each required field, below:
* The version of `chkentry` that was used to validate the submission
directory, including the `.info.json` file.
**IMPORTANT:** this **MUST** match **THIS** IOCCC's `chkentry` version, defined
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `chkentry` version, defined
as `CHKENTRY_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
@@ -2490,7 +2533,7 @@ In order of the file's contents we describe each required field, below:
* The version of `fnamchk` that `txzchk` uses to validate the filename of
the xz compressed tarball.
**IMPORTANT:** this **MUST** match **THIS** IOCCC's `fnamchk` version, defined
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `fnamchk` version, defined
as `FNAMCHK_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
@@ -2499,7 +2542,7 @@ In order of the file's contents we describe each required field, below:
- `txzchk_version` (double quoted string)
* The version of `txzchk` used to validate the xz compressed tarball.
**IMPORTANT:** this **MUST** match **THIS** IOCCC's `txzchk` version, defined
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `txzchk` version, defined
as `TXZCHK_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
@@ -2605,11 +2648,7 @@ In order of the file's contents we describe each required field, below:
`prog.c`, else `false`.
- `wordbuf_warning` (boolean)
* `true` if `prog.c` triggered a word buffer overflow (see `iocccsize`),
else `false`.
**IMPORTANT:** this does **NOT** mean that your code has been checked for buffer
overflows in general.
* This is ignored and will be removed for IOCCC29 and beyond.
- `ungetc_warning` (boolean)
* `true` if `prog.c` triggered an `ungetc(3)` error, else `false`.
@@ -2627,11 +2666,11 @@ In order of the file's contents we describe each required field, below:
for more information.
- `first_rule_is_all` (boolean)
* `true` if the first rule in the `Makefile` file is `all`, else `false`.
* This is ignored and will be removed for IOCCC29 and beyond.
**IMPORTANT:** if the `Makefile` file does **NOT** have an `all` rule or it is not
first and this boolean is `true` then you stand a good chance of having your
submission rejected for violating [Rule 17](next/rules.html#rule17)!
**IMPORTANT:**: if the `Makefile` file does **NOT** have an `all` rule then
you stand a good chance of having your submission rejected for violating
[Rule 17](next/rules.html#rule17)!
See the
FAQ on "[Makefile](#makefile)"
@@ -2641,8 +2680,7 @@ In order of the file's contents we describe each required field, below:
* `true` if the `Makefile` file has an `all` rule, else `false`.
**IMPORTANT:** if the `Makefile` file does **NOT** have an `all` rule and this
boolean is `true`, or if it does **NOT** have an `all` rule but
`first_rule_is_all` is `true` then you stand a good chance of having your
boolean is `true` then you stand a good chance of having your
submission rejected for violating [Rule 17](next/rules.html#rule17)!
See the
@@ -2811,8 +2849,9 @@ problems with it or the submission directory, **it is an error**. If there is an
error the tarball will **NOT** be formed by `mkiocccentry`; otherwise the
`txzchk(1)` tool will be executed on the tarball.
The [Judges](judges.html) **WILL** use `chkentry(1)` on this file during the
judging process and if it does not pass your submission **WILL BE** rejected.
When the [Judges](judges.html) use `chkentry(1)` on your submission directory,
if this JSON file is invalid JSON or does not match the requirements outlined
above, or if any other is found, your submission **WILL BE** rejected.
An obvious example where `chkentry` would fail to validate `.info.json` is if
there is a mismatch of type in the JSON file with what is expected, for