checkpoint rules version 29.04 2025-11-20

Switched to "#" (hash) for headings in `rules.md`.

Added "-" (dash) after the rule number and before the
rule keyword.

Adjusted links rules elsewhere according to the above.

Ran `make quick_www` to perform the above.
This commit is contained in:
Landon Curt Noll committed 2025-11-20 16:16:50 -08:00
1 parent 5021fa611b
commit ee2f499839
15 files changed
+305 -326

No files matched your search

+61 -61
View File
@@ -480,7 +480,7 @@
<li><strong>Q 1.4</strong>: <a class="normal" href="#mkiocccentry_test">How can I check if my submission passes tests without having to answer questions?</a></li> <li><strong>Q 1.4</strong>: <a class="normal" href="#mkiocccentry_test">How can I check if my submission passes tests without having to answer questions?</a></li>
<li><strong>Q 1.5</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.5</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.6</strong>: <a class="normal" href="#ai">May I use AI, LLM, Virtual coding assistants, or similar tools to write my submission?</a></li> <li><strong>Q 1.6</strong>: <a class="normal" href="#ai">May I use AI, LLM, Virtual coding assistants, or similar tools to write my submission?</a></li>
<li><strong>Q 1.7</strong>: <a class="normal" href="#rule17">What are the details behind Rule 17?</a></li> <li><strong>Q 1.7</strong>: <a class="normal" href="#rule17">What are the details behind Rule 17 - Packaging?</a></li>
<li><strong>Q 1.8</strong>: <a class="normal" href="#uuid">How can I avoid re-entering my UUID to mkiocccentry?</a></li> <li><strong>Q 1.8</strong>: <a class="normal" href="#uuid">How can I avoid re-entering my UUID to mkiocccentry?</a></li>
<li><strong>Q 1.9</strong>: <a class="normal" href="#submission_dir">How can I avoid having to move or delete my submission directory for the same workdir?</a></li> <li><strong>Q 1.9</strong>: <a class="normal" href="#submission_dir">How can I avoid having to move or delete my submission directory for the same workdir?</a></li>
<li><strong>Q 1.10</strong>: <a class="normal" href="#download_submission">Can I download my submission tarball from the submit server?</a></li> <li><strong>Q 1.10</strong>: <a class="normal" href="#download_submission">Can I download my submission tarball from the submit server?</a></li>
@@ -492,7 +492,7 @@
<li><strong>Q 2.1</strong>: <a class="normal" href="#feedback">How can I comment or make a suggestion on IOCCC rules, guidelines and tools?</a></li> <li><strong>Q 2.1</strong>: <a class="normal" href="#feedback">How can I comment or make a suggestion on IOCCC rules, guidelines and tools?</a></li>
<li><strong>Q 2.2</strong>: <a class="normal" href="#warnings">Are there any compiler warnings that I should not worry about in my submissions?</a></li> <li><strong>Q 2.2</strong>: <a class="normal" href="#warnings">Are there any compiler warnings that I should not worry about in my submissions?</a></li>
<li><strong>Q 2.3</strong>: <a class="normal" href="#frequent-themes">What types of entries have been frequently submitted to the IOCCC?</a></li> <li><strong>Q 2.3</strong>: <a class="normal" href="#frequent-themes">What types of entries have been frequently submitted to the IOCCC?</a></li>
<li><strong>Q 2.4</strong>: <a class="normal" href="#rule_2_broken">How did an entry that breaks the size rule 2 win the IOCCC?</a></li> <li><strong>Q 2.4</strong>: <a class="normal" href="#rule_2_broken">How did an entry win the IOCCC that breaks Rule 2 - Size?</a></li>
<li><strong>Q 2.5</strong>: <a class="normal" href="#submissions">How many submissions do the judges receive for a given IOCCC?</a></li> <li><strong>Q 2.5</strong>: <a class="normal" href="#submissions">How many submissions do the judges receive for a given IOCCC?</a></li>
<li><strong>Q 2.6</strong>: <a class="normal" href="#judging_time">How much time does it take to judge the contest?</a></li> <li><strong>Q 2.6</strong>: <a class="normal" href="#judging_time">How much time does it take to judge the contest?</a></li>
<li><strong>Q 2.7</strong>: <a class="normal" href="#judging_rounds">How many judging rounds do you have?</a></li> <li><strong>Q 2.7</strong>: <a class="normal" href="#judging_rounds">How many judging rounds do you have?</a></li>
@@ -658,7 +658,7 @@
repo</a> and it is <strong>required</strong> that you repo</a> and it is <strong>required</strong> that you
use it to package your submission. Not doing so puts you at a great risk of use it to package your submission. Not doing so puts you at a great risk of
violating the <a href="next/rules.html">Rules</a> and in particular violating the <a href="next/rules.html">Rules</a> and in particular
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="about_mkiocccentry"> <div id="about_mkiocccentry">
<h4 id="q-0.1.1-what-is-mkiocccentry-in-simple-terms">Q 0.1.1: What is <code>mkiocccentry</code> in simple terms?</h4> <h4 id="q-0.1.1-what-is-mkiocccentry-in-simple-terms">Q 0.1.1: What is <code>mkiocccentry</code> in simple terms?</h4>
@@ -773,7 +773,7 @@ directory</strong> will be created, with the name based on your IOCCC registrati
username, which is <strong>in the form of a UUID</strong>, and submission number along with username, which is <strong>in the form of a UUID</strong>, and submission number along with
the timestamp; see the <a href="next/rules.html">rules</a> for more details on this, and in the timestamp; see the <a href="next/rules.html">rules</a> for more details on this, and in
particular particular
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p>
<p><strong>IMPORTANT NOTE</strong>: the tools that require other tools, <code>mkiocccentry(1)</code> and <p><strong>IMPORTANT NOTE</strong>: the tools that require other tools, <code>mkiocccentry(1)</code> and
<code>txzchk(1)</code>, will, as of version <code>2.0.2 2025-03-11</code>, search under <code>$PATH</code>. If <code>txzchk(1)</code>, will, as of version <code>2.0.2 2025-03-11</code>, search under <code>$PATH</code>. If
you have an earlier version and you have not installed the tools and run the you have an earlier version and you have not installed the tools and run the
@@ -934,7 +934,7 @@ rounds; we look at the author name only if an entry wins. See the
<li>leaving the remark section empty (which would also indicate that you did not <li>leaving the remark section empty (which would also indicate that you did not
use <code>mkiocccentry(1)</code>, as it requires it to not be of size 0, though if you only use <code>mkiocccentry(1)</code>, as it requires it to not be of size 0, though if you only
include whitespace you would still be violating include whitespace you would still be violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>).</li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>).</li>
</ul> </ul>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="try_scripts"> <div id="try_scripts">
@@ -978,11 +978,11 @@ for more details.</p>
<p>See the <p>See the
FAQ on “<a href="#rule17">Rule 17</a>” FAQ on “<a href="#rule17">Rule 17</a>”
and and
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>
itself.</p> itself.</p>
<p>Do remember that if your submission requires different filenames, then you <p>Do remember that if your submission requires different filenames, then you
<strong>MUST</strong> make a <strong>COPY</strong> of them in your <code>Makefile</code>. See also <strong>MUST</strong> make a <strong>COPY</strong> of them in your <code>Makefile</code>. See also
<a href="next/rules.html#rule-5-purity">Rule 5 Purity</a>.</p> <a href="next/rules.html#rule-5---purity">Rule 5 - Purity</a>.</p>
<p>Jump to: <a href="#">top</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">
<hr style="width:50%;text-align:left;margin-left:0"> <hr style="width:50%;text-align:left;margin-left:0">
@@ -1126,12 +1126,12 @@ level directory.</p>
itself is an extra file, meaning it counts <strong>AS</strong> an extra file. itself is an extra file, meaning it counts <strong>AS</strong> an extra file.
This file does <strong>NOT</strong> need to pass the <code>txzchk(1)</code> tests; only your submission This file does <strong>NOT</strong> need to pass the <code>txzchk(1)</code> tests; only your submission
tarball needs to pass these tests. However see below if you do do this.</p> tarball needs to pass these tests. However see below if you do do this.</p>
<p>Please pay careful attention to <a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a> and in <p>Please pay careful attention to <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a> and in
particular the part about the maximum number of files per particular the part about the maximum number of files per
submission, which not only discusses the maximum submission, which not only discusses the maximum
number of files but also specific rules you must follow number of files but also specific rules you must follow
if you do include a tarball. Not following these points puts you at great risk if you do include a tarball. Not following these points puts you at great risk
of violating <a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p> of violating <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
<p>Also, remember what the <a href="next/guidelines.html">guidelines</a> say:</p> <p>Also, remember what the <a href="next/guidelines.html">guidelines</a> say:</p>
<blockquote> <blockquote>
<p><strong>IMPORTANT REMINDER</strong>: make <strong>SURE</strong> your tarball does <strong>NOT</strong> reveal who you are! <p><strong>IMPORTANT REMINDER</strong>: make <strong>SURE</strong> your tarball does <strong>NOT</strong> reveal who you are!
@@ -1155,7 +1155,7 @@ ultimate author of the code you submit.</p>
you used as well as how you used them to help write your submission.</p> you used as well as how you used them to help write your submission.</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule17"> <div id="rule17">
<h3 id="q-1.7-what-are-details-behind-rule-17">Q 1.7: What are details behind Rule 17?</h3> <h3 id="q-1.7-what-are-details-behind-rule-17---packaging">Q 1.7: What are details behind Rule 17 - Packaging?</h3>
</div> </div>
<h3 id="tldr-rule-17---use-mkiocccentry1">TL;DR Rule 17 - Use <code>mkiocccentry(1)</code></h3> <h3 id="tldr-rule-17---use-mkiocccentry1">TL;DR Rule 17 - Use <code>mkiocccentry(1)</code></h3>
<p>This is a <strong>COMPLEX</strong> rule. <strong>Violating this rule WILL CAUSE YOUR SUBMISSION TO <p>This is a <strong>COMPLEX</strong> rule. <strong>Violating this rule WILL CAUSE YOUR SUBMISSION TO
@@ -1174,7 +1174,7 @@ contains <strong>IMPORTANT</strong> tools and libraries such as:</p>
<li><code>chksubmit(1)</code> (which uses <code>jparse(3)</code> and is a wrapper to <code>chkentry(1)</code>)</li> <li><code>chksubmit(1)</code> (which uses <code>jparse(3)</code> and is a wrapper to <code>chkentry(1)</code>)</li>
</ul> </ul>
<p>The above mentioned tools will help you verify that your submission <p>The above mentioned tools will help you verify that your submission
conforms to <a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>. Each of these tool has a <code>-h</code> conforms to <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>. Each of these tool has a <code>-h</code>
option that provides command line help. For additional details of each tool, see option that provides command line help. For additional details of each tool, see
its man page, and in some cases, the <a href="next/guidelines.html">IOCCC guidelines</a>.</p> its man page, and in some cases, the <a href="next/guidelines.html">IOCCC guidelines</a>.</p>
<p>The maximum number of <strong>extra files</strong> is 31. See the <p>The maximum number of <strong>extra files</strong> is 31. See the
@@ -1224,7 +1224,7 @@ for help.</p>
<p>The <code>remarks.md</code> <strong>MUST</strong> be a <strong>non</strong>-empty file in markdown format <p>The <code>remarks.md</code> <strong>MUST</strong> be a <strong>non</strong>-empty file in markdown format
(<code>mkiocccentry(1)</code> only checks the file size but if you do not have any text in (<code>mkiocccentry(1)</code> only checks the file size but if you do not have any text in
it you still risk violating this rule). See also it you still risk violating this rule). See also
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>
and our and our
FAQ on “<a href="#remarks_md">remarks.md</a>”, FAQ on “<a href="#remarks_md">remarks.md</a>”,
our our
@@ -1318,16 +1318,16 @@ permissions and <code>mkiocccentry(1)</code> does this for you. In particular: d
<code>-r-xr-xr-x</code> (i.e. <code>0555</code>); and all other files <strong>MUST</strong> be <code>-r--r--r--</code> (i.e. <code>-r-xr-xr-x</code> (i.e. <code>0555</code>); and all other files <strong>MUST</strong> be <code>-r--r--r--</code> (i.e.
<code>0444</code>). If any file or directory does not have the correct permissions, your <code>0444</code>). If any file or directory does not have the correct permissions, your
submission <strong>WILL</strong> be rejected for violating submission <strong>WILL</strong> be rejected for violating
<a href="next/rules.html#rule17">Rule 17 Packaging</a>!</p> <a href="next/rules.html#rule17">Rule 17 - Packaging</a>!</p>
<p>After <code>mkiocccentry(1)</code> creates the directories and copies the files with these <p>After <code>mkiocccentry(1)</code> creates the directories and copies the files with these
modes, it also verifies them after the fact and if they are not correct it is an modes, it also verifies them after the fact and if they are not correct it is an
<strong>error</strong>.</p> <strong>error</strong>.</p>
<p>If you do need different permissions, then see the <p>If you do need different permissions, then see the
FAQ on “<a href="#file_perms">file permissions</a>”. Also keep in mind FAQ on “<a href="#file_perms">file permissions</a>”. Also keep in mind
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>, <a href="next/rules.html#rule-4---files">Rule 4 - Files</a>,
<a href="next/rules.html#rule-5-purity">Rule 5 Purity</a>, <a href="next/rules.html#rule-5---purity">Rule 5 - Purity</a>,
and and
<a href="next/rules.html#rule-16-anonymous">Rule 16 Anonymous</a>.</p> <a href="next/rules.html#rule-16---anonymous">Rule 16 - Anonymous</a>.</p>
<p>The <code>txzchk(1)</code> tool will also verify file/directory permissions (and many other <p>The <code>txzchk(1)</code> tool will also verify file/directory permissions (and many other
things) for you, and so will <code>chksubmit(1)</code> (along with other checks on files and things) for you, and so will <code>chksubmit(1)</code> (along with other checks on files and
directories in your submission directory, including the two required JSON files, directories in your submission directory, including the two required JSON files,
@@ -1340,18 +1340,18 @@ page</a>.</p>
will run <code>fnamchk(1)</code> as part of its algorithm. If you use <code>mkiocccentry(1)</code> will run <code>fnamchk(1)</code> as part of its algorithm. If you use <code>mkiocccentry(1)</code>
there should be no problem but if you were to package things manually it is there should be no problem but if you were to package things manually it is
possible there could be a problem and this poses a big risk of violating possible there could be a problem and this poses a big risk of violating
<a href="next/rules.html#rule-4-files">Rule 4 Files</a> <a href="next/rules.html#rule-4---files">Rule 4 - Files</a>
or or
<a href="next/rules.html#rule17">Rule 17 Packaging</a>.</p> <a href="next/rules.html#rule17">Rule 17 - Packaging</a>.</p>
<p>The <code>fnamchk(1)</code>, which <code>txzchk(1)</code> executes, will verify that the <p>The <code>fnamchk(1)</code>, which <code>txzchk(1)</code> executes, will verify that the
filename is correct. But if you do package your tarball manually, and you have a filename is correct. But if you do package your tarball manually, and you have a
mismatch in what is in the tarball and the name, <code>txzchk(1)</code> will flag the mismatch in what is in the tarball and the name, <code>txzchk(1)</code> will flag the
discrepancy as an error and exit with non-zero.</p> discrepancy as an error and exit with non-zero.</p>
<p>These checks <strong>MUST PASS</strong>. If they do not you stand a significant chance of <p>These checks <strong>MUST PASS</strong>. If they do not you stand a significant chance of
having your submission rejected for violating having your submission rejected for violating
<a href="next/rules.html#rule-4-files">Rule 4 Files</a> <a href="next/rules.html#rule-4---files">Rule 4 - Files</a>
or or
<a href="next/rules.html#rule17">Rule 17 Packaging</a>.</p> <a href="next/rules.html#rule17">Rule 17 - Packaging</a>.</p>
<div id="max-files"> <div id="max-files">
<h4 id="maximum-number-of-files-per-submission">Maximum number of files per submission</h4> <h4 id="maximum-number-of-files-per-submission">Maximum number of files per submission</h4>
</div> </div>
@@ -1381,9 +1381,9 @@ The <code>mkiocccentry(1)</code> tool uses the v7 format. For instance you might
<pre><code> tar --format=v7 -cJf foo.txz directory</code></pre> <pre><code> tar --format=v7 -cJf foo.txz directory</code></pre>
<hr style="width:50%;text-align:left;margin-left:0"> <hr style="width:50%;text-align:left;margin-left:0">
<p><strong>IMPORTANT</strong>: where <p><strong>IMPORTANT</strong>: where
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>, <a href="next/rules.html#rule-4---files">Rule 4 - Files</a>,
and and
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>. <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>.
and the tools from the latest and the tools from the latest
release of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a> release of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>
conflict, the <a href="judges.html">IOCCC judges</a> will use their best judgment which conflict, the <a href="judges.html">IOCCC judges</a> will use their best judgment which
@@ -1418,9 +1418,9 @@ page</a>,
for help here and also read our for help here and also read our
FAQ on “<a href="#mkiocccentry_bugs">mkiocccentry repo bugs</a>”.</p> FAQ on “<a href="#mkiocccentry_bugs">mkiocccentry repo bugs</a>”.</p>
<p>At the risk of stating the obvious: submissions that violate <p>At the risk of stating the obvious: submissions that violate
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>, <a href="next/rules.html#rule-4---files">Rule 4 - Files</a>,
or or
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>
<strong>WILL BE REJECTED</strong>, so <strong>BE SURE</strong> to use the latest release of the <strong>WILL BE REJECTED</strong>, so <strong>BE SURE</strong> to use the latest release of the
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>, to form and test <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>, to form and test
your submission’s xz compressed tarball. Do <strong>NOT</strong> assume you have the most your submission’s xz compressed tarball. Do <strong>NOT</strong> assume you have the most
@@ -1683,7 +1683,7 @@ of the same theme.</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule_2_broken"> <div id="rule_2_broken">
<div id="rule_breaking_entry"> <div id="rule_breaking_entry">
<h3 id="q-2.4-how-did-an-entry-that-breaks-the-size-rule-2-win-the-ioccc">Q 2.4: How did an entry that breaks the size rule 2 win the IOCCC?</h3> <h3 id="q-2.4-how-did-an-entry-win-the-ioccc-that-breaks-rule-2---size">Q 2.4: How did an entry win the IOCCC that breaks Rule 2 - Size?</h3>
</div> </div>
</div> </div>
<p>As entries have been fixed it is entirely possible that some of the entries no <p>As entries have been fixed it is entirely possible that some of the entries no
@@ -1900,9 +1900,9 @@ two JSON files, <code>.auth.json</code> and <code>.info.json</code> as well as t
<code>.info.json</code> manifest. (Okay there is an option to skip files but this is for <code>.info.json</code> manifest. (Okay there is an option to skip files but this is for
the judges <strong>ONLY</strong>; use of this option to validate your submission puts you at the judges <strong>ONLY</strong>; use of this option to validate your submission puts you at
a great risk of violating a great risk of violating
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>, <a href="next/rules.html#rule-4---files">Rule 4 - Files</a>,
or or
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!).</p> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!).</p>
<p>As an example, if your submission directory is <p>As an example, if your submission directory is
<code>00000000-0000-4000-0000-000000000000-3/</code> then you should run the following <code>00000000-0000-4000-0000-000000000000-3/</code> then you should run the following
command:</p> command:</p>
@@ -1922,9 +1922,9 @@ FAQ on “<a href="#auth_json">.auth.json</a>”
and the and the
FAQ on “<a href="#info_json">.info.json</a>” FAQ on “<a href="#info_json">.info.json</a>”
as well as as well as
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>, <a href="next/rules.html#rule-4---files">Rule 4 - Files</a>,
and and
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>
for more information.</p> for more information.</p>
<p><strong>NOTE</strong>: the <code>chksubmit(1)</code> tool invokes <code>chkentry(1)</code> but as a contestant you <p><strong>NOTE</strong>: the <code>chksubmit(1)</code> tool invokes <code>chkentry(1)</code> but as a contestant you
do not need to worry about those details. One should use <code>chksubmit(1)</code> instead do not need to worry about those details. One should use <code>chksubmit(1)</code> instead
@@ -2015,12 +2015,12 @@ to be valid. If this is not the case your submission <strong>WILL BE</strong> re
<li>The IOCCC contestant ID used as a username in the form of <strong>in the form of <li>The IOCCC contestant ID used as a username in the form of <strong>in the form of
a UUID</strong> and submission number; see the <a href="next/rules.html">Rules</a> for more details a UUID</strong> and submission number; see the <a href="next/rules.html">Rules</a> for more details
on this, and in particular on this, and in particular
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>.</li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</li>
</ul> </ul>
<p><strong>NOTE:</strong> if the contest ID is <strong>NOT</strong> in this format then <code>fnamchk</code> will <p><strong>NOTE:</strong> if the contest ID is <strong>NOT</strong> in this format then <code>fnamchk</code> will
report it as an <strong>error</strong> and your submission <strong>WILL BE</strong> rejected for report it as an <strong>error</strong> and your submission <strong>WILL BE</strong> rejected for
violating violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p></li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p></li>
<li><p><code>tarball</code> (double quoted string)</p> <li><p><code>tarball</code> (double quoted string)</p>
<ul> <ul>
<li>The xz compressed tarball filename.</li> <li>The xz compressed tarball filename.</li>
@@ -2028,10 +2028,10 @@ violating
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> match the actual tarball’s <strong>filename</strong> in order for <p><strong>IMPORTANT:</strong> this <strong>MUST</strong> match the actual tarball’s <strong>filename</strong> in order for
this to be valid. If there is a mismatch you stand a great risk of having this to be valid. If there is a mismatch you stand a great risk of having
your submission rejected for violating your submission rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>! <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!
Moreover, it is possible that <code>txzchk</code> will report a problem through Moreover, it is possible that <code>txzchk</code> will report a problem through
<code>fnamchk(1)</code> which also puts you at great risk of violating <code>fnamchk(1)</code> which also puts you at great risk of violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>. The <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>. The
<code>txzchk(1)</code> tool will use the output of <code>fnamchk</code> to <code>txzchk(1)</code> tool will use the output of <code>fnamchk</code> to
obtain the correct directory <em>name</em> in the tarball; if <code>fnamchk</code> fails to obtain the correct directory <em>name</em> in the tarball; if <code>fnamchk</code> fails to
validate your filename, or if you have the wrong directory name in the validate your filename, or if you have the wrong directory name in the
@@ -2046,7 +2046,7 @@ tarball, this will be flaggd.</p></li>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>). If in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>). If
this is not the case you stand a great risk of having your submission this is not the case you stand a great risk of having your submission
rejected for violating rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p></li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p></li>
<li><p><code>author_count</code> (number)</p> <li><p><code>author_count</code> (number)</p>
<ul> <ul>
<li>How many authors this submission has.</li> <li>How many authors this submission has.</li>
@@ -2119,7 +2119,7 @@ the range of 1 <strong>THROUGH</strong> <code>MAX_AFFILIATION_LEN</code> (see
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>). If in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>). If
this is not the case you stand a great risk of having your submission this is not the case you stand a great risk of having your submission
rejected for violating rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p>
<p><strong>NOTE:</strong> an <strong>affiliation</strong> does <strong>NOT</strong> have any affect on whether you will win or not.</p></li> <p><strong>NOTE:</strong> an <strong>affiliation</strong> does <strong>NOT</strong> have any affect on whether you will win or not.</p></li>
<li><p><code>past_winning_author</code> (boolean)</p> <li><p><code>past_winning_author</code> (boolean)</p>
<ul> <ul>
@@ -2204,9 +2204,9 @@ will use it on the submission directory as part of the judging process.</p>
is reported invalid by <code>chksubmit(1)</code>, or if your submission directory is is reported invalid by <code>chksubmit(1)</code>, or if your submission directory is
reported invalid by <code>chksubmit(1)</code>, your submission will almost certainly be reported invalid by <code>chksubmit(1)</code>, your submission will almost certainly be
rejected for violating the <a href="next/rules.html">Rules</a> and in particular rejected for violating the <a href="next/rules.html">Rules</a> and in particular
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>, <a href="next/rules.html#rule-4---files">Rule 4 - Files</a>,
and and
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p>
<p>An obvious example where <code>chksubmit(1)</code> would fail to validate <code>.auth.json</code> is if <p>An obvious example where <code>chksubmit(1)</code> would fail to validate <code>.auth.json</code> is if
there is a mismatch of type in the JSON file with what is expected, for there is a mismatch of type in the JSON file with what is expected, for
instance, if in <code>.auth.json</code> the <code>no_comment</code> that we chose to not comment on is instance, if in <code>.auth.json</code> the <code>no_comment</code> that we chose to not comment on is
@@ -2215,9 +2215,9 @@ out of range (see above for list). Two more examples would be if a field is
missing or if an unknown filed is in the file. In these cases (and any others missing or if an unknown filed is in the file. In these cases (and any others
that must be established as valid by <code>chksubmit(1)</code>) your submission would be that must be established as valid by <code>chksubmit(1)</code>) your submission would be
rejected for violating rejected for violating
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>, <a href="next/rules.html#rule-4---files">Rule 4 - Files</a>,
and and
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>
and in particular and in particular
because <code>chksubmit(1)</code> would not validate the <code>.auth.json</code> file (and maybe other because <code>chksubmit(1)</code> would not validate the <code>.auth.json</code> file (and maybe other
things too).</p> things too).</p>
@@ -2337,7 +2337,7 @@ this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li>The IOCCC contestant ID used as a username in the form of <strong>in the form of <li>The IOCCC contestant ID used as a username in the form of <strong>in the form of
a UUID</strong> and submission number; see the <a href="next/rules.html">rules</a> for more details a UUID</strong> and submission number; see the <a href="next/rules.html">rules</a> for more details
on this, and in particular on this, and in particular
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>.</li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</li>
</ul></li> </ul></li>
<li><p><code>submit_slot</code> (number)</p> <li><p><code>submit_slot</code> (number)</p>
<ul> <ul>
@@ -2349,7 +2349,7 @@ on this, and in particular
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>). If in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>). If
this is not the case you stand a great risk of having your submission this is not the case you stand a great risk of having your submission
rejected for violating rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p></li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p></li>
<li><p><code>title</code> (double quoted string)</p> <li><p><code>title</code> (double quoted string)</p>
<ul> <ul>
<li>A short name (length &gt;= 1 <strong>THROUGH</strong> <code>MAX_TITLE_LEN</code>, defined in <li>A short name (length &gt;= 1 <strong>THROUGH</strong> <code>MAX_TITLE_LEN</code>, defined in
@@ -2359,7 +2359,7 @@ matches the regexp <code>[a-z0-9][a-z0-9_+-]*</code>.</li>
</ul> </ul>
<p><strong>IMPORTANT:</strong> if this is <strong>NOT</strong> the case you stand a great risk of having your submission <p><strong>IMPORTANT:</strong> if this is <strong>NOT</strong> the case you stand a great risk of having your submission
rejected for violating rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p></li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p></li>
<li><p><code>abstract</code> (double quoted string)</p> <li><p><code>abstract</code> (double quoted string)</p>
<ul> <ul>
<li>A one line summary of your submission, with a length of 1 <strong>THROUGH</strong> <li>A one line summary of your submission, with a length of 1 <strong>THROUGH</strong>
@@ -2370,7 +2370,7 @@ in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a
<p>The <code>abstract</code> may not contain a <code>;</code> (semicolon), nor <code>&amp;</code> (ampersand), nor <code>,</code> (comma).</p> <p>The <code>abstract</code> may not contain a <code>;</code> (semicolon), nor <code>&amp;</code> (ampersand), nor <code>,</code> (comma).</p>
<p><strong>IMPORTANT:</strong> if your abstract is 0 in length or &gt; the maximum abstract length you <p><strong>IMPORTANT:</strong> if your abstract is 0 in length or &gt; the maximum abstract length you
stand a great risk of having your submission rejected for violating stand a great risk of having your submission rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p></li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p></li>
<li><p><code>tarball</code> (double quoted string)</p> <li><p><code>tarball</code> (double quoted string)</p>
<ul> <ul>
<li>The xz compressed tarball filename.</li> <li>The xz compressed tarball filename.</li>
@@ -2378,10 +2378,10 @@ stand a great risk of having your submission rejected for violating
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> match the actual tarball’s <strong>filename</strong> in order for <p><strong>IMPORTANT:</strong> this <strong>MUST</strong> match the actual tarball’s <strong>filename</strong> in order for
this to be valid. If there is a mismatch you stand a great risk of having this to be valid. If there is a mismatch you stand a great risk of having
your submission rejected for violating your submission rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>! <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!
Moreover, it is possible that <code>txzchk</code> will report a problem through Moreover, it is possible that <code>txzchk</code> will report a problem through
<code>fnamchk(1)</code> which also puts you at great risk of violating <code>fnamchk(1)</code> which also puts you at great risk of violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>. <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>.
The <code>txzchk(1)</code> tool will use the output of <code>fnamchk</code> to The <code>txzchk(1)</code> tool will use the output of <code>fnamchk</code> to
obtain the correct directory <em>name</em> in the tarball; if <code>fnamchk</code> fails to obtain the correct directory <em>name</em> in the tarball; if <code>fnamchk</code> fails to
validate your filename, or if you have the wrong directory name in the validate your filename, or if you have the wrong directory name in the
@@ -2417,7 +2417,7 @@ violation, else <code>false</code>.</li>
calculated size is <strong>NOT</strong> calculated size is <strong>NOT</strong>
violated but this is <code>true</code> then you stand a good chance of having your violated but this is <code>true</code> then you stand a good chance of having your
submission rejected for violating submission rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p></li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p></li>
<li><p><code>rule_2a_mismatch</code> (boolean)</p> <li><p><code>rule_2a_mismatch</code> (boolean)</p>
<ul> <ul>
<li><code>true</code> if <li><code>true</code> if
@@ -2436,12 +2436,12 @@ violation, else <code>false</code>.</li>
calculated size is <strong>NOT</strong> calculated size is <strong>NOT</strong>
violated but this is <code>true</code> then you stand a good chance of having your violated but this is <code>true</code> then you stand a good chance of having your
submission rejected for violating submission rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p></li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p></li>
<li><p><code>highbit_warning</code> (boolean)</p> <li><p><code>highbit_warning</code> (boolean)</p>
<ul> <ul>
<li><code>true</code> if <code>iocccsize</code> detects a high bit (unescaped octets with the high <li><code>true</code> if <code>iocccsize</code> detects a high bit (unescaped octets with the high
bit set - octet value &gt;= 128); see bit set - octet value &gt;= 128); see
<a href="next/rules.html#rule-12-utf-8">Rule 12 UTF-8</a>, <a href="next/rules.html#rule-12---utf-8">Rule 12 - UTF-8</a>,
else <code>false</code>.</li> else <code>false</code>.</li>
</ul></li> </ul></li>
<li><p><code>nul_warning</code> (boolean)</p> <li><p><code>nul_warning</code> (boolean)</p>
@@ -2469,7 +2469,7 @@ else <code>false</code>.</li>
</ul> </ul>
<p><strong>IMPORTANT:</strong> if the <code>Makefile</code> file has no problems and this is <code>true</code> then <p><strong>IMPORTANT:</strong> if the <code>Makefile</code> file has no problems and this is <code>true</code> then
you stand a good chance of having your submission rejected for violating you stand a good chance of having your submission rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
<p>See the <p>See the
FAQ on “<a href="#makefile">Makefile</a>” FAQ on “<a href="#makefile">Makefile</a>”
for more information.</p></li> for more information.</p></li>
@@ -2479,7 +2479,7 @@ for more information.</p></li>
</ul> </ul>
<p><strong>IMPORTANT:</strong>: if the <code>Makefile</code> file does <strong>NOT</strong> have an <code>all</code> rule then <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 you stand a good chance of having your submission rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
<p>See the <p>See the
FAQ on “<a href="#makefile">Makefile</a>” FAQ on “<a href="#makefile">Makefile</a>”
for more information.</p></li> for more information.</p></li>
@@ -2490,7 +2490,7 @@ for more information.</p></li>
<p><strong>IMPORTANT:</strong> if the <code>Makefile</code> file does <strong>NOT</strong> have an <code>all</code> rule and this <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> 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 submission rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
<p>See the <p>See the
FAQ on “<a href="#makefile">Makefile</a>” FAQ on “<a href="#makefile">Makefile</a>”
for more information.</p></li> for more information.</p></li>
@@ -2501,7 +2501,7 @@ for more information.</p></li>
<p><strong>IMPORTANT:</strong> if the <code>Makefile</code> file does <strong>NOT</strong> have a <code>clean</code> rule and this <p><strong>IMPORTANT:</strong> if the <code>Makefile</code> file does <strong>NOT</strong> have a <code>clean</code> rule and this
boolean is <code>true</code> then you stand a good chance of having your submission boolean is <code>true</code> then you stand a good chance of having your submission
rejected for violating rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
<p>See the <p>See the
FAQ on “<a href="#makefile">Makefile</a>” FAQ on “<a href="#makefile">Makefile</a>”
for more information.</p></li> for more information.</p></li>
@@ -2512,7 +2512,7 @@ for more information.</p></li>
<p><strong>IMPORTANT:</strong> if the <code>Makefile</code> file does <strong>NOT</strong> have an <code>clobber</code> rule and this <p><strong>IMPORTANT:</strong> if the <code>Makefile</code> file does <strong>NOT</strong> have an <code>clobber</code> rule and this
boolean is <code>true</code> then you stand a good chance of having your submission boolean is <code>true</code> then you stand a good chance of having your submission
rejected for violating rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
<p>See the <p>See the
FAQ on “<a href="#makefile">Makefile</a>” FAQ on “<a href="#makefile">Makefile</a>”
for more information.</p></li> for more information.</p></li>
@@ -2523,7 +2523,7 @@ for more information.</p></li>
<p><strong>IMPORTANT:</strong> if the <code>Makefile</code> file does <strong>NOT</strong> have a <code>try</code> rule and this <p><strong>IMPORTANT:</strong> if the <code>Makefile</code> file does <strong>NOT</strong> have a <code>try</code> rule and this
boolean is <code>true</code> then you stand a good chance of having your submission boolean is <code>true</code> then you stand a good chance of having your submission
rejected for violating rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
<p>See the <p>See the
FAQ on “<a href="#makefile">Makefile</a>” FAQ on “<a href="#makefile">Makefile</a>”
for more information.</p></li> for more information.</p></li>
@@ -2549,7 +2549,7 @@ for more information.</li>
</ul> </ul>
<p><strong>IMPORTANT:</strong> if this is <strong>NOT</strong> the case you stand a <p><strong>IMPORTANT:</strong> if this is <strong>NOT</strong> the case you stand a
great chance of having your submission rejected for violating great chance of having your submission rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p></li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p></li>
<li><p><code>auth_JSON</code> (double quoted string)</p> <li><p><code>auth_JSON</code> (double quoted string)</p>
<ul> <ul>
<li>This <code>MUST</code> be <code>".auth.json"</code>, defined as <code>AUTH_JSON_FILENAME</code> in <li>This <code>MUST</code> be <code>".auth.json"</code>, defined as <code>AUTH_JSON_FILENAME</code> in
@@ -2562,7 +2562,7 @@ for more information.</li>
</ul> </ul>
<p><strong>IMPORTANT:</strong> if this is <strong>NOT</strong> the case you stand a great chance of having your <p><strong>IMPORTANT:</strong> if this is <strong>NOT</strong> the case you stand a great chance of having your
submission rejected for violating submission rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p></li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p></li>
<li><p><code>c_src</code> (double quoted string)</p> <li><p><code>c_src</code> (double quoted string)</p>
<ul> <ul>
<li>This <code>MUST</code> be <code>"prog.c"</code>, defined as <code>PROG_C_FILENAME</code> in <li>This <code>MUST</code> be <code>"prog.c"</code>, defined as <code>PROG_C_FILENAME</code> in
@@ -2572,7 +2572,7 @@ is your submission source code.</li>
</ul> </ul>
<p><strong>IMPORTANT:</strong> if this is <strong>NOT</strong> the case you stand a great chance of having your <p><strong>IMPORTANT:</strong> if this is <strong>NOT</strong> the case you stand a great chance of having your
submission rejected for violating submission rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p></li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p></li>
<li><p><code>Makefile</code> (double quoted string)</p> <li><p><code>Makefile</code> (double quoted string)</p>
<ul> <ul>
<li>This <code>MUST</code> be <code>"Makefile"</code>, defined as <code>MAKEFILE_FILENAME</code> in <li>This <code>MUST</code> be <code>"Makefile"</code>, defined as <code>MAKEFILE_FILENAME</code> in
@@ -2585,7 +2585,7 @@ for more information.</li>
</ul> </ul>
<p><strong>IMPORTANT:</strong> if this is <strong>NOT</strong> the case you stand a great chance of having your <p><strong>IMPORTANT:</strong> if this is <strong>NOT</strong> the case you stand a great chance of having your
submission rejected for violating submission rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p></li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p></li>
<li><p><code>remarks</code> (double quoted string)</p> <li><p><code>remarks</code> (double quoted string)</p>
<ul> <ul>
<li>This <code>MUST</code> be <code>"remarks.md"</code>, defined as <code>REMARKS_FILENAME</code> in <li>This <code>MUST</code> be <code>"remarks.md"</code>, defined as <code>REMARKS_FILENAME</code> in
@@ -2598,7 +2598,7 @@ for more information.</li>
</ul> </ul>
<p><strong>IMPORTANT:</strong> if this is <strong>NOT</strong> the case you stand a great chance of having your <p><strong>IMPORTANT:</strong> if this is <strong>NOT</strong> the case you stand a great chance of having your
submission rejected for violating submission rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p></li> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p></li>
</ul> </ul>
<p>The <code>manifest</code> <strong>array</strong> also <strong>OPTIONALLY</strong> has one or more of the field:</p> <p>The <code>manifest</code> <strong>array</strong> also <strong>OPTIONALLY</strong> has one or more of the field:</p>
<ul> <ul>
@@ -2611,7 +2611,7 @@ and <code>chksubmit</code> will verify this for you; it is <strong>ALSO</strong>
filenames are not unique, not POSIX plus + safe chars only, if they are the filenames are not unique, not POSIX plus + safe chars only, if they are the
wrong permission and various other things. In these cases you stand a great wrong permission and various other things. In these cases you stand a great
risk of having your submission rejected for violating risk of having your submission rejected for violating
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>! <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!
On the other hand, <strong>ONLY</strong> <code>mkiocccentry</code> will On the other hand, <strong>ONLY</strong> <code>mkiocccentry</code> will
verify that the files exist and can be read; <code>txzchk(1)</code> will <strong>NOT</strong> do verify that the files exist and can be read; <code>txzchk(1)</code> will <strong>NOT</strong> do
this for you as it only <strong>LISTS</strong> the tarball: it does <strong>NOT</strong> extract it. this for you as it only <strong>LISTS</strong> the tarball: it does <strong>NOT</strong> extract it.
@@ -2674,7 +2674,7 @@ out of range (see above for list). Two more examples would be if a field is
missing or if an unknown filed is in the file. In these cases (and any others missing or if an unknown filed is in the file. In these cases (and any others
that must be established as valid by <code>chksubmit</code>) your submission would be that must be established as valid by <code>chksubmit</code>) your submission would be
rejected for violating rejected for violating
Rule 17 Packaging](next/rules.html#rule-17-packaging), <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>,
and in particular and in particular
because <code>chksubmit</code> would not validate the <code>.info.json</code> file.</p> because <code>chksubmit</code> would not validate the <code>.info.json</code> file.</p>
<p>If you wish to <strong>verify</strong> that your <code>.info.json</code> file is valid <strong>JSON</strong> then see the <p>If you wish to <strong>verify</strong> that your <code>.info.json</code> file is valid <strong>JSON</strong> then see the
+61 -61
View File
@@ -26,7 +26,7 @@ This is FAQ version **28.2.24 2025-11-18**.
- **Q 1.4**: <a class="normal" href="#mkiocccentry_test">How can I check if my submission passes tests without having to answer questions?</a> - **Q 1.4**: <a class="normal" href="#mkiocccentry_test">How can I check if my submission passes tests without having to answer questions?</a>
- **Q 1.5**: <a class="normal" href="#extra-files">What are extra files and how may I include additional files beyond the max allowed?</a> - **Q 1.5**: <a class="normal" href="#extra-files">What are extra files and how may I include additional files beyond the max allowed?</a>
- **Q 1.6**: <a class="normal" href="#ai">May I use AI, LLM, Virtual coding assistants, or similar tools to write my submission?</a> - **Q 1.6**: <a class="normal" href="#ai">May I use AI, LLM, Virtual coding assistants, or similar tools to write my submission?</a>
- **Q 1.7**: <a class="normal" href="#rule17">What are the details behind Rule 17?</a> - **Q 1.7**: <a class="normal" href="#rule17">What are the details behind Rule 17 - Packaging?</a>
- **Q 1.8**: <a class="normal" href="#uuid">How can I avoid re-entering my UUID to mkiocccentry?</a> - **Q 1.8**: <a class="normal" href="#uuid">How can I avoid re-entering my UUID to mkiocccentry?</a>
- **Q 1.9**: <a class="normal" href="#submission_dir">How can I avoid having to move or delete my submission directory for the same workdir?</a> - **Q 1.9**: <a class="normal" href="#submission_dir">How can I avoid having to move or delete my submission directory for the same workdir?</a>
- **Q 1.10**: <a class="normal" href="#download_submission">Can I download my submission tarball from the submit server?</a> - **Q 1.10**: <a class="normal" href="#download_submission">Can I download my submission tarball from the submit server?</a>
@@ -38,7 +38,7 @@ This is FAQ version **28.2.24 2025-11-18**.
- **Q 2.1**: <a class="normal" href="#feedback">How can I comment or make a suggestion on IOCCC rules, guidelines and tools?</a> - **Q 2.1**: <a class="normal" href="#feedback">How can I comment or make a suggestion on IOCCC rules, guidelines and tools?</a>
- **Q 2.2**: <a class="normal" href="#warnings">Are there any compiler warnings that I should not worry about in my submissions?</a> - **Q 2.2**: <a class="normal" href="#warnings">Are there any compiler warnings that I should not worry about in my submissions?</a>
- **Q 2.3**: <a class="normal" href="#frequent-themes">What types of entries have been frequently submitted to the IOCCC?</a> - **Q 2.3**: <a class="normal" href="#frequent-themes">What types of entries have been frequently submitted to the IOCCC?</a>
- **Q 2.4**: <a class="normal" href="#rule_2_broken">How did an entry that breaks the size rule 2 win the IOCCC?</a> - **Q 2.4**: <a class="normal" href="#rule_2_broken">How did an entry win the IOCCC that breaks Rule 2 - Size?</a>
- **Q 2.5**: <a class="normal" href="#submissions">How many submissions do the judges receive for a given IOCCC?</a> - **Q 2.5**: <a class="normal" href="#submissions">How many submissions do the judges receive for a given IOCCC?</a>
- **Q 2.6**: <a class="normal" href="#judging_time">How much time does it take to judge the contest?</a> - **Q 2.6**: <a class="normal" href="#judging_time">How much time does it take to judge the contest?</a>
- **Q 2.7**: <a class="normal" href="#judging_rounds">How many judging rounds do you have?</a> - **Q 2.7**: <a class="normal" href="#judging_rounds">How many judging rounds do you have?</a>
@@ -215,7 +215,7 @@ This toolkit is from the [mkiocccentry
repo](https://github.com/ioccc-src/mkiocccentry) and it is **required** that you repo](https://github.com/ioccc-src/mkiocccentry) and it is **required** that you
use it to package your submission. Not doing so puts you at a great risk of use it to package your submission. Not doing so puts you at a great risk of
violating the [Rules](next/rules.html) and in particular violating the [Rules](next/rules.html) and in particular
[Rule 17 Packaging](next/rules.html#rule-17-packaging). [Rule 17 - Packaging](next/rules.html#rule-17---packaging).
Jump to: [top](#) Jump to: [top](#)
@@ -386,7 +386,7 @@ directory** will be created, with the name based on your IOCCC registration
username, which is **in the form of a UUID**, and submission number along with username, which is **in the form of a UUID**, and submission number along with
the timestamp; see the [rules](next/rules.html) for more details on this, and in the timestamp; see the [rules](next/rules.html) for more details on this, and in
particular particular
[Rule 17 Packaging](next/rules.html#rule-17-packaging). [Rule 17 - Packaging](next/rules.html#rule-17---packaging).
**IMPORTANT NOTE**: the tools that require other tools, `mkiocccentry(1)` and **IMPORTANT NOTE**: the tools that require other tools, `mkiocccentry(1)` and
`txzchk(1)`, will, as of version `2.0.2 2025-03-11`, search under `$PATH`. If `txzchk(1)`, will, as of version `2.0.2 2025-03-11`, search under `$PATH`. If
@@ -576,7 +576,7 @@ rounds; we look at the author name only if an entry wins. See the
- leaving the remark section empty (which would also indicate that you did not - leaving the remark section empty (which would also indicate that you did not
use `mkiocccentry(1)`, as it requires it to not be of size 0, though if you only use `mkiocccentry(1)`, as it requires it to not be of size 0, though if you only
include whitespace you would still be violating include whitespace you would still be violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)). [Rule 17 - Packaging](next/rules.html#rule-17---packaging)).
Jump to: [top](#) Jump to: [top](#)
@@ -635,12 +635,12 @@ for more details.
See the See the
FAQ on "[Rule 17](#rule17)" FAQ on "[Rule 17](#rule17)"
and and
[Rule 17 Packaging](next/rules.html#rule-17-packaging) [Rule 17 - Packaging](next/rules.html#rule-17---packaging)
itself. itself.
Do remember that if your submission requires different filenames, then you Do remember that if your submission requires different filenames, then you
**MUST** make a **COPY** of them in your `Makefile`. See also **MUST** make a **COPY** of them in your `Makefile`. See also
[Rule 5 Purity](next/rules.html#rule-5-purity). [Rule 5 - Purity](next/rules.html#rule-5---purity).
Jump to: [top](#) Jump to: [top](#)
@@ -852,12 +852,12 @@ itself is an extra file, meaning it counts **AS** an extra file.
This file does **NOT** need to pass the `txzchk(1)` tests; only your submission This file does **NOT** need to pass the `txzchk(1)` tests; only your submission
tarball needs to pass these tests. However see below if you do do this. tarball needs to pass these tests. However see below if you do do this.
Please pay careful attention to [Rule 17 Packaging](next/rules.html#rule-17-packaging) and in Please pay careful attention to [Rule 17 - Packaging](next/rules.html#rule-17---packaging) and in
particular the part about the maximum number of files per particular the part about the maximum number of files per
submission, which not only discusses the maximum submission, which not only discusses the maximum
number of files but also specific rules you must follow number of files but also specific rules you must follow
if you do include a tarball. Not following these points puts you at great risk if you do include a tarball. Not following these points puts you at great risk
of violating [Rule 17 Packaging](next/rules.html#rule-17-packaging)! of violating [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
Also, remember what the [guidelines](next/guidelines.html) say: Also, remember what the [guidelines](next/guidelines.html) say:
@@ -896,7 +896,7 @@ Jump to: [top](#)
<div id="rule17"> <div id="rule17">
### Q 1.7: What are details behind Rule 17? ### Q 1.7: What are details behind Rule 17 - Packaging?
</div> </div>
@@ -919,7 +919,7 @@ contains **IMPORTANT** tools and libraries such as:
- `chksubmit(1)` (which uses `jparse(3)` and is a wrapper to `chkentry(1)`) - `chksubmit(1)` (which uses `jparse(3)` and is a wrapper to `chkentry(1)`)
The above mentioned tools will help you verify that your submission The above mentioned tools will help you verify that your submission
conforms to [Rule 17 Packaging](next/rules.html#rule-17-packaging). Each of these tool has a `-h` conforms to [Rule 17 - Packaging](next/rules.html#rule-17---packaging). Each of these tool has a `-h`
option that provides command line help. For additional details of each tool, see option that provides command line help. For additional details of each tool, see
its man page, and in some cases, the [IOCCC guidelines](next/guidelines.html). its man page, and in some cases, the [IOCCC guidelines](next/guidelines.html).
@@ -981,7 +981,7 @@ for help.
The `remarks.md` **MUST** be a **non**-empty file in markdown format The `remarks.md` **MUST** be a **non**-empty file in markdown format
(`mkiocccentry(1)` only checks the file size but if you do not have any text in (`mkiocccentry(1)` only checks the file size but if you do not have any text in
it you still risk violating this rule). See also it you still risk violating this rule). See also
[Rule 17 Packaging](next/rules.html#rule-17-packaging) [Rule 17 - Packaging](next/rules.html#rule-17---packaging)
and our and our
FAQ on "[remarks.md](#remarks_md)", FAQ on "[remarks.md](#remarks_md)",
our our
@@ -1089,7 +1089,7 @@ permissions and `mkiocccentry(1)` does this for you. In particular: directories
`-r-xr-xr-x` (i.e. `0555`); and all other files **MUST** be `-r--r--r--` (i.e. `-r-xr-xr-x` (i.e. `0555`); and all other files **MUST** be `-r--r--r--` (i.e.
`0444`). If any file or directory does not have the correct permissions, your `0444`). If any file or directory does not have the correct permissions, your
submission **WILL** be rejected for violating submission **WILL** be rejected for violating
[Rule 17 Packaging](next/rules.html#rule17)! [Rule 17 - Packaging](next/rules.html#rule17)!
After `mkiocccentry(1)` creates the directories and copies the files with these After `mkiocccentry(1)` creates the directories and copies the files with these
modes, it also verifies them after the fact and if they are not correct it is an modes, it also verifies them after the fact and if they are not correct it is an
@@ -1097,10 +1097,10 @@ modes, it also verifies them after the fact and if they are not correct it is an
If you do need different permissions, then see the If you do need different permissions, then see the
FAQ on "[file permissions](#file_perms)". Also keep in mind FAQ on "[file permissions](#file_perms)". Also keep in mind
[Rule 4 Files](next/rules.html#rule-4-files), [Rule 4 - Files](next/rules.html#rule-4---files),
[Rule 5 Purity](next/rules.html#rule-5-purity), [Rule 5 - Purity](next/rules.html#rule-5---purity),
and and
[Rule 16 Anonymous](next/rules.html#rule-16-anonymous). [Rule 16 - Anonymous](next/rules.html#rule-16---anonymous).
The `txzchk(1)` tool will also verify file/directory permissions (and many other The `txzchk(1)` tool will also verify file/directory permissions (and many other
things) for you, and so will `chksubmit(1)` (along with other checks on files and things) for you, and so will `chksubmit(1)` (along with other checks on files and
@@ -1115,9 +1115,9 @@ The tarball filename **MUST** pass `fnamchk(1)`; the tool `txzchk(1)`
will run `fnamchk(1)` as part of its algorithm. If you use `mkiocccentry(1)` will run `fnamchk(1)` as part of its algorithm. If you use `mkiocccentry(1)`
there should be no problem but if you were to package things manually it is there should be no problem but if you were to package things manually it is
possible there could be a problem and this poses a big risk of violating possible there could be a problem and this poses a big risk of violating
[Rule 4 Files](next/rules.html#rule-4-files) [Rule 4 - Files](next/rules.html#rule-4---files)
or or
[Rule 17 Packaging](next/rules.html#rule17). [Rule 17 - Packaging](next/rules.html#rule17).
The `fnamchk(1)`, which `txzchk(1)` executes, will verify that the The `fnamchk(1)`, which `txzchk(1)` executes, will verify that the
@@ -1127,9 +1127,9 @@ discrepancy as an error and exit with non-zero.
These checks **MUST PASS**. If they do not you stand a significant chance of These checks **MUST PASS**. If they do not you stand a significant chance of
having your submission rejected for violating having your submission rejected for violating
[Rule 4 Files](next/rules.html#rule-4-files) [Rule 4 - Files](next/rules.html#rule-4---files)
or or
[Rule 17 Packaging](next/rules.html#rule17). [Rule 17 - Packaging](next/rules.html#rule17).
<div id="max-files"> <div id="max-files">
#### Maximum number of files per submission #### Maximum number of files per submission
@@ -1170,9 +1170,9 @@ The `mkiocccentry(1)` tool uses the v7 format. For instance you might try:
<hr style="width:50%;text-align:left;margin-left:0"> <hr style="width:50%;text-align:left;margin-left:0">
**IMPORTANT**: where **IMPORTANT**: where
[Rule 4 Files](next/rules.html#rule-4-files), [Rule 4 - Files](next/rules.html#rule-4---files),
and and
[Rule 17 Packaging](next/rules.html#rule-17-packaging). [Rule 17 - Packaging](next/rules.html#rule-17---packaging).
and the tools from the latest and the tools from the latest
release of the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry) release of the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry)
conflict, the [IOCCC judges](judges.html) will use their best judgment which conflict, the [IOCCC judges](judges.html) will use their best judgment which
@@ -1213,9 +1213,9 @@ for help here and also read our
FAQ on "[mkiocccentry repo bugs](#mkiocccentry_bugs)". FAQ on "[mkiocccentry repo bugs](#mkiocccentry_bugs)".
At the risk of stating the obvious: submissions that violate At the risk of stating the obvious: submissions that violate
[Rule 4 Files](next/rules.html#rule-4-files), [Rule 4 - Files](next/rules.html#rule-4---files),
or or
[Rule 17 Packaging](next/rules.html#rule-17-packaging) [Rule 17 - Packaging](next/rules.html#rule-17---packaging)
**WILL BE REJECTED**, so **BE SURE** to use the latest release of the **WILL BE REJECTED**, so **BE SURE** to use the latest release of the
[mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry), to form and test [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry), to form and test
your submission's xz compressed tarball. Do **NOT** assume you have the most your submission's xz compressed tarball. Do **NOT** assume you have the most
@@ -1575,7 +1575,7 @@ Jump to: [top](#)
<div id="rule_2_broken"> <div id="rule_2_broken">
<div id="rule_breaking_entry"> <div id="rule_breaking_entry">
### Q 2.4: How did an entry that breaks the size rule 2 win the IOCCC? ### Q 2.4: How did an entry win the IOCCC that breaks Rule 2 - Size?
</div> </div>
</div> </div>
@@ -1874,9 +1874,9 @@ two JSON files, `.auth.json` and `.info.json` as well as the `prog.c`,
`.info.json` manifest. (Okay there is an option to skip files but this is for `.info.json` manifest. (Okay there is an option to skip files but this is for
the judges **ONLY**; use of this option to validate your submission puts you at the judges **ONLY**; use of this option to validate your submission puts you at
a great risk of violating a great risk of violating
[Rule 4 Files](next/rules.html#rule-4-files), [Rule 4 - Files](next/rules.html#rule-4---files),
or or
[Rule 17 Packaging](next/rules.html#rule-17-packaging)!). [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!).
As an example, if your submission directory is As an example, if your submission directory is
`00000000-0000-4000-0000-000000000000-3/` then you should run the following `00000000-0000-4000-0000-000000000000-3/` then you should run the following
@@ -1903,9 +1903,9 @@ FAQ on "[.auth.json](#auth_json)"
and the and the
FAQ on "[.info.json](#info_json)" FAQ on "[.info.json](#info_json)"
as well as as well as
[Rule 4 Files](next/rules.html#rule-4-files), [Rule 4 - Files](next/rules.html#rule-4---files),
and and
[Rule 17 Packaging](next/rules.html#rule-17-packaging) [Rule 17 - Packaging](next/rules.html#rule-17---packaging)
for more information. for more information.
**NOTE**: the `chksubmit(1)` tool invokes `chkentry(1)` but as a contestant you **NOTE**: the `chksubmit(1)` tool invokes `chkentry(1)` but as a contestant you
@@ -1999,12 +1999,12 @@ In order of the file's contents we describe each required field, below:
* The IOCCC contestant ID used as a username in the form of **in the form of * The IOCCC contestant ID used as a username in the form of **in the form of
a UUID** and submission number; see the [Rules](next/rules.html) for more details a UUID** and submission number; see the [Rules](next/rules.html) for more details
on this, and in particular on this, and in particular
[Rule 17 Packaging](next/rules.html#rule-17-packaging). [Rule 17 - Packaging](next/rules.html#rule-17---packaging).
**NOTE:** if the contest ID is **NOT** in this format then `fnamchk` will **NOTE:** if the contest ID is **NOT** in this format then `fnamchk` will
report it as an **error** and your submission **WILL BE** rejected for report it as an **error** and your submission **WILL BE** rejected for
violating violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging). [Rule 17 - Packaging](next/rules.html#rule-17---packaging).
- `tarball` (double quoted string) - `tarball` (double quoted string)
* The xz compressed tarball filename. * The xz compressed tarball filename.
@@ -2012,10 +2012,10 @@ In order of the file's contents we describe each required field, below:
**IMPORTANT:** this **MUST** match the actual tarball's **filename** in order for **IMPORTANT:** this **MUST** match the actual tarball's **filename** in order for
this to be valid. If there is a mismatch you stand a great risk of having this to be valid. If there is a mismatch you stand a great risk of having
your submission rejected for violating your submission rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
Moreover, it is possible that `txzchk` will report a problem through Moreover, it is possible that `txzchk` will report a problem through
`fnamchk(1)` which also puts you at great risk of violating `fnamchk(1)` which also puts you at great risk of violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging). The [Rule 17 - Packaging](next/rules.html#rule-17---packaging). The
`txzchk(1)` tool will use the output of `fnamchk` to `txzchk(1)` tool will use the output of `fnamchk` to
obtain the correct directory _name_ in the tarball; if `fnamchk` fails to obtain the correct directory _name_ in the tarball; if `fnamchk` fails to
validate your filename, or if you have the wrong directory name in the validate your filename, or if you have the wrong directory name in the
@@ -2030,7 +2030,7 @@ In order of the file's contents we describe each required field, below:
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If
this is not the case you stand a great risk of having your submission this is not the case you stand a great risk of having your submission
rejected for violating rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging). [Rule 17 - Packaging](next/rules.html#rule-17---packaging).
- `author_count` (number) - `author_count` (number)
* How many authors this submission has. * How many authors this submission has.
@@ -2095,7 +2095,7 @@ author(s) of the submission:
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If
this is not the case you stand a great risk of having your submission this is not the case you stand a great risk of having your submission
rejected for violating rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging). [Rule 17 - Packaging](next/rules.html#rule-17---packaging).
**NOTE:** an **affiliation** does **NOT** have any affect on whether you will win or not. **NOTE:** an **affiliation** does **NOT** have any affect on whether you will win or not.
@@ -2180,9 +2180,9 @@ At the risk of stating the obvious, if your `.auth.json` file is invalid JSON or
is reported invalid by `chksubmit(1)`, or if your submission directory is is reported invalid by `chksubmit(1)`, or if your submission directory is
reported invalid by `chksubmit(1)`, your submission will almost certainly be reported invalid by `chksubmit(1)`, your submission will almost certainly be
rejected for violating the [Rules](next/rules.html) and in particular rejected for violating the [Rules](next/rules.html) and in particular
[Rule 4 Files](next/rules.html#rule-4-files), [Rule 4 - Files](next/rules.html#rule-4---files),
and and
[Rule 17 Packaging](next/rules.html#rule-17-packaging). [Rule 17 - Packaging](next/rules.html#rule-17---packaging).
An obvious example where `chksubmit(1)` would fail to validate `.auth.json` is if An obvious example where `chksubmit(1)` would fail to validate `.auth.json` is if
there is a mismatch of type in the JSON file with what is expected, for there is a mismatch of type in the JSON file with what is expected, for
@@ -2192,9 +2192,9 @@ out of range (see above for list). Two more examples would be if a field is
missing or if an unknown filed is in the file. In these cases (and any others missing or if an unknown filed is in the file. In these cases (and any others
that must be established as valid by `chksubmit(1)`) your submission would be that must be established as valid by `chksubmit(1)`) your submission would be
rejected for violating rejected for violating
[Rule 4 Files](next/rules.html#rule-4-files), [Rule 4 - Files](next/rules.html#rule-4---files),
and and
[Rule 17 Packaging](next/rules.html#rule-17-packaging) [Rule 17 - Packaging](next/rules.html#rule-17---packaging)
and in particular and in particular
because `chksubmit(1)` would not validate the `.auth.json` file (and maybe other because `chksubmit(1)` would not validate the `.auth.json` file (and maybe other
things too). things too).
@@ -2318,7 +2318,7 @@ In order of the file's contents we describe each required field, below:
* The IOCCC contestant ID used as a username in the form of **in the form of * The IOCCC contestant ID used as a username in the form of **in the form of
a UUID** and submission number; see the [rules](next/rules.html) for more details a UUID** and submission number; see the [rules](next/rules.html) for more details
on this, and in particular on this, and in particular
[Rule 17 Packaging](next/rules.html#rule-17-packaging). [Rule 17 - Packaging](next/rules.html#rule-17---packaging).
- `submit_slot` (number) - `submit_slot` (number)
* The submission number. * The submission number.
@@ -2329,7 +2329,7 @@ In order of the file's contents we describe each required field, below:
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If
this is not the case you stand a great risk of having your submission this is not the case you stand a great risk of having your submission
rejected for violating rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging). [Rule 17 - Packaging](next/rules.html#rule-17---packaging).
- `title` (double quoted string) - `title` (double quoted string)
* A short name (length >= 1 **THROUGH** `MAX_TITLE_LEN`, defined in * A short name (length >= 1 **THROUGH** `MAX_TITLE_LEN`, defined in
@@ -2339,7 +2339,7 @@ In order of the file's contents we describe each required field, below:
**IMPORTANT:** if this is **NOT** the case you stand a great risk of having your submission **IMPORTANT:** if this is **NOT** the case you stand a great risk of having your submission
rejected for violating rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
- `abstract` (double quoted string) - `abstract` (double quoted string)
* A one line summary of your submission, with a length of 1 **THROUGH** * A one line summary of your submission, with a length of 1 **THROUGH**
@@ -2351,7 +2351,7 @@ In order of the file's contents we describe each required field, below:
**IMPORTANT:** if your abstract is 0 in length or > the maximum abstract length you **IMPORTANT:** if your abstract is 0 in length or > the maximum abstract length you
stand a great risk of having your submission rejected for violating stand a great risk of having your submission rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
- `tarball` (double quoted string) - `tarball` (double quoted string)
* The xz compressed tarball filename. * The xz compressed tarball filename.
@@ -2359,10 +2359,10 @@ In order of the file's contents we describe each required field, below:
**IMPORTANT:** this **MUST** match the actual tarball's **filename** in order for **IMPORTANT:** this **MUST** match the actual tarball's **filename** in order for
this to be valid. If there is a mismatch you stand a great risk of having this to be valid. If there is a mismatch you stand a great risk of having
your submission rejected for violating your submission rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
Moreover, it is possible that `txzchk` will report a problem through Moreover, it is possible that `txzchk` will report a problem through
`fnamchk(1)` which also puts you at great risk of violating `fnamchk(1)` which also puts you at great risk of violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging). [Rule 17 - Packaging](next/rules.html#rule-17---packaging).
The `txzchk(1)` tool will use the output of `fnamchk` to The `txzchk(1)` tool will use the output of `fnamchk` to
obtain the correct directory _name_ in the tarball; if `fnamchk` fails to obtain the correct directory _name_ in the tarball; if `fnamchk` fails to
validate your filename, or if you have the wrong directory name in the validate your filename, or if you have the wrong directory name in the
@@ -2397,7 +2397,7 @@ In order of the file's contents we describe each required field, below:
calculated size is **NOT** calculated size is **NOT**
violated but this is `true` then you stand a good chance of having your violated but this is `true` then you stand a good chance of having your
submission rejected for violating submission rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging). [Rule 17 - Packaging](next/rules.html#rule-17---packaging).
- `rule_2a_mismatch` (boolean) - `rule_2a_mismatch` (boolean)
* `true` if * `true` if
@@ -2415,12 +2415,12 @@ In order of the file's contents we describe each required field, below:
calculated size is **NOT** calculated size is **NOT**
violated but this is `true` then you stand a good chance of having your violated but this is `true` then you stand a good chance of having your
submission rejected for violating submission rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging). [Rule 17 - Packaging](next/rules.html#rule-17---packaging).
- `highbit_warning` (boolean) - `highbit_warning` (boolean)
* `true` if `iocccsize` detects a high bit (unescaped octets with the high * `true` if `iocccsize` detects a high bit (unescaped octets with the high
bit set - octet value >= 128); see bit set - octet value >= 128); see
[Rule 12 UTF-8](next/rules.html#rule-12-utf-8), [Rule 12 - UTF-8](next/rules.html#rule-12---utf-8),
else `false`. else `false`.
- `nul_warning` (boolean) - `nul_warning` (boolean)
@@ -2443,7 +2443,7 @@ In order of the file's contents we describe each required field, below:
**IMPORTANT:** if the `Makefile` file has no problems and this is `true` then **IMPORTANT:** if the `Makefile` file has no problems and this is `true` then
you stand a good chance of having your submission rejected for violating you stand a good chance of having your submission rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
See the See the
FAQ on "[Makefile](#makefile)" FAQ on "[Makefile](#makefile)"
@@ -2454,7 +2454,7 @@ In order of the file's contents we describe each required field, below:
**IMPORTANT:**: if the `Makefile` file does **NOT** have an `all` rule then **IMPORTANT:**: if the `Makefile` file does **NOT** have an `all` rule then
you stand a good chance of having your submission rejected for violating you stand a good chance of having your submission rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
See the See the
FAQ on "[Makefile](#makefile)" FAQ on "[Makefile](#makefile)"
@@ -2466,7 +2466,7 @@ In order of the file's contents we describe each required field, below:
**IMPORTANT:** if the `Makefile` file does **NOT** have an `all` rule and this **IMPORTANT:** if the `Makefile` file does **NOT** have an `all` rule and this
boolean 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 submission rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
See the See the
FAQ on "[Makefile](#makefile)" FAQ on "[Makefile](#makefile)"
@@ -2478,7 +2478,7 @@ In order of the file's contents we describe each required field, below:
**IMPORTANT:** if the `Makefile` file does **NOT** have a `clean` rule and this **IMPORTANT:** if the `Makefile` file does **NOT** have a `clean` rule and this
boolean is `true` then you stand a good chance of having your submission boolean is `true` then you stand a good chance of having your submission
rejected for violating rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
See the See the
FAQ on "[Makefile](#makefile)" FAQ on "[Makefile](#makefile)"
@@ -2490,7 +2490,7 @@ In order of the file's contents we describe each required field, below:
**IMPORTANT:** if the `Makefile` file does **NOT** have an `clobber` rule and this **IMPORTANT:** if the `Makefile` file does **NOT** have an `clobber` rule and this
boolean is `true` then you stand a good chance of having your submission boolean is `true` then you stand a good chance of having your submission
rejected for violating rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
See the See the
FAQ on "[Makefile](#makefile)" FAQ on "[Makefile](#makefile)"
@@ -2502,7 +2502,7 @@ In order of the file's contents we describe each required field, below:
**IMPORTANT:** if the `Makefile` file does **NOT** have a `try` rule and this **IMPORTANT:** if the `Makefile` file does **NOT** have a `try` rule and this
boolean is `true` then you stand a good chance of having your submission boolean is `true` then you stand a good chance of having your submission
rejected for violating rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
See the See the
FAQ on "[Makefile](#makefile)" FAQ on "[Makefile](#makefile)"
@@ -2528,7 +2528,7 @@ The `mkiocccentry(1)` tool will write it in this order:
**IMPORTANT:** if this is **NOT** the case you stand a **IMPORTANT:** if this is **NOT** the case you stand a
great chance of having your submission rejected for violating great chance of having your submission rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
- `auth_JSON` (double quoted string) - `auth_JSON` (double quoted string)
* This `MUST` be `".auth.json"`, defined as `AUTH_JSON_FILENAME` in * This `MUST` be `".auth.json"`, defined as `AUTH_JSON_FILENAME` in
@@ -2541,7 +2541,7 @@ The `mkiocccentry(1)` tool will write it in this order:
**IMPORTANT:** if this is **NOT** the case you stand a great chance of having your **IMPORTANT:** if this is **NOT** the case you stand a great chance of having your
submission rejected for violating submission rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
- `c_src` (double quoted string) - `c_src` (double quoted string)
* This `MUST` be `"prog.c"`, defined as `PROG_C_FILENAME` in * This `MUST` be `"prog.c"`, defined as `PROG_C_FILENAME` in
@@ -2551,7 +2551,7 @@ The `mkiocccentry(1)` tool will write it in this order:
**IMPORTANT:** if this is **NOT** the case you stand a great chance of having your **IMPORTANT:** if this is **NOT** the case you stand a great chance of having your
submission rejected for violating submission rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
- `Makefile` (double quoted string) - `Makefile` (double quoted string)
* This `MUST` be `"Makefile"`, defined as `MAKEFILE_FILENAME` in * This `MUST` be `"Makefile"`, defined as `MAKEFILE_FILENAME` in
@@ -2564,7 +2564,7 @@ The `mkiocccentry(1)` tool will write it in this order:
**IMPORTANT:** if this is **NOT** the case you stand a great chance of having your **IMPORTANT:** if this is **NOT** the case you stand a great chance of having your
submission rejected for violating submission rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
- `remarks` (double quoted string) - `remarks` (double quoted string)
* This `MUST` be `"remarks.md"`, defined as `REMARKS_FILENAME` in * This `MUST` be `"remarks.md"`, defined as `REMARKS_FILENAME` in
@@ -2577,7 +2577,7 @@ The `mkiocccentry(1)` tool will write it in this order:
**IMPORTANT:** if this is **NOT** the case you stand a great chance of having your **IMPORTANT:** if this is **NOT** the case you stand a great chance of having your
submission rejected for violating submission rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
The `manifest` **array** also **OPTIONALLY** has one or more of the field: The `manifest` **array** also **OPTIONALLY** has one or more of the field:
@@ -2590,7 +2590,7 @@ The `manifest` **array** also **OPTIONALLY** has one or more of the field:
filenames are not unique, not POSIX plus + safe chars only, if they are the filenames are not unique, not POSIX plus + safe chars only, if they are the
wrong permission and various other things. In these cases you stand a great wrong permission and various other things. In these cases you stand a great
risk of having your submission rejected for violating risk of having your submission rejected for violating
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
On the other hand, **ONLY** `mkiocccentry` will On the other hand, **ONLY** `mkiocccentry` will
verify that the files exist and can be read; `txzchk(1)` will **NOT** do verify that the files exist and can be read; `txzchk(1)` will **NOT** do
this for you as it only **LISTS** the tarball: it does **NOT** extract it. this for you as it only **LISTS** the tarball: it does **NOT** extract it.
@@ -2654,7 +2654,7 @@ out of range (see above for list). Two more examples would be if a field is
missing or if an unknown filed is in the file. In these cases (and any others missing or if an unknown filed is in the file. In these cases (and any others
that must be established as valid by `chksubmit`) your submission would be that must be established as valid by `chksubmit`) your submission would be
rejected for violating rejected for violating
Rule 17 Packaging](next/rules.html#rule-17-packaging), [Rule 17 - Packaging](next/rules.html#rule-17---packaging),
and in particular and in particular
because `chksubmit` would not validate the `.info.json` file. because `chksubmit` would not validate the `.info.json` file.
+2 -2
View File
@@ -747,11 +747,11 @@ as well as a critical fix for installing on BSD based systems.</p>
and compile the <a href="faq.html#mkiocccentry">mkiocccentry tool set</a>. You may also wish to install this code. and compile the <a href="faq.html#mkiocccentry">mkiocccentry tool set</a>. You may also wish to install this code.
See also the <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/FAQ.md">mkiocccentry FAQ</a> for more information.</p> See also the <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/FAQ.md">mkiocccentry FAQ</a> for more information.</p>
<h2 id="section-17">2024-12-30</h2> <h2 id="section-17">2024-12-30</h2>
<p>The IOCCC <a href="next/rules.html#rule-12-utf-8">Rule 12 UTF-8</a> no longer discourages the <p>The IOCCC <a href="next/rules.html#rule-12---utf-8">Rule 12 - UTF-8</a> no longer discourages the
use of UTF-8 in C source. Since the days of <code>-std=gnu17</code> compilers, use of UTF-8 in C source. Since the days of <code>-std=gnu17</code> compilers,
UTF-8 characters do not impose a compiler problem. The related guideline UTF-8 characters do not impose a compiler problem. The related guideline
states that “Rule 13 no longer discourages the use of UTF-8 +characters in C code”.</p> states that “Rule 13 no longer discourages the use of UTF-8 +characters in C code”.</p>
<p>The IOCCC <a href="next/rules.html#rule-8-submission">Rule 8 Submission</a> wording has been fixed. It no longer <p>The IOCCC <a href="next/rules.html#rule-8---submission">Rule 8 - Submission</a> wording has been fixed. It no longer
states that email will be sent. Instead it talks about potential slot comment states that email will be sent. Instead it talks about potential slot comment
modifications as means to tell the submitter that their submission was received.</p> modifications as means to tell the submitter that their submission was received.</p>
<p>All of the import IOCCC dates within the <a href="next/rules.html">IOCCC rules</a> <p>All of the import IOCCC dates within the <a href="next/rules.html">IOCCC rules</a>
+2 -2
View File
@@ -406,12 +406,12 @@ See also the [mkiocccentry FAQ](https://github.com/ioccc-src/mkiocccentry/blob/m
## 2024-12-30 ## 2024-12-30
The IOCCC [Rule 12 UTF-8](next/rules.html#rule-12-utf-8) no longer discourages the The IOCCC [Rule 12 - UTF-8](next/rules.html#rule-12---utf-8) no longer discourages the
use of UTF-8 in C source. Since the days of `-std=gnu17` compilers, use of UTF-8 in C source. Since the days of `-std=gnu17` compilers,
UTF-8 characters do not impose a compiler problem. The related guideline UTF-8 characters do not impose a compiler problem. The related guideline
states that "Rule 13 no longer discourages the use of UTF-8 +characters in C code". states that "Rule 13 no longer discourages the use of UTF-8 +characters in C code".
The IOCCC [Rule 8 Submission](next/rules.html#rule-8-submission) wording has been fixed. It no longer The IOCCC [Rule 8 - Submission](next/rules.html#rule-8---submission) wording has been fixed. It no longer
states that email will be sent. Instead it talks about potential slot comment states that email will be sent. Instead it talks about potential slot comment
modifications as means to tell the submitter that their submission was received. modifications as means to tell the submitter that their submission was received.
+29 -29
View File
@@ -570,12 +570,12 @@ may change from contest to contest.</p>
</ul> </ul>
<p>Uploading a tarball not formed by <code>mkiocccentry(1)</code> puts you at a very big risk of <p>Uploading a tarball not formed by <code>mkiocccentry(1)</code> puts you at a very big risk of
violating violating
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>, <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>,
especially as <code>mkiocccentry(1)</code> does a especially as <code>mkiocccentry(1)</code> does a
great number of things that are required, and it also runs many checks, and if great number of things that are required, and it also runs many checks, and if
any of those checks fail, you are at a very great risk of having your submission any of those checks fail, you are at a very great risk of having your submission
rejected for violating rejected for violating
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p> <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p>
<p>We <strong>STRONGLY</strong> recommend you <strong>do</strong> install the <p>We <strong>STRONGLY</strong> recommend you <strong>do</strong> install the
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>.</p> <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>.</p>
<p><strong>IMPORTANT NOTE</strong>: the tools that require other tools, <code>mkiocccentry(1)</code> and <p><strong>IMPORTANT NOTE</strong>: the tools that require other tools, <code>mkiocccentry(1)</code> and
@@ -626,7 +626,7 @@ index.html</a>:
<p class="leftbar"> <p class="leftbar">
<blockquote> <blockquote>
<p><strong>IMPORTANT HINT</strong>: Only 3 of the 23 <strong>IOCCC28 winners</strong> came close to the <p><strong>IMPORTANT HINT</strong>: Only 3 of the 23 <strong>IOCCC28 winners</strong> came close to the
<a href="rules.html#rule-2-size">Rule 2 Size</a> limit. <a href="rules.html#rule-2---size">Rule 2 - Size</a> limit.
Large code size isn’t Large code size isn’t
everything. :-) Those submitting to future contents should <strong>take a careful everything. :-) Those submitting to future contents should <strong>take a careful
note</strong> of that fact.</p> note</strong> of that fact.</p>
@@ -638,7 +638,7 @@ note</strong> of that fact.</p>
the IOCCC size the IOCCC size
<a href="rules.html#rule-2b-net-size">Rule 2b Next Size</a>.</p> <a href="rules.html#rule-2b-net-size">Rule 2b Next Size</a>.</p>
<p>To check your code against <p>To check your code against
<a href="rules.html#rule-2-size">Rule 2 Size</a>, use the <code>iocccentry(1)</code> tool. <a href="rules.html#rule-2---size">Rule 2 - Size</a>, use the <code>iocccentry(1)</code> tool.
For example:</p> For example:</p>
<pre><code> iocccsize prog.c</code></pre> <pre><code> iocccsize prog.c</code></pre>
<p>The IOCCC size tool algorithm can be summarized as follows:</p> <p>The IOCCC size tool algorithm can be summarized as follows:</p>
@@ -666,7 +666,7 @@ BESM-6, and 2503 is a decimal anagram of 2053.</p>
<p>Take note that this secondary limit imposed by the IOCCC size tool <p>Take note that this secondary limit imposed by the IOCCC size tool
obviates some of the need to <code>#define</code> C reserved words in an effort obviates some of the need to <code>#define</code> C reserved words in an effort
to get around the size limits of to get around the size limits of
<a href="rules.html#rule-2-size">Rule 2 Size</a>.</p> <a href="rules.html#rule-2---size">Rule 2 - Size</a>.</p>
<p>Yes Virginia, <strong>that is a hint</strong>!</p> <p>Yes Virginia, <strong>that is a hint</strong>!</p>
<p>The <strong>official locale</strong> of the <strong>IOCCC</strong> is <strong>C</strong>.</p> <p>The <strong>official locale</strong> of the <strong>IOCCC</strong> is <strong>C</strong>.</p>
<p class="leftbar"> <p class="leftbar">
@@ -774,7 +774,7 @@ misleading comments and variable names might be a <strong>VERY GOOD START</stron
to a great submission!</p> to a great submission!</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<h1 id="mkiocccentry"><code>mkiocccentry</code></h1> <h1 id="mkiocccentry"><code>mkiocccentry</code></h1>
<p><a href="rules.html#rule-17-packaging">Rule 17 Packaging</a> <p><a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>
(the <code>mkiocccentry(1)</code> rule) states that (the <code>mkiocccentry(1)</code> rule) states that
you <strong>REALLY SHOULD</strong> use the <code>mkiocccentry(1)</code> tool to package your submission tarball.</p> you <strong>REALLY SHOULD</strong> use the <code>mkiocccentry(1)</code> tool to package your submission tarball.</p>
<p>See the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a> <p>See the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>
@@ -825,7 +825,7 @@ then you will have to specify the options (such as paths) for the tools that are
<p>Make sure you have <p>Make sure you have
the latest version of of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a> the latest version of of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
so that you do not violate so that you do not violate
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a> <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>
by mistake.</p> by mistake.</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="mkiocccentry-synopsis"> <div id="mkiocccentry-synopsis">
@@ -853,7 +853,7 @@ for even more information.</p>
execute one or more additional tools.</p> execute one or more additional tools.</p>
<h2 id="iocccsize"><code>iocccsize</code></h2> <h2 id="iocccsize"><code>iocccsize</code></h2>
<p><code>mkiocccentry(1)</code> will use code from <code>iocccsize(1)</code> which detects a number of <p><code>mkiocccentry(1)</code> will use code from <code>iocccsize(1)</code> which detects a number of
issues (such as <a href="rules.html#rule-2-size">Rule 2 Size</a>) that you may ignore, if you wish, as issues (such as <a href="rules.html#rule-2---size">Rule 2 - Size</a>) that you may ignore, if you wish, as
noted above.</p> noted above.</p>
<p>In other words, you no longer need to run <code>iocccsize</code> manually. However, the <p>In other words, you no longer need to run <code>iocccsize</code> manually. However, the
checks described above are still made but through the <code>mkiocccentry(1)</code> tool itself.</p> checks described above are still made but through the <code>mkiocccentry(1)</code> tool itself.</p>
@@ -934,7 +934,7 @@ do install</em> the libraries from their respective repos, it/they will <strong>
used</strong> when compiling the <code>mkiocccentry</code> tools. This is important to used</strong> when compiling the <code>mkiocccentry</code> tools. This is important to
make sure that you’re using the correct versions, which is also verified by make sure that you’re using the correct versions, which is also verified by
<code>chksubmit</code> (in the JSON files created by <code>mkiocccentry(1)</code>). See <code>chksubmit</code> (in the JSON files created by <code>mkiocccentry(1)</code>). See
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p> <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
<p class="leftbar"> <p class="leftbar">
We <strong>HIGHLY</strong> recommend you install the <code>mkiocccentry</code> toolkit, however. We <strong>HIGHLY</strong> recommend you install the <code>mkiocccentry</code> toolkit, however.
</p> </p>
@@ -968,7 +968,7 @@ page. You might just find a fun option if you do either of these!</p>
<p>Of course, as <code>txzchk</code> does not extract the tarball, it is possible that if you <p>Of course, as <code>txzchk</code> does not extract the tarball, it is possible that if you
manually package your submission tarball and/or find and exploit a missing manually package your submission tarball and/or find and exploit a missing
check, you could still be violating check, you could still be violating
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p> <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p>
<div id="extra-files"> <div id="extra-files">
<h2 id="including-optional-and-extra-files">Including optional and extra files</h2> <h2 id="including-optional-and-extra-files">Including optional and extra files</h2>
</div> </div>
@@ -984,7 +984,7 @@ file</em>. The non-extra files are considered <em>free files</em>.
<p class="leftbar"> <p class="leftbar">
Of course any dot file that is not <code>.auth.json</code> and <code>.info.json</code> will result in Of course any dot file that is not <code>.auth.json</code> and <code>.info.json</code> will result in
a violation of a violation of
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>, <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>,
regardless of its depth. regardless of its depth.
</p> </p>
<p>If you use an optional filename for something other than their intended use <p>If you use an optional filename for something other than their intended use
@@ -1016,12 +1016,12 @@ The <code>mkiocccentry(1)</code> tool creates a v7 format tarball to prevent thi
do the same like:</p> do the same like:</p>
<pre><code> tar --format=v7 -cJf foo.txz directory</code></pre> <pre><code> tar --format=v7 -cJf foo.txz directory</code></pre>
<p>See <p>See
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a> <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>
and also the and also the
FAQ on “<a href="../faq.html#max-files">maximum number of files</a>”.</p> FAQ on “<a href="../faq.html#max-files">maximum number of files</a>”.</p>
<p>If you do not follow these points, you <p>If you do not follow these points, you
are at a great risk of violating are at a great risk of violating
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p> <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
<p><strong>NOTE</strong>: if you want to include a test-suite that requires a lot of files, <p><strong>NOTE</strong>: if you want to include a test-suite that requires a lot of files,
please suggest this in your <code>remarks.md</code> and if your submission wins it can please suggest this in your <code>remarks.md</code> and if your submission wins it can
be done. In other words you should NOT use a tarball for a test-suite unless you be done. In other words you should NOT use a tarball for a test-suite unless you
@@ -1036,7 +1036,7 @@ FAQ on “<a href="../faq.html#txzchk">txzchk</a>”.</p>
<p>As an important part of its algorithm, <a href="#txzchk">txzchk(1)</a> directly executes <p>As an important part of its algorithm, <a href="#txzchk">txzchk(1)</a> directly executes
<code>fnamchk(1)</code>. If the filename is invalid (or the filename does not match the <code>fnamchk(1)</code>. If the filename is invalid (or the filename does not match the
directory name of the tarball) then it is an <strong>error</strong> and you risk violating directory name of the tarball) then it is an <strong>error</strong> and you risk violating
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>. <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>.
Nevertheless, you can run the tool manually, Nevertheless, you can run the tool manually,
should you wish to.</p> should you wish to.</p>
<p>For more information on <code>fnamchk</code> and how to manually validate your submission <p>For more information on <code>fnamchk</code> and how to manually validate your submission
@@ -1044,7 +1044,7 @@ tarball filename, see the
FAQ on “<a href="../faq.html#fnamchk">fnamchk</a>”.</p> FAQ on “<a href="../faq.html#fnamchk">fnamchk</a>”.</p>
<p>It is extremely unlikely that <code>fnamchk(1)</code> reporting an invalid filename is a <p>It is extremely unlikely that <code>fnamchk(1)</code> reporting an invalid filename is a
bug in <code>fnamchk(1)</code> and as such, ignoring such an issue risks violating bug in <code>fnamchk(1)</code> and as such, ignoring such an issue risks violating
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a> <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>
which is a big risk. Of course, using <code>mkiocccentry(1)</code> which is a big risk. Of course, using <code>mkiocccentry(1)</code>
would prevent this from happening as it would not create such a file anyway. If would prevent this from happening as it would not create such a file anyway. If
<code>mkiocccentry(1)</code> was used it would rather suggest a bug in one of the tools and <code>mkiocccentry(1)</code> was used it would rather suggest a bug in one of the tools and
@@ -1058,7 +1058,7 @@ your submission rejected if you package your own tarball, and there are <strong>
problems</strong>. For instance, if <code>chksubmit(1)</code> found a problem in your <code>.info.json</code> problems</strong>. For instance, if <code>chksubmit(1)</code> found a problem in your <code>.info.json</code>
file, the <code>mkiocccentry(1)</code> tool would not package it. But if you were to package file, the <code>mkiocccentry(1)</code> tool would not package it. But if you were to package
it manually, you would be violating it manually, you would be violating
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>. <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>.
But even if But even if
everything checks out OK you should <strong>NOT</strong> assume that everything <strong>IS</strong> OK.</p> everything checks out OK you should <strong>NOT</strong> assume that everything <strong>IS</strong> OK.</p>
<div id="bugs"> <div id="bugs">
@@ -1275,7 +1275,7 @@ somehow, <code>txzchk(1)</code> will flag it as an error. When the judges run <c
on the uploaded submission compressed tarball, if anything is wrong, for on the uploaded submission compressed tarball, if anything is wrong, for
instance if you “sneak in” any dot files or dot directories, the submission instance if you “sneak in” any dot files or dot directories, the submission
<strong>WILL BE REJECTED</strong> for violating <strong>WILL BE REJECTED</strong> for violating
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p> <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
<p>You may use whatever tools you need to develop your submission, including the <p>You may use whatever tools you need to develop your submission, including the
use of <code>git(1)</code> or <code>gh(1)</code>, just be sure that your submission code and your use of <code>git(1)</code> or <code>gh(1)</code>, just be sure that your submission code and your
submission Makefile don’t depend on such tools.</p> submission Makefile don’t depend on such tools.</p>
@@ -1523,7 +1523,7 @@ large data files to get around the source code size limit.</p>
<p class="leftbar"> <p class="leftbar">
We do not recommend submitting <a href="https://systemd.io">systemd</a> source code to the IOCCC, We do not recommend submitting <a href="https://systemd.io">systemd</a> source code to the IOCCC,
if nothing else because that code is likely to exceed if nothing else because that code is likely to exceed
<a href="rules.html#rule-2-size">Rule 2 Size</a>. <a href="rules.html#rule-2---size">Rule 2 - Size</a>.
This isn’t to say that another highly compact and obfuscated This isn’t to say that another highly compact and obfuscated
replacement of <code>init(8)</code> would not be an interesting submission. replacement of <code>init(8)</code> would not be an interesting submission.
</p> </p>
@@ -1541,7 +1541,7 @@ and/or obfuscated way, would definitely win over the first two!
Remember, you can submit more than one submission. See the Remember, you can submit more than one submission. See the
<a href="rules.html">IOCCC rules</a> <a href="rules.html">IOCCC rules</a>
for details (in particular, for details (in particular,
<a href="rules.html#rule-8-submission">Rule 8 Submission</a>).</p> <a href="rules.html#rule-8---submission">Rule 8 - Submission</a>).</p>
<p>We suggest that you avoid trying for the ‘<strong>smallest self-replicating</strong>’ <p>We suggest that you avoid trying for the ‘<strong>smallest self-replicating</strong>’
source. The smallest, a <a href="../1994/smr/index.html">zero byte entry</a>, won in source. The smallest, a <a href="../1994/smr/index.html">zero byte entry</a>, won in
<a href="../years.html#1994">1994</a>.</p> <a href="../years.html#1994">1994</a>.</p>
@@ -1649,7 +1649,7 @@ or Linux curses.</p>
If you do <code>#include &lt;curses.h&gt;</code> make <strong>CERTAIN</strong> you link in curses (i.e. If you do <code>#include &lt;curses.h&gt;</code> make <strong>CERTAIN</strong> you link in curses (i.e.
<code>-lcurses</code>) and not ncurses (i.e. <code>-lncurses</code>). <code>-lcurses</code>) and not ncurses (i.e. <code>-lncurses</code>).
</p> </p>
<p><a href="rules.html#rule-13-newlines">Rule 13 Newlines</a> <p><a href="rules.html#rule-13---newlines">Rule 13 - Newlines</a>
no longer discourages the use of UTF-8 no longer discourages the use of UTF-8
characters in C code.</p> characters in C code.</p>
<p>It is a very good idea to, in your <code>remarks.md</code> file, tell us why you <p>It is a very good idea to, in your <code>remarks.md</code> file, tell us why you
@@ -1681,14 +1681,14 @@ Submitting source code that uses the contents of
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c">iocccsize.c</a>, <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c">iocccsize.c</a>,
<em>unless</em> you are <a href="../authors.html#Anthony_C_Howe">Anthony C Howe</a>, might run the <em>unless</em> you are <a href="../authors.html#Anthony_C_Howe">Anthony C Howe</a>, might run the
risk of violating risk of violating
<a href="rules.html#rule-7-original-work">Rule 7 Original Work</a>.</p> <a href="rules.html#rule-7---original-work">Rule 7 - Original Work</a>.</p>
<p>The IOCCC submission tarball validator source is not an original work, <p>The IOCCC submission tarball validator source is not an original work,
unless you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a>, in unless you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a>, in
which case it is original! :-) Submitting source code that uses the contents of which case it is original! :-) Submitting source code that uses the contents of
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c">txzchk.c</a>, <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c">txzchk.c</a>,
<em>unless</em> you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a>, might <em>unless</em> you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a>, might
run the risk of violating run the risk of violating
<a href="rules.html#rule-7-original-work">Rule 7 Original Work</a>.</p> <a href="rules.html#rule-7---original-work">Rule 7 - Original Work</a>.</p>
<p>In addition to the above tools, none of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry <p>In addition to the above tools, none of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
tools</a>, <em>including, <strong>but not tools</a>, <em>including, <strong>but not
limited</strong></em> to limited</strong></em> to
@@ -1711,7 +1711,7 @@ are original! :-) Submitting source code that uses the content of any of these t
library, <em>unless</em> you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone library, <em>unless</em> you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone
Ferguson</a> or <a href="http://www.isthe.com/chongo/index.html">Landon Curt Ferguson</a> or <a href="http://www.isthe.com/chongo/index.html">Landon Curt
Noll</a>, might run the risk of violating Noll</a>, might run the risk of violating
<a href="rules.html#rule-7-original-work">Rule 7 Original Work</a>.</p> <a href="rules.html#rule-7---original-work">Rule 7 - Original Work</a>.</p>
<p>And unless you are <a href="https://en.wikipedia.org/wiki/Landon_Curt_Noll">Landon Curt Noll</a>, <p>And unless you are <a href="https://en.wikipedia.org/wiki/Landon_Curt_Noll">Landon Curt Noll</a>,
the code in the code in
<a href="https://github.com/ioccc-src/mkiocccentry/tree/master/dbg">dbg</a> and <a href="https://github.com/ioccc-src/mkiocccentry/tree/master/dbg">dbg</a> and
@@ -1719,8 +1719,8 @@ the code in
not original works. Submitting source code that uses the contents of those not original works. Submitting source code that uses the contents of those
libraries, <em>unless</em> you <a href="https://en.wikipedia.org/wiki/Landon_Curt_Noll">Landon Curt Noll</a>, libraries, <em>unless</em> you <a href="https://en.wikipedia.org/wiki/Landon_Curt_Noll">Landon Curt Noll</a>,
might run the risk of violating might run the risk of violating
<a href="rules.html#rule-7-original-work">Rule 7 Original Work</a>.</p> <a href="rules.html#rule-7---original-work">Rule 7 - Original Work</a>.</p>
<p><a href="rules.html#rule-7-original-work">Rule 7 Original Work</a> <p><a href="rules.html#rule-7---original-work">Rule 7 - Original Work</a>
does not prohibit you from writing your own does not prohibit you from writing your own
obfuscated versions of these tools, unless of course you are <a href="http://www.isthe.com/chongo/index.html">Landon Curt obfuscated versions of these tools, unless of course you are <a href="http://www.isthe.com/chongo/index.html">Landon Curt
Noll</a>, in which case you <em>probably</em> Noll</a>, in which case you <em>probably</em>
@@ -1730,7 +1730,7 @@ However, <strong><em>if</em></strong> you do write your own version, you <strong
tools’ algorithms.</p> tools’ algorithms.</p>
<p>Even so, we do not recommend you try and submit a JSON parser due to <p>Even so, we do not recommend you try and submit a JSON parser due to
the fact it will likely exceed the fact it will likely exceed
<a href="rules.html#rule-2-size">Rule 2 Size</a> <a href="rules.html#rule-2---size">Rule 2 - Size</a>
and because you likely can’t beat <a href="https://github.com/westes/flex">flex</a> and and because you likely can’t beat <a href="https://github.com/westes/flex">flex</a> and
<a href="https://www.gnu.org/software/bison/">bison</a> in obfuscation. This isn’t to <a href="https://www.gnu.org/software/bison/">bison</a> in obfuscation. This isn’t to
say that <a href="https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec">the so-called JSON spec</a> is not say that <a href="https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec">the so-called JSON spec</a> is not
@@ -1738,7 +1738,7 @@ obfuscated, but unless you have some really clever way to compact and
obfuscate a JSON parser more than <a href="https://github.com/westes/flex">flex</a> and obfuscate a JSON parser more than <a href="https://github.com/westes/flex">flex</a> and
<a href="https://www.gnu.org/software/bison/">bison</a> you will likely not win, either <a href="https://www.gnu.org/software/bison/">bison</a> you will likely not win, either
because of the because of the
<a href="rules.html#rule-2-size">Rule 2 Size</a> <a href="rules.html#rule-2---size">Rule 2 - Size</a>
or because it is not or because it is not
as obfuscated as the <a href="https://github.com/westes/flex">flex</a> and <a href="https://www.gnu.org/software/bison/">bison</a> as obfuscated as the <a href="https://github.com/westes/flex">flex</a> and <a href="https://www.gnu.org/software/bison/">bison</a>
generated code of generated code of
@@ -1820,7 +1820,7 @@ character tab stop.</p>
when forming your submission’s <code>remarks.md</code> file. And if your submission when forming your submission’s <code>remarks.md</code> file. And if your submission
contains additional markdown files, please follow those same guidelines for contains additional markdown files, please follow those same guidelines for
those files. See also those files. See also
<a href="rules.html#rule-4-files">Rule 4 Files</a>, <a href="rules.html#rule-4---files">Rule 4 - Files</a>,
and the and the
FAQ on “<a href="../faq.html#markdown">markdown</a>”.</p> FAQ on “<a href="../faq.html#markdown">markdown</a>”.</p>
<p>We <strong>LIKE</strong> reading <code>remarks.md</code> files, especially if they contain <p>We <strong>LIKE</strong> reading <code>remarks.md</code> files, especially if they contain
@@ -2041,7 +2041,7 @@ submission that abuses the <a href="guidelines.html">IOCCC guidelines</a> in an
or that stretches the contest <a href="rules.html">rules</a> that while legal, it or that stretches the contest <a href="rules.html">rules</a> that while legal, it
nevertheless goes against the <strong>intent</strong> of the <a href="rules.html">rules</a>.</p> nevertheless goes against the <strong>intent</strong> of the <a href="rules.html">rules</a>.</p>
<p>Nevertheless, see <p>Nevertheless, see
<a href="rules.html#rule-10-privileges">Rule 10 Privileges</a>.</p> <a href="rules.html#rule-10---privileges">Rule 10 - Privileges</a>.</p>
<p>In the end, we traditionally pick one submission as ‘<strong>best</strong>’. Sometimes such <p>In the end, we traditionally pick one submission as ‘<strong>best</strong>’. Sometimes such
a submission simply far exceeds any of the other submissions. More often, the a submission simply far exceeds any of the other submissions. More often, the
‘<strong>best</strong>’ is picked because it does well in a number of categories.</p> ‘<strong>best</strong>’ is picked because it does well in a number of categories.</p>
+29 -29
View File
@@ -159,12 +159,12 @@ See FAQs regarding:
Uploading a tarball not formed by `mkiocccentry(1)` puts you at a very big risk of Uploading a tarball not formed by `mkiocccentry(1)` puts you at a very big risk of
violating violating
[Rule 17 Packaging](rules.html#rule-17-packaging), [Rule 17 - Packaging](rules.html#rule-17---packaging),
especially as `mkiocccentry(1)` does a especially as `mkiocccentry(1)` does a
great number of things that are required, and it also runs many checks, and if great number of things that are required, and it also runs many checks, and if
any of those checks fail, you are at a very great risk of having your submission any of those checks fail, you are at a very great risk of having your submission
rejected for violating rejected for violating
[Rule 17 Packaging](rules.html#rule-17-packaging). [Rule 17 - Packaging](rules.html#rule-17---packaging).
We **STRONGLY** recommend you **do** install the We **STRONGLY** recommend you **do** install the
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry). [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry).
@@ -225,7 +225,7 @@ index.html](../2024/index.html):
<p class="leftbar"> <p class="leftbar">
> **IMPORTANT HINT**: Only 3 of the 23 **IOCCC28 winners** came close to the > **IMPORTANT HINT**: Only 3 of the 23 **IOCCC28 winners** came close to the
[Rule 2 Size](rules.html#rule-2-size) limit. [Rule 2 - Size](rules.html#rule-2---size) limit.
Large code size isn't Large code size isn't
everything. :-) Those submitting to future contents should **take a careful everything. :-) Those submitting to future contents should **take a careful
note** of that fact. note** of that fact.
@@ -239,7 +239,7 @@ the IOCCC size
[Rule 2b Next Size](rules.html#rule-2b-net-size). [Rule 2b Next Size](rules.html#rule-2b-net-size).
To check your code against To check your code against
[Rule 2 Size](rules.html#rule-2-size), use the `iocccentry(1)` tool. [Rule 2 - Size](rules.html#rule-2---size), use the `iocccentry(1)` tool.
For example: For example:
``` <!---sh--> ``` <!---sh-->
@@ -276,7 +276,7 @@ BESM-6, and 2503 is a decimal anagram of 2053.
Take note that this secondary limit imposed by the IOCCC size tool Take note that this secondary limit imposed by the IOCCC size tool
obviates some of the need to `#define` C reserved words in an effort obviates some of the need to `#define` C reserved words in an effort
to get around the size limits of to get around the size limits of
[Rule 2 Size](rules.html#rule-2-size). [Rule 2 - Size](rules.html#rule-2---size).
Yes Virginia, **that is a hint**! Yes Virginia, **that is a hint**!
@@ -417,7 +417,7 @@ Jump to: [top](#)
# `mkiocccentry` # `mkiocccentry`
</div> </div>
[Rule 17 Packaging](rules.html#rule-17-packaging) [Rule 17 - Packaging](rules.html#rule-17---packaging)
(the `mkiocccentry(1)` rule) states that (the `mkiocccentry(1)` rule) states that
you **REALLY SHOULD** use the `mkiocccentry(1)` tool to package your submission tarball. you **REALLY SHOULD** use the `mkiocccentry(1)` tool to package your submission tarball.
@@ -482,7 +482,7 @@ then you will have to specify the options (such as paths) for the tools that are
Make sure you have Make sure you have
the latest version of of the [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) the latest version of of the [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
so that you do not violate so that you do not violate
[Rule 17 Packaging](rules.html#rule-17-packaging) [Rule 17 - Packaging](rules.html#rule-17---packaging)
by mistake. by mistake.
@@ -527,7 +527,7 @@ execute one or more additional tools.
</div> </div>
`mkiocccentry(1)` will use code from `iocccsize(1)` which detects a number of `mkiocccentry(1)` will use code from `iocccsize(1)` which detects a number of
issues (such as [Rule 2 Size](rules.html#rule-2-size)) that you may ignore, if you wish, as issues (such as [Rule 2 - Size](rules.html#rule-2---size)) that you may ignore, if you wish, as
noted above. noted above.
In other words, you no longer need to run `iocccsize` manually. However, the In other words, you no longer need to run `iocccsize` manually. However, the
@@ -631,7 +631,7 @@ do install_ the libraries from their respective repos, it/they will **not be
used** when compiling the `mkiocccentry` tools. This is important to used** when compiling the `mkiocccentry` tools. This is important to
make sure that you're using the correct versions, which is also verified by make sure that you're using the correct versions, which is also verified by
`chksubmit` (in the JSON files created by `mkiocccentry(1)`). See `chksubmit` (in the JSON files created by `mkiocccentry(1)`). See
[Rule 17 Packaging](rules.html#rule-17-packaging)! [Rule 17 - Packaging](rules.html#rule-17---packaging)!
<p class="leftbar"> <p class="leftbar">
We **HIGHLY** recommend you install the `mkiocccentry` toolkit, however. We **HIGHLY** recommend you install the `mkiocccentry` toolkit, however.
@@ -678,7 +678,7 @@ page. You might just find a fun option if you do either of these!
Of course, as `txzchk` does not extract the tarball, it is possible that if you Of course, as `txzchk` does not extract the tarball, it is possible that if you
manually package your submission tarball and/or find and exploit a missing manually package your submission tarball and/or find and exploit a missing
check, you could still be violating check, you could still be violating
[Rule 17 Packaging](rules.html#rule-17-packaging). [Rule 17 - Packaging](rules.html#rule-17---packaging).
<div id="extra-files"> <div id="extra-files">
## Including optional and extra files ## Including optional and extra files
@@ -698,7 +698,7 @@ file_. The non-extra files are considered _free files_.
<p class="leftbar"> <p class="leftbar">
Of course any dot file that is not `.auth.json` and `.info.json` will result in Of course any dot file that is not `.auth.json` and `.info.json` will result in
a violation of a violation of
[Rule 17 Packaging](rules.html#rule-17-packaging), [Rule 17 - Packaging](rules.html#rule-17---packaging),
regardless of its depth. regardless of its depth.
</p> </p>
@@ -741,13 +741,13 @@ do the same like:
``` ```
See See
[Rule 17 Packaging](rules.html#rule-17-packaging) [Rule 17 - Packaging](rules.html#rule-17---packaging)
and also the and also the
FAQ on "[maximum number of files](../faq.html#max-files)". FAQ on "[maximum number of files](../faq.html#max-files)".
If you do not follow these points, you If you do not follow these points, you
are at a great risk of violating are at a great risk of violating
[Rule 17 Packaging](rules.html#rule-17-packaging)! [Rule 17 - Packaging](rules.html#rule-17---packaging)!
**NOTE**: if you want to include a test-suite that requires a lot of files, **NOTE**: if you want to include a test-suite that requires a lot of files,
please suggest this in your `remarks.md` and if your submission wins it can please suggest this in your `remarks.md` and if your submission wins it can
@@ -768,7 +768,7 @@ Jump to: [top](#)
As an important part of its algorithm, [txzchk&lpar;1&rpar;](#txzchk) directly executes As an important part of its algorithm, [txzchk&lpar;1&rpar;](#txzchk) directly executes
`fnamchk(1)`. If the filename is invalid (or the filename does not match the `fnamchk(1)`. If the filename is invalid (or the filename does not match the
directory name of the tarball) then it is an **error** and you risk violating directory name of the tarball) then it is an **error** and you risk violating
[Rule 17 Packaging](rules.html#rule-17-packaging). [Rule 17 - Packaging](rules.html#rule-17---packaging).
Nevertheless, you can run the tool manually, Nevertheless, you can run the tool manually,
should you wish to. should you wish to.
@@ -778,7 +778,7 @@ FAQ on "[fnamchk](../faq.html#fnamchk)".
It is extremely unlikely that `fnamchk(1)` reporting an invalid filename is a It is extremely unlikely that `fnamchk(1)` reporting an invalid filename is a
bug in `fnamchk(1)` and as such, ignoring such an issue risks violating bug in `fnamchk(1)` and as such, ignoring such an issue risks violating
[Rule 17 Packaging](rules.html#rule-17-packaging) [Rule 17 - Packaging](rules.html#rule-17---packaging)
which is a big risk. Of course, using `mkiocccentry(1)` which is a big risk. Of course, using `mkiocccentry(1)`
would prevent this from happening as it would not create such a file anyway. If would prevent this from happening as it would not create such a file anyway. If
`mkiocccentry(1)` was used it would rather suggest a bug in one of the tools and `mkiocccentry(1)` was used it would rather suggest a bug in one of the tools and
@@ -793,7 +793,7 @@ your submission rejected if you package your own tarball, and there are **ANY
problems**. For instance, if `chksubmit(1)` found a problem in your `.info.json` problems**. For instance, if `chksubmit(1)` found a problem in your `.info.json`
file, the `mkiocccentry(1)` tool would not package it. But if you were to package file, the `mkiocccentry(1)` tool would not package it. But if you were to package
it manually, you would be violating it manually, you would be violating
[Rule 17 Packaging](rules.html#rule-17-packaging). [Rule 17 - Packaging](rules.html#rule-17---packaging).
But even if But even if
everything checks out OK you should **NOT** assume that everything **IS** OK. everything checks out OK you should **NOT** assume that everything **IS** OK.
@@ -1099,7 +1099,7 @@ somehow, `txzchk(1)` will flag it as an error. When the judges run `txzchk(1)`
on the uploaded submission compressed tarball, if anything is wrong, for on the uploaded submission compressed tarball, if anything is wrong, for
instance if you "sneak in" any dot files or dot directories, the submission instance if you "sneak in" any dot files or dot directories, the submission
**WILL BE REJECTED** for violating **WILL BE REJECTED** for violating
[Rule 17 Packaging](rules.html#rule-17-packaging)! [Rule 17 - Packaging](rules.html#rule-17---packaging)!
You may use whatever tools you need to develop your submission, including the You may use whatever tools you need to develop your submission, including the
use of `git(1)` or `gh(1)`, just be sure that your submission code and your use of `git(1)` or `gh(1)`, just be sure that your submission code and your
@@ -1436,7 +1436,7 @@ large data files to get around the source code size limit.
<p class="leftbar"> <p class="leftbar">
We do not recommend submitting [systemd](https://systemd.io) source code to the IOCCC, We do not recommend submitting [systemd](https://systemd.io) source code to the IOCCC,
if nothing else because that code is likely to exceed if nothing else because that code is likely to exceed
[Rule 2 Size](rules.html#rule-2-size). [Rule 2 - Size](rules.html#rule-2---size).
This isn't to say that another highly compact and obfuscated This isn't to say that another highly compact and obfuscated
replacement of `init(8)` would not be an interesting submission. replacement of `init(8)` would not be an interesting submission.
</p> </p>
@@ -1455,7 +1455,7 @@ and/or obfuscated way, would definitely win over the first two!
Remember, you can submit more than one submission. See the Remember, you can submit more than one submission. See the
[IOCCC rules](rules.html) [IOCCC rules](rules.html)
for details (in particular, for details (in particular,
[Rule 8 Submission](rules.html#rule-8-submission)). [Rule 8 - Submission](rules.html#rule-8---submission)).
We suggest that you avoid trying for the '**smallest self-replicating**' We suggest that you avoid trying for the '**smallest self-replicating**'
source. The smallest, a [zero byte entry](../1994/smr/index.html), won in source. The smallest, a [zero byte entry](../1994/smr/index.html), won in
@@ -1600,7 +1600,7 @@ If you do `#include <curses.h>` make **CERTAIN** you link in curses (i.e.
`-lcurses`) and not ncurses (i.e. `-lncurses`). `-lcurses`) and not ncurses (i.e. `-lncurses`).
</p> </p>
[Rule 13 Newlines](rules.html#rule-13-newlines) [Rule 13 - Newlines](rules.html#rule-13---newlines)
no longer discourages the use of UTF-8 no longer discourages the use of UTF-8
characters in C code. characters in C code.
@@ -1638,7 +1638,7 @@ Submitting source code that uses the contents of
[iocccsize.c](https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c), [iocccsize.c](https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c),
_unless_ you are [Anthony C Howe](../authors.html#Anthony_C_Howe), might run the _unless_ you are [Anthony C Howe](../authors.html#Anthony_C_Howe), might run the
risk of violating risk of violating
[Rule 7 Original Work](rules.html#rule-7-original-work). [Rule 7 - Original Work](rules.html#rule-7---original-work).
The IOCCC submission tarball validator source is not an original work, The IOCCC submission tarball validator source is not an original work,
unless you are [Cody Boone Ferguson](../authors.html#Cody_Boone_Ferguson), in unless you are [Cody Boone Ferguson](../authors.html#Cody_Boone_Ferguson), in
@@ -1646,7 +1646,7 @@ which case it is original! :-) Submitting source code that uses the contents of
[txzchk.c](https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c), [txzchk.c](https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c),
_unless_ you are [Cody Boone Ferguson](../authors.html#Cody_Boone_Ferguson), might _unless_ you are [Cody Boone Ferguson](../authors.html#Cody_Boone_Ferguson), might
run the risk of violating run the risk of violating
[Rule 7 Original Work](rules.html#rule-7-original-work). [Rule 7 - Original Work](rules.html#rule-7---original-work).
In addition to the above tools, none of the [mkiocccentry In addition to the above tools, none of the [mkiocccentry
tools](https://github.com/ioccc-src/mkiocccentry), _including, **but not tools](https://github.com/ioccc-src/mkiocccentry), _including, **but not
@@ -1670,7 +1670,7 @@ are original! :-) Submitting source code that uses the content of any of these
library, _unless_ you are [Cody Boone library, _unless_ you are [Cody Boone
Ferguson](../authors.html#Cody_Boone_Ferguson) or [Landon Curt Ferguson](../authors.html#Cody_Boone_Ferguson) or [Landon Curt
Noll](http://www.isthe.com/chongo/index.html), might run the risk of violating Noll](http://www.isthe.com/chongo/index.html), might run the risk of violating
[Rule 7 Original Work](rules.html#rule-7-original-work). [Rule 7 - Original Work](rules.html#rule-7---original-work).
And unless you are [Landon Curt Noll](https://en.wikipedia.org/wiki/Landon_Curt_Noll), And unless you are [Landon Curt Noll](https://en.wikipedia.org/wiki/Landon_Curt_Noll),
the code in the code in
@@ -1679,9 +1679,9 @@ the code in
not original works. Submitting source code that uses the contents of those not original works. Submitting source code that uses the contents of those
libraries, _unless_ you [Landon Curt Noll](https://en.wikipedia.org/wiki/Landon_Curt_Noll), libraries, _unless_ you [Landon Curt Noll](https://en.wikipedia.org/wiki/Landon_Curt_Noll),
might run the risk of violating might run the risk of violating
[Rule 7 Original Work](rules.html#rule-7-original-work). [Rule 7 - Original Work](rules.html#rule-7---original-work).
[Rule 7 Original Work](rules.html#rule-7-original-work) [Rule 7 - Original Work](rules.html#rule-7---original-work)
does not prohibit you from writing your own does not prohibit you from writing your own
obfuscated versions of these tools, unless of course you are [Landon Curt obfuscated versions of these tools, unless of course you are [Landon Curt
Noll](http://www.isthe.com/chongo/index.html), in which case you _probably_ Noll](http://www.isthe.com/chongo/index.html), in which case you _probably_
@@ -1692,7 +1692,7 @@ tools' algorithms.
Even so, we do not recommend you try and submit a JSON parser due to Even so, we do not recommend you try and submit a JSON parser due to
the fact it will likely exceed the fact it will likely exceed
[Rule 2 Size](rules.html#rule-2-size) [Rule 2 - Size](rules.html#rule-2---size)
and because you likely can't beat [flex](https://github.com/westes/flex) and and because you likely can't beat [flex](https://github.com/westes/flex) and
[bison](https://www.gnu.org/software/bison/) in obfuscation. This isn't to [bison](https://www.gnu.org/software/bison/) in obfuscation. This isn't to
say that [the so-called JSON spec](https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec) is not say that [the so-called JSON spec](https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec) is not
@@ -1700,7 +1700,7 @@ obfuscated, but unless you have some really clever way to compact and
obfuscate a JSON parser more than [flex](https://github.com/westes/flex) and obfuscate a JSON parser more than [flex](https://github.com/westes/flex) and
[bison](https://www.gnu.org/software/bison/) you will likely not win, either [bison](https://www.gnu.org/software/bison/) you will likely not win, either
because of the because of the
[Rule 2 Size](rules.html#rule-2-size) [Rule 2 - Size](rules.html#rule-2---size)
or because it is not or because it is not
as obfuscated as the [flex](https://github.com/westes/flex) and [bison](https://www.gnu.org/software/bison/) as obfuscated as the [flex](https://github.com/westes/flex) and [bison](https://www.gnu.org/software/bison/)
generated code of generated code of
@@ -1794,7 +1794,7 @@ character tab stop.
when forming your submission's `remarks.md` file. And if your submission when forming your submission's `remarks.md` file. And if your submission
contains additional markdown files, please follow those same guidelines for contains additional markdown files, please follow those same guidelines for
those files. See also those files. See also
[Rule 4 Files](rules.html#rule-4-files), [Rule 4 - Files](rules.html#rule-4---files),
and the and the
FAQ on "[markdown](../faq.html#markdown)". FAQ on "[markdown](../faq.html#markdown)".
@@ -2071,7 +2071,7 @@ or that stretches the contest [rules](rules.html) that while legal, it
nevertheless goes against the **intent** of the [rules](rules.html). nevertheless goes against the **intent** of the [rules](rules.html).
Nevertheless, see Nevertheless, see
[Rule 10 Privileges](rules.html#rule-10-privileges). [Rule 10 - Privileges](rules.html#rule-10---privileges).
In the end, we traditionally pick one submission as '**best**'. Sometimes such In the end, we traditionally pick one submission as '**best**'. Sometimes such
+45 -44
View File
@@ -473,17 +473,17 @@ mastodon feed</a> page and/or mastodon
app from time to time to view IOCCC mastodon updates.</p> app from time to time to view IOCCC mastodon updates.</p>
<!-- END: the next line ends content from: inc/rules.closed.hdr --> <!-- END: the next line ends content from: inc/rules.closed.hdr -->
<!-- This is the last line modified by the tool: bin/gen-status.sh --> <!-- This is the last line modified by the tool: bin/gen-status.sh -->
<h2 id="th-international-obfuscated-c-code-contest-official-rules">29th International Obfuscated C Code Contest Official Rules</h2> <h1 id="th-international-obfuscated-c-code-contest-official-rules">29th International Obfuscated C Code Contest Official Rules</h1>
<p>Copyright © 2025 Leonid A. Broukhis and Landon Curt Noll.</p> <p>Copyright © 2025 Leonid A. Broukhis and Landon Curt Noll.</p>
<p>All Rights Reserved. Permission for personal, education or non-profit use is <p>All Rights Reserved. Permission for personal, education or non-profit use is
granted provided this this copyright and notice are included in its entirety granted provided this this copyright and notice are included in its entirety
and remains unaltered. All other uses <strong>MUST</strong> receive prior permission in and remains unaltered. All other uses <strong>MUST</strong> receive prior permission in
writing by <a href="../contact.html">contacting the judges</a>.</p> writing by <a href="../contact.html">contacting the judges</a>.</p>
<h2 id="rules-version">Rules version</h2> <h2 id="rules-version">Rules version</h2>
<p>These IOCCC Rules are version <strong>29.03 2025-11-19</strong>.</p> <p>These IOCCC Rules are version <strong>29.04 2025-11-20</strong>.</p>
<p>Be sure to read the <a href="guidelines.html">IOCCC guidelines</a>.</p> <p>Be sure to read the <a href="guidelines.html">IOCCC guidelines</a>.</p>
<div id="rule0"> <div id="rule0">
<h2 id="rule-0-dates">Rule 0 Dates</h2> <h2 id="rule-0---dates">Rule 0 - Dates</h2>
</div> </div>
<p>This IOCCC runs from ${START_DATE_TIME} UTC to ${CLOSE_DATE_TIME} UTC.</p> <p>This IOCCC runs from ${START_DATE_TIME} UTC to ${CLOSE_DATE_TIME} UTC.</p>
<p>This contest will enter the open state on ${OPEN_DATE_TIME} UTC.</p> <p>This contest will enter the open state on ${OPEN_DATE_TIME} UTC.</p>
@@ -491,11 +491,11 @@ writing by <a href="../contact.html">contacting the judges</a>.</p>
<p>The above dates are subject to change until the contest is officially open.</p> <p>The above dates are subject to change until the contest is officially open.</p>
<p><strong>NOTE</strong>: As of this draft, the above dates are TBD (to be determined).</p> <p><strong>NOTE</strong>: As of this draft, the above dates are TBD (to be determined).</p>
<div id="rule1"> <div id="rule1">
<h2 id="rule-1-program">Rule 1 Program</h2> <h2 id="rule-1---program">Rule 1 - Program</h2>
</div> </div>
<p>Your submission <strong>MUST</strong> be a C program.</p> <p>Your submission <strong>MUST</strong> be a C program.</p>
<div id="rule2"> <div id="rule2">
<h2 id="rule-2-size">Rule 2 Size</h2> <h2 id="rule-2---size">Rule 2 - Size</h2>
</div> </div>
<p><code>Rule 2</code> requires that your submission satisfy <strong>BOTH</strong> <p><code>Rule 2</code> requires that your submission satisfy <strong>BOTH</strong>
<a href="rules.html#rule-2a-gross-size">Rule 2a Gross Size</a> <a href="rules.html#rule-2a-gross-size">Rule 2a Gross Size</a>
@@ -504,19 +504,19 @@ and
During development this can be checked using <code>iocccsize(1)</code>:</p> During development this can be checked using <code>iocccsize(1)</code>:</p>
<p>iocccsize prog.c</p> <p>iocccsize prog.c</p>
<div id="rule2a"> <div id="rule2a">
<h3 id="rule-2a-gross-size">Rule 2a Gross Size</h3> <h3 id="rule-2a---gross-size">Rule 2a - Gross Size</h3>
</div> </div>
<p>The overall maximum size of your <code>prog.c</code> program source <strong>MUST NOT</strong> <p>The overall maximum size of your <code>prog.c</code> program source <strong>MUST NOT</strong>
exceed <strong>4993</strong> bytes.</p> exceed <strong>4993</strong> bytes.</p>
<div id="rule2b"> <div id="rule2b">
<h3 id="rule-2b-net-size">Rule 2b Net Size</h3> <h3 id="rule-2b---net-size">Rule 2b - Net Size</h3>
</div> </div>
<p>When the filename of your program source (i.e., <code>prog.c</code>) is given as a <p>When the filename of your program source (i.e., <code>prog.c</code>) is given as a
command line argument to the latest version of the official IOCCC size command line argument to the latest version of the official IOCCC size
tool (hereby referred to as <code>iocccsize(1)</code>), the value printed <strong>MUST tool (hereby referred to as <code>iocccsize(1)</code>), the value printed <strong>MUST
NOT</strong> exceed <strong>2503</strong>.</p> NOT</strong> exceed <strong>2503</strong>.</p>
<div id="rule3"> <div id="rule3">
<h2 id="rule-3-register">Rule 3 Register</h2> <h2 id="rule-3---register">Rule 3 - Register</h2>
</div> </div>
<p>You <strong>MUST</strong> register, using a valid email address, in order to submit <p>You <strong>MUST</strong> register, using a valid email address, in order to submit
entries to the IOCCC. You may register while the contest is <strong>pending</strong> or <strong>open</strong>.</p> entries to the IOCCC. You may register while the contest is <strong>pending</strong> or <strong>open</strong>.</p>
@@ -530,9 +530,9 @@ register and submit your entries; <strong>DO NOT WAIT UNTIL THE FINAL DAYS</stro
to register! The judges are <strong>NOT</strong> responsible for delayed or lost to register! The judges are <strong>NOT</strong> responsible for delayed or lost
email or for those who wait until the last minute to try to register!</p> email or for those who wait until the last minute to try to register!</p>
<p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to know</a>.</p> <p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to know</a>.</p>
<p>See <a href="rules.html#rule-8-submission">Rule 8 Submission</a>.</p> <p>See <a href="rules.html#rule-8---submission">Rule 8 - Submission</a>.</p>
<div id="rule4"> <div id="rule4">
<h2 id="rule-4-files">Rule 4 Files</h2> <h2 id="rule-4---files">Rule 4 - Files</h2>
</div> </div>
<p>The submission <strong>MUST</strong> include at least these files: <code>Makefile</code>, <code>prog.c</code>, <p>The submission <strong>MUST</strong> include at least these files: <code>Makefile</code>, <code>prog.c</code>,
<code>remarks.md</code>,<code>.info.json</code>, and <code>.auth.json</code>. The last two <strong>MUST</strong> be <code>remarks.md</code>,<code>.info.json</code>, and <code>.auth.json</code>. The last two <strong>MUST</strong> be
@@ -568,9 +568,9 @@ sensitive filesystem, ensure that your submission will work on
a case insensitive filesystem.</p> a case insensitive filesystem.</p>
<p>The <code>remarks.md</code> and <code>Makefile</code> are explained in more detail in the Guidelines.</p> <p>The <code>remarks.md</code> and <code>Makefile</code> are explained in more detail in the Guidelines.</p>
<p>See <a href="../markdown.html">IOCCC markdown guidelines</a>.</p> <p>See <a href="../markdown.html">IOCCC markdown guidelines</a>.</p>
<p>See <a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p> <p>See <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p>
<div id="rule5"> <div id="rule5">
<h2 id="rule-5-purity">Rule 5 Purity</h2> <h2 id="rule-5---purity">Rule 5 - Purity</h2>
</div> </div>
<p>Your submission <strong>MUST NOT</strong> modify the filenames or content of any of <p>Your submission <strong>MUST NOT</strong> modify the filenames or content of any of
your original submission, such as <code>prog.c</code>, <code>Makefile</code>, or any supplied your original submission, such as <code>prog.c</code>, <code>Makefile</code>, or any supplied
@@ -587,15 +587,15 @@ original form, including the removal of any created files and directories.</p>
<p>Your code should be able to run under a <p>Your code should be able to run under a
<a href="https://pubs.opengroup.org/onlinepubs/9799919799/">SUS environment</a>.</p> <a href="https://pubs.opengroup.org/onlinepubs/9799919799/">SUS environment</a>.</p>
<div id="rule6"> <div id="rule6">
<h2 id="rule-6-free">Rule 6 Free</h2> <h2 id="rule-6---free">Rule 6 - Free</h2>
</div> </div>
<p>I am <strong>NOT</strong> a Rule, I am a <code>free(void *human);</code> ‼️</p> <p>I am <strong>NOT</strong> a Rule, I am a <code>free(void *human);</code> ‼️</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> <span class="cf">while</span> <span class="op">(!(</span>ioccc<span class="op">(</span>rule<span class="op">(</span>you<span class="op">(</span>are<span class="op">(</span>number<span class="op">(</span><span class="dv">6</span><span class="op">))))))</span> <span class="op">{</span></span> <div class="sourceCode" id="cb1"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> <span class="cf">while</span> <span class="op">(!(</span>ioccc<span class="op">(</span>rule<span class="op">(</span>you<span class="op">(</span>are<span class="op">(</span>number<span class="op">(</span><span class="dv">6</span><span class="op">))))))</span> <span class="op">{</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> ha<span class="op">();</span> ha<span class="op">();</span> ha<span class="op">();</span></span> <span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> ha<span class="op">();</span> ha<span class="op">();</span> ha<span class="op">();</span></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a> <span class="op">}</span></span></code></pre></div> <span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a> <span class="op">}</span></span></code></pre></div>
<p>See <a href="rules.html#rule-19-prime">Rule 19 Prime</a>.</p> <p>See <a href="rules.html#rule-19---prime">Rule 19 - Prime</a>.</p>
<div id="rule7"> <div id="rule7">
<h2 id="rule-7-original-work">Rule 7 Original Work</h2> <h2 id="rule-7---original-work">Rule 7 - Original Work</h2>
</div> </div>
<p>In short: You wrote it, you own it, and its an original work.</p> <p>In short: You wrote it, you own it, and its an original work.</p>
<p>You, the author(s), <strong>MUST</strong> own the contents of your submission, or you <strong>MUST</strong> <p>You, the author(s), <strong>MUST</strong> own the contents of your submission, or you <strong>MUST</strong>
@@ -612,9 +612,9 @@ analysis tools, machine learning tools, natural language models, code
copilot tools, so-called AI services, large language models (LLMs), etc. copilot tools, so-called AI services, large language models (LLMs), etc.
If you do make use of such tools or services, then we encourage you to If you do make use of such tools or services, then we encourage you to
describe what tools and how you used those tools, in your <code>remarks.md</code> file.</p> describe what tools and how you used those tools, in your <code>remarks.md</code> file.</p>
<p>See <a href="rules.html#rule-16-anonymous">Rule 16 Anonymous</a>.</p> <p>See <a href="rules.html#rule-16---anonymous">Rule 16 - Anonymous</a>.</p>
<div id="rule8"> <div id="rule8">
<h2 id="rule-8-submission">Rule 8 Submission</h2> <h2 id="rule-8---submission">Rule 8 - Submission</h2>
</div> </div>
<p>The Submit Server will only accept submissions from those who have <p>The Submit Server will only accept submissions from those who have
registered and only while the contest is open.</p> registered and only while the contest is open.</p>
@@ -625,21 +625,21 @@ processed, malformed, etc. Please take note of any errors, rectify,
and resubmit. In order to avoid potential packaging errors, it is <strong>highly and resubmit. In order to avoid potential packaging errors, it is <strong>highly
recommended</strong> to use <code>mkiocccentry(1)</code>.</p> recommended</strong> to use <code>mkiocccentry(1)</code>.</p>
<p>See <p>See
<a href="rules.html#rule-3-register">Rule 3 Register</a>, <a href="rules.html#rule-3---register">Rule 3 - Register</a>,
<a href="rules.html#rule-15-building">Rule 15 Building</a>, <a href="rules.html#rule-15---building">Rule 15 - Building</a>,
and and
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p> <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p>
<div id="rule9"> <div id="rule9">
<h2 id="rule-9-no-hands">Rule 9 No hands</h2> <h2 id="rule-9---no-hands">Rule 9 - No hands</h2>
</div> </div>
<p>Entries requiring human interaction to be initially compiled are <strong>NOT</strong> <p>Entries requiring human interaction to be initially compiled are <strong>NOT</strong>
permitted. However, see the guidelines. Each entry <strong>MUST</strong> automated the permitted. However, see the guidelines. Each entry <strong>MUST</strong> automated the
its build process using <code>bash</code>, <code>gmake</code>, <code>gcc</code>, <code>clang</code>, under a its build process using <code>bash</code>, <code>gmake</code>, <code>gcc</code>, <code>clang</code>, under a
<a href="https://pubs.opengroup.org/onlinepubs/9799919799/">SUS environment</a>.</p> <a href="https://pubs.opengroup.org/onlinepubs/9799919799/">SUS environment</a>.</p>
<p>Note references to <code>gmake</code> can be any GNU Make compatible tool.</p> <p>Note references to <code>gmake</code> can be any GNU Make compatible tool.</p>
<p>See <a href="rules.html#rule-15-building">Rule 15 Building</a>.</p> <p>See <a href="rules.html#rule-15---building">Rule 15 - Building</a>.</p>
<div id="rule10"> <div id="rule10">
<h2 id="rule-10-privileges">Rule 10 Privileges</h2> <p>Rule 10 - Privileges</p>
</div> </div>
<p>Programs that require special privileges (setuid(2), setgid(2), <p>Programs that require special privileges (setuid(2), setgid(2),
super-user, special owner, special group, etc.) are <strong>HIGHLY DISCOURAGED</strong>. super-user, special owner, special group, etc.) are <strong>HIGHLY DISCOURAGED</strong>.
@@ -651,11 +651,11 @@ document this fact and explain why it is needed in your submission’s
have these permissions, you will also have to explain this, because these have these permissions, you will also have to explain this, because these
bits are <strong>NOT</strong> allowed in submissions and those bits will <strong>NOT</strong> be copied by bits are <strong>NOT</strong> allowed in submissions and those bits will <strong>NOT</strong> be copied by
<code>mkiocccentry(1)</code>.</p> <code>mkiocccentry(1)</code>.</p>
<p>See <a href="rules.html#rule-4-files">Rule 4 Files</a>, <p>See <a href="rules.html#rule-4---files">Rule 4 - Files</a>,
and and
<a href="rules.html#rule-5-purity">Rule 5 Purity</a>.</p> <a href="rules.html#rule-5---purity">Rule 5 - Purity</a>.</p>
<div id="rule11"> <div id="rule11">
<h2 id="rule-11-abuse">Rule 11 Abuse</h2> <h2 id="rule-11---abuse">Rule 11 - Abuse</h2>
</div> </div>
<p>Legal abuse of the rules is somewhat encouraged, but comes with risks. <p>Legal abuse of the rules is somewhat encouraged, but comes with risks.
A submission that, in the opinion of the Judges, violates the rules <strong>WILL A submission that, in the opinion of the Judges, violates the rules <strong>WILL
@@ -675,11 +675,11 @@ version, please indicate that in your <code>remarks.md</code> file of your non-r
abusing version so that the Judges don’t think you uploaded a duplicate abusing version so that the Judges don’t think you uploaded a duplicate
into a wrong slot by mistake.</p> into a wrong slot by mistake.</p>
<div id="rule12"> <div id="rule12">
<h2 id="rule-12-utf-8">Rule 12 UTF-8</h2> <h2 id="rule-12---utf-8">Rule 12 - UTF-8</h2>
</div> </div>
<p>Use of UTF-8 is supported by <code>C89</code> standard and its updates and so too by the IOCCC.</p> <p>Use of UTF-8 is supported by <code>C89</code> standard and its updates and so too by the IOCCC.</p>
<div id="rule13"> <div id="rule13">
<h2 id="rule-13-newlines">Rule 13 Newlines</h2> <h2 id="rule-13---newlines">Rule 13 - Newlines</h2>
</div> </div>
<p>Any C source that fails to compile because lines contain carriage-returns <p>Any C source that fails to compile because lines contain carriage-returns
(CTRL+M, <code>\r</code>) in particular as part of DOS/Windows style newlines might (CTRL+M, <code>\r</code>) in particular as part of DOS/Windows style newlines might
@@ -694,7 +694,7 @@ need to do this, please document that in your <code>remarks.md</code> file and i
your compiler complains about this, document this too and update your your compiler complains about this, document this too and update your
<code>Makefile</code> to account for this.</p> <code>Makefile</code> to account for this.</p>
<div id="rule14"> <div id="rule14">
<h2 id="rule-14-resubmit">Rule 14 Resubmit</h2> <h2 id="rule-14---resubmit">Rule 14 - Resubmit</h2>
</div> </div>
<p>Submissions that are substantially similar to previous winning IOCCC <p>Submissions that are substantially similar to previous winning IOCCC
entries are discouraged.</p> entries are discouraged.</p>
@@ -704,7 +704,7 @@ enhance and improve your submission. If you do resubmit something that
didn’t previously win, then you are encouraged to mention this in your didn’t previously win, then you are encouraged to mention this in your
<code>remarks.md</code> file as this sometimes helps.</p> <code>remarks.md</code> file as this sometimes helps.</p>
<div id="rule15"> <div id="rule15">
<h2 id="rule-15-building">Rule 15 Building</h2> <h2 id="rule-15---building">Rule 15 - Building</h2>
</div> </div>
<p>The <code>Makefile</code> <strong>MUST</strong> adhere to GNU Makefile syntax. Its recommended <p>The <code>Makefile</code> <strong>MUST</strong> adhere to GNU Makefile syntax. Its recommended
that you copy and rename the <code>Makefile.example</code> as template. The primary that you copy and rename the <code>Makefile.example</code> as template. The primary
@@ -726,9 +726,9 @@ environments and systems are available in the search
<a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">SUS</a>, such as <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">SUS</a>, such as
GNU long name options <code>--example</code> or extensions like <code>grep -P</code>.</p> GNU long name options <code>--example</code> or extensions like <code>grep -P</code>.</p>
<p>Do <strong>NOT</strong> assume that <code>.</code> (current directory) is in the <code>$PATH</code> environment variable.</p> <p>Do <strong>NOT</strong> assume that <code>.</code> (current directory) is in the <code>$PATH</code> environment variable.</p>
<p>See <a href="rules.html#rule-4-files">Rule 4 Files</a>.</p> <p>See <a href="rules.html#rule-4---files">Rule 4 - Files</a>.</p>
<div id="rule16"> <div id="rule16">
<h2 id="rule-16-anonymous">Rule 16 Anonymous</h2> <h2 id="rule-16---anonymous">Rule 16 - Anonymous</h2>
</div> </div>
<p>Your source code, data files, remarks, and program output <strong>MUST NOT</strong> <p>Your source code, data files, remarks, and program output <strong>MUST NOT</strong>
identify the author(s) of your code (unless you are <strong>Peter Honeyman</strong> identify the author(s) of your code (unless you are <strong>Peter Honeyman</strong>
@@ -739,7 +739,7 @@ a past winner, you <strong>MUST NOT</strong> reveal your identity deliberately o
accident anywhere in your submission. <strong><em>Failure to comply may result accident anywhere in your submission. <strong><em>Failure to comply may result
in the submission being disqualified.</em></strong></p> in the submission being disqualified.</em></strong></p>
<div id="rule17"> <div id="rule17">
<h2 id="rule-17-packaging">Rule 17 Packaging</h2> <h2 id="rule-17---packaging">Rule 17 - Packaging</h2>
</div> </div>
<p>The files, directories, and paths <strong>MUST</strong> conform to the limits imposed by <p>The files, directories, and paths <strong>MUST</strong> conform to the limits imposed by
<code>mkiocccentry(1)</code>, including but <strong>NOT</strong> limited, to their names, count, path <code>mkiocccentry(1)</code>, including but <strong>NOT</strong> limited, to their names, count, path
@@ -758,7 +758,7 @@ filename <strong>MUST</strong> pass all <code>fnamchk(1)</code> checks. You may
created by the <code>-d</code> or <code>-s</code> seed options of <code>mkiocccentry(1)</code>.</p> created by the <code>-d</code> or <code>-s</code> seed options of <code>mkiocccentry(1)</code>.</p>
<p>The unpacked submission directory <strong>MUST</strong> pass the checks performed by the <p>The unpacked submission directory <strong>MUST</strong> pass the checks performed by the
current version of <code>chksubmit(1)</code>.</p> current version of <code>chksubmit(1)</code>.</p>
<p>The <code>prog.c</code> file <strong>MUST</strong> pass the <a href="rules.html#rule-2-size">Rule 2 Size</a> <p>The <code>prog.c</code> file <strong>MUST</strong> pass the <a href="rules.html#rule-2---size">Rule 2 - Size</a>
size checks performed by <code>iocccsize(1)</code>.</p> size checks performed by <code>iocccsize(1)</code>.</p>
<p>The <code>.auth.json</code> and <code>.info.json</code> files <strong>MUST</strong> be compatible with what <p>The <code>.auth.json</code> and <code>.info.json</code> files <strong>MUST</strong> be compatible with what
<code>mkiocccentry(1)</code> generates.</p> <code>mkiocccentry(1)</code> generates.</p>
@@ -769,27 +769,28 @@ that you are using the latest tools from the
GitHub repo.</p> GitHub repo.</p>
<p>In summary: it is best to use <code>mkioccentry(1)</code> to package your submission, <p>In summary: it is best to use <code>mkioccentry(1)</code> to package your submission,
rather than roll-it-by-hand.</p> rather than roll-it-by-hand.</p>
<p>See <a href="rules.html#rule-4-files">Rule 4 Files</a>.</p> <p>See <a href="rules.html#rule-4---files">Rule 4 - Files</a>.</p>
<div id="rule18"> <div id="rule18">
<h2 id="rule-18-license">Rule 18 License</h2> <h2 id="rule-18---license">Rule 18 - License</h2>
</div> </div>
<p>The entirety of your submission <strong>MUST</strong> be submitted under the following license:</p> <p>The entirety of your submission <strong>MUST</strong> be submitted under the following license:</p>
<p><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a></p> <p><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a></p>
<p>See <a href="rules.html#rule-7-original-work">Rule 7 Original Work</a>.</p> <p>See <a href="rules.html#rule-7---original-work">Rule 7 - Original Work</a>.</p>
<div id="rule19"> <div id="rule19">
<h2 id="rule-19-prime">Rule 19 Prime</h2> <h2 id="rule-19---prime">Rule 19 - Prime</h2>
</div> </div>
<p>This 19th rule, while prime, is reserved for future abuse 😁. <p>This 19th rule, while prime, is reserved for future abuse 😁.
Additional rules, both humorous and otherwise, may be added Additional rules, both humorous and otherwise, may be added
below this rule in future contests.</p> below this rule in future contests.</p>
<p>See <a href="rules.html#rule-6-free">Rule 6 Free</a>.</p> <p>See <a href="rules.html#rule-6---free">Rule 6 - Free</a>.</p>
<h2 id="further-reading">Further Reading</h2> <h2 id="further-reading">Further Reading</h2>
<p>Please read the <a href="guidelines.html">Guidelines</a> next for further <p>Read the
commentary on The Rules.</p> <a href="https://www.ioccc.org/quick-start.html#enter">Entering the IOCCC: the bare minimum you need to know</a>
for an overview of how to enter the contest.</p>
<p>Please read the <a href="guidelines.html">Guidelines</a> next for further commentary on The Rules.</p>
<p>See also the <a href="../faq.html">FAQ</a>.</p> <p>See also the <a href="../faq.html">FAQ</a>.</p>
<p>Consider joining our Discord <p>Consider joining the <a href="https://discord.com/invite/Wa42Qujwnw">IOCCC Discord Server</a>
server for discussions about The Rules, questions for the Judges, and for discussions about The Rules, questions for the Judges, and <code>C</code> in general.</p>
<code>C</code> in general.</p>
<p>Leonid A. Broukhis <p>Leonid A. Broukhis
chongo (Landon Curt Noll) /\cc/\ chongo (Landon Curt Noll) /\cc/\
<!-- AFTER: last line of markdown file: next/rules.md --></p> <!-- AFTER: last line of markdown file: next/rules.md --></p>
+48 -70
View File
@@ -27,8 +27,7 @@ app from time to time to view IOCCC mastodon updates.
<!-- END: the next line ends content from: inc/rules.closed.hdr --> <!-- END: the next line ends content from: inc/rules.closed.hdr -->
<!-- This is the last line modified by the tool: bin/gen-status.sh --> <!-- This is the last line modified by the tool: bin/gen-status.sh -->
29th International Obfuscated C Code Contest Official Rules # 29th International Obfuscated C Code Contest Official Rules
------------------------------------------------------------
Copyright © 2025 Leonid A. Broukhis and Landon Curt Noll. Copyright © 2025 Leonid A. Broukhis and Landon Curt Noll.
@@ -38,17 +37,15 @@ and remains unaltered. All other uses **MUST** receive prior permission in
writing by [contacting the judges](../contact.html). writing by [contacting the judges](../contact.html).
Rules version ## Rules version
-------------
These IOCCC Rules are version **29.03 2025-11-19**. These IOCCC Rules are version **29.04 2025-11-20**.
Be sure to read the [IOCCC guidelines](guidelines.html). Be sure to read the [IOCCC guidelines](guidelines.html).
<div id="rule0"> <div id="rule0">
Rule 0 Dates ## Rule 0 - Dates
------------
</div> </div>
This IOCCC runs from ${START_DATE_TIME} UTC to ${CLOSE_DATE_TIME} UTC. This IOCCC runs from ${START_DATE_TIME} UTC to ${CLOSE_DATE_TIME} UTC.
@@ -63,16 +60,14 @@ The above dates are subject to change until the contest is officially open.
<div id="rule1"> <div id="rule1">
Rule 1 Program ## Rule 1 - Program
---------------
</div> </div>
Your submission **MUST** be a C program. Your submission **MUST** be a C program.
<div id="rule2"> <div id="rule2">
Rule 2 Size ## Rule 2 - Size
-----------
</div> </div>
`Rule 2` requires that your submission satisfy **BOTH** `Rule 2` requires that your submission satisfy **BOTH**
@@ -84,7 +79,7 @@ During development this can be checked using `iocccsize(1)`:
iocccsize prog.c iocccsize prog.c
<div id="rule2a"> <div id="rule2a">
### Rule 2a Gross Size ### Rule 2a - Gross Size
</div> </div>
The overall maximum size of your `prog.c` program source **MUST NOT** The overall maximum size of your `prog.c` program source **MUST NOT**
@@ -92,7 +87,7 @@ exceed **4993** bytes.
<div id="rule2b"> <div id="rule2b">
### Rule 2b Net Size ### Rule 2b - Net Size
</div> </div>
When the filename of your program source (i.e., `prog.c`) is given as a When the filename of your program source (i.e., `prog.c`) is given as a
@@ -102,8 +97,7 @@ NOT** exceed **2503**.
<div id="rule3"> <div id="rule3">
Rule 3 Register ## Rule 3 - Register
---------------
</div> </div>
You **MUST** register, using a valid email address, in order to submit You **MUST** register, using a valid email address, in order to submit
@@ -122,12 +116,11 @@ email or for those who wait until the last minute to try to register!
See [Entering the IOCCC: the bare minimum you need to know](../quick-start.html#enter). See [Entering the IOCCC: the bare minimum you need to know](../quick-start.html#enter).
See [Rule 8 Submission](rules.html#rule-8-submission). See [Rule 8 - Submission](rules.html#rule-8---submission).
<div id="rule4"> <div id="rule4">
Rule 4 Files ## Rule 4 - Files
------------
</div> </div>
The submission **MUST** include at least these files: `Makefile`, `prog.c`, The submission **MUST** include at least these files: `Makefile`, `prog.c`,
@@ -177,12 +170,11 @@ The `remarks.md` and `Makefile` are explained in more detail in the Guidelines.
See [IOCCC markdown guidelines](../markdown.html). See [IOCCC markdown guidelines](../markdown.html).
See [Rule 17 Packaging](rules.html#rule-17-packaging). See [Rule 17 - Packaging](rules.html#rule-17---packaging).
<div id="rule5"> <div id="rule5">
Rule 5 Purity ## Rule 5 - Purity
-------------
</div> </div>
Your submission **MUST NOT** modify the filenames or content of any of Your submission **MUST NOT** modify the filenames or content of any of
@@ -205,8 +197,7 @@ Your code should be able to run under a
<div id="rule6"> <div id="rule6">
Rule 6 Free ## Rule 6 - Free
-----------
</div> </div>
I am **NOT** a Rule, I am a `free(void *human);` ‼️ I am **NOT** a Rule, I am a `free(void *human);` ‼️
@@ -217,12 +208,11 @@ I am **NOT** a Rule, I am a `free(void *human);` ‼️
} }
``` ```
See [Rule 19 Prime](rules.html#rule-19-prime). See [Rule 19 - Prime](rules.html#rule-19---prime).
<div id="rule7"> <div id="rule7">
Rule 7 Original Work ## Rule 7 - Original Work
--------------------
</div> </div>
In short: You wrote it, you own it, and its an original work. In short: You wrote it, you own it, and its an original work.
@@ -243,12 +233,11 @@ copilot tools, so-called AI services, large language models (LLMs), etc.
If you do make use of such tools or services, then we encourage you to If you do make use of such tools or services, then we encourage you to
describe what tools and how you used those tools, in your `remarks.md` file. describe what tools and how you used those tools, in your `remarks.md` file.
See [Rule 16 Anonymous](rules.html#rule-16-anonymous). See [Rule 16 - Anonymous](rules.html#rule-16---anonymous).
<div id="rule8"> <div id="rule8">
Rule 8 Submission ## Rule 8 - Submission
-----------------
</div> </div>
The Submit Server will only accept submissions from those who have The Submit Server will only accept submissions from those who have
@@ -263,15 +252,14 @@ and resubmit. In order to avoid potential packaging errors, it is **highly
recommended** to use `mkiocccentry(1)`. recommended** to use `mkiocccentry(1)`.
See See
[Rule 3 Register](rules.html#rule-3-register), [Rule 3 - Register](rules.html#rule-3---register),
[Rule 15 Building](rules.html#rule-15-building), [Rule 15 - Building](rules.html#rule-15---building),
and and
[Rule 17 Packaging](rules.html#rule-17-packaging). [Rule 17 - Packaging](rules.html#rule-17---packaging).
<div id="rule9"> <div id="rule9">
Rule 9 No hands ## Rule 9 - No hands
----------------
</div> </div>
Entries requiring human interaction to be initially compiled are **NOT** Entries requiring human interaction to be initially compiled are **NOT**
@@ -281,12 +269,11 @@ its build process using `bash`, `gmake`, `gcc`, `clang`, under a
Note references to `gmake` can be any GNU Make compatible tool. Note references to `gmake` can be any GNU Make compatible tool.
See [Rule 15 Building](rules.html#rule-15-building). See [Rule 15 - Building](rules.html#rule-15---building).
<div id="rule10"> <div id="rule10">
Rule 10 Privileges Rule 10 - Privileges
------------------
</div> </div>
Programs that require special privileges (setuid(2), setgid(2), Programs that require special privileges (setuid(2), setgid(2),
@@ -301,14 +288,13 @@ have these permissions, you will also have to explain this, because these
bits are **NOT** allowed in submissions and those bits will **NOT** be copied by bits are **NOT** allowed in submissions and those bits will **NOT** be copied by
`mkiocccentry(1)`. `mkiocccentry(1)`.
See [Rule 4 Files](rules.html#rule-4-files), See [Rule 4 - Files](rules.html#rule-4---files),
and and
[Rule 5 Purity](rules.html#rule-5-purity). [Rule 5 - Purity](rules.html#rule-5---purity).
<div id="rule11"> <div id="rule11">
Rule 11 Abuse ## Rule 11 - Abuse
-------------
</div> </div>
Legal abuse of the rules is somewhat encouraged, but comes with risks. Legal abuse of the rules is somewhat encouraged, but comes with risks.
@@ -334,16 +320,14 @@ into a wrong slot by mistake.
<div id="rule12"> <div id="rule12">
Rule 12 UTF-8 ## Rule 12 - UTF-8
-------------
</div> </div>
Use of UTF-8 is supported by `C89` standard and its updates and so too by the IOCCC. Use of UTF-8 is supported by `C89` standard and its updates and so too by the IOCCC.
<div id="rule13"> <div id="rule13">
Rule 13 Newlines ## Rule 13 - Newlines
----------------
</div> </div>
Any C source that fails to compile because lines contain carriage-returns Any C source that fails to compile because lines contain carriage-returns
@@ -362,8 +346,7 @@ your compiler complains about this, document this too and update your
<div id="rule14"> <div id="rule14">
Rule 14 Resubmit ## Rule 14 - Resubmit
----------------
</div> </div>
Submissions that are substantially similar to previous winning IOCCC Submissions that are substantially similar to previous winning IOCCC
@@ -377,8 +360,7 @@ didn't previously win, then you are encouraged to mention this in your
<div id="rule15"> <div id="rule15">
Rule 15 Building ## Rule 15 - Building
----------------
</div> </div>
The `Makefile` **MUST** adhere to GNU Makefile syntax. Its recommended The `Makefile` **MUST** adhere to GNU Makefile syntax. Its recommended
@@ -408,12 +390,11 @@ GNU long name options `--example` or extensions like `grep -P`.
Do **NOT** assume that `.` (current directory) is in the `$PATH` environment variable. Do **NOT** assume that `.` (current directory) is in the `$PATH` environment variable.
See [Rule 4 Files](rules.html#rule-4-files). See [Rule 4 - Files](rules.html#rule-4---files).
<div id="rule16"> <div id="rule16">
Rule 16 Anonymous ## Rule 16 - Anonymous
-----------------
</div> </div>
Your source code, data files, remarks, and program output **MUST NOT** Your source code, data files, remarks, and program output **MUST NOT**
@@ -427,8 +408,7 @@ in the submission being disqualified.***
<div id="rule17"> <div id="rule17">
Rule 17 Packaging ## Rule 17 - Packaging
-----------------
</div> </div>
The files, directories, and paths **MUST** conform to the limits imposed by The files, directories, and paths **MUST** conform to the limits imposed by
@@ -453,7 +433,7 @@ created by the `-d` or `-s` seed options of `mkiocccentry(1)`.
The unpacked submission directory **MUST** pass the checks performed by the The unpacked submission directory **MUST** pass the checks performed by the
current version of `chksubmit(1)`. current version of `chksubmit(1)`.
The `prog.c` file **MUST** pass the [Rule 2 Size](rules.html#rule-2-size) The `prog.c` file **MUST** pass the [Rule 2 - Size](rules.html#rule-2---size)
size checks performed by `iocccsize(1)`. size checks performed by `iocccsize(1)`.
The `.auth.json` and `.info.json` files **MUST** be compatible with what The `.auth.json` and `.info.json` files **MUST** be compatible with what
@@ -468,45 +448,43 @@ GitHub repo.
In summary: it is best to use `mkioccentry(1)` to package your submission, In summary: it is best to use `mkioccentry(1)` to package your submission,
rather than roll-it-by-hand. rather than roll-it-by-hand.
See [Rule 4 Files](rules.html#rule-4-files). See [Rule 4 - Files](rules.html#rule-4---files).
<div id="rule18"> <div id="rule18">
Rule 18 License ## Rule 18 - License
---------------
</div> </div>
The entirety of your submission **MUST** be submitted under the following license: The entirety of your submission **MUST** be submitted under the following license:
[CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/) [CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)
See [Rule 7 Original Work](rules.html#rule-7-original-work). See [Rule 7 - Original Work](rules.html#rule-7---original-work).
<div id="rule19"> <div id="rule19">
Rule 19 Prime ## Rule 19 - Prime
-------------
</div> </div>
This 19th rule, while prime, is reserved for future abuse 😁. This 19th rule, while prime, is reserved for future abuse 😁.
Additional rules, both humorous and otherwise, may be added Additional rules, both humorous and otherwise, may be added
below this rule in future contests. below this rule in future contests.
See [Rule 6 Free](rules.html#rule-6-free). See [Rule 6 - Free](rules.html#rule-6---free).
Further Reading ## Further Reading
---------------
Please read the [Guidelines](guidelines.html) next for further Read the
commentary on The Rules. [Entering the IOCCC: the bare minimum you need to know](https://www.ioccc.org/quick-start.html#enter)
for an overview of how to enter the contest.
Please read the [Guidelines](guidelines.html) next for further commentary on The Rules.
See also the [FAQ](../faq.html). See also the [FAQ](../faq.html).
Consider joining our Discord Consider joining the [IOCCC Discord Server](https://discord.com/invite/Wa42Qujwnw)
server for discussions about The Rules, questions for the Judges, and for discussions about The Rules, questions for the Judges, and `C` in general.
`C` in general.
Leonid A. Broukhis Leonid A. Broukhis
chongo (Landon Curt Noll) /\\cc/\\ chongo (Landon Curt Noll) /\\cc/\\
+3 -3
View File
@@ -518,7 +518,7 @@ the file selection step.</p>
<li>the status of the submission</li> <li>the status of the submission</li>
<li>the filename, which will be in the correct format, assuming you used <li>the filename, which will be in the correct format, assuming you used
<code>mkiocccentry(1)</code> which is <strong>HIGHLY</strong> recommended so that you do not break <code>mkiocccentry(1)</code> which is <strong>HIGHLY</strong> recommended so that you do not break
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>!</li> <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</li>
<li>the file length, which <code>txzchk(1)</code> will also verify (the file itself and the <li>the file length, which <code>txzchk(1)</code> will also verify (the file itself and the
tarball listing).</li> tarball listing).</li>
<li>the upload date.</li> <li>the upload date.</li>
@@ -576,7 +576,7 @@ To see any status updates, you should logout and log back in later.</p>
<p>… or <strong>ANY</strong> other error then you <strong>MUST FIX</strong> your submission, repackage your <p>… or <strong>ANY</strong> other error then you <strong>MUST FIX</strong> your submission, repackage your
tarball with <code>mkiocccentry</code> and upload to the same slot again! If you do not fix tarball with <code>mkiocccentry</code> and upload to the same slot again! If you do not fix
this your submission <strong>WILL BE REJECTED</strong> for violating this your submission <strong>WILL BE REJECTED</strong> for violating
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p> <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
<p>If the format test went well, then you will see:</p> <p>If the format test went well, then you will see:</p>
<blockquote> <blockquote>
<p><strong>Status: submit file received by the IOCCC judges. Passed both txzchk and chksubmit tests.</strong></p> <p><strong>Status: submit file received by the IOCCC judges. Passed both txzchk and chksubmit tests.</strong></p>
@@ -586,7 +586,7 @@ rules or that everything is OK once the tarball is extracted; it simply means
the tests performed by the tools passed. If you find a flaw in a tool and the tests performed by the tools passed. If you find a flaw in a tool and
abuse it and the tests pass then you stand a significant chance of having your abuse it and the tests pass then you stand a significant chance of having your
submission rejected for violating submission rejected for violating
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>, <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>,
even if the tests passed.</p> even if the tests passed.</p>
<p>For details on <code>txzchk</code>, see the <p>For details on <code>txzchk</code>, see the
FAQ on “<a href="../faq.html#txzchk">txzchk</a>”.</p> FAQ on “<a href="../faq.html#txzchk">txzchk</a>”.</p>
+3 -3
View File
@@ -87,7 +87,7 @@ And in the slot it will give you important details like:
- the status of the submission - the status of the submission
- the filename, which will be in the correct format, assuming you used - the filename, which will be in the correct format, assuming you used
`mkiocccentry(1)` which is **HIGHLY** recommended so that you do not break `mkiocccentry(1)` which is **HIGHLY** recommended so that you do not break
[Rule 17 Packaging](rules.html#rule-17-packaging)! [Rule 17 - Packaging](rules.html#rule-17---packaging)!
- the file length, which `txzchk(1)` will also verify (the file itself and the - the file length, which `txzchk(1)` will also verify (the file itself and the
tarball listing). tarball listing).
- the upload date. - the upload date.
@@ -158,7 +158,7 @@ Or:
... or **ANY** other error then you **MUST FIX** your submission, repackage your ... or **ANY** other error then you **MUST FIX** your submission, repackage your
tarball with `mkiocccentry` and upload to the same slot again! If you do not fix tarball with `mkiocccentry` and upload to the same slot again! If you do not fix
this your submission **WILL BE REJECTED** for violating this your submission **WILL BE REJECTED** for violating
[Rule 17 Packaging](rules.html#rule-17-packaging)! [Rule 17 - Packaging](rules.html#rule-17---packaging)!
If the format test went well, then you will see: If the format test went well, then you will see:
@@ -169,7 +169,7 @@ rules or that everything is OK once the tarball is extracted; it simply means
the tests performed by the tools passed. If you find a flaw in a tool and the tests performed by the tools passed. If you find a flaw in a tool and
abuse it and the tests pass then you stand a significant chance of having your abuse it and the tests pass then you stand a significant chance of having your
submission rejected for violating submission rejected for violating
[Rule 17 Packaging](rules.html#rule-17-packaging), [Rule 17 - Packaging](rules.html#rule-17---packaging),
even if the tests passed. even if the tests passed.
For details on `txzchk`, see the For details on `txzchk`, see the
+3 -3
View File
@@ -566,13 +566,13 @@ for more info.</p></li>
<p><strong>NOTE</strong>: Please see our <a href="markdown.html">IOCCC markdown guide</a> for <strong>important information</strong> on using markdown in the IOCCC.</p> <p><strong>NOTE</strong>: Please see our <a href="markdown.html">IOCCC markdown guide</a> for <strong>important information</strong> on using markdown in the IOCCC.</p>
<p>If the <code>mkiocccentry</code> tool indicates that there is a problem with your <p>If the <code>mkiocccentry</code> tool indicates that there is a problem with your
submission, especially if it identifies a submission, especially if it identifies a
<a href="next/rules.html#rule-2-size">Rule 2 Size</a>, <a href="next/rules.html#rule-2---size">Rule 2 - Size</a>,
or any other <a href="next/rules.html">rule</a>, related problem, you are <strong>strongly</strong> encouraged to revise and or any other <a href="next/rules.html">rule</a>, related problem, you are <strong>strongly</strong> encouraged to revise and
correct your entry and then re-run the <code>mkiocccentry</code> tool.</p> correct your entry and then re-run the <code>mkiocccentry</code> tool.</p>
<p>If you choose to risk violating <a href="next/rules.html">Rules</a>, be sure and explain your reason <p>If you choose to risk violating <a href="next/rules.html">Rules</a>, be sure and explain your reason
for doing so in your <code>remarks.md</code> file.</p> for doing so in your <code>remarks.md</code> file.</p>
<p>See also <p>See also
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p> <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
<p><strong>IMPORTANT NOTE</strong>: the tools that require other tools, <code>mkiocccentry(1)</code> and <p><strong>IMPORTANT NOTE</strong>: the tools that require other tools, <code>mkiocccentry(1)</code> and
<code>txzchk(1)</code>, will, as of version <code>2.0.2 2025-03-11</code>, search under <code>$PATH</code>. If <code>txzchk(1)</code>, will, as of version <code>2.0.2 2025-03-11</code>, search under <code>$PATH</code>. If
you have an earlier version and you have not installed the tools and run the you have an earlier version and you have not installed the tools and run the
@@ -581,7 +581,7 @@ tools to set the path to the required tools.</p>
<p>Do remember to make sure you have the latest vers <p>Do remember to make sure you have the latest vers
<code>chksubmit(1)</code>, <code>txzchk(1)</code> and <code>fnamchk(1)</code>. And remember to make sure you have <code>chksubmit(1)</code>, <code>txzchk(1)</code> and <code>fnamchk(1)</code>. And remember to make sure you have
the latest version so you do not violate the latest version so you do not violate
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>. <a href="next/rules.html#rule-17---packaging">Rule 17 - Packaging</a>.
See the See the
FAQ on “<a href="faq.html#obtaining_mkiocccentry">obtaining the latest mkiocccentry tools</a>”, FAQ on “<a href="faq.html#obtaining_mkiocccentry">obtaining the latest mkiocccentry tools</a>”,
the the
+3 -3
View File
@@ -162,7 +162,7 @@ Three files are required to exist in `topdir`:
If the `mkiocccentry` tool indicates that there is a problem with your If the `mkiocccentry` tool indicates that there is a problem with your
submission, especially if it identifies a submission, especially if it identifies a
[Rule 2 Size](next/rules.html#rule-2-size), [Rule 2 - Size](next/rules.html#rule-2---size),
or any other [rule](next/rules.html), related problem, you are **strongly** encouraged to revise and or any other [rule](next/rules.html), related problem, you are **strongly** encouraged to revise and
correct your entry and then re-run the `mkiocccentry` tool. correct your entry and then re-run the `mkiocccentry` tool.
@@ -170,7 +170,7 @@ If you choose to risk violating [Rules](next/rules.html), be sure and explain yo
for doing so in your `remarks.md` file. for doing so in your `remarks.md` file.
See also See also
[Rule 17 Packaging](next/rules.html#rule-17-packaging)! [Rule 17 - Packaging](next/rules.html#rule-17---packaging)!
**IMPORTANT NOTE**: the tools that require other tools, `mkiocccentry(1)` and **IMPORTANT NOTE**: the tools that require other tools, `mkiocccentry(1)` and
`txzchk(1)`, will, as of version `2.0.2 2025-03-11`, search under `$PATH`. If `txzchk(1)`, will, as of version `2.0.2 2025-03-11`, search under `$PATH`. If
@@ -181,7 +181,7 @@ tools to set the path to the required tools.
Do remember to make sure you have the latest vers Do remember to make sure you have the latest vers
`chksubmit(1)`, `txzchk(1)` and `fnamchk(1)`. And remember to make sure you have `chksubmit(1)`, `txzchk(1)` and `fnamchk(1)`. And remember to make sure you have
the latest version so you do not violate the latest version so you do not violate
[Rule 17 Packaging](next/rules.html#rule-17-packaging). [Rule 17 - Packaging](next/rules.html#rule-17---packaging).
See the See the
FAQ on "[obtaining the latest mkiocccentry tools](faq.html#obtaining_mkiocccentry)", FAQ on "[obtaining the latest mkiocccentry tools](faq.html#obtaining_mkiocccentry)",
the the
+14 -14
View File
@@ -16758,11 +16758,11 @@
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/faq.html</loc> <loc>https://www.ioccc.org/faq.html</loc>
<lastmod>2025-11-20T06:07:42+00:00</lastmod> <lastmod>2025-11-21T00:14:43+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/faq.md</loc> <loc>https://www.ioccc.org/faq.md</loc>
<lastmod>2025-11-20T05:27:40+00:00</lastmod> <lastmod>2025-11-21T00:14:46+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/inc/index.html</loc> <loc>https://www.ioccc.org/inc/index.html</loc>
@@ -16818,19 +16818,19 @@
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/news.html</loc> <loc>https://www.ioccc.org/news.html</loc>
<lastmod>2025-11-20T06:14:39+00:00</lastmod> <lastmod>2025-11-21T00:14:45+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/news.md</loc> <loc>https://www.ioccc.org/news.md</loc>
<lastmod>2025-11-20T06:10:33+00:00</lastmod> <lastmod>2025-11-21T00:07:02+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/guidelines.html</loc> <loc>https://www.ioccc.org/next/guidelines.html</loc>
<lastmod>2025-11-20T06:07:45+00:00</lastmod> <lastmod>2025-11-21T00:14:45+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/guidelines.md</loc> <loc>https://www.ioccc.org/next/guidelines.md</loc>
<lastmod>2025-11-20T06:03:36+00:00</lastmod> <lastmod>2025-11-21T00:07:07+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/index.html</loc> <loc>https://www.ioccc.org/next/index.html</loc>
@@ -16870,19 +16870,19 @@
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/rules.html</loc> <loc>https://www.ioccc.org/next/rules.html</loc>
<lastmod>2025-11-20T21:45:59+00:00</lastmod> <lastmod>2025-11-21T00:14:47+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/rules.md</loc> <loc>https://www.ioccc.org/next/rules.md</loc>
<lastmod>2025-11-20T21:45:51+00:00</lastmod> <lastmod>2025-11-21T00:11:37+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/submit.html</loc> <loc>https://www.ioccc.org/next/submit.html</loc>
<lastmod>2025-11-20T06:07:47+00:00</lastmod> <lastmod>2025-11-21T00:14:47+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/submit.md</loc> <loc>https://www.ioccc.org/next/submit.md</loc>
<lastmod>2025-11-20T06:04:29+00:00</lastmod> <lastmod>2025-11-21T00:07:19+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/try.alt.sh</loc> <loc>https://www.ioccc.org/next/try.alt.sh</loc>
@@ -16902,11 +16902,11 @@
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/quick-start.html</loc> <loc>https://www.ioccc.org/quick-start.html</loc>
<lastmod>2025-11-20T06:07:47+00:00</lastmod> <lastmod>2025-11-21T00:14:48+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/quick-start.md</loc> <loc>https://www.ioccc.org/quick-start.md</loc>
<lastmod>2025-11-20T06:06:04+00:00</lastmod> <lastmod>2025-11-21T00:07:25+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/README.html</loc> <loc>https://www.ioccc.org/README.html</loc>
@@ -16938,11 +16938,11 @@
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/status.html</loc> <loc>https://www.ioccc.org/status.html</loc>
<lastmod>2025-11-20T21:47:23+00:00</lastmod> <lastmod>2025-11-21T00:15:04+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/status.json</loc> <loc>https://www.ioccc.org/status.json</loc>
<lastmod>2025-11-20T06:15:00+00:00</lastmod> <lastmod>2025-11-21T00:15:03+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/status.md</loc> <loc>https://www.ioccc.org/status.md</loc>
+1 -1
View File
@@ -461,7 +461,7 @@
&quot;no_comment&quot; : &quot;mandatory comment: because comments were removed from the original JSON spec&quot;, &quot;no_comment&quot; : &quot;mandatory comment: because comments were removed from the original JSON spec&quot;,
&quot;IOCCC_status_version&quot; : &quot;1.0 2024-03-09&quot;, &quot;IOCCC_status_version&quot; : &quot;1.0 2024-03-09&quot;,
&quot;contest_status&quot; : &quot;closed&quot;, &quot;contest_status&quot; : &quot;closed&quot;,
&quot;news_update&quot; : &quot;2025-11-20T06:10:33+00:00&quot;, &quot;news_update&quot; : &quot;2025-11-21T00:07:02+00:00&quot;,
&quot;status_update&quot; : &quot;2025-08-01T19:38:14+00:00&quot; &quot;status_update&quot; : &quot;2025-08-01T19:38:14+00:00&quot;
}</code></pre> }</code></pre>
+1 -1
View File
@@ -2,6 +2,6 @@
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec", "no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
"IOCCC_status_version" : "1.0 2024-03-09", "IOCCC_status_version" : "1.0 2024-03-09",
"contest_status" : "closed", "contest_status" : "closed",
"news_update" : "2025-11-20T06:10:33+00:00", "news_update" : "2025-11-21T00:07:02+00:00",
"status_update" : "2025-08-01T19:38:14+00:00" "status_update" : "2025-08-01T19:38:14+00:00"
} }