checkpoint rules version 29.00 2025-11-19.
This is a work in progress towards an improved rule set for **IOCCC29**. Links to rules elsewhere on the site were modified as needed.
This commit is contained in:
1 parent
1be0e93dbf
commit
ea37a9f559
17 files changed
+1068
-1722
No files matched your search
+3
-3
@@ -77,7 +77,7 @@ become more skilled in the programming in the C language.
|
|||||||
|
|
||||||
We were pleased to observe that while the [IOCCC size limit](../faq.html#size_rule_history)
|
We were pleased to observe that while the [IOCCC size limit](../faq.html#size_rule_history)
|
||||||
increased by about 21%, we received many submissions that were well under the new
|
increased by about 21%, we received many submissions that were well under the new
|
||||||
[Rule 2 size limit](../next/rules.html#rule2) including a fair number of quality
|
[Rule 2 Size](../next/rules.html#rule-2-size) including a fair number of quality
|
||||||
small and medium sized submissions. Half of the **IOCCC28 winners** were less than
|
small and medium sized submissions. Half of the **IOCCC28 winners** were less than
|
||||||
_2/3 of the size limit_, and 10 of the **IOCCC28 winners** were less than
|
_2/3 of the size limit_, and 10 of the **IOCCC28 winners** were less than
|
||||||
_1/2 of the size limit_!
|
_1/2 of the size limit_!
|
||||||
@@ -85,10 +85,10 @@ _1/2 of the size limit_!
|
|||||||
**IMPORTANT NOTE**: The [IOCCC size limit](../faq.html#size_rule_history) increase for **IOCCC28**
|
**IMPORTANT NOTE**: The [IOCCC size limit](../faq.html#size_rule_history) increase for **IOCCC28**
|
||||||
was the first size increase in over 10 years. Given the quality of submissions we received
|
was the first size increase in over 10 years. Given the quality of submissions we received
|
||||||
that were well under the limit, we do **NOT** expect to change the
|
that were well under the limit, we do **NOT** expect to change the
|
||||||
[Rule 2 size limit](../next/rules.html#rule2) for **at least another 10 years** (and likely longer).
|
[Rule 2 Size](../next/rules.html#rule-2-size) for **at least another 10 years** (and likely longer).
|
||||||
|
|
||||||
**IMPORTANT HINT**: Only 3 of the 23 **IOCCC28 winners** came close to the [Rule
|
**IMPORTANT HINT**: Only 3 of the 23 **IOCCC28 winners** came close to the [Rule
|
||||||
2 size limit](../next/rules.html#rule2). Large code size isn't everything. :-)
|
2 Size](../next/rules.html#rule-2-size). Large code size isn't everything. :-)
|
||||||
Those submitting to future contents should **take a careful note** of that fact.
|
Those submitting to future contents should **take a careful note** of that fact.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -513,16 +513,16 @@ become more skilled in the programming in the C language.</p>
|
|||||||
<h3 id="code-size-and-rule-2">Code size and Rule 2</h3>
|
<h3 id="code-size-and-rule-2">Code size and Rule 2</h3>
|
||||||
<p>We were pleased to observe that while the <a href="../faq.html#size_rule_history">IOCCC size limit</a>
|
<p>We were pleased to observe that while the <a href="../faq.html#size_rule_history">IOCCC size limit</a>
|
||||||
increased by about 21%, we received many submissions that were well under the new
|
increased by about 21%, we received many submissions that were well under the new
|
||||||
<a href="../next/rules.html#rule2">Rule 2 size limit</a> including a fair number of quality
|
<a href="../next/rules.html#rule-2-size">Rule 2 Size</a> including a fair number of quality
|
||||||
small and medium sized submissions. Half of the <strong>IOCCC28 winners</strong> were less than
|
small and medium sized submissions. Half of the <strong>IOCCC28 winners</strong> were less than
|
||||||
<em>2/3 of the size limit</em>, and 10 of the <strong>IOCCC28 winners</strong> were less than
|
<em>2/3 of the size limit</em>, and 10 of the <strong>IOCCC28 winners</strong> were less than
|
||||||
<em>1/2 of the size limit</em>!</p>
|
<em>1/2 of the size limit</em>!</p>
|
||||||
<p><strong>IMPORTANT NOTE</strong>: The <a href="../faq.html#size_rule_history">IOCCC size limit</a> increase for <strong>IOCCC28</strong>
|
<p><strong>IMPORTANT NOTE</strong>: The <a href="../faq.html#size_rule_history">IOCCC size limit</a> increase for <strong>IOCCC28</strong>
|
||||||
was the first size increase in over 10 years. Given the quality of submissions we received
|
was the first size increase in over 10 years. Given the quality of submissions we received
|
||||||
that were well under the limit, we do <strong>NOT</strong> expect to change the
|
that were well under the limit, we do <strong>NOT</strong> expect to change the
|
||||||
<a href="../next/rules.html#rule2">Rule 2 size limit</a> for <strong>at least another 10 years</strong> (and likely longer).</p>
|
<a href="../next/rules.html#rule-2-size">Rule 2 Size</a> for <strong>at least another 10 years</strong> (and likely longer).</p>
|
||||||
<p><strong>IMPORTANT HINT</strong>: Only 3 of the 23 <strong>IOCCC28 winners</strong> came close to the <a href="../next/rules.html#rule2">Rule
|
<p><strong>IMPORTANT HINT</strong>: Only 3 of the 23 <strong>IOCCC28 winners</strong> came close to the <a href="../next/rules.html#rule-2-size">Rule
|
||||||
2 size limit</a>. Large code size isn’t everything. :-)
|
2 Size</a>. Large code size isn’t everything. :-)
|
||||||
Those submitting to future contents should <strong>take a careful note</strong> of that fact.</p>
|
Those submitting to future contents should <strong>take a careful note</strong> of that fact.</p>
|
||||||
<h3 id="rules-and-guidelines-for-this-contest">Rules and Guidelines for this contest</h3>
|
<h3 id="rules-and-guidelines-for-this-contest">Rules and Guidelines for this contest</h3>
|
||||||
<p>Here are the final versions of the IOCCC rules and guidelines that were in
|
<p>Here are the final versions of the IOCCC rules and guidelines that were in
|
||||||
|
|||||||
@@ -657,8 +657,8 @@
|
|||||||
<p>This toolkit is from the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
<p>This toolkit is from the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||||
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 <a href="next/rules.html#rule17">Rule
|
violating the <a href="next/rules.html">Rules</a> and in particular
|
||||||
17</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>
|
||||||
@@ -772,7 +772,8 @@ is not a directory that can be written to. In <strong>this</strong> directory yo
|
|||||||
directory</strong> will be created, with the name based on your IOCCC registration
|
directory</strong> will be created, with the name based on your IOCCC registration
|
||||||
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 <a href="next/rules.html#rule17">Rule 17</a>.</p>
|
particular
|
||||||
|
<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
|
||||||
@@ -932,7 +933,8 @@ rounds; we look at the author name only if an entry wins. See the
|
|||||||
<a href="next/guidelines.html">guidelines</a> <strong>AND</strong> <a href="next/rules.html">rules</a> if this is not clear!</li>
|
<a href="next/guidelines.html">guidelines</a> <strong>AND</strong> <a href="next/rules.html">rules</a> if this is not clear!</li>
|
||||||
<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 <a href="next/rules.html#rule17">Rule 17</a>).</li>
|
include whitespace you would still be violating
|
||||||
|
<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">
|
||||||
@@ -975,10 +977,12 @@ FAQ on “<a href="#makefile">submission Makefile</a>”
|
|||||||
for more details.</p>
|
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 <a href="next/rules.html#rule17">Rule 17</a> itself.</p>
|
and
|
||||||
|
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>
|
||||||
|
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 <a href="next/rules.html#rule11">Rule
|
<strong>MUST</strong> make a <strong>COPY</strong> of them in your <code>Makefile</code>. See also
|
||||||
11</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">
|
||||||
@@ -1122,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#rule17">Rule 17</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#rule17">Rule 17</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!
|
||||||
@@ -1170,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#rule17">Rule 17</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
|
||||||
@@ -1220,7 +1224,8 @@ 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#rule18">Rule 18</a> and our
|
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>
|
||||||
|
and our
|
||||||
FAQ on “<a href="#remarks_md">remarks.md</a>”,
|
FAQ on “<a href="#remarks_md">remarks.md</a>”,
|
||||||
our
|
our
|
||||||
FAQ on “<a href="#markdown">markdown</a>”
|
FAQ on “<a href="#markdown">markdown</a>”
|
||||||
@@ -1312,13 +1317,17 @@ permissions and <code>mkiocccentry(1)</code> does this for you. In particular: d
|
|||||||
<strong>MUST</strong> be <code>drwxr-xr-x</code> (i.e. <code>0755</code>); any file ending with <code>.sh</code> <strong>MUST</strong> be
|
<strong>MUST</strong> be <code>drwxr-xr-x</code> (i.e. <code>0755</code>); any file ending with <code>.sh</code> <strong>MUST</strong> be
|
||||||
<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 <a href="next/rules.html#rule17">Rule 17</a>!</p>
|
submission <strong>WILL</strong> be rejected for violating
|
||||||
|
<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#rule4">Rule 4</a>, <a href="next/rules.html#rule5">Rule 5</a> and <a href="next/rules.html#rule21">Rule 21</a>.</p>
|
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>,
|
||||||
|
<a href="next/rules.html#rule-5-purity">Rule 5 Purity</a>,
|
||||||
|
and
|
||||||
|
<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,
|
||||||
@@ -1330,14 +1339,19 @@ page</a>.</p>
|
|||||||
<p>The tarball filename <strong>MUST</strong> pass <code>fnamchk(1)</code>; the tool <code>txzchk(1)</code>
|
<p>The tarball filename <strong>MUST</strong> pass <code>fnamchk(1)</code>; the tool <code>txzchk(1)</code>
|
||||||
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 <a href="next/rules.html#rule17">Rule
|
possible there could be a problem and this poses a big risk of violating
|
||||||
17</a>.</p>
|
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>
|
||||||
|
or
|
||||||
|
<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 <a href="next/rules.html#rule17">Rule 17</a>!</p>
|
having your submission rejected for violating
|
||||||
|
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>
|
||||||
|
or
|
||||||
|
<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>
|
||||||
@@ -1366,7 +1380,11 @@ yourself.</p>
|
|||||||
The <code>mkiocccentry(1)</code> tool uses the v7 format. For instance you might try:</p>
|
The <code>mkiocccentry(1)</code> tool uses the v7 format. For instance you might try:</p>
|
||||||
<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 <a href="next/rules.html#rule17">Rule 17</a> and the tools from the latest
|
<p><strong>IMPORTANT</strong>: where
|
||||||
|
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>,
|
||||||
|
and
|
||||||
|
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>.
|
||||||
|
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
|
||||||
is likely to favor <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a> code.</p>
|
is likely to favor <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a> code.</p>
|
||||||
@@ -1399,8 +1417,11 @@ page</a>,
|
|||||||
<strong>making sure to run <code>bug_report.sh</code></strong>. See the <a href="next/guidelines.html">guidelines</a>
|
<strong>making sure to run <code>bug_report.sh</code></strong>. See the <a href="next/guidelines.html">guidelines</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 <a href="next/rules.html#rule17">Rule
|
<p>At the risk of stating the obvious: submissions that violate
|
||||||
17</a> <strong>WILL BE REJECTED</strong>, so <strong>BE SURE</strong> to use the latest release of the
|
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>,
|
||||||
|
or
|
||||||
|
<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
|
||||||
<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
|
||||||
recent release without pulling or downloading via GitHub and do <strong>MAKE SURE</strong> you
|
recent release without pulling or downloading via GitHub and do <strong>MAKE SURE</strong> you
|
||||||
@@ -1878,7 +1899,10 @@ two JSON files, <code>.auth.json</code> and <code>.info.json</code> as well as t
|
|||||||
<code>Makefile</code> and <code>remarks.md</code> files along with all the other files listed in the
|
<code>Makefile</code> and <code>remarks.md</code> files along with all the other files listed in the
|
||||||
<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 href="next/rules.html#rule17">Rule 17</a>!).</p>
|
a great risk of violating
|
||||||
|
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>,
|
||||||
|
or
|
||||||
|
<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>
|
||||||
@@ -1897,7 +1921,11 @@ checks.</p>
|
|||||||
FAQ on “<a href="#auth_json">.auth.json</a>”
|
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 <a href="next/rules.html#rule17">Rule 17</a> for more information.</p>
|
as well as
|
||||||
|
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>,
|
||||||
|
and
|
||||||
|
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>
|
||||||
|
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
|
||||||
of <code>chkentry(1)</code> when validating a directory; <code>chkentry(1)</code> is for the judges
|
of <code>chkentry(1)</code> when validating a directory; <code>chkentry(1)</code> is for the judges
|
||||||
@@ -1986,21 +2014,25 @@ to be valid. If this is not the case your submission <strong>WILL BE</strong> re
|
|||||||
<ul>
|
<ul>
|
||||||
<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 <a href="next/rules.html#rule17">Rule 17</a>.</li>
|
on this, and in particular
|
||||||
|
<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 <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
violating
|
||||||
|
<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>
|
||||||
</ul>
|
</ul>
|
||||||
<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 <a href="next/rules.html#rule17">Rule 17</a>!
|
your submission rejected for violating
|
||||||
|
<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 <a href="next/rules.html#rule17">Rule
|
<code>fnamchk(1)</code> which also puts you at great risk of violating
|
||||||
17</a>. <code>txzchk</code> will use the output of <code>fnamchk</code> to
|
<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
|
||||||
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
|
||||||
tarball, this will be flaggd.</p></li>
|
tarball, this will be flaggd.</p></li>
|
||||||
@@ -2013,7 +2045,8 @@ tarball, this will be flaggd.</p></li>
|
|||||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h">soup/limit_ioccc.h</a>
|
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h">soup/limit_ioccc.h</a>
|
||||||
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 <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
rejected for violating
|
||||||
|
<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>
|
||||||
@@ -2085,7 +2118,8 @@ the range of 1 <strong>THROUGH</strong> <code>MAX_AFFILIATION_LEN</code> (see
|
|||||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h">soup/limit_ioccc.h</a>
|
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h">soup/limit_ioccc.h</a>
|
||||||
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 <a href="next/rules.html#rule17">Rule 17</a>!</p>
|
rejected for violating
|
||||||
|
<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>
|
||||||
@@ -2169,8 +2203,10 @@ will use it on the submission directory as part of the judging process.</p>
|
|||||||
<p>At the risk of stating the obvious, if your <code>.auth.json</code> file is invalid JSON or
|
<p>At the risk of stating the obvious, if your <code>.auth.json</code> file is invalid JSON or
|
||||||
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 <a href="next/rules.html#rule17">Rule
|
rejected for violating the <a href="next/rules.html">Rules</a> and in particular
|
||||||
17</a>.</p>
|
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>,
|
||||||
|
and
|
||||||
|
<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
|
||||||
@@ -2178,7 +2214,11 @@ not a string or is the wrong string. Another obvious example is when things are
|
|||||||
out of range (see above for list). Two more examples would be if a field is
|
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 <a href="next/rules.html#rule17">Rule 17</a> and in particular
|
rejected for violating
|
||||||
|
<a href="next/rules.html#rule-4-files">Rule 4 Files</a>,
|
||||||
|
and
|
||||||
|
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>
|
||||||
|
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>
|
||||||
<p>If you wish to <strong>verify</strong> that your <code>.auth.json</code> file is valid <strong>JSON</strong> then see the
|
<p>If you wish to <strong>verify</strong> that your <code>.auth.json</code> file is valid <strong>JSON</strong> then see the
|
||||||
@@ -2296,7 +2336,8 @@ this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
|
|||||||
<ul>
|
<ul>
|
||||||
<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 <a href="next/rules.html#rule17">Rule 17</a>.</li>
|
on this, and in particular
|
||||||
|
<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>
|
||||||
@@ -2307,7 +2348,8 @@ on this, and in particular <a href="next/rules.html#rule17">Rule 17</a>.</li>
|
|||||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h">soup/limit_ioccc.h</a>
|
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h">soup/limit_ioccc.h</a>
|
||||||
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 <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
rejected for violating
|
||||||
|
<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 >= 1 <strong>THROUGH</strong> <code>MAX_TITLE_LEN</code>, defined in
|
<li>A short name (length >= 1 <strong>THROUGH</strong> <code>MAX_TITLE_LEN</code>, defined in
|
||||||
@@ -2316,7 +2358,8 @@ in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a
|
|||||||
matches the regexp <code>[a-z0-9][a-z0-9_+-]*</code>.</li>
|
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 <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
rejected for violating
|
||||||
|
<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>
|
||||||
@@ -2326,33 +2369,37 @@ in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a
|
|||||||
</ul>
|
</ul>
|
||||||
<p>The <code>abstract</code> may not contain a <code>;</code> (semicolon), nor <code>&</code> (ampersand), nor <code>,</code> (comma).</p>
|
<p>The <code>abstract</code> may not contain a <code>;</code> (semicolon), nor <code>&</code> (ampersand), nor <code>,</code> (comma).</p>
|
||||||
<p><strong>IMPORTANT:</strong> if your abstract is 0 in length or > the maximum abstract length you
|
<p><strong>IMPORTANT:</strong> if your abstract is 0 in length or > the maximum abstract length you
|
||||||
stand a great risk of having your submission rejected for violating <a href="next/rules.html#rule17">Rule
|
stand a great risk of having your submission rejected for violating
|
||||||
17</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>
|
||||||
</ul>
|
</ul>
|
||||||
<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 <a href="next/rules.html#rule17">Rule 17</a>!
|
your submission rejected for violating
|
||||||
|
<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 <a href="next/rules.html#rule17">Rule
|
<code>fnamchk(1)</code> which also puts you at great risk of violating
|
||||||
17</a>. <code>txzchk</code> will use the output of <code>fnamchk</code> to
|
<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
|
||||||
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
|
||||||
tarball, this will be flaggd.</p></li>
|
tarball, this will be flaggd.</p></li>
|
||||||
<li><p><code>rule_2a_size</code> (number)</p>
|
<li><p><code>rule_2a_size</code> (number)</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>The size calculated of <a href="next/rules.html#rule2a">Rule 2a</a>.</li>
|
<li>The size calculated of <a href="next/rules.html#rule-2a-gross-size">Rule 2a Gross Size</a>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p><strong>IMPORTANT:</strong> if this violates <a href="next/rules.html#rule2a">Rule 2a</a> you stand a great
|
<p><strong>IMPORTANT:</strong> if this violates <a href="next/rules.html#rule2a">Rule 2a</a> you stand a great
|
||||||
chance of having your submission rejected for violating the
|
chance of having your submission rejected for violating the
|
||||||
<a href="next/rules.html">Rules</a>!</p></li>
|
<a href="next/rules.html">Rules</a>!</p></li>
|
||||||
<li><p><code>rule_2b_size</code> (number)</p>
|
<li><p><code>rule_2b_size</code> (number)</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>The size calculated of <a href="next/rules.html#rule2b">Rule 2b</a>.</li>
|
<li>The size calculated of <a href="next/rules.html#rule-2b-net-size">Rule 2b Next Size</a>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p><strong>IMPORTANT:</strong> if this violates <a href="next/rules.html#rule2b">Rule 2b</a> you stand a great
|
<p><strong>IMPORTANT:</strong> if this violates
|
||||||
|
<a href="next/rules.html#rule-2b-net-size">Rule 2b Next Size</a>
|
||||||
|
you stand a great
|
||||||
chance of having your submission rejected for violating the
|
chance of having your submission rejected for violating the
|
||||||
<a href="next/rules.html">Rules</a>!</p></li>
|
<a href="next/rules.html">Rules</a>!</p></li>
|
||||||
<li><p><code>empty_override</code> (boolean)</p>
|
<li><p><code>empty_override</code> (boolean)</p>
|
||||||
@@ -2361,30 +2408,41 @@ chance of having your submission rejected for violating the
|
|||||||
</ul></li>
|
</ul></li>
|
||||||
<li><p><code>rule_2a_override</code> (boolean)</p>
|
<li><p><code>rule_2a_override</code> (boolean)</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><code>true</code> if user overrides warning of <a href="next/rules.html#rule2a">Rule 2a</a>
|
<li><code>true</code> if user overrides warning of
|
||||||
|
<a href="next/rules.html#rule-2a-gross-size">Rule 2a Gross Size</a>
|
||||||
violation, else <code>false</code>.</li>
|
violation, else <code>false</code>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p><strong>IMPORTANT:</strong> if the <a href="next/rules.html#rule2a">Rule 2a</a> calculated size is <strong>NOT</strong>
|
<p><strong>IMPORTANT:</strong> if the
|
||||||
|
<a href="next/rules.html#rule-2a-gross-size">Rule 2a Gross Size</a>
|
||||||
|
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 <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
submission rejected for violating
|
||||||
|
<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 <a href="next/rules.html#rule2a">Rule 2a</a> calculated size is not the
|
<li><code>true</code> if
|
||||||
|
<a href="next/rules.html#rule-2a-gross-size">Rule 2a Gross Size</a>
|
||||||
|
calculated size is not the
|
||||||
same as the file size.</li>
|
same as the file size.</li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li><p><code>rule_2b_override</code> (boolean)</p>
|
<li><p><code>rule_2b_override</code> (boolean)</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><code>true</code> if user overrides warning of <a href="next/rules.html#rule2b">Rule 2b</a>
|
<li><code>true</code> if user overrides warning of
|
||||||
|
<a href="next/rules.html#rule-2b-net-size">Rule 2b Next Size</a>
|
||||||
violation, else <code>false</code>.</li>
|
violation, else <code>false</code>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p><strong>IMPORTANT:</strong> if the <a href="next/rules.html#rule2b">Rule 2b</a> calculated size is <strong>NOT</strong>
|
<p><strong>IMPORTANT:</strong> if the
|
||||||
|
<a href="next/rules.html#rule-2b-net-size">Rule 2b Next Size</a>
|
||||||
|
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 <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
submission rejected for violating
|
||||||
|
<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 >= 128); see <a href="next/rules.html#rule13">Rule 13</a>, else
|
bit set - octet value >= 128); see
|
||||||
<code>false</code>.</li>
|
<a href="next/rules.html#rule-12-utf-8">Rule 12 UTF-8</a>,
|
||||||
|
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>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -2411,7 +2469,7 @@ bit set - octet value >= 128); see <a href="next/rules.html#rule13">Rule 13</
|
|||||||
</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#rule17">Rule 17</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>
|
||||||
@@ -2421,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#rule17">Rule 17</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>
|
||||||
@@ -2431,7 +2489,8 @@ 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 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 <a href="next/rules.html#rule17">Rule 17</a>!</p>
|
submission rejected for violating
|
||||||
|
<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>
|
||||||
@@ -2441,7 +2500,8 @@ for more information.</p></li>
|
|||||||
</ul>
|
</ul>
|
||||||
<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 <a href="next/rules.html#rule17">Rule 17</a>!</p>
|
rejected for violating
|
||||||
|
<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>
|
||||||
@@ -2451,7 +2511,8 @@ for more information.</p></li>
|
|||||||
</ul>
|
</ul>
|
||||||
<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 <a href="next/rules.html#rule17">Rule 17</a>!</p>
|
rejected for violating
|
||||||
|
<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>
|
||||||
@@ -2461,7 +2522,8 @@ for more information.</p></li>
|
|||||||
</ul>
|
</ul>
|
||||||
<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 <a href="next/rules.html#rule17">Rule 17</a>!</p>
|
rejected for violating
|
||||||
|
<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>
|
||||||
@@ -2486,8 +2548,8 @@ FAQ on “<a href="#info_json">.info.json</a>”
|
|||||||
for more information.</li>
|
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 <a href="next/rules.html#rule17">Rule
|
great chance of having your submission rejected for violating
|
||||||
17</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
|
||||||
@@ -2499,7 +2561,8 @@ FAQ on “<a href="#auth_json">.auth.json</a>”
|
|||||||
for more information.</li>
|
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 <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
submission rejected for violating
|
||||||
|
<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
|
||||||
@@ -2508,7 +2571,8 @@ in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a
|
|||||||
is your submission source code.</li>
|
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 <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
submission rejected for violating
|
||||||
|
<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
|
||||||
@@ -2520,7 +2584,8 @@ FAQ on “<a href="#makefile">Makefile</a>”
|
|||||||
for more information.</li>
|
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 <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
submission rejected for violating
|
||||||
|
<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
|
||||||
@@ -2532,7 +2597,8 @@ FAQ on “<a href="#remarks_md">remarks.md</a>”
|
|||||||
for more information.</li>
|
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 <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
submission rejected for violating
|
||||||
|
<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>
|
||||||
@@ -2544,8 +2610,9 @@ submission rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!<
|
|||||||
and <code>chksubmit</code> will verify this for you; it is <strong>ALSO</strong> an <strong>error</strong> if the
|
and <code>chksubmit</code> will verify this for you; it is <strong>ALSO</strong> an <strong>error</strong> if the
|
||||||
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 <a href="next/rules.html#rule17">Rule
|
risk of having your submission rejected for violating
|
||||||
17</a>! On the other hand, <strong>ONLY</strong> <code>mkiocccentry</code> will
|
<a href="next/rules.html#rule-17-packaging">Rule 17 Packaging</a>!
|
||||||
|
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.
|
||||||
Even so, the <a href="judges.html">Judges</a> <strong>WILL</strong> extract the tarball and if a
|
Even so, the <a href="judges.html">Judges</a> <strong>WILL</strong> extract the tarball and if a
|
||||||
@@ -2606,7 +2673,9 @@ not a string or is the wrong string. Another obvious example is when things are
|
|||||||
out of range (see above for list). Two more examples would be if a field is
|
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 <a href="next/rules.html#rule17">Rule 17</a> and in particular
|
rejected for violating
|
||||||
|
Rule 17 Packaging](next/rules.html#rule-17-packaging),
|
||||||
|
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
|
||||||
FAQ on “<a href="#validating_json">validating JSON documents</a>”.</p>
|
FAQ on “<a href="#validating_json">validating JSON documents</a>”.</p>
|
||||||
|
|||||||
@@ -214,8 +214,8 @@ Jump to: [top](#)
|
|||||||
This toolkit is from the [mkiocccentry
|
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 [Rule
|
violating the [Rules](next/rules.html) and in particular
|
||||||
17](next/rules.html#rule17).
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging).
|
||||||
|
|
||||||
|
|
||||||
Jump to: [top](#)
|
Jump to: [top](#)
|
||||||
@@ -385,7 +385,8 @@ is not a directory that can be written to. In **this** directory your **submissi
|
|||||||
directory** will be created, with the name based on your IOCCC registration
|
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 [Rule 17](next/rules.html#rule17).
|
particular
|
||||||
|
[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
|
||||||
@@ -574,7 +575,8 @@ rounds; we look at the author name only if an entry wins. See the
|
|||||||
[guidelines](next/guidelines.html) **AND** [rules](next/rules.html) if this is not clear!
|
[guidelines](next/guidelines.html) **AND** [rules](next/rules.html) if this is not clear!
|
||||||
- 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 [Rule 17](next/rules.html#rule17)).
|
include whitespace you would still be violating
|
||||||
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging)).
|
||||||
|
|
||||||
|
|
||||||
Jump to: [top](#)
|
Jump to: [top](#)
|
||||||
@@ -632,11 +634,13 @@ for more details.
|
|||||||
|
|
||||||
See the
|
See the
|
||||||
FAQ on "[Rule 17](#rule17)"
|
FAQ on "[Rule 17](#rule17)"
|
||||||
and [Rule 17](next/rules.html#rule17) itself.
|
and
|
||||||
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging)
|
||||||
|
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 [Rule
|
**MUST** make a **COPY** of them in your `Makefile`. See also
|
||||||
11](next/rules.html#rule11).
|
[Rule 5 Purity](next/rules.html#rule-5-purity).
|
||||||
|
|
||||||
|
|
||||||
Jump to: [top](#)
|
Jump to: [top](#)
|
||||||
@@ -848,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](next/rules.html#rule17) 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](next/rules.html#rule17)!
|
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:
|
||||||
|
|
||||||
@@ -915,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](next/rules.html#rule17). 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).
|
||||||
|
|
||||||
@@ -977,7 +981,8 @@ 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 18](next/rules.html#rule18) and our
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging)
|
||||||
|
and our
|
||||||
FAQ on "[remarks.md](#remarks_md)",
|
FAQ on "[remarks.md](#remarks_md)",
|
||||||
our
|
our
|
||||||
FAQ on "[markdown](#markdown)"
|
FAQ on "[markdown](#markdown)"
|
||||||
@@ -1083,7 +1088,8 @@ permissions and `mkiocccentry(1)` does this for you. In particular: directories
|
|||||||
**MUST** be `drwxr-xr-x` (i.e. `0755`); any file ending with `.sh` **MUST** be
|
**MUST** be `drwxr-xr-x` (i.e. `0755`); any file ending with `.sh` **MUST** be
|
||||||
`-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 [Rule 17](next/rules.html#rule17)!
|
submission **WILL** be rejected for violating
|
||||||
|
[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
|
||||||
@@ -1091,7 +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](next/rules.html#rule4), [Rule 5](next/rules.html#rule5) and [Rule 21](next/rules.html#rule21).
|
[Rule 4 Files](next/rules.html#rule-4-files),
|
||||||
|
[Rule 5 Purity](next/rules.html#rule-5-purity),
|
||||||
|
and
|
||||||
|
[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
|
||||||
@@ -1105,8 +1114,11 @@ page](https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug
|
|||||||
The tarball filename **MUST** pass `fnamchk(1)`; the tool `txzchk(1)`
|
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 [Rule
|
possible there could be a problem and this poses a big risk of violating
|
||||||
17](next/rules.html#rule17).
|
[Rule 4 Files](next/rules.html#rule-4-files)
|
||||||
|
or
|
||||||
|
[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
|
||||||
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
|
||||||
@@ -1114,7 +1126,10 @@ mismatch in what is in the tarball and the name, `txzchk(1)` will flag the
|
|||||||
discrepancy as an error and exit with non-zero.
|
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 [Rule 17](next/rules.html#rule17)!
|
having your submission rejected for violating
|
||||||
|
[Rule 4 Files](next/rules.html#rule-4-files)
|
||||||
|
or
|
||||||
|
[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
|
||||||
@@ -1154,7 +1169,11 @@ 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 [Rule 17](next/rules.html#rule17) and the tools from the latest
|
**IMPORTANT**: where
|
||||||
|
[Rule 4 Files](next/rules.html#rule-4-files),
|
||||||
|
and
|
||||||
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging).
|
||||||
|
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
|
||||||
is likely to favor [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry) code.
|
is likely to favor [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry) code.
|
||||||
@@ -1193,8 +1212,11 @@ page](https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug
|
|||||||
for help here and also read our
|
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 [Rule
|
At the risk of stating the obvious: submissions that violate
|
||||||
17](next/rules.html#rule17) **WILL BE REJECTED**, so **BE SURE** to use the latest release of the
|
[Rule 4 Files](next/rules.html#rule-4-files),
|
||||||
|
or
|
||||||
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging)
|
||||||
|
**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
|
||||||
recent release without pulling or downloading via GitHub and do **MAKE SURE** you
|
recent release without pulling or downloading via GitHub and do **MAKE SURE** you
|
||||||
@@ -1851,7 +1873,10 @@ two JSON files, `.auth.json` and `.info.json` as well as the `prog.c`,
|
|||||||
`Makefile` and `remarks.md` files along with all the other files listed in the
|
`Makefile` and `remarks.md` files along with all the other files listed in the
|
||||||
`.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 [Rule 17](next/rules.html#rule17)!).
|
a great risk of violating
|
||||||
|
[Rule 4 Files](next/rules.html#rule-4-files),
|
||||||
|
or
|
||||||
|
[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
|
||||||
@@ -1877,7 +1902,11 @@ See the
|
|||||||
FAQ on "[.auth.json](#auth_json)"
|
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 [Rule 17](next/rules.html#rule17) for more information.
|
as well as
|
||||||
|
[Rule 4 Files](next/rules.html#rule-4-files),
|
||||||
|
and
|
||||||
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging)
|
||||||
|
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
|
||||||
do not need to worry about those details. One should use `chksubmit(1)` instead
|
do not need to worry about those details. One should use `chksubmit(1)` instead
|
||||||
@@ -1969,21 +1998,25 @@ In order of the file's contents we describe each required field, below:
|
|||||||
- `IOCCC_contest_id` (double quoted string)
|
- `IOCCC_contest_id` (double quoted string)
|
||||||
* 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 [Rule 17](next/rules.html#rule17).
|
on this, and in particular
|
||||||
|
[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 [Rule 17](next/rules.html#rule17)!
|
violating
|
||||||
|
[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.
|
||||||
|
|
||||||
**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 [Rule 17](next/rules.html#rule17)!
|
your submission rejected for violating
|
||||||
|
[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 [Rule
|
`fnamchk(1)` which also puts you at great risk of violating
|
||||||
17](next/rules.html#rule17). `txzchk` will use the output of `fnamchk` to
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging). 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
|
||||||
tarball, this will be flaggd.
|
tarball, this will be flaggd.
|
||||||
@@ -1996,7 +2029,8 @@ In order of the file's contents we describe each required field, below:
|
|||||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||||
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 [Rule 17](next/rules.html#rule17)!
|
rejected for violating
|
||||||
|
[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.
|
||||||
@@ -2060,7 +2094,8 @@ author(s) of the submission:
|
|||||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||||
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 [Rule 17](next/rules.html#rule17)!
|
rejected for violating
|
||||||
|
[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.
|
||||||
|
|
||||||
@@ -2144,8 +2179,10 @@ will use it on the submission directory as part of the judging process.
|
|||||||
At the risk of stating the obvious, if your `.auth.json` file is invalid JSON or
|
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 [Rule
|
rejected for violating the [Rules](next/rules.html) and in particular
|
||||||
17](next/rules.html#rule17).
|
[Rule 4 Files](next/rules.html#rule-4-files),
|
||||||
|
and
|
||||||
|
[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
|
||||||
@@ -2154,7 +2191,11 @@ not a string or is the wrong string. Another obvious example is when things are
|
|||||||
out of range (see above for list). Two more examples would be if a field is
|
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 [Rule 17](next/rules.html#rule17) and in particular
|
rejected for violating
|
||||||
|
[Rule 4 Files](next/rules.html#rule-4-files),
|
||||||
|
and
|
||||||
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging)
|
||||||
|
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).
|
||||||
|
|
||||||
@@ -2276,7 +2317,8 @@ In order of the file's contents we describe each required field, below:
|
|||||||
- `IOCCC_contest_id` (double quoted string)
|
- `IOCCC_contest_id` (double quoted string)
|
||||||
* 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 [Rule 17](next/rules.html#rule17).
|
on this, and in particular
|
||||||
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging).
|
||||||
|
|
||||||
- `submit_slot` (number)
|
- `submit_slot` (number)
|
||||||
* The submission number.
|
* The submission number.
|
||||||
@@ -2286,7 +2328,8 @@ In order of the file's contents we describe each required field, below:
|
|||||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||||
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 [Rule 17](next/rules.html#rule17)!
|
rejected for violating
|
||||||
|
[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
|
||||||
@@ -2295,7 +2338,8 @@ In order of the file's contents we describe each required field, below:
|
|||||||
matches the regexp `[a-z0-9][a-z0-9_+-]*`.
|
matches the regexp `[a-z0-9][a-z0-9_+-]*`.
|
||||||
|
|
||||||
**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 [Rule 17](next/rules.html#rule17)!
|
rejected for violating
|
||||||
|
[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**
|
||||||
@@ -2306,33 +2350,37 @@ In order of the file's contents we describe each required field, below:
|
|||||||
The `abstract` may not contain a `;` (semicolon), nor `&` (ampersand), nor `,` (comma).
|
The `abstract` may not contain a `;` (semicolon), nor `&` (ampersand), nor `,` (comma).
|
||||||
|
|
||||||
**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 [Rule
|
stand a great risk of having your submission rejected for violating
|
||||||
17](next/rules.html#rule17)!
|
[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.
|
||||||
|
|
||||||
**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 [Rule 17](next/rules.html#rule17)!
|
your submission rejected for violating
|
||||||
|
[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 [Rule
|
`fnamchk(1)` which also puts you at great risk of violating
|
||||||
17](next/rules.html#rule17). `txzchk` will use the output of `fnamchk` to
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging).
|
||||||
|
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
|
||||||
tarball, this will be flaggd.
|
tarball, this will be flaggd.
|
||||||
|
|
||||||
- `rule_2a_size` (number)
|
- `rule_2a_size` (number)
|
||||||
* The size calculated of [Rule 2a](next/rules.html#rule2a).
|
* The size calculated of [Rule 2a Gross Size](next/rules.html#rule-2a-gross-size).
|
||||||
|
|
||||||
**IMPORTANT:** if this violates [Rule 2a](next/rules.html#rule2a) you stand a great
|
**IMPORTANT:** if this violates [Rule 2a](next/rules.html#rule2a) you stand a great
|
||||||
chance of having your submission rejected for violating the
|
chance of having your submission rejected for violating the
|
||||||
[Rules](next/rules.html)!
|
[Rules](next/rules.html)!
|
||||||
|
|
||||||
- `rule_2b_size` (number)
|
- `rule_2b_size` (number)
|
||||||
* The size calculated of [Rule 2b](next/rules.html#rule2b).
|
* The size calculated of [Rule 2b Next Size](next/rules.html#rule-2b-net-size).
|
||||||
|
|
||||||
**IMPORTANT:** if this violates [Rule 2b](next/rules.html#rule2b) you stand a great
|
**IMPORTANT:** if this violates
|
||||||
|
[Rule 2b Next Size](next/rules.html#rule-2b-net-size)
|
||||||
|
you stand a great
|
||||||
chance of having your submission rejected for violating the
|
chance of having your submission rejected for violating the
|
||||||
[Rules](next/rules.html)!
|
[Rules](next/rules.html)!
|
||||||
|
|
||||||
@@ -2340,29 +2388,40 @@ In order of the file's contents we describe each required field, below:
|
|||||||
* `true` if user override warning of an empty source file, else `false`.
|
* `true` if user override warning of an empty source file, else `false`.
|
||||||
|
|
||||||
- `rule_2a_override` (boolean)
|
- `rule_2a_override` (boolean)
|
||||||
* `true` if user overrides warning of [Rule 2a](next/rules.html#rule2a)
|
* `true` if user overrides warning of
|
||||||
|
[Rule 2a Gross Size](next/rules.html#rule-2a-gross-size)
|
||||||
violation, else `false`.
|
violation, else `false`.
|
||||||
|
|
||||||
**IMPORTANT:** if the [Rule 2a](next/rules.html#rule2a) calculated size is **NOT**
|
**IMPORTANT:** if the
|
||||||
|
[Rule 2a Gross Size](next/rules.html#rule-2a-gross-size)
|
||||||
|
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 [Rule 17](next/rules.html#rule17)!
|
submission rejected for violating
|
||||||
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging).
|
||||||
|
|
||||||
- `rule_2a_mismatch` (boolean)
|
- `rule_2a_mismatch` (boolean)
|
||||||
* `true` if [Rule 2a](next/rules.html#rule2a) calculated size is not the
|
* `true` if
|
||||||
|
[Rule 2a Gross Size](next/rules.html#rule-2a-gross-size)
|
||||||
|
calculated size is not the
|
||||||
same as the file size.
|
same as the file size.
|
||||||
|
|
||||||
- `rule_2b_override` (boolean)
|
- `rule_2b_override` (boolean)
|
||||||
* `true` if user overrides warning of [Rule 2b](next/rules.html#rule2b)
|
* `true` if user overrides warning of
|
||||||
|
[Rule 2b Next Size](next/rules.html#rule-2b-net-size)
|
||||||
violation, else `false`.
|
violation, else `false`.
|
||||||
|
|
||||||
**IMPORTANT:** if the [Rule 2b](next/rules.html#rule2b) calculated size is **NOT**
|
**IMPORTANT:** if the
|
||||||
|
[Rule 2b Next Size](next/rules.html#rule-2b-net-size)
|
||||||
|
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 [Rule 17](next/rules.html#rule17)!
|
submission rejected for violating
|
||||||
|
[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 [Rule 13](next/rules.html#rule13), else
|
bit set - octet value >= 128); see
|
||||||
`false`.
|
[Rule 12 UTF-8](next/rules.html#rule-12-utf-8),
|
||||||
|
else `false`.
|
||||||
|
|
||||||
- `nul_warning` (boolean)
|
- `nul_warning` (boolean)
|
||||||
* `true` if `iocccsize` detects a NUL character in the `prog.c`, else
|
* `true` if `iocccsize` detects a NUL character in the `prog.c`, else
|
||||||
@@ -2384,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](next/rules.html#rule17)!
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging)!
|
||||||
|
|
||||||
See the
|
See the
|
||||||
FAQ on "[Makefile](#makefile)"
|
FAQ on "[Makefile](#makefile)"
|
||||||
@@ -2395,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](next/rules.html#rule17)!
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging)!
|
||||||
|
|
||||||
See the
|
See the
|
||||||
FAQ on "[Makefile](#makefile)"
|
FAQ on "[Makefile](#makefile)"
|
||||||
@@ -2406,7 +2465,8 @@ 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 [Rule 17](next/rules.html#rule17)!
|
submission rejected for violating
|
||||||
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging)!
|
||||||
|
|
||||||
See the
|
See the
|
||||||
FAQ on "[Makefile](#makefile)"
|
FAQ on "[Makefile](#makefile)"
|
||||||
@@ -2417,7 +2477,8 @@ 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 [Rule 17](next/rules.html#rule17)!
|
rejected for violating
|
||||||
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging)!
|
||||||
|
|
||||||
See the
|
See the
|
||||||
FAQ on "[Makefile](#makefile)"
|
FAQ on "[Makefile](#makefile)"
|
||||||
@@ -2428,7 +2489,8 @@ 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 [Rule 17](next/rules.html#rule17)!
|
rejected for violating
|
||||||
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging)!
|
||||||
|
|
||||||
See the
|
See the
|
||||||
FAQ on "[Makefile](#makefile)"
|
FAQ on "[Makefile](#makefile)"
|
||||||
@@ -2439,7 +2501,8 @@ 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 [Rule 17](next/rules.html#rule17)!
|
rejected for violating
|
||||||
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging)!
|
||||||
|
|
||||||
See the
|
See the
|
||||||
FAQ on "[Makefile](#makefile)"
|
FAQ on "[Makefile](#makefile)"
|
||||||
@@ -2464,8 +2527,8 @@ The `mkiocccentry(1)` tool will write it in this order:
|
|||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
**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 [Rule
|
great chance of having your submission rejected for violating
|
||||||
17](next/rules.html#rule17)!
|
[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
|
||||||
@@ -2477,7 +2540,8 @@ The `mkiocccentry(1)` tool will write it in this order:
|
|||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
**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 [Rule 17](next/rules.html#rule17)!
|
submission rejected for violating
|
||||||
|
[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
|
||||||
@@ -2486,7 +2550,8 @@ The `mkiocccentry(1)` tool will write it in this order:
|
|||||||
is your submission source code.
|
is your submission source code.
|
||||||
|
|
||||||
**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 [Rule 17](next/rules.html#rule17)!
|
submission rejected for violating
|
||||||
|
[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
|
||||||
@@ -2498,7 +2563,8 @@ The `mkiocccentry(1)` tool will write it in this order:
|
|||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
**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 [Rule 17](next/rules.html#rule17)!
|
submission rejected for violating
|
||||||
|
[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
|
||||||
@@ -2510,7 +2576,8 @@ The `mkiocccentry(1)` tool will write it in this order:
|
|||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
**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 [Rule 17](next/rules.html#rule17)!
|
submission rejected for violating
|
||||||
|
[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:
|
||||||
|
|
||||||
@@ -2522,8 +2589,9 @@ The `manifest` **array** also **OPTIONALLY** has one or more of the field:
|
|||||||
and `chksubmit` will verify this for you; it is **ALSO** an **error** if the
|
and `chksubmit` will verify this for you; it is **ALSO** an **error** if the
|
||||||
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 [Rule
|
risk of having your submission rejected for violating
|
||||||
17](next/rules.html#rule17)! On the other hand, **ONLY** `mkiocccentry` will
|
[Rule 17 Packaging](next/rules.html#rule-17-packaging)!
|
||||||
|
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.
|
||||||
Even so, the [Judges](judges.html) **WILL** extract the tarball and if a
|
Even so, the [Judges](judges.html) **WILL** extract the tarball and if a
|
||||||
@@ -2585,7 +2653,9 @@ not a string or is the wrong string. Another obvious example is when things are
|
|||||||
out of range (see above for list). Two more examples would be if a field is
|
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 [Rule 17](next/rules.html#rule17) and in particular
|
rejected for violating
|
||||||
|
Rule 17 Packaging](next/rules.html#rule-17-packaging),
|
||||||
|
and in particular
|
||||||
because `chksubmit` would not validate the `.info.json` file.
|
because `chksubmit` would not validate the `.info.json` file.
|
||||||
|
|
||||||
If you wish to **verify** that your `.info.json` file is valid **JSON** then see the
|
If you wish to **verify** that your `.info.json` file is valid **JSON** then see the
|
||||||
|
|||||||
@@ -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#rule13">Rule 13</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#rule8">Rule 8</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>
|
||||||
|
|||||||
@@ -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 13](next/rules.html#rule13) 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](next/rules.html#rule8) 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.
|
||||||
|
|
||||||
|
|||||||
+79
-39
@@ -569,10 +569,13 @@ may change from contest to contest.</p>
|
|||||||
<li><a href="../faq.html#using_mkiocccentry">using the mkiocccentry tools</a></li>
|
<li><a href="../faq.html#using_mkiocccentry">using the mkiocccentry tools</a></li>
|
||||||
</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 <a href="rules.html#rule17">Rule 17</a>, especially as <code>mkiocccentry(1)</code> does a
|
violating
|
||||||
|
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</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 <a href="rules.html#rule17">Rule 17</a>.</p>
|
rejected for violating
|
||||||
|
<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
|
||||||
@@ -608,13 +611,13 @@ option. See the
|
|||||||
FAQ on “<a href="../faq.html#uuid">how to avoid re-entering your UUID</a>”
|
FAQ on “<a href="../faq.html#uuid">how to avoid re-entering your UUID</a>”
|
||||||
for more details. Note that the <code>-i answers</code> option cannot be used with the UUID
|
for more details. Note that the <code>-i answers</code> option cannot be used with the UUID
|
||||||
options as the answers file includes the UUID.</p>
|
options as the answers file includes the UUID.</p>
|
||||||
<p>The overall size limit (see <a href="rules.html#rule2a">Rule 2a</a>) on <code>prog.c</code> has been
|
<p>The overall size limit (see Rule 2a Gross Size](rules.html#rule-2a-gross-size)) on <code>prog.c</code> has been
|
||||||
<strong>increased from 4096 to 4993</strong> bytes.
|
<strong>increased from 4096 to 4993</strong> bytes.
|
||||||
The <a href="rules.html#rule2a">Rule 2a</a> size was changed from
|
The <a href="rules.html#rule-2b-net-size">Rule 2b Next Size</a>size was changed from
|
||||||
<strong>4096</strong> to <strong>4993</strong> to keep the “2b to 2a” size ratio to a
|
<strong>4096</strong> to <strong>4993</strong> to keep the “2b to 2a” size ratio to a
|
||||||
value similar to the <a href="../faq.html#size_rule2001-2012">2001-2012</a> and
|
value similar to the <a href="../faq.html#size_rule2001-2012">2001-2012</a> and
|
||||||
<a href="../faq.html#size_rule2013-2020">2013-2020</a> IOCCC eras.</p>
|
<a href="../faq.html#size_rule2013-2020">2013-2020</a> IOCCC eras.</p>
|
||||||
<p>The <a href="rules.html#rule2b">Rule 2b</a> size has <strong>increased from 2053 to 2503</strong>
|
<p>The <a href="rules.html#rule-2b-net-size">Rule 2b Next Size</a> size has <strong>increased from 2053 to 2503</strong>
|
||||||
bytes.</p>
|
bytes.</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
However, you should pay especial attention to our remarks in the <a href="../2024/index.html">IOCCC28
|
However, you should pay especial attention to our remarks in the <a href="../2024/index.html">IOCCC28
|
||||||
@@ -623,14 +626,19 @@ 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="../next/rules.html#rule2">Rule 2 size limit</a>. Large code size isn’t
|
<a href="rules.html#rule-2-size">Rule 2 Size</a> limit.
|
||||||
|
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>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
</p>
|
</p>
|
||||||
<p>Your submission must satisfy <strong>BOTH</strong> the maximum size
|
<p>Your submission must satisfy <strong>BOTH</strong> the maximum size
|
||||||
<a href="rules.html#rule2a">Rule 2a</a> <strong>AND</strong> the IOCCC size <a href="rules.html#rule2b">Rule 2b</a>.</p>
|
<a href="rules.html#rule-2a-gross-size">Rule 2a Gross Size</a>
|
||||||
<p>To check your code against <a href="rules.html#rule2">Rule 2</a>, use the <code>iocccentry(1)</code> tool.
|
<strong>AND</strong>
|
||||||
|
the IOCCC size
|
||||||
|
<a href="rules.html#rule-2b-net-size">Rule 2b Next Size</a>.</p>
|
||||||
|
<p>To check your code against
|
||||||
|
<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>
|
||||||
@@ -657,7 +665,8 @@ if you are <a href="https://t5k.org/curios/page.php/2503.html">“Curios!” abo
|
|||||||
BESM-6, and 2503 is a decimal anagram of 2053.</p>
|
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 <a href="rules.html#rule2">Rule 2</a>.</p>
|
to get around the size limits of
|
||||||
|
<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">
|
||||||
@@ -765,7 +774,8 @@ 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#rule17">Rule 17</a> (the <code>mkiocccentry(1)</code> rule) states that
|
<p><a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>
|
||||||
|
(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>
|
||||||
for the <code>mkiocccentry(1)</code> tool and below for more details.</p>
|
for the <code>mkiocccentry(1)</code> tool and below for more details.</p>
|
||||||
@@ -814,7 +824,9 @@ then you will have to specify the options (such as paths) for the tools that are
|
|||||||
<code>chksubmit(1)</code>, <code>txzchk(1)</code> and <code>fnamchk(1)</code>.</p>
|
<code>chksubmit(1)</code>, <code>txzchk(1)</code> and <code>fnamchk(1)</code>.</p>
|
||||||
<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 <a href="rules.html#rule17">Rule 17</a> by mistake.</p>
|
so that you do not violate
|
||||||
|
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>
|
||||||
|
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">
|
||||||
<h2 id="mkiocccentry1-synopsis"><code>mkiocccentry(1)</code> synopsis</h2>
|
<h2 id="mkiocccentry1-synopsis"><code>mkiocccentry(1)</code> synopsis</h2>
|
||||||
@@ -841,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#rule2">Rule 2</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>
|
||||||
@@ -921,8 +933,8 @@ installed separately, in order to use the tools in <code>mkiocccentry</code>.</p
|
|||||||
do install</em> the libraries from their respective repos, it/they will <strong>not be
|
do install</em> the libraries from their respective repos, it/they will <strong>not be
|
||||||
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 <a href="rules.html#rule17">Rule
|
<code>chksubmit</code> (in the JSON files created by <code>mkiocccentry(1)</code>). See
|
||||||
17</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>
|
||||||
@@ -955,7 +967,8 @@ code</a> or the man
|
|||||||
page. You might just find a fun option if you do either of these!</p>
|
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 <a href="rules.html#rule17">Rule 17</a>.</p>
|
check, you could still be violating
|
||||||
|
<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>
|
||||||
@@ -970,7 +983,9 @@ file</em>. The non-extra files are considered <em>free files</em>.
|
|||||||
</p>
|
</p>
|
||||||
<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 href="rules.html#rule17">Rule 17</a>, regardless of its depth.
|
a violation of
|
||||||
|
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>,
|
||||||
|
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
|
||||||
in order to get past the file limit, we will consider that an
|
in order to get past the file limit, we will consider that an
|
||||||
@@ -1000,10 +1015,13 @@ said tarball(s), the make <code>clobber</code> rule <strong>MUST</strong> remove
|
|||||||
The <code>mkiocccentry(1)</code> tool creates a v7 format tarball to prevent this. You can
|
The <code>mkiocccentry(1)</code> tool creates a v7 format tarball to prevent this. You can
|
||||||
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 <a href="rules.html#rule17">Rule 17</a> and also the
|
<p>See
|
||||||
|
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>
|
||||||
|
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 <a href="rules.html#rule17">Rule 17</a>!</p>
|
are at a great risk of violating
|
||||||
|
<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
|
||||||
@@ -1018,14 +1036,16 @@ 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#rule17">Rule 17</a>. Nevertheless, you can run the tool manually,
|
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>.
|
||||||
|
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
|
||||||
tarball filename, see the
|
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 <a href="rules.html#rule17">Rule
|
bug in <code>fnamchk(1)</code> and as such, ignoring such an issue risks violating
|
||||||
17</a> which is a big risk. Of course, using <code>mkiocccentry(1)</code>
|
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>
|
||||||
|
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
|
||||||
you should <a href="https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E">report it as a bug at the mkiocccentry issues
|
you should <a href="https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E">report it as a bug at the mkiocccentry issues
|
||||||
@@ -1037,7 +1057,9 @@ the risk of stating the obvious, you run <strong>A VERY BIG RISK</strong> of hav
|
|||||||
your submission rejected if you package your own tarball, and there are <strong>ANY
|
your submission rejected if you package your own tarball, and there are <strong>ANY
|
||||||
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 <a href="rules.html#rule17">Rule 17</a>. But even if
|
it manually, you would be violating
|
||||||
|
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>.
|
||||||
|
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">
|
||||||
<h1 id="problems-andor-bugs-in-the-mkiocccentry-toolkit">Problems and/or bugs in the mkiocccentry toolkit</h1>
|
<h1 id="problems-andor-bugs-in-the-mkiocccentry-toolkit">Problems and/or bugs in the mkiocccentry toolkit</h1>
|
||||||
@@ -1252,7 +1274,8 @@ the <code>mkiocccentry(1)</code> tool.</p>
|
|||||||
somehow, <code>txzchk(1)</code> will flag it as an error. When the judges run <code>txzchk(1)</code>
|
somehow, <code>txzchk(1)</code> will flag it as an error. When the judges run <code>txzchk(1)</code>
|
||||||
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 <a href="rules.html#rule17">Rule 17</a>!</p>
|
<strong>WILL BE REJECTED</strong> for violating
|
||||||
|
<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>
|
||||||
@@ -1499,8 +1522,9 @@ Please try to be much more creative.</p>
|
|||||||
large data files to get around the source code size limit.</p>
|
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 <a href="rules.html#rule2">the source code
|
if nothing else because that code is likely to exceed
|
||||||
size limit</a>. This isn’t to say that another highly compact and obfuscated
|
<a href="rules.html#rule-2-size">Rule 2 Size</a>.
|
||||||
|
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>
|
||||||
<p>Did we remember to indicate that programs that blatantly use
|
<p>Did we remember to indicate that programs that blatantly use
|
||||||
@@ -1514,8 +1538,10 @@ of code, and the other that is formatted more like a typical C
|
|||||||
program, we tend to favor the second version. Of course, a third
|
program, we tend to favor the second version. Of course, a third
|
||||||
version of the same program that is formatted in an interesting
|
version of the same program that is formatted in an interesting
|
||||||
and/or obfuscated way, would definitely win over the first two!
|
and/or obfuscated way, would definitely win over the first two!
|
||||||
Remember, you can submit more than one submission. See the <a href="rules.html">IOCCC
|
Remember, you can submit more than one submission. See the
|
||||||
rules</a> for details (in particular, <a href="rules.html#rule9">Rule 9</a>).</p>
|
<a href="rules.html">IOCCC rules</a>
|
||||||
|
for details (in particular,
|
||||||
|
<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>
|
||||||
@@ -1623,7 +1649,8 @@ or Linux curses.</p>
|
|||||||
If you do <code>#include <curses.h></code> make <strong>CERTAIN</strong> you link in curses (i.e.
|
If you do <code>#include <curses.h></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#rule13">Rule 13</a> no longer discourages the use of UTF-8
|
<p><a href="rules.html#rule-13-newlines">Rule 13 Newlines</a>
|
||||||
|
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
|
||||||
think your submission is obfuscated. This is particularly true if
|
think your submission is obfuscated. This is particularly true if
|
||||||
@@ -1653,13 +1680,15 @@ Howe</a>, in which case it is original! :-)
|
|||||||
Submitting source code that uses the contents of
|
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 <a href="rules.html#rule7">Rule 7</a>.</p>
|
risk of violating
|
||||||
|
<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 <a href="rules.html#rule7">Rule 7</a>.</p>
|
run the risk of violating
|
||||||
|
<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
|
||||||
@@ -1682,15 +1711,17 @@ 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#rule7">Rule 7</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
|
||||||
<a href="https://github.com/ioccc-src/mkiocccentry/tree/master/dyn_array">dyn_array</a> are
|
<a href="https://github.com/ioccc-src/mkiocccentry/tree/master/dyn_array">dyn_array</a> are
|
||||||
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 <a href="rules.html#rule7">Rule 7</a>.</p>
|
might run the risk of violating
|
||||||
<p><a href="rules.html#rule7">Rule 7</a> does not prohibit you from writing your own
|
<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>
|
||||||
|
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>
|
||||||
won’t win since <a href="../judges.html">IOCCC judges</a> should not enter the IOCCC! :-)
|
won’t win since <a href="../judges.html">IOCCC judges</a> should not enter the IOCCC! :-)
|
||||||
@@ -1698,14 +1729,17 @@ However, <strong><em>if</em></strong> you do write your own version, you <strong
|
|||||||
<strong><em>more</em> interesting</strong> than simply implementing the <a href="../index.html">IOCCC</a>
|
<strong><em>more</em> interesting</strong> than simply implementing the <a href="../index.html">IOCCC</a>
|
||||||
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 <a href="rules.html#rule2">the source code size limit</a>
|
the fact it will likely exceed
|
||||||
|
<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
|
||||||
obfuscated, but unless you have some really clever way to compact and
|
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 <a href="rules.html#rule2">source code size limit</a> or because it is not
|
because of the
|
||||||
|
<a href="rules.html#rule-2-size">Rule 2 Size</a>
|
||||||
|
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
|
||||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/jparse">jparse</a>.</p>
|
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/jparse">jparse</a>.</p>
|
||||||
@@ -1785,7 +1819,9 @@ character tab stop.</p>
|
|||||||
<p><strong>PLEASE</strong> observe our <a href="../markdown.html">IOCCC markdown guidelines</a>
|
<p><strong>PLEASE</strong> observe our <a href="../markdown.html">IOCCC markdown guidelines</a>
|
||||||
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 <a href="rules.html#rule19">Rule 19</a> and our
|
those files. See also
|
||||||
|
<a href="rules.html#rule-4-files">Rule 4 Files</a>,
|
||||||
|
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
|
||||||
useful, informative, and even humorous content about your submission. Yes, this
|
useful, informative, and even humorous content about your submission. Yes, this
|
||||||
@@ -1821,8 +1857,11 @@ your submission is valid. Humor and/or creativity help plead a case.
|
|||||||
As there is no guarantee that you will succeed, you might consider
|
As there is no guarantee that you will succeed, you might consider
|
||||||
submitting an alternate version that conforms to the
|
submitting an alternate version that conforms to the
|
||||||
<a href="rules.html">IOCCC rules</a>.</p>
|
<a href="rules.html">IOCCC rules</a>.</p>
|
||||||
<p>If you do bypass the <code>mkiocccentry(1)</code> warnings about <a href="rules.html#rule2a">Rule
|
<p>If you do bypass the <code>mkiocccentry(1)</code> warnings about
|
||||||
2a</a> and/or about <a href="rules.html#rule2b">Rule 2b</a> or any other
|
<a href="rules.html#rule-2a-gross-size">Rule 2a Gross Size</a>
|
||||||
|
and/or about
|
||||||
|
<a href="rules.html#rule-2b-net-size">Rule 2b Next Size</a>
|
||||||
|
or any other
|
||||||
rule and submit a submission anyway, you <strong>MUST</strong> try to justify why the IOCCC
|
rule and submit a submission anyway, you <strong>MUST</strong> try to justify why the IOCCC
|
||||||
<a href="../judges.html">IOCCC judges</a> should not reject your submission due to a rule
|
<a href="../judges.html">IOCCC judges</a> should not reject your submission due to a rule
|
||||||
violation, and you would be wise to do this towards the top of your <code>remarks.md</code>
|
violation, and you would be wise to do this towards the top of your <code>remarks.md</code>
|
||||||
@@ -2001,7 +2040,8 @@ strange/creative layout submission. We sometimes also select a
|
|||||||
submission that abuses the <a href="guidelines.html">IOCCC guidelines</a> in an interesting way,
|
submission that abuses the <a href="guidelines.html">IOCCC guidelines</a> in an interesting way,
|
||||||
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 <a href="rules.html#rule12">Rule 12</a>.</p>
|
<p>Nevertheless, see
|
||||||
|
<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>
|
||||||
|
|||||||
+80
-39
@@ -158,10 +158,13 @@ See FAQs regarding:
|
|||||||
- [using the mkiocccentry tools](../faq.html#using_mkiocccentry)
|
- [using the mkiocccentry tools](../faq.html#using_mkiocccentry)
|
||||||
|
|
||||||
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 [Rule 17](rules.html#rule17), especially as `mkiocccentry(1)` does a
|
violating
|
||||||
|
[Rule 17 Packaging](rules.html#rule-17-packaging),
|
||||||
|
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 [Rule 17](rules.html#rule17).
|
rejected for violating
|
||||||
|
[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).
|
||||||
@@ -205,14 +208,14 @@ FAQ on "[how to avoid re-entering your UUID](../faq.html#uuid)"
|
|||||||
for more details. Note that the `-i answers` option cannot be used with the UUID
|
for more details. Note that the `-i answers` option cannot be used with the UUID
|
||||||
options as the answers file includes the UUID.
|
options as the answers file includes the UUID.
|
||||||
|
|
||||||
The overall size limit (see [Rule 2a](rules.html#rule2a)) on `prog.c` has been
|
The overall size limit (see Rule 2a Gross Size](rules.html#rule-2a-gross-size)) on `prog.c` has been
|
||||||
**increased from 4096 to 4993** bytes.
|
**increased from 4096 to 4993** bytes.
|
||||||
The [Rule 2a](rules.html#rule2a) size was changed from
|
The [Rule 2b Next Size](rules.html#rule-2b-net-size)size was changed from
|
||||||
**4096** to **4993** to keep the "2b to 2a" size ratio to a
|
**4096** to **4993** to keep the "2b to 2a" size ratio to a
|
||||||
value similar to the [2001-2012](../faq.html#size_rule2001-2012) and
|
value similar to the [2001-2012](../faq.html#size_rule2001-2012) and
|
||||||
[2013-2020](../faq.html#size_rule2013-2020) IOCCC eras.
|
[2013-2020](../faq.html#size_rule2013-2020) IOCCC eras.
|
||||||
|
|
||||||
The [Rule 2b](rules.html#rule2b) size has **increased from 2053 to 2503**
|
The [Rule 2b Next Size](rules.html#rule-2b-net-size) size has **increased from 2053 to 2503**
|
||||||
bytes.
|
bytes.
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
@@ -222,16 +225,21 @@ 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 limit](../next/rules.html#rule2). Large code size isn't
|
[Rule 2 Size](rules.html#rule-2-size) limit.
|
||||||
|
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.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
Your submission must satisfy **BOTH** the maximum size
|
Your submission must satisfy **BOTH** the maximum size
|
||||||
[Rule 2a](rules.html#rule2a) **AND** the IOCCC size [Rule 2b](rules.html#rule2b).
|
[Rule 2a Gross Size](rules.html#rule-2a-gross-size)
|
||||||
|
**AND**
|
||||||
|
the IOCCC size
|
||||||
|
[Rule 2b Next Size](rules.html#rule-2b-net-size).
|
||||||
|
|
||||||
To check your code against [Rule 2](rules.html#rule2), use the `iocccentry(1)` tool.
|
To check your code against
|
||||||
|
[Rule 2 Size](rules.html#rule-2-size), use the `iocccentry(1)` tool.
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
``` <!---sh-->
|
``` <!---sh-->
|
||||||
@@ -267,7 +275,8 @@ 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 [Rule 2](rules.html#rule2).
|
to get around the size limits of
|
||||||
|
[Rule 2 Size](rules.html#rule-2-size).
|
||||||
|
|
||||||
Yes Virginia, **that is a hint**!
|
Yes Virginia, **that is a hint**!
|
||||||
|
|
||||||
@@ -408,7 +417,8 @@ Jump to: [top](#)
|
|||||||
# `mkiocccentry`
|
# `mkiocccentry`
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
[Rule 17](rules.html#rule17) (the `mkiocccentry(1)` rule) states that
|
[Rule 17 Packaging](rules.html#rule-17-packaging)
|
||||||
|
(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.
|
||||||
|
|
||||||
See the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry)
|
See the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry)
|
||||||
@@ -471,7 +481,9 @@ 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 [Rule 17](rules.html#rule17) by mistake.
|
so that you do not violate
|
||||||
|
[Rule 17 Packaging](rules.html#rule-17-packaging)
|
||||||
|
by mistake.
|
||||||
|
|
||||||
|
|
||||||
Jump to: [top](#)
|
Jump to: [top](#)
|
||||||
@@ -515,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](rules.html#rule2)) 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
|
||||||
@@ -618,8 +630,8 @@ In other words, `mkiocccentry` **contains everything** you need, and _even if yo
|
|||||||
do install_ the libraries from their respective repos, it/they will **not be
|
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 [Rule
|
`chksubmit` (in the JSON files created by `mkiocccentry(1)`). See
|
||||||
17](rules.html#rule17)!
|
[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.
|
||||||
@@ -665,7 +677,8 @@ 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 [Rule 17](rules.html#rule17).
|
check, you could still be violating
|
||||||
|
[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
|
||||||
@@ -684,7 +697,9 @@ 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 [Rule 17](rules.html#rule17), regardless of its depth.
|
a violation of
|
||||||
|
[Rule 17 Packaging](rules.html#rule-17-packaging),
|
||||||
|
regardless of its depth.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
If you use an optional filename for something other than their intended use
|
If you use an optional filename for something other than their intended use
|
||||||
@@ -725,11 +740,14 @@ do the same like:
|
|||||||
tar --format=v7 -cJf foo.txz directory
|
tar --format=v7 -cJf foo.txz directory
|
||||||
```
|
```
|
||||||
|
|
||||||
See [Rule 17](rules.html#rule17) and also the
|
See
|
||||||
|
[Rule 17 Packaging](rules.html#rule-17-packaging)
|
||||||
|
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 [Rule 17](rules.html#rule17)!
|
are at a great risk of violating
|
||||||
|
[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
|
||||||
@@ -750,7 +768,8 @@ Jump to: [top](#)
|
|||||||
As an important part of its algorithm, [txzchk(1)](#txzchk) directly executes
|
As an important part of its algorithm, [txzchk(1)](#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](rules.html#rule17). Nevertheless, you can run the tool manually,
|
[Rule 17 Packaging](rules.html#rule-17-packaging).
|
||||||
|
Nevertheless, you can run the tool manually,
|
||||||
should you wish to.
|
should you wish to.
|
||||||
|
|
||||||
For more information on `fnamchk` and how to manually validate your submission
|
For more information on `fnamchk` and how to manually validate your submission
|
||||||
@@ -758,8 +777,9 @@ tarball filename, see the
|
|||||||
FAQ on "[fnamchk](../faq.html#fnamchk)".
|
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 [Rule
|
bug in `fnamchk(1)` and as such, ignoring such an issue risks violating
|
||||||
17](rules.html#rule17) which is a big risk. Of course, using `mkiocccentry(1)`
|
[Rule 17 Packaging](rules.html#rule-17-packaging)
|
||||||
|
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
|
||||||
you should [report it as a bug at the mkiocccentry issues
|
you should [report it as a bug at the mkiocccentry issues
|
||||||
@@ -772,7 +792,9 @@ the risk of stating the obvious, you run **A VERY BIG RISK** of having
|
|||||||
your submission rejected if you package your own tarball, and there are **ANY
|
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 [Rule 17](rules.html#rule17). But even if
|
it manually, you would be violating
|
||||||
|
[Rule 17 Packaging](rules.html#rule-17-packaging).
|
||||||
|
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.
|
||||||
|
|
||||||
<div id="bugs">
|
<div id="bugs">
|
||||||
@@ -1076,7 +1098,8 @@ Even if you did manage to get dot files or dot directories in the tarball
|
|||||||
somehow, `txzchk(1)` will flag it as an error. When the judges run `txzchk(1)`
|
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 [Rule 17](rules.html#rule17)!
|
**WILL BE REJECTED** for violating
|
||||||
|
[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
|
||||||
@@ -1412,8 +1435,9 @@ 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 [the source code
|
if nothing else because that code is likely to exceed
|
||||||
size limit](rules.html#rule2). This isn't to say that another highly compact and obfuscated
|
[Rule 2 Size](rules.html#rule-2-size).
|
||||||
|
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>
|
||||||
|
|
||||||
@@ -1428,8 +1452,10 @@ of code, and the other that is formatted more like a typical C
|
|||||||
program, we tend to favor the second version. Of course, a third
|
program, we tend to favor the second version. Of course, a third
|
||||||
version of the same program that is formatted in an interesting
|
version of the same program that is formatted in an interesting
|
||||||
and/or obfuscated way, would definitely win over the first two!
|
and/or obfuscated way, would definitely win over the first two!
|
||||||
Remember, you can submit more than one submission. See the [IOCCC
|
Remember, you can submit more than one submission. See the
|
||||||
rules](rules.html) for details (in particular, [Rule 9](rules.html#rule9)).
|
[IOCCC rules](rules.html)
|
||||||
|
for details (in particular,
|
||||||
|
[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
|
||||||
@@ -1574,7 +1600,8 @@ 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](rules.html#rule13) no longer discourages the use of UTF-8
|
[Rule 13 Newlines](rules.html#rule-13-newlines)
|
||||||
|
no longer discourages the use of UTF-8
|
||||||
characters in C code.
|
characters in C code.
|
||||||
|
|
||||||
It is a very good idea to, in your `remarks.md` file, tell us why you
|
It is a very good idea to, in your `remarks.md` file, tell us why you
|
||||||
@@ -1610,14 +1637,16 @@ Howe](../authors.html#Anthony_C_Howe), in which case it is original! :-)
|
|||||||
Submitting source code that uses the contents of
|
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 [Rule 7](rules.html#rule7).
|
risk of violating
|
||||||
|
[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
|
||||||
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
|
||||||
[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 [Rule 7](rules.html#rule7).
|
run the risk of violating
|
||||||
|
[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
|
||||||
@@ -1641,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](rules.html#rule7).
|
[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
|
||||||
@@ -1649,9 +1678,11 @@ the code in
|
|||||||
[dyn_array](https://github.com/ioccc-src/mkiocccentry/tree/master/dyn_array) are
|
[dyn_array](https://github.com/ioccc-src/mkiocccentry/tree/master/dyn_array) are
|
||||||
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 [Rule 7](rules.html#rule7).
|
might run the risk of violating
|
||||||
|
[Rule 7 Original Work](rules.html#rule-7-original-work).
|
||||||
|
|
||||||
[Rule 7](rules.html#rule7) does not prohibit you from writing your own
|
[Rule 7 Original Work](rules.html#rule-7-original-work)
|
||||||
|
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_
|
||||||
won't win since [IOCCC judges](../judges.html) should not enter the IOCCC! :-)
|
won't win since [IOCCC judges](../judges.html) should not enter the IOCCC! :-)
|
||||||
@@ -1660,14 +1691,17 @@ However, **_if_** you do write your own version, you **_might_** wish to make it
|
|||||||
tools' algorithms.
|
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 source code size limit](rules.html#rule2)
|
the fact it will likely exceed
|
||||||
|
[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
|
||||||
obfuscated, but unless you have some really clever way to compact and
|
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 [source code size limit](rules.html#rule2) or because it is not
|
because of the
|
||||||
|
[Rule 2 Size](rules.html#rule-2-size)
|
||||||
|
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
|
||||||
[jparse](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse).
|
[jparse](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse).
|
||||||
@@ -1759,7 +1793,9 @@ character tab stop.
|
|||||||
**PLEASE** observe our [IOCCC markdown guidelines](../markdown.html)
|
**PLEASE** observe our [IOCCC markdown guidelines](../markdown.html)
|
||||||
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 [Rule 19](rules.html#rule19) and our
|
those files. See also
|
||||||
|
[Rule 4 Files](rules.html#rule-4-files),
|
||||||
|
and the
|
||||||
FAQ on "[markdown](../faq.html#markdown)".
|
FAQ on "[markdown](../faq.html#markdown)".
|
||||||
|
|
||||||
We **LIKE** reading `remarks.md` files, especially if they contain
|
We **LIKE** reading `remarks.md` files, especially if they contain
|
||||||
@@ -1807,8 +1843,11 @@ As there is no guarantee that you will succeed, you might consider
|
|||||||
submitting an alternate version that conforms to the
|
submitting an alternate version that conforms to the
|
||||||
[IOCCC rules](rules.html).
|
[IOCCC rules](rules.html).
|
||||||
|
|
||||||
If you do bypass the `mkiocccentry(1)` warnings about [Rule
|
If you do bypass the `mkiocccentry(1)` warnings about
|
||||||
2a](rules.html#rule2a) and/or about [Rule 2b](rules.html#rule2b) or any other
|
[Rule 2a Gross Size](rules.html#rule-2a-gross-size)
|
||||||
|
and/or about
|
||||||
|
[Rule 2b Next Size](rules.html#rule-2b-net-size)
|
||||||
|
or any other
|
||||||
rule and submit a submission anyway, you **MUST** try to justify why the IOCCC
|
rule and submit a submission anyway, you **MUST** try to justify why the IOCCC
|
||||||
[IOCCC judges](../judges.html) should not reject your submission due to a rule
|
[IOCCC judges](../judges.html) should not reject your submission due to a rule
|
||||||
violation, and you would be wise to do this towards the top of your `remarks.md`
|
violation, and you would be wise to do this towards the top of your `remarks.md`
|
||||||
@@ -2031,7 +2070,9 @@ submission that abuses the [IOCCC guidelines](guidelines.html) in an interesting
|
|||||||
or that stretches the contest [rules](rules.html) that while legal, it
|
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 [Rule 12](rules.html#rule12).
|
Nevertheless, see
|
||||||
|
[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
|
||||||
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
|
||||||
|
|||||||
+255
-622
@@ -473,633 +473,266 @@ 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 -->
|
||||||
<h1 id="th-international-obfuscated-c-code-contest-official-rules">28th International Obfuscated C Code Contest Official Rules</h1>
|
<h2 id="th-international-obfuscated-c-code-contest-official-rules">29th International Obfuscated C Code Contest Official Rules</h2>
|
||||||
<p class="leftbar">
|
<p>Copyright © 2024-2025 Leonid A. Broukhis and Landon Curt Noll.</p>
|
||||||
Copyright © 2024-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 must 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>
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
<h2 id="rules-version">Rules version</h2>
|
||||||
<div id="rules_version">
|
<p>These IOCCC Rules are version <strong>29.00 2025-11-19</strong>.</p>
|
||||||
<div id="version">
|
<p>Be sure to read the <a href="guidelines.html">IOCCC guidelines</a>.</p>
|
||||||
<h2 id="ioccc-rules-version">IOCCC Rules version</h2>
|
<h2 id="rule-0-dates">Rule 0 Dates</h2>
|
||||||
</div>
|
<p>This IOCCC runs from ${START_DATE_TIME} UTC to ${CLOSE_DATE_TIME} UTC.</p>
|
||||||
</div>
|
<p>This contest will enter the open state on ${OPEN_DATE_TIME} UTC.</p>
|
||||||
<p class="leftbar">
|
<p>This contest will enter the judging state on ${JUDGMENT_DATE_TIME} UTC.</p>
|
||||||
These <a href="rules.html">IOCCC rules</a> are version <strong>28.31 2025-11-17</strong>.
|
<p>The above dates are subject to change until the contest is officially open.</p>
|
||||||
</p>
|
<p><strong>NOTE</strong>: As of this draft, the above dates are TBD (to be determined).</p>
|
||||||
<p>The markdown form of these rules <a href="rules.md" download="rules.md">is
|
<h2 id="rule-1-program">Rule 1 Program</h2>
|
||||||
available for download</a>.</p>
|
<p>Your submission <strong>MUST</strong> be C program.</p>
|
||||||
<p><strong>IMPORTANT</strong>: Be sure to read the <a href="guidelines.html">IOCCC guidelines</a>.</p>
|
<h2 id="rule-2-size">Rule 2 Size</h2>
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
<p><code>Rule 2</code> requires that your submission satisfy <strong>BOTH</strong>
|
||||||
<div id="change_marks">
|
<a href="rules.html#rule-2a-gross-size">Rule 2a Gross Size</a>
|
||||||
<h3 id="change-marks">Change marks</h3>
|
and
|
||||||
</div>
|
<a href="rules.html#rule-2b-net-size">Rule 2b Next Size</a>.
|
||||||
<p class="leftbar">
|
During development this can be checked using <code>iocccsize(1)</code>:</p>
|
||||||
<strong>← Lines that start with this symbol indicate a change from the previous IOCCC</strong>
|
<p>iocccsize prog.c</p>
|
||||||
</p>
|
<h3 id="rule-2a-gross-size">Rule 2a Gross Size</h3>
|
||||||
<p class="leftbar">
|
<p>The overall maximum size of your <code>prog.c</code> program source <strong>MUST NOT</strong>
|
||||||
Most lines that were modified since the previous IOCCC start with a solid
|
exceed <strong>4993</strong> bytes.</p>
|
||||||
4 pixel black left border (or, in the case of a code block or blockquote,
|
<h3 id="rule-2b-net-size">Rule 2b Net Size</h3>
|
||||||
just a vertical bar). We say <em>most lines</em> because we sometimes forget
|
<p>When the filename of your program source (i.e., <code>prog.c</code>) is given as a
|
||||||
to bar modified sections.
|
command line argument to the latest version of the official IOCCC size
|
||||||
</p>
|
tool (hereby referred to as <code>iocccsize(1)</code>), the value printed <strong>MUST
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
NOT</strong> exceed <strong>2503</strong>.</p>
|
||||||
<div id="obfuscate">
|
<h2 id="rule-3-register">Rule 3 Register</h2>
|
||||||
<h1 id="obfuscate-defined">Obfuscate defined:</h1>
|
<p>You <strong>MUST</strong> register, using a valid email address, in order to submit
|
||||||
</div>
|
entries to the IOCCC. You may register while the contest is <strong>pending</strong> or <strong>open</strong>.</p>
|
||||||
<p>tr.v. -cated, -cating, -cates.
|
<p>A few days after registering, you’ll receive your UUID username and
|
||||||
<br><br>
|
temporary password, which you <strong>MUST</strong> change within 14 days. If you
|
||||||
<strong>1a.</strong> To render obscure.<br>
|
fail to change it in a timely manner, you’ll need to
|
||||||
<strong>1b.</strong> To darken.
|
<a href="../contact.html">contact the Judges</a> by email to request a reset.</p>
|
||||||
<br><br>
|
<p>It can take a few days to process your registration and for the server to
|
||||||
<strong>2.</strong> To confuse: his emotions obfuscated his judgment.<br>
|
email your details, therefore make sure to allow yourself ample time to
|
||||||
[LLat. obfuscare, to darken : ob(intensive) + Lat. fuscare,<br>
|
register and submit your entries; <strong>DO NOT WAIT UNTIL THE FINAL DAYS</strong>
|
||||||
to darken < fuscus, dark.] -obfuscation n. obfuscatory adj.</p>
|
to register! The judges are <strong>NOT</strong> responsible for delayed or lost
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
email or for those who wait until the last minute to try to register!</p>
|
||||||
<div id="goals">
|
<p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to know</a>.</p>
|
||||||
<h1 id="goals-of-the-ioccc-international-obfuscated-c-code-contest">Goals of the IOCCC (International Obfuscated C Code Contest)</h1>
|
<p>See <a href="rules.html#rule-8-submission">Rule 8 Submission</a>.</p>
|
||||||
</div>
|
<h2 id="rule-4-files">Rule 4 Files</h2>
|
||||||
<p class="leftbar">
|
<p>The submission <strong>MUST</strong> include at least these files: <code>Makefile</code>, <code>prog.c</code>,
|
||||||
See the <a href="../index.html#goals">IOCCC goals</a>.
|
<code>remarks.md</code>,<code>.info.json</code>, and <code>.auth.json</code>. The last two <strong>MUST</strong> be
|
||||||
</p>
|
generated by <code>mkiocccenty(1)</code> when packing a submission, and <strong>MUST</strong>
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
pass the <code>chksubmit(1)</code> tests.</p>
|
||||||
<div id="dates">
|
<p>The <code>Makefile</code>, <code>remarks.md</code>,<code>.info.json</code>, and <code>.auth.json</code> <strong>MUST</strong>
|
||||||
<h1 id="important-ioccc-dates">Important IOCCC dates</h1>
|
have a file size <strong>greater than 0</strong>.</p>
|
||||||
</div>
|
<p>Your submitted source code <strong>MUST</strong> be called <code>prog.c</code>. When the <code>Makefile</code>
|
||||||
<p class="leftbar">
|
compiles your code, the executable (if applicable) <strong>MUST</strong> be called <code>prog</code>.</p>
|
||||||
This IOCCC runs from <strong>2024-12-29 23:58:13.213455 UTC</strong> to <strong>2025-06-05 04:03:02.010099 UTC</strong>.
|
<p>Your submission may <strong>NOT</strong> have any file that starts with <code>COPYING</code>,
|
||||||
This IOCCC marks the <strong>40th anniversary</strong> of the contest!
|
<code>COPYRIGHT</code>, or <code>LICENSE</code> as those files are reserved by IOCCC.</p>
|
||||||
</p>
|
<p>Your submission may <strong>NOT</strong> have in the top directory, <code>prog</code>, <code>prog.alt</code>,
|
||||||
<p class="leftbar">
|
<code>prog.alt.o</code>, <code>prog.o</code>, <code>prog</code>, <code>prog.orig.c</code>, <code>README.md</code>, nor <code>index.html</code>
|
||||||
This contest will enter the <strong><a href="../faq.html#open">open</a></strong> state on <strong>2025-03-05 23:19:17.131107 UTC</strong>.
|
as those files reserved by IOCCC.</p>
|
||||||
</p>
|
<p>Your submission may <strong>NOT</strong> have a file in the top directory that matches
|
||||||
<p class="leftbar">
|
a file glob pattern of the form <code>[0-9][0-9][0-9][0-9]_*.tar.bz2</code>
|
||||||
This contest will enter the <strong><a href="../faq.html#judging">judging</a></strong> state on <strong>2025-06-05 04:03:02.010099 UTC</strong>.
|
as those files are reserved by IOCCC.</p>
|
||||||
</p>
|
<p>Your submission may <strong>ONLY</strong> contain files and directories. Other file
|
||||||
<p class="leftbar">
|
types such as symlinks, sockets, etc are <strong>NOT</strong> allowed.</p>
|
||||||
<strong>IMPORTANT NOTE</strong>: Until the contest enters the <strong><a href="../faq.html#open">open</a></strong> state, any or all
|
<p>All directories <strong>MUST</strong> have a file mode of <strong>0755</strong>. All files
|
||||||
of the above <strong>dates and times may change</strong>!
|
<strong>MUST</strong> have the file mode of <strong>0444</strong>, except for files that
|
||||||
</p>
|
end in <code>.sh</code> which must have a mode of <strong>0555</strong>.</p>
|
||||||
<p>See the
|
<p>All files that end in <code>.md</code> <strong>MUST</strong> be in markdown format.
|
||||||
FAQ on “<a href="../faq.html#mkiocccentry">obtaining and compiling the mkiocccentry tools</a>”
|
We recommend that markdown files observe our
|
||||||
and the
|
<a href="../markdown.html">IOCCC markdown guidelines</a>.</p>
|
||||||
FAQ on “<a href="../quick-start.html#enter">how to enter the IOCCC</a>”
|
<p>All filenames are treated as case insensitive. For example, <code>REMARKS.MD</code>,
|
||||||
as that FAQ has important details on
|
and <code>Remarks.md</code>, and <code>remarks.md</code> are considered by <code>mkiocccenty(1)</code>
|
||||||
<a href="../next/register.html">how to register</a>
|
to be the <strong>SAME</strong> file. If you are preparing your submission on a case
|
||||||
as well as
|
sensitive filesystem, ensure that your submission will work on
|
||||||
<a href="../next/submit.html">how to upload your submission</a> to the IOCCC.</p>
|
a case insensitive filesystem.</p>
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
<p>The <code>remarks.md</code> and <code>Makefile</code> are explained in more detail in the Guidelines.</p>
|
||||||
<div id="rules">
|
<p>See <a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p>
|
||||||
<h1 id="ioccc-rules">IOCCC RULES</h1>
|
<h2 id="rule-5-purity">Rule 5 Purity</h2>
|
||||||
</div>
|
<p>Your submission <strong>MUST NOT</strong> modify the filenames or content of any of
|
||||||
<p>To help us with the volume of submissions, we ask that you follow the rules below.</p>
|
your original submission, such as <code>prog.c</code>, <code>Makefile</code>, or any supplied
|
||||||
<div id="rule_abuse">
|
data files. To modify files, your program can make a copy or you can
|
||||||
<h4 id="a-warning-about-rule-abuse">A warning about rule abuse</h4>
|
use the Makefile to setup working copies. Any working copies <strong>MUST</strong> be
|
||||||
</div>
|
cleaned up by the <code>Makefile</code> <code>clobber</code> target, so as to restore the
|
||||||
<p><strong>WARNING:</strong> Abusing these rules comes with a <strong>fair amount of risk</strong>
|
directory to its original state.</p>
|
||||||
that your submission will be rejected. If you do plan to abuse the
|
<h2 id="rule-6-free">Rule 6 Free</h2>
|
||||||
rules, then you <strong>MUST CLEARLY EXPLAIN THE RATIONALE</strong> in your <code>remarks.md</code> file,
|
<p>I am <strong>NOT</strong> a Rule, I am a <code>free(void *human);</code> ‼️</p>
|
||||||
as to why you think your rule abuse should be allowed, and as to why you think
|
<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>
|
||||||
your submission should not be rejected for a rule violation.
|
<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>
|
||||||
<strong>Nevertheless, <em>even if you do</em> explain this in your <code>remarks.md</code> file
|
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a> <span class="op">}</span></span></code></pre></div>
|
||||||
you submission may still be rejected</strong>.</p>
|
<p>See <a href="rules.html#rule-19-prime">Rule 19 Prime</a>.</p>
|
||||||
<p>If you use the most recently released official IOCCC submission packaging tool
|
<h2 id="rule-7-original-work">Rule 7 Original Work</h2>
|
||||||
(hereby referred to as <code>mkiocccentry(1)</code>), which we <strong>STRONGLY recommend you
|
<p>In short: You wrote it, you own it, and its an original work.</p>
|
||||||
do</strong>, then the <code>mkiocccentry(1)</code> tool will warn you if there appears to be a
|
<p>You, the author(s), <strong>MUST</strong> own the contents of your submission, or you <strong>MUST</strong>
|
||||||
violation in certain rules (not all can be detected). The <code>mkiocccentry(1)</code>
|
have permission from the original owner(s) to its use. If you submit
|
||||||
tool also runs <code>chksubmit(1)</code> and <code>txzchk(1)</code>, the latter of which runs
|
any content that is owned by others, you <strong>MUST</strong> detail that ownership,
|
||||||
<code>fnamchk(1)</code>. Overriding problems detected by any of these tools comes with a
|
i.e., who owns what, and document the permission you obtained from them
|
||||||
<strong>fair amount of risk</strong> that your submission will be rejected.</p>
|
in your <code>remarks.md</code> file.</p>
|
||||||
<p>If you do override a rule violation warning from the <code>mkiocccentry(1)</code> or
|
|
||||||
another related IOCCC tool, or otherwise plan to abuse the rules, then you
|
|
||||||
<strong>MUST CLEARLY EXPLAIN THE RATIONALE</strong> of why you are attempting to abuse the
|
|
||||||
rules in your <code>remarks.md</code> file. <strong><em>Even if you do</em> explain this in your
|
|
||||||
<code>remarks.md</code> file your submission may still be rejected</strong>.</p>
|
|
||||||
<p><strong>HINT:</strong> If you do submit such a rule abusing / rule violating
|
|
||||||
submission, then consider also submitting an alternate version in a
|
|
||||||
<strong>different submission</strong> server slot that does <strong>NOT</strong> violate the rules
|
|
||||||
in case your rule abuse excuse is rejected.</p>
|
|
||||||
<p><strong>IMPORTANT</strong>: if you do submit such an alternate non-rule abusing version,
|
|
||||||
<strong>PLEASE</strong> indicate that in your <code>remarks.md</code> file of your non-rule abusing
|
|
||||||
version so that the <a href="../judges.html">IOCCC judges</a> do not think you uploaded a
|
|
||||||
duplicate into a wrong slot by mistake.</p>
|
|
||||||
<p>Uploading a tarball not formed by <code>mkiocccentry(1)</code> puts you at a very big risk of
|
|
||||||
violating <a href="rules.html#rule17">Rule 17</a>, especially as <code>mkiocccentry(1)</code> does a
|
|
||||||
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
|
|
||||||
rejected for violating <a href="rules.html#rule17">Rule 17</a>.</p>
|
|
||||||
<p>See also <a href="#rule13">Rule 12</a>.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule0">
|
|
||||||
<h2 id="rule-0">Rule 0</h2>
|
|
||||||
</div>
|
|
||||||
<p>Just as C starts at 0, so the IOCCC starts at <a href="#rule0">Rule 0</a>. :-)</p>
|
|
||||||
<p>The “<a href="#dates">Important IOCCC dates</a>” section above is part of this rule.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule1">
|
|
||||||
<h2 id="rule-1">Rule 1</h2>
|
|
||||||
</div>
|
|
||||||
<p>Your submission must be a C program.</p>
|
|
||||||
<p>You see, the contest is not called the <strong>International Obfuscated JSON Contest</strong>
|
|
||||||
(<strong>IOJSONC</strong>), even if the <a href="https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec">so-called JSON
|
|
||||||
spec</a> might be called obfuscated
|
|
||||||
by some people. :-)</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule2">
|
|
||||||
<h2 id="rule-2">Rule 2</h2>
|
|
||||||
</div>
|
|
||||||
<p><a href="#rule2">Rule 2</a> requires that your submission satisfy <strong>BOTH</strong> <a href="#rule2a">Rule
|
|
||||||
2a</a> <strong>AND</strong> <a href="#rule2b">Rule 2b</a>.</p>
|
|
||||||
<p>You may check your code with respect to <a href="#rule2a">Rule 2a</a> and <a href="#rule2b">Rule
|
|
||||||
2b</a> prior to submitting your code by giving the filename
|
|
||||||
as a command like argument to the <code>iocccsize(1)</code> tool. For example:</p>
|
|
||||||
<pre><code> iocccsize prog.c</code></pre>
|
|
||||||
<p>The source to <code>iocccsize(1)</code> may be found in the
|
|
||||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>.</p>
|
|
||||||
<p>See also the
|
|
||||||
FAQ on “<a href="../faq.html#mkiocccentry_test">how to further test your submission</a>”
|
|
||||||
for more more thorough testing, including <a href="#rule2">Rule 2</a>.</p>
|
|
||||||
<p>See also <a href="#rule2a">Rule 2a</a>, <a href="#rule2b">Rule 2b</a>, and <a href="#rule17">Rule 17</a>.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule2a">
|
|
||||||
<h2 id="rule-2a">Rule 2a</h2>
|
|
||||||
</div>
|
|
||||||
<p class="leftbar">
|
|
||||||
The size of your program source <strong>MUST NOT exceed 4993 bytes</strong>.
|
|
||||||
</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule2b">
|
|
||||||
<h2 id="rule-2b">Rule 2b</h2>
|
|
||||||
</div>
|
|
||||||
<p>When the filename of your program source is given as a 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 NOT exceed <em>2503</em></strong>.</p>
|
|
||||||
<p>See also <a href="#rule17">Rule 17</a>.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule3">
|
|
||||||
<h2 id="rule-3">Rule 3</h2>
|
|
||||||
</div>
|
|
||||||
<p>You must <a href="../next/register.html">register</a> in order to submit your entry to the IOCCC.
|
|
||||||
You may <a href="../next/register.html">register</a> while the contest is either
|
|
||||||
<strong><a href="../faq.html#pending">pending</a></strong> or <strong><a href="../faq.html#open">open</a></strong>.</p>
|
|
||||||
<p>When the contest is <strong><a href="../faq.html#open">open</a></strong>, the <a href="https://submit.ioccc.org">submit server</a>
|
|
||||||
will email you your <a href="https://submit.ioccc.org">submit server</a>
|
|
||||||
<strong>Username</strong> and <strong>Initial password</strong>. <strong>Please be patient</strong> as it may take some time,
|
|
||||||
perhaps as much as a few days, for your registration to be processed and for that email to be sent.</p>
|
|
||||||
<p>Those who <a href="../next/register.html">register</a> while the contest status is <strong><a href="../faq.html#pending">pending</a></strong>
|
|
||||||
will receive their email (containing their <a href="https://submit.ioccc.org">submit server</a> <strong>Username</strong>
|
|
||||||
and <strong>Initial password</strong>), later: usually a few days around the time when the contest status
|
|
||||||
becomes <strong><a href="../faq.html#open">open</a></strong>.</p>
|
|
||||||
<p>Once that email with your <strong>Username</strong> and <strong>Initial password</strong> is sent, you
|
|
||||||
will have fortnight (<strong>14 days</strong>) to <a href="../next/pw-change.html">change your submit server initial password</a>.</p>
|
|
||||||
<p>If you do not change your <strong>Initial password</strong> in time, you will have to
|
|
||||||
<a href="../contact.md#if-you-really-need-to-send-email-the-ioccc-judges">send email to the IOCCC judges</a>
|
|
||||||
to ask for your password to be reset.</p>
|
|
||||||
<p>Because it takes time (maybe even a few days) to process your registration
|
|
||||||
and for the server to email you your initial login and password, you
|
|
||||||
should <strong>MAKE SURE</strong> you give yourself enough time to register well
|
|
||||||
before the contest closes. In other words, <strong>DO NOT WAIT UNTIL THE FINAL DAYS</strong>
|
|
||||||
of the contest to register! The <a href="../judges.html">IOCCC judges</a>
|
|
||||||
are <strong>NOT</strong> responsible for delayed or lost email, or for those who wait
|
|
||||||
until the last minute to try to register!</p>
|
|
||||||
<p>See the
|
|
||||||
FAQ on “<a href="../quick-start.html#enter">how to register and submit to the IOCCC</a>”
|
|
||||||
for instructions on registering and participating in the IOCCC, as the process
|
|
||||||
may change from contest to contest.</p>
|
|
||||||
<p>See also <a href="#rule8">Rule 8</a>.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule4">
|
|
||||||
<h2 id="rule-4">Rule 4</h2>
|
|
||||||
</div>
|
|
||||||
<p>If your submission is selected as a winning entry, then your submission may be modified in order
|
|
||||||
to fit into the structure of the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a>.</p>
|
|
||||||
<p>For example, your submission’s <code>Makefile</code> will be modified and your <code>remarks.md</code>
|
|
||||||
will become a <code>README.md</code> which will be used to generate an <code>index.html</code> file.</p>
|
|
||||||
<p>Your source code will be the file <code>prog.c</code>. The compiled binary
|
|
||||||
will be called <code>prog</code>. If you submission requires different filenames,
|
|
||||||
then modify your submission’s <code>Makefile</code> to <strong>COPY</strong> (<strong>NOT</strong> move!) the files
|
|
||||||
accordingly.</p>
|
|
||||||
<p>Of course your program may also do this, as long as it works, but you’re welcome
|
|
||||||
to use your <code>Makefile</code> as well.</p>
|
|
||||||
<p>See also <a href="#rule5">Rule 5</a>, <a href="#rule18">Rule 18</a> and <a href="#rule21">Rule 21</a>.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule5">
|
|
||||||
<h2 id="rule-5">Rule 5</h2>
|
|
||||||
</div>
|
|
||||||
<p>Your submission must <strong>NOT</strong> modify the <em>content</em> <strong>OR</strong> <em>filename</em> of <strong>ANY</strong>
|
|
||||||
part of your original submission including, but not limited to <code>prog.c</code>, the
|
|
||||||
<code>Makefile</code> or any data files you submit.</p>
|
|
||||||
<p>If you submission needs (or wishes :-) ) to modify such content, it <strong>MUST</strong>
|
|
||||||
first copy the file to a new filename and then modify that copy.</p>
|
|
||||||
<p>You may use your submission (program) to form a copy, or you can make use of
|
|
||||||
your <code>Makefile</code> to form that copy.</p>
|
|
||||||
<p>If you do make a copy of a submission file, <strong>PLEASE</strong> be sure that
|
|
||||||
the <code>clobber</code> rule of your <code>Makefile</code> removes that copy in order to
|
|
||||||
restore your submission to its original submission state.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule6">
|
|
||||||
<h2 id="rule-6">Rule 6</h2>
|
|
||||||
</div>
|
|
||||||
<p>I am not a rule, I am a <code>free(void *human);</code> ‼️</p>
|
|
||||||
<p> <code>while (!(ioccc(rule(you(are(number(6)))))) {</code><br>
|
|
||||||
<code>ha_ha_ha();</code><br>
|
|
||||||
<code>}</code></p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule7">
|
|
||||||
<h2 id="rule-7">Rule 7</h2>
|
|
||||||
</div>
|
|
||||||
<p>The obfuscated C program must be your own original work.</p>
|
|
||||||
<p>You (the author(s)) <strong>MUST</strong> own the contents of your submission <strong>OR</strong>
|
|
||||||
you <strong>MUST</strong> have permission from the owner(s) to submit their content.</p>
|
|
||||||
<p>If you submit any content that is owned by others, you <strong>MUST
|
|
||||||
detail that ownership</strong> (i.e., who owns what) <strong><em>AND</em> document the
|
|
||||||
permission you obtained from them</strong>, in your <code>remarks.md</code> file.</p>
|
|
||||||
<p>Please note that the tools in <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
|
||||||
repo</a> are <strong>NOT</strong> original works,
|
|
||||||
unless of course you’re the original authors, in which case they are original. :-)</p>
|
|
||||||
<p>Nevertheless tools such as those listed are <strong>NOT</strong> obfuscated. If submitted, they
|
|
||||||
would probably violate a number of rules. :-)</p>
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/mkiocccentry.c">mkiocccentry(1)</a></li>
|
|
||||||
<li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c">iocccsize(1)</a></li>
|
|
||||||
<li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/chksubmit.c">chksubmit(1)</a></li>
|
|
||||||
<li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c">txzchk(1)</a></li>
|
|
||||||
<li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/location_main.c">location(1)</a></li>
|
|
||||||
<li><a href="https://github.com/xexyl/jparse">jparse repo as cloned by the mkiocccentry repo</a></li>
|
|
||||||
<li><a href="https://github.com/lcn2/dbg">dbg repo as cloned by the mkiocccentry repo</a></li>
|
|
||||||
<li><a href="https://github.com/lcn2/dyn_array">dyn_array repo as cloned by the mkiocccentry repo</a></li>
|
|
||||||
</ul>
|
|
||||||
<p>The IOCCC has a rich history of remarkable winning entries created by
|
<p>The IOCCC has a rich history of remarkable winning entries created by
|
||||||
authors who skillfully employed various techniques to develop their code.
|
authors who skilfully employed various techniques to develop their code.
|
||||||
While it is <strong>NOT</strong> required, you are <em>allowed</em> to use tools to develop
|
While it isn’t required, you are allowed to use tools to develop and
|
||||||
and test your submission. These tools may include, but are not limited
|
test your submission. These tools may include, but aren’t limited to
|
||||||
to code generators, code analysis tools, static code analysis tools,
|
code generators, code analysis tools, static code analysis tools, runtime
|
||||||
runtime analysis tools, machine learning tools, natural language models,
|
analysis tools, machine learning tools, natural language models, code
|
||||||
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 <strong>ENCOURAGE you to describe
|
If you do make use of such tools or services, then we encourage you to
|
||||||
what tools and how you used those tools</strong>, 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 also <a href="#rule5">Rule 5</a>, <a href="#rule18">Rule 18</a> and <a href="#rule21">Rule 21</a>.</p>
|
<p>See <a href="rules.html#rule-16-anonymous">Rule 16 Anonymous</a>.</p>
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
<h2 id="rule-8-submission">Rule 8 Submission</h2>
|
||||||
<div id="rule8">
|
<p>The Submit Server will only accept submissions from those who have
|
||||||
<h2 id="rule-8">Rule 8</h2>
|
registered and only while the contest is open.</p>
|
||||||
</div>
|
<p>The Submit Server places a total submission size limit of <strong>3999971</strong> bytes.</p>
|
||||||
<p>Submissions may only be uploaded to the <a href="https://submit.ioccc.org">IOCCC submit server</a>
|
<p>Each account has ten (<strong>10.000</strong>) submission slots (<strong>0..9)</strong>. Each submission
|
||||||
while the contest is <strong><a href="../faq.html#open">open</a></strong>.</p>
|
slot should be annotated by the server as to whether its was received,
|
||||||
<p>If you have <a href="../next/register.html">registered</a> and received by email your <a href="https://submit.ioccc.org">submit
|
processed, malformed, etc. Please take note of any errors, rectify,
|
||||||
server</a> <strong>Username</strong> and <strong>Initial password</strong> you may
|
and resubmit. In order to avoid potential packaging errors, it is <strong>highly
|
||||||
upload your submission to the <a href="https://submit.ioccc.org">submit server</a> but
|
recommended</strong> to use <code>mkiocccentry(1)</code>.</p>
|
||||||
<strong>ONLY</strong> while the contest is <strong><a href="../faq.html#open">open</a></strong>.</p>
|
<p>See
|
||||||
<p>The <a href="https://submit.ioccc.org">submit server</a>, in accordance with <a href="rules.html#rule17">Rule
|
<a href="rules.html#rule-3-register">Rule 3 Register</a>,
|
||||||
17</a>, places a limit of <strong>3999971</strong> bytes on the size of your
|
<a href="rules.html#rule-15-building">Rule 15 Building</a>,
|
||||||
upload.</p>
|
and
|
||||||
<p>Once the contest is in the <strong><a href="../faq.html#judging">judging</a></strong> state (or
|
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p>
|
||||||
<strong><a href="../faq.html#closed">closed</a></strong> state), you may <strong>NOT</strong> upload submissions.</p>
|
<h2 id="rule-9-no-hands">Rule 9 No hands</h2>
|
||||||
<p>While the contest is <strong><a href="../faq.html#open">open</a></strong> or in the
|
<p>Entries requiring human interaction to be initially compiled are <strong>NOT</strong>
|
||||||
<strong><a href="../faq.html#judging">judging</a></strong> state, the <a href="../judges.html">IOCCC judges</a>
|
permitted. However, see the guidelines. Each entry <strong>MUST</strong> automated the
|
||||||
<strong>MAY</strong> (but are not required to) modify the slot comment of your submission to
|
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
|
||||||
indicate that they have received it. If uploaded submission is malformed, the
|
environment</a>.</p>
|
||||||
<a href="../judges.html">IOCCC judges</a> <strong>MAY</strong> (but are not required to) modify the slot
|
<p>Note references to <code>gmake</code> can be any GNU Make compatible tool.</p>
|
||||||
comment accordingly.</p>
|
<p>See <a href="rules.html#rule-17-building">Rule 17 Building</a>.</p>
|
||||||
<p>You are <strong>STRONGLY</strong> advised to use the <code>mkiocccentry(1)</code> tool
|
<h2 id="rule-10-privileges">Rule 10 Privileges</h2>
|
||||||
as found in the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>
|
<p>Programs that require special privileges (setuid(2), setgid(2),
|
||||||
to form the file to upload to the <a href="https://submit.ioccc.org">submit server</a>.</p>
|
super-user, special owner, special group, etc.) are HIGHLY DISCOURAGED.
|
||||||
<p>The <a href="https://submit.ioccc.org">submit server</a> will become active when the
|
We do <strong>NOT</strong> guarantee these functions will behave as you expect on our
|
||||||
contest is <strong><a href="../faq.html#open">open</a></strong>. Until the contest status becomes
|
test platforms. If your program needs special permissions you <strong>MUST</strong>
|
||||||
<strong><a href="../faq.html#open">open</a></strong>, the <a href="https://submit.ioccc.org">submit server</a> may
|
document this fact and explain why it is needed in your submission’s
|
||||||
be offline and/or unresponsive.</p>
|
<code>remarks.md</code> file.</p>
|
||||||
<p>See the
|
<p>Furthermore, if you need a supplementary program that you include to
|
||||||
FAQs on “<a href="../faq.html#mkiocccentry">obtaining, compiling, installing and using the latest release of the mkiocccentry tools</a>”
|
have these permissions, you will also have to explain this, because these
|
||||||
for more information about the <code>mkiocccentry(1)</code> tool.</p>
|
bits are <strong>NOT</strong> allowed in submissions and those bits will <strong>NOT</strong> be copied by
|
||||||
<p>See the “<a href="#dates">Important IOCCC dates</a>” section above for when these contest states are scheduled.</p>
|
|
||||||
<p>See also <a href="#rule3">Rule 3</a> and <a href="#rule17">Rule 17</a>.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule9">
|
|
||||||
<h2 id="rule-9">Rule 9</h2>
|
|
||||||
</div>
|
|
||||||
<p>Each <strong>PERSON</strong> may register <strong>ONLY ONE</strong> account and each account may submit up to
|
|
||||||
and including <strong>10.000000</strong> (ten in base 10) submissions <strong>PER</strong> contest.</p>
|
|
||||||
<p><strong>Each submission <em>must be submitted separately</em></strong>.</p>
|
|
||||||
<p>If this seems unreasonable we suggest you wait until the next contest and in
|
|
||||||
the interim ponder this (modified or not) quote said by Bill Gates:</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>640K submissions ought to be enough for anybody.</p>
|
|
||||||
<p>– Bill Gates s/640K/10/ (allegedly :-) )</p>
|
|
||||||
</blockquote>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule10">
|
|
||||||
<h2 id="rule-10">Rule 10</h2>
|
|
||||||
</div>
|
|
||||||
<p>Entries requiring human interaction to be initially compiled <strong>are not
|
|
||||||
permitted</strong>. However, see the <a href="guidelines.html">guidelines</a>.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule11">
|
|
||||||
<h2 id="rule-11">Rule 11</h2>
|
|
||||||
</div>
|
|
||||||
<p>Programs that require special privileges (<code>setuid(2)</code>, <code>setgid(2)</code>,
|
|
||||||
super-user, special owner, special group, etc.) are still <strong>HIGHLY
|
|
||||||
DISCOURAGED</strong>. We do not guarantee these functions will behave as
|
|
||||||
you expect on our test platforms. If your program needs special
|
|
||||||
permissions you <strong>MUST</strong> document this fact, and explain why
|
|
||||||
it is needed in your submission’s <code>remarks.md</code> file.</p>
|
|
||||||
<p>Furthermore, if you need a supplementary program that you include, to 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 <code>mkiocccentry(1)</code>.</p>
|
|
||||||
<p>See also <a href="#rule17">Rule 17</a>.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule12">
|
|
||||||
<h2 id="rule-12">Rule 12</h2>
|
|
||||||
</div>
|
|
||||||
<p><strong>Legal</strong> abuse of the rules is somewhat encouraged. <strong>A submission that, in
|
|
||||||
the opinion of the <a href="../judges.html">judges</a>, violates the rules WILL BE DISQUALIFIED</strong>.
|
|
||||||
Submissions that attempt to abuse the rules <strong>MUST</strong> try to justify why
|
|
||||||
their rule abuse is legal, in the <code>remarks.md</code> file.</p>
|
|
||||||
<p>See also <a href="#rule_abuse">the warning about rule abuse</a>.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule13">
|
|
||||||
<h2 id="rule-13">Rule 13</h2>
|
|
||||||
</div>
|
|
||||||
<p>7 out of 13 UTF-8 characters in C code agree that this rule number is lucky
|
|
||||||
enough to be a prime number.</p>
|
|
||||||
<p>Fun fact: the fear of the number 13 is called <em>triskaidekaphobia</em>.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule14">
|
|
||||||
<h2 id="rule-14">Rule 14</h2>
|
|
||||||
</div>
|
|
||||||
<p>Any C source that fails to compile because of lines with trailing
|
|
||||||
control-M’s (i.e., lines with a trailing byte <code>015</code>) <strong>might</strong> be rejected.</p>
|
|
||||||
<p>Please do <strong>NOT</strong> put trailing control-M’s on <code>prog.c</code>, <code>Makefile</code>, or
|
|
||||||
<code>remarks.md</code> files but instead end lines with a trailing newline (i.e.,
|
|
||||||
byte <code>012</code>) character.</p>
|
|
||||||
<p>As we do <strong>NOT</strong> use DOS, please also be sure that the <code>Makefile</code> and
|
|
||||||
<code>remarks.md</code> files end in final newline (i.e., byte <code>012</code>) character.</p>
|
|
||||||
<p>You are permitted, in order to try and squeeze your <code>prog.c</code> under
|
|
||||||
a <a href="#rule2a">Rule 2a</a> and/or <a href="#rule2b">Rule 2b</a> limit, to <strong>NOT</strong>
|
|
||||||
end your <code>prog.c</code> with a newline (i.e., byte <code>012</code>) character.
|
|
||||||
If you need to do this, <strong>PLEASE</strong> document that in your <code>remarks.md</code> file and
|
|
||||||
if your compiler complains about this, document this too and update your
|
|
||||||
<code>Makefile</code> to account for this.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule15">
|
|
||||||
<h2 id="rule-15">Rule 15</h2>
|
|
||||||
</div>
|
|
||||||
<p>In order to register for the IOCCC, you <strong>MUST</strong> have a valid email address.</p>
|
|
||||||
<p>The <a href="../judges.html">judges</a> <strong>are NOT responsible for delays in email</strong>, so please plan
|
|
||||||
enough time accordingly.</p>
|
|
||||||
<p>See the
|
|
||||||
FAQ on “<a href="../quick-start.html#register">how to register</a>”
|
|
||||||
for details.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule16">
|
|
||||||
<h2 id="rule-16">Rule 16</h2>
|
|
||||||
</div>
|
|
||||||
<p>Submissions that are similar to previous winning IOCCC entries are discouraged.</p>
|
|
||||||
<p>You are allowed to resubmit to a later contest, a submission that
|
|
||||||
did not win the IOCCC. If you do so, then you would be well advised
|
|
||||||
to try and enhance and improve your submission.
|
|
||||||
If you do resubmit something that did not previously win, then
|
|
||||||
you are <strong>encouraged</strong> to mention this in your <code>remarks.md</code> file
|
|
||||||
as this <strong>sometimes</strong> helps.</p>
|
|
||||||
<p>Resubmitting an improved submission that did not become an
|
|
||||||
IOCCC winning entry is a <strong>time honored</strong> tradition of the IOCCC.
|
|
||||||
There are some IOCCC winning entries that were submitted to multiple contests
|
|
||||||
before they were improved enough to “climb over” (as the expression
|
|
||||||
goes) all the other submissions for a given contest.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule17">
|
|
||||||
<h2 id="rule-17">Rule 17</h2>
|
|
||||||
</div>
|
|
||||||
<p>Your submission must be in the form of a <strong>xz compressed tarball</strong> that
|
|
||||||
the <strong>current released version</strong> of the <code>mkiocccentry(1)</code> tool would generate.
|
|
||||||
The files, directories, and paths <strong>MUST</strong> conform to the limits imposed
|
|
||||||
by <code>mkiocccentry(1)</code> including but <strong>NOT LIMITED</strong> to their names, count,
|
|
||||||
path length, directory tree depth and permissions.</p>
|
|
||||||
<p>Your <strong>xz compressed tarball</strong> must be larger than <strong>0</strong> bytes and no larger
|
|
||||||
than <strong>3999971</strong> bytes.</p>
|
|
||||||
<p>The sum of the byte lengths of all files, after the <strong>xz compressed tarball</strong> is untarred,
|
|
||||||
must <strong>NOT</strong> exceed <code>27651*1024</code> bytes.</p>
|
|
||||||
<p>Your <strong>xz compressed tarball</strong> submission <em>file</em> <strong>MUST</strong> pass the tests performed by
|
|
||||||
the current version of <code>txzchk(1)</code>.</p>
|
|
||||||
<p>Your <strong>xz compressed tarball</strong> submission <em>filename</em> <strong>MUST</strong> pass the tests
|
|
||||||
performed by the current version of <code>fnamchk(1)</code>.</p>
|
|
||||||
<p>When your <strong>xz compressed tarball</strong> submission file is untarred, the
|
|
||||||
resulting <em>directory</em> <strong>MUST</strong> pass the checks performed by the current version
|
|
||||||
of <code>chksubmit(1)</code>.</p>
|
|
||||||
<p>The resulting <code>prog.c</code> file <strong>MUST</strong> pass the <a href="#rule2">Rule 2</a> size checks performed by the current
|
|
||||||
version of <code>iocccsize(1)</code>.</p>
|
|
||||||
<p>The <code>.auth.json</code> and <code>.info.json</code> <strong>MUST</strong> be compatible with what the
|
|
||||||
current version of the <code>mkiocccentry(1)</code> tool would produce. They <strong>MUST
|
|
||||||
ALSO</strong> pass the tests performed by the current version of <code>chksubmit(1)</code>.</p>
|
|
||||||
<p>The required <code>Makefile</code> must <strong>NOT</strong> be empty.</p>
|
|
||||||
<p>The required <code>remarks.md</code> must <strong>NOT</strong> be empty.</p>
|
|
||||||
<p>You may <strong>NOT</strong> submit a tarball created by the <code>-d</code> or <code>-s seed</code> option of
|
|
||||||
<code>mkiocccentry(1)</code>.</p>
|
<code>mkiocccentry(1)</code>.</p>
|
||||||
<p class="leftbar">
|
<p>See <a href="rules.html#rule-4-files">Rule 4 Files</a>,
|
||||||
The maximum number of files your submission tarball may contain, not counting
|
and
|
||||||
the free files (<code>prog.c</code>, <code>remarks.md</code>, <code>Makefile</code>, <code>prog.alt.c</code>, <code>try.sh</code>,
|
<a href="rules.html#rule-5-purity">Rule 5 Purity</a>.</p>
|
||||||
<code>try.alt.sh</code> and the two files generated by <code>mkiocccentry</code>, <code>.info.json</code> and
|
<h2 id="rule-11-abuse">Rule 11 Abuse</h2>
|
||||||
<code>.auth.json</code>) is 31.
|
<p>Legal abuse of the rules is somewhat encouraged, but comes with risks.
|
||||||
</p>
|
A submission that, in the opinion of the Judges, violates the rules <strong>WILL
|
||||||
<p class="leftbar">
|
BE DISQUALIFIED</strong>. Submissions that plan to abuse the rules <strong>MUST</strong> justify
|
||||||
The maximum number of directories your submission may have is 13 and the maximum
|
why their rule abuse is legal (or interesting) in the <code>remarks.md</code> file.</p>
|
||||||
depth a path may have is 4.
|
<p>Submission packaging abuse will <strong>NOT</strong> be tolerated and for this reason
|
||||||
</p>
|
its recommended to use <code>mkiocccentry(1)</code>. During development you can
|
||||||
<p class="leftbar">
|
check your <code>prog.c</code> size limits using <code>iocccsize(1)</code>, e.g., <code>iocccsize -v1 prog.c</code>.
|
||||||
The maximum filename length (a component of a path) is 38 which means the
|
Overriding problems detected by any of the IOCCC tools
|
||||||
maximum length total of a path is 60 characters.
|
risks that the submission will be rejected.</p>
|
||||||
</p>
|
<p>If you do submit a rule abusing or violating submission, then consider
|
||||||
<p>See the
|
also submitting an alternate version in a different submission server
|
||||||
FAQ on “<a href="../faq.html#extra-files">what extra files are and how to include more</a>”
|
slot that does <strong>NOT</strong> violate the rules in case your rule abuse excuse
|
||||||
as well as the <a href="guidelines.html#extra-files">guidelines on extra files</a>
|
is rejected.</p>
|
||||||
for more details.</p>
|
<p><strong>IMPORTANT</strong>: If you do submit such an alternate non-rule abusing
|
||||||
<h3 id="tldr-rule-17---use-mkiocccentry1-to-form-your-submission">TL;DR Rule 17 - Use <code>mkiocccentry(1)</code> to form your submission</h3>
|
version, please indicate that in your <code>remarks.md</code> file of your non-rule
|
||||||
<p>Let the current version of the <code>mkiocccentry(1)</code> tool form your <strong>xz
|
abusing version so that the Judges don’t think you uploaded a duplicate
|
||||||
compressed tarball</strong> submission file.</p>
|
into a wrong slot by mistake.</p>
|
||||||
<h3 id="warning">Warning</h3>
|
<h2 id="rule-12-utf-8">Rule 12 UTF-8</h2>
|
||||||
<p>Using command line flags or input prompts to override checks and
|
<p>Use of UTF-8 is supported by <code>C89</code> standard and its updates and so too by the IOCCC.</p>
|
||||||
limits made by the above mentioned tools is <strong>NOT</strong> recommended
|
<h2 id="rule-13-newlines">Rule 13 Newlines</h2>
|
||||||
and may result in your submission being rejected by the <a href="https://submit.ioccc.org">IOCCC
|
<p>Any C source that fails to compile because lines contain carriage-returns
|
||||||
submit server</a> and/or the <a href="../judges.html">IOCCC Judges</a>.</p>
|
(CTRL+M, <code>\r</code>) in particular as part of DOS/Windows style newlines might
|
||||||
<p>See the
|
be rejected. Please do <strong>NOT</strong> put trailing CTRL+M in <code>prog.c</code>, <code>Makefile</code>,
|
||||||
FAQ on the “<a href="../faq.html#mkiocccentry">mkiocccentry toolkit</a>
|
or <code>remarks.md</code> files, but instead end lines with Unix newline (line-feed,
|
||||||
for how to obtain and use the above mentioned tools.</p>
|
CTRL+J, <code>\n</code>).</p>
|
||||||
<p><strong>IMPORTANT</strong>: See the
|
<p>You are permitted, in order to try and squeeze your <code>prog.c</code> under a
|
||||||
FAQ on “<a href="../faq.html#rule17">Rule 17</a>”
|
<a href="rules.html#rule-2a-gross-size">Rule 2a Gross Size</a> and/or
|
||||||
for very important details behind this rule.</p>
|
<a href="rules.html#rule-2b-net-size">Rule 2b Next Size</a>
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
limits, to <strong>NOT</strong> end source with a newline. If you
|
||||||
<div id="rule18">
|
need to do this, please document that in your <code>remarks.md</code> file and if
|
||||||
<h2 id="rule-18">Rule 18</h2>
|
your compiler complains about this, document this too and update your
|
||||||
</div>
|
<code>Makefile</code> to account for this.</p>
|
||||||
<p>The entirety of your submission must be submitted under the following license:</p>
|
<h2 id="rule-14-resubmit">Rule 14 Resubmit</h2>
|
||||||
<blockquote>
|
<p>Submissions that are substantially similar to previous winning IOCCC
|
||||||
<p><strong><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a></strong></p>
|
entries are discouraged.</p>
|
||||||
</blockquote>
|
<p>You are allowed to resubmit to a later contest, a submission that didn’t
|
||||||
<p>See also <a href="#rule7">Rule 7</a>.</p>
|
win the IOCCC. If you do so, then you would be well advised to try and
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
enhance and improve your submission. If you do resubmit something that
|
||||||
<div id="rule19">
|
didn’t previously win, then you are encouraged to mention this in your
|
||||||
<h2 id="rule-19">Rule 19</h2>
|
<code>remarks.md</code> file as this sometimes helps.</p>
|
||||||
</div>
|
<h2 id="rule-15-building">Rule 15 Building</h2>
|
||||||
<p>The <code>remarks.md</code> file, a required non-empty file, must be written in
|
<p>The <code>Makefile</code> <strong>MUST</strong> adhere to GNU Make file syntax. Its recommended
|
||||||
<a href="https://www.markdownguide.org/basic-syntax/">Markdown format</a>.</p>
|
that you copy and rename the <code>Makefile.example</code> as template. The primary
|
||||||
<p>We currently use <a href="https://pandoc.org">pandoc(1)</a> to automatically
|
target of the <code>Makefile</code> <strong>MUST</strong> be <code>prog</code> and the source file is <code>prog.c</code>.
|
||||||
convert markdown to HTML. Please try to avoid submitting an HTML file
|
The C compiler and preprocessor <strong>MUST</strong> be invoked using <code>${CC}</code> and <code>${CPP}</code>
|
||||||
translation to any markdown file. If you <strong>MUST</strong> submit such an HTML
|
macros respectively.</p>
|
||||||
translation, <strong>PLEASE</strong> mention this in your <code>remarks.md</code> file.</p>
|
<p>The <code>clobber</code> target should clean and restore the submission directory
|
||||||
<p>For any submission that wins the contest, we modify your <code>remarks.md</code> file and
|
tree to its original state, such as removing temporary files or any
|
||||||
rename it as <code>README.md</code> and then use <a href="https://pandoc.org">pandoc(1)</a>
|
modified data files. Don’t assume that <code>git</code> tool chain is installed,
|
||||||
to generate the <code>index.html</code> file in the top level directory of your submission.
|
i.e., do <strong>NOT</strong> expect <code>git clean -f</code> to work.</p>
|
||||||
For this reason, <code>mkiocccentry(1)</code> will <strong>NOT</strong> package such files (in the top
|
<p>The <code>Makefile</code> <strong>MUST</strong> use a syntax that is compatible with
|
||||||
level submission directory) and both <code>txzchk(1)</code> and <code>chksubmit(1)</code> will flag
|
<code>bash(1)</code> and GNU <code>make(1)</code>. You are encouraged to use <code>SHELL= bash</code> in your <code>Makefile</code>; please add a space between the <code>=</code> and
|
||||||
them as errors (in the top level submission directory) as well, so please do
|
the value. Assume that commands commonly found in
|
||||||
<strong>NOT</strong> try and slip these files in the top level directory where your
|
<a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX Specification</a>
|
||||||
<code>remarks.md</code> resides.</p>
|
environments and systems are available in the search <code>$PATH</code>.
|
||||||
<p>See the <a href="https://www.markdownguide.org/cheat-sheet/">Markdown Cheat Sheet</a>
|
Avoid command options that aren’t part of
|
||||||
for a handy quick reference to the Markdown syntax.</p>
|
<a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">SUS</a>,
|
||||||
<p>See the <a href="https://www.markdownguide.org">Markdown guide</a>
|
such as GNU long name options <code>--example</code> or extensions like <code>grep -P</code>.</p>
|
||||||
for free and open-source reference guide that explains
|
<p>Do <strong>NOT</strong> assume that <code>.</code> (current directory) is in the <code>$PATH</code> environment variable.</p>
|
||||||
how to use markdown.</p>
|
<p>See <a href="rules.html#rule-4-files">Rule 4 Files</a>.</p>
|
||||||
<p>See also the <a href="http://daringfireball.net/projects/markdown/basics">Daring Fireball Markdown:
|
<h2 id="rule-16-anonymous">Rule 16 Anonymous</h2>
|
||||||
Basics</a> for
|
<p>Your source code, data files, remarks, and program output <strong>MUST NOT</strong>
|
||||||
information on the markdown format.</p>
|
identify the author(s) of your code (unless you are <strong>Peter Honeyman</strong>
|
||||||
<p><strong>PLEASE</strong> see our
|
or pretending to be <strong>Peter Honeyman</strong>). In order to be impartial the
|
||||||
FAQ on “<a href="../faq.html#remarks_md">remarks.md</a>”
|
<a href="https://www.ioccc.org/judges.html">Judges</a> do <strong>NOT</strong> know who is submitting
|
||||||
<strong>AND</strong> the
|
entries to the IOCCC until final selection is made. Even if you are
|
||||||
<a href="../markdown.html">IOCCC markdown guidelines</a> for additional markdown guidance.</p>
|
a past winner, you <strong>MUST NOT</strong> reveal your identity deliberately or by
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
accident anywhere in your submission. <strong><em>Failure to comply may result
|
||||||
<div id="rule20">
|
in the submission being disqualified.</em></strong></p>
|
||||||
<h2 id="rule-20">Rule 20</h2>
|
<h2 id="rule-17-packaging">Rule 17 Packaging</h2>
|
||||||
</div>
|
<p>The files, directories, and paths <strong>MUST</strong> conform to the limits imposed by
|
||||||
<p>The how to build instructions must be in GNU Makefile format. See the
|
<code>mkiocccentry(1)</code>, including but <strong>NOT</strong> limited, to their names, count, path
|
||||||
FAQ about “<a href="../faq.html#make_compatibility">make(1) compatibility the IOCCC supports</a>
|
length, directory tree depth, and permissions.</p>
|
||||||
for more details.</p>
|
<p>The submission tree may have at most <strong>13</strong> directories and maximum
|
||||||
<p>You are <strong>ENCOURAGED</strong> to use the
|
directory depths of <strong>4</strong>. The maximum number of files, excluding
|
||||||
Makefile example, renamed as <code>Makefile</code> of course, for help in constructing your
|
<code>prog.c</code>, <code>remarks.md</code>, <code>Makefile</code>, <code>prog.alt.c</code>, <code>try.sh</code>, <code>try.alt.sh</code>,
|
||||||
<code>Makefile</code>. See the <a href="guidelines.html#makefile">Makefile section</a> in the
|
<code>.info.json</code> and <code>.auth.json</code> is <strong>31</strong>. And the maximum file-path
|
||||||
guidelines for more details.</p>
|
component is <strong>38</strong> and maximum path length is <strong>60</strong>.</p>
|
||||||
<p>The target of the <code>Makefile</code> must be called <code>prog</code>. The original
|
<p>The submission <strong>MUST</strong> be a <code>.txz</code> compressed tarball as constructed by
|
||||||
C source file must be called <code>prog.c</code>.</p>
|
<code>mkiocccentry(1)</code>, which <strong>MUST</strong> be within <strong>[1..3999971]</strong> bytes in size.
|
||||||
<p>To invoke the C compiler, use <code>${CC}</code>. To invoke the C preprocessor use
|
The sum of all file lengths, after unpacking from the tarball, <strong>MUST</strong> be
|
||||||
<code>${CPP}</code>.</p>
|
less than <code>27651*1024</code> bytes.</p>
|
||||||
<p>Do <strong>NOT</strong> assume that <code>.</code> (the current directory) is in the <code>$PATH</code>.</p>
|
<p>The tarball file <strong>MUST</strong> pass all <code>txzchk(1)</code> checks and the tarball
|
||||||
<p>When <code>make clobber</code> is invoked, we request that your submission directory be restored
|
filename <strong>MUST</strong> pass all <code>fnamchk(1)</code> checks. You may <strong>NOT</strong> submit a tarball
|
||||||
to its original submission state. For example, any temporary files
|
created by the <code>-d</code> or <code>-s</code> seed options of <code>mkiocccentry(1)</code>.</p>
|
||||||
created during the build process, or during execution should be
|
<p>The unpacked submission directory <strong>MUST</strong> pass the checks performed by the
|
||||||
removed by the <code>clobber</code> rule.</p>
|
current version of <code>chksubmit(1)</code>.</p>
|
||||||
<p>Your <code>Makefile</code> <strong>MUST</strong> use a syntax that is compatible with <code>bash(1)</code>
|
<p>The <code>prog.c</code> file <strong>MUST</strong> pass the <a href="rules.html#rule-2-size">Rule 2 Size</a>
|
||||||
<strong>AND</strong> GNU <code>make(1)</code>. You are <strong>ENCOURAGED</strong> to use <code>SHELL= bash</code> in
|
size checks performed by <code>iocccsize(1)</code>. The <code>Makefile</code> and <code>remarks.md</code> files cannot
|
||||||
your <code>Makefile</code>. Please add a space between the <code>=</code> and the value.</p>
|
be empty. The <code>.auth.json</code> and <code>.info.json</code> files <strong>MUST</strong> be compatible with what
|
||||||
<p>Assume that commands commonly found in <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX
|
<code>mkiocccentry(1)</code> generates.</p>
|
||||||
Specification</a>
|
<p>Submissions that package using older versions of the mkiocccentry
|
||||||
environments and systems that conform to the <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX
|
toolkit to are <strong>HIGHLY LIKELY</strong> to be <strong>REJECTED</strong>! Be sure
|
||||||
Specification</a> are
|
that you are using the latest tools from the
|
||||||
available in the <code>$PATH</code> search path.</p>
|
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
GitHub repo.</p>
|
||||||
<div id="rule21">
|
<p>In summary it is best to use <code>mkioccentry(1)</code> to package your submission, rather than roll-it-by-hand.</p>
|
||||||
<h2 id="rule-21">Rule 21</h2>
|
<p>See <a href="rules.html#rule-4-files">Rule 4 Files</a>.</p>
|
||||||
</div>
|
<h2 id="rule-18-license">Rule 18 License</h2>
|
||||||
<p>Your submission <strong>MUST NOT</strong> create or modify files <strong>ABOVE</strong> the current directory
|
<p>The entirety of your submission <strong>MUST</strong> be submitted under the following license:</p>
|
||||||
<em>with the exception of</em> the <code>/tmp</code> and the <code>/var/tmp</code> directories. Your submission
|
<p><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a></p>
|
||||||
<strong>MAY</strong> create subdirectories <strong>below</strong> the submission directory, or in <code>/tmp</code>,
|
<p>See <a href="rules.html#rule-7-original-work">Rule 7 Original Work</a>.</p>
|
||||||
or in <code>/var/tmp</code> provided that <code>.</code> is <strong>NOT</strong> the first byte in any
|
<h2 id="rule-19-prime">Rule 19 Prime</h2>
|
||||||
directory name or filename you create.</p>
|
<p>This 19th rule, while prime, is reserved for future abuse. :-)
|
||||||
<p>If you do create files and directories, <strong>PLEASE</strong> be sure that
|
Additional rules, both humorous and otherwise, may be added
|
||||||
the <code>clobber</code> rule of your <code>Makefile</code> removes such created files
|
below this rule in future contests.</p>
|
||||||
in order to restore your submission to its original submission state.</p>
|
<p>See <a href="rules.html#rule-6-free">Rule 6 Free</a>.</p>
|
||||||
<p>See also <a href="#rule5">Rule 5</a>.</p>
|
<h2 id="further-reading">Further Reading</h2>
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
<p>Please read the <a href="guidelines.html">Guidelines</a> next for further
|
||||||
<div id="rule22">
|
commentary on The Rules.</p>
|
||||||
<h2 id="rule-22">Rule 22</h2>
|
<p>See also the <a href="../faq.html">FAQ</a>.</p>
|
||||||
</div>
|
<p>Consider joining our Discord
|
||||||
<p>Catch 22:</p>
|
server for discussions about The Rules, questions for the Judges, and
|
||||||
<p>Your source code, data files, remarks and program output <strong>MUST NOT</strong>
|
<code>C</code> in general.</p>
|
||||||
identify the authors of your code. The <a href="../judges.html">judges</a> <strong>STRONGLY PREFER</strong> to
|
<p>Leonid A. Broukhis
|
||||||
<strong>NOT</strong> know who is submitting entries to the IOCCC.</p>
|
chongo (Landon Curt Noll) /\cc/\
|
||||||
<p>Even if you are a previous IOCCC winner, catch 22 still applies.</p>
|
|
||||||
<p>Identifying the author(s) of your submission in an obvious way anywhere
|
|
||||||
within your code, data, remarks or program output (unless you are
|
|
||||||
<strong>Peter Honeyman</strong> or pretending to be <strong>Peter Honeyman</strong>) will be grounds
|
|
||||||
for disqualification of your submission.</p>
|
|
||||||
<p>And don’t assume that we won’t be able to determine your name even if it’s not
|
|
||||||
obvious, because you stand a significant chance of violating this rule if you
|
|
||||||
do.</p>
|
|
||||||
<p>Yes, Virginia, <strong>WE REALLY MEAN IT!</strong></p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule23">
|
|
||||||
<h2 id="rule-23">Rule 23</h2>
|
|
||||||
</div>
|
|
||||||
<p>This prime rule number is reserved for future use.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule24">
|
|
||||||
<h2 id="rule-24">Rule 24</h2>
|
|
||||||
</div>
|
|
||||||
<p>Even though 24 is not prime, you should still see <a href="#rule23">Rule 23</a>.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule25">
|
|
||||||
<h2 id="rule-25">Rule 25</h2>
|
|
||||||
</div>
|
|
||||||
<p class="leftbar">
|
|
||||||
The <a href="rules.html">IOCCC rule set</a> needs more than <code>5^2</code> rules: see <a href="#rule26">Rule 26</a>.
|
|
||||||
</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule26">
|
|
||||||
<h2 id="rule-26">Rule 26</h2>
|
|
||||||
</div>
|
|
||||||
<blockquote>
|
|
||||||
<p>“The quick brown fox jumps over the lazy dog”.<br>
|
|
||||||
“Pack my box with five dozen liquor jugs.”<br>
|
|
||||||
“How vexingly quick daft zebras jump!”<br>
|
|
||||||
“Sphinx of black quartz, judge my vow.”<br>
|
|
||||||
“Waltz, bad nymph, for quick jigs vex.”<br>
|
|
||||||
“Mr. Jock, TV quiz PhD, bags few lynx.”<br>
|
|
||||||
“abcdefg, hijklmnop, qrstu&v, wxy&z.”</p>
|
|
||||||
</blockquote>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule27">
|
|
||||||
<h2 id="rule-27">Rule 27</h2>
|
|
||||||
</div>
|
|
||||||
<p>Unless otherwise needed, <a href="#rule27">Rule 27</a> is reserved for something cubic. :-)</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="rule28">
|
|
||||||
<h2 id="rule-28">Rule 28</h2>
|
|
||||||
</div>
|
|
||||||
<p><a href="#rule28">Rule 28</a> is a perfect way to end the list of <a href="rules.html">IOCCC rules</a>
|
|
||||||
as we do <strong>NOT</strong> plan to have <strong>496</strong> rules. :-)</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="more-information">
|
|
||||||
<div id="information">
|
|
||||||
<h1 id="for-more-information">FOR MORE INFORMATION:</h1>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<p>For questions or comments about the contest, see <a href="../contact.html">Contacting the IOCCC</a>.</p>
|
|
||||||
<p><strong>Be SURE</strong> to review the <a href="index.html">IOCCC Rules and Guidelines</a> as they
|
|
||||||
may (and <strong>often do</strong>) change from year to year.</p>
|
|
||||||
<p><strong>PLEASE</strong> be <strong>SURE</strong> you have the <strong>current</strong> <a href="rules.html">IOCCC rules</a> and
|
|
||||||
<a href="guidelines.html">IOCCC guidelines</a> prior to submitting to the contest.</p>
|
|
||||||
<p>See the <a href="../news.html">Official IOCCC website news</a> for additional information.</p>
|
|
||||||
<p>For the updates and breaking IOCCC news, you are encouraged to follow
|
|
||||||
the <a href="https://fosstodon.org/@ioccc">IOCCC on Mastodon</a> account. See our
|
|
||||||
FAQ on “<a href="../faq.html#try_mastodon">Mastodon</a>”
|
|
||||||
for more information. Please do note that unless
|
|
||||||
you are mentioned by us you will <strong>NOT</strong> get a notification from the app <em>so you
|
|
||||||
should refresh the page <strong>even if you do follow us</strong></em>.</p>
|
|
||||||
<p>Check out the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a> in general.</p>
|
|
||||||
<p>Consider joining the IOCCC discord community via this link:
|
|
||||||
<a href="https://discord.gg/Wa42Qujwnw">https://discord.gg/Wa42Qujwnw</a></p>
|
|
||||||
<p>See the
|
|
||||||
FAQ on “<a href="../faq.html#mkiocccentry">obtaining, compiling, installing and using the mkiocccentry tools</a>”
|
|
||||||
and the
|
|
||||||
FAQ on “<a href="../quick-start.html#enter">how to enter the IOCCC</a>”
|
|
||||||
as that FAQ has important details on
|
|
||||||
<a href="../next/register.html">how to register</a>
|
|
||||||
as well as
|
|
||||||
<a href="../next/submit.html">how to upload your submission</a> for the IOCCC.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<p><strong>Leonid A. Broukhis</strong><br>
|
|
||||||
<strong>chongo (Landon Curt Noll) <code>/\cc/\</code></strong></p>
|
|
||||||
<hr style="width:10%;text-align:left;margin-left:0">
|
|
||||||
<p>Jump to: <a href="#">top</a>
|
|
||||||
<!-- AFTER: last line of markdown file: next/rules.md --></p>
|
<!-- AFTER: last line of markdown file: next/rules.md --></p>
|
||||||
|
|
||||||
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||||||
|
|||||||
+326
-841
File diff suppressed because it is too large.
Load diff
+7
-6
@@ -517,8 +517,8 @@ the file selection step.</p>
|
|||||||
<ul>
|
<ul>
|
||||||
<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 <a href="rules.html#rule17">Rule
|
<code>mkiocccentry(1)</code> which is <strong>HIGHLY</strong> recommended so that you do not break
|
||||||
17</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>
|
||||||
@@ -575,8 +575,8 @@ To see any status updates, you should logout and log back in later.</p>
|
|||||||
</blockquote>
|
</blockquote>
|
||||||
<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 <a href="rules.html#rule17">Rule
|
this your submission <strong>WILL BE REJECTED</strong> for violating
|
||||||
17</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>
|
||||||
@@ -585,8 +585,9 @@ this your submission <strong>WILL BE REJECTED</strong> for violating <a href="ru
|
|||||||
rules or that everything is OK once the tarball is extracted; it simply means
|
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 <a href="rules.html#rule17">Rule 17</a>, even if the
|
submission rejected for violating
|
||||||
tests passed.</p>
|
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>,
|
||||||
|
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>
|
||||||
<p>For details on <code>chksubmit</code>, see the
|
<p>For details on <code>chksubmit</code>, see the
|
||||||
|
|||||||
+7
-6
@@ -86,8 +86,8 @@ 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 [Rule
|
`mkiocccentry(1)` which is **HIGHLY** recommended so that you do not break
|
||||||
17](rules.html#rule17)!
|
[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.
|
||||||
@@ -157,8 +157,8 @@ 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 [Rule
|
this your submission **WILL BE REJECTED** for violating
|
||||||
17](rules.html#rule17)!
|
[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:
|
||||||
|
|
||||||
@@ -168,8 +168,9 @@ If the format test went well, then you will see:
|
|||||||
rules or that everything is OK once the tarball is extracted; it simply means
|
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 [Rule 17](rules.html#rule17), even if the
|
submission rejected for violating
|
||||||
tests passed.
|
[Rule 17 Packaging](rules.html#rule-17-packaging),
|
||||||
|
even if the tests passed.
|
||||||
|
|
||||||
For details on `txzchk`, see the
|
For details on `txzchk`, see the
|
||||||
FAQ on "[txzchk](../faq.html#txzchk)".
|
FAQ on "[txzchk](../faq.html#txzchk)".
|
||||||
|
|||||||
+7
-4
@@ -565,12 +565,14 @@ for more info.</p></li>
|
|||||||
</ul>
|
</ul>
|
||||||
<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 <a href="next/rules.html#rule2">Rule 2</a>, or
|
submission, especially if it identifies a
|
||||||
any other <a href="next/rules.html">rule</a>, related problem, you are <strong>strongly</strong> encouraged to revise and
|
<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
|
||||||
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 <a href="next/rules.html#rule17">Rule 17</a>!</p>
|
<p>See also
|
||||||
|
<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
|
||||||
@@ -578,7 +580,8 @@ tools from outside the repo directory, you will have to use the options to the
|
|||||||
tools to set the path to the required tools.</p>
|
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 <a href="next/rules.html#rule17">Rule 17</a>.
|
the latest version so you do not violate
|
||||||
|
<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
|
||||||
|
|||||||
+7
-4
@@ -161,14 +161,16 @@ Three files are required to exist in `topdir`:
|
|||||||
**NOTE**: Please see our [IOCCC markdown guide](markdown.html) for **important information** on using markdown in the IOCCC.
|
**NOTE**: Please see our [IOCCC markdown guide](markdown.html) for **important information** on using markdown in the IOCCC.
|
||||||
|
|
||||||
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 [Rule 2](next/rules.html#rule2), or
|
submission, especially if it identifies a
|
||||||
any other [rule](next/rules.html), related problem, you are **strongly** encouraged to revise and
|
[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
|
||||||
correct your entry and then re-run the `mkiocccentry` tool.
|
correct your entry and then re-run the `mkiocccentry` tool.
|
||||||
|
|
||||||
If you choose to risk violating [Rules](next/rules.html), be sure and explain your reason
|
If you choose to risk violating [Rules](next/rules.html), be sure and explain your reason
|
||||||
for doing so in your `remarks.md` file.
|
for doing so in your `remarks.md` file.
|
||||||
|
|
||||||
See also [Rule 17](next/rules.html#rule17)!
|
See also
|
||||||
|
[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
|
||||||
@@ -178,7 +180,8 @@ 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 [Rule 17](next/rules.html#rule17).
|
the latest version so you do not violate
|
||||||
|
[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
|
||||||
|
|||||||
+16
-16
@@ -14954,7 +14954,7 @@
|
|||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://www.ioccc.org/2024/index.html</loc>
|
<loc>https://www.ioccc.org/2024/index.html</loc>
|
||||||
<lastmod>2025-08-07T01:59:28+00:00</lastmod>
|
<lastmod>2025-11-20T06:14:33+00:00</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://www.ioccc.org/2024/kramer/2024_kramer.tar.bz2</loc>
|
<loc>https://www.ioccc.org/2024/kramer/2024_kramer.tar.bz2</loc>
|
||||||
@@ -15374,7 +15374,7 @@
|
|||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://www.ioccc.org/2024/README.md</loc>
|
<loc>https://www.ioccc.org/2024/README.md</loc>
|
||||||
<lastmod>2025-08-07T01:59:28+00:00</lastmod>
|
<lastmod>2025-11-20T04:29:28+00:00</lastmod>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>https://www.ioccc.org/2024/rules.html</loc>
|
<loc>https://www.ioccc.org/2024/rules.html</loc>
|
||||||
@@ -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-18T18:05:36+00:00</lastmod>
|
<lastmod>2025-11-20T06:07:42+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-18T18:05:36+00:00</lastmod>
|
<lastmod>2025-11-20T05:27:40+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-08-07T03:07:24+00:00</lastmod>
|
<lastmod>2025-11-20T06:14:39+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-08-07T03:07:11+00:00</lastmod>
|
<lastmod>2025-11-20T06:10:33+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-17T20:14:15+00:00</lastmod>
|
<lastmod>2025-11-20T06:07: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-17T20:14:15+00:00</lastmod>
|
<lastmod>2025-11-20T06:03:36+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-17T20:14:15+00:00</lastmod>
|
<lastmod>2025-11-20T06:38:36+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-17T20:14:15+00:00</lastmod>
|
<lastmod>2025-11-20T06:32:43+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-17T20:14:15+00:00</lastmod>
|
<lastmod>2025-11-20T06:07: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-17T20:14:15+00:00</lastmod>
|
<lastmod>2025-11-20T06:04:29+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-17T20:14:15+00:00</lastmod>
|
<lastmod>2025-11-20T06:07:47+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-17T20:14:15+00:00</lastmod>
|
<lastmod>2025-11-20T06:06:04+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-18T18:10:17+00:00</lastmod>
|
<lastmod>2025-11-20T06:38:54+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-08-07T03:07:20+00:00</lastmod>
|
<lastmod>2025-11-20T06:15:00+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
@@ -461,7 +461,7 @@
|
|||||||
"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-08-07T03:07:11+00:00",
|
"news_update" : "2025-11-20T06:10:33+00:00",
|
||||||
"status_update" : "2025-08-01T19:38:14+00:00"
|
"status_update" : "2025-08-01T19:38:14+00:00"
|
||||||
}</code></pre>
|
}</code></pre>
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -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-08-07T03:07:11+00:00",
|
"news_update" : "2025-11-20T06:10:33+00:00",
|
||||||
"status_update" : "2025-08-01T19:38:14+00:00"
|
"status_update" : "2025-08-01T19:38:14+00:00"
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user