Merge pull request #247 from xexyl/fixes
This commit is contained in:
6 files changed
+2098
-1667
No files matched your search
@@ -73,7 +73,9 @@ submitting to the IOCCC have become more adept in obfuscation and have
|
|||||||
become more skilled in the programming in the C language.
|
become more skilled in the programming in the C language.
|
||||||
|
|
||||||
|
|
||||||
|
<div id="rule2">
|
||||||
### Code size and Rule 2
|
### Code size and Rule 2
|
||||||
|
</div>
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
@@ -510,7 +510,9 @@ eclipsing the record of 15 winners!</p>
|
|||||||
people extra time to improve their submissions, we also believe that people
|
people extra time to improve their submissions, we also believe that people
|
||||||
submitting to the IOCCC have become more adept in obfuscation and have
|
submitting to the IOCCC have become more adept in obfuscation and have
|
||||||
become more skilled in the programming in the C language.</p>
|
become more skilled in the programming in the C language.</p>
|
||||||
|
<div id="rule2">
|
||||||
<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>
|
||||||
|
</div>
|
||||||
<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="rules.html#rule2">Rule 2</a> including a fair number of quality
|
<a href="rules.html#rule2">Rule 2</a> including a fair number of quality
|
||||||
|
|||||||
+753
-613
File diff suppressed because it is too large.
Load diff
+768
-615
File diff suppressed because it is too large.
Load diff
+281
-216
@@ -455,22 +455,23 @@
|
|||||||
<!-- START: this line starts content from: inc/rules.closed.hdr -->
|
<!-- START: this line starts content from: inc/rules.closed.hdr -->
|
||||||
<h1 id="the-ioccc-is-closed">The IOCCC is closed</h1>
|
<h1 id="the-ioccc-is-closed">The IOCCC is closed</h1>
|
||||||
<p>The IOCCC is <strong>NOT</strong> accepting new submissions at this time. See the
|
<p>The IOCCC is <strong>NOT</strong> accepting new submissions at this time. See the
|
||||||
<a href="../years.html">IOCCC winning entries page</a> for the entries that have won the
|
<a href="../years.html">IOCCC winning entries page</a> for the entries that have
|
||||||
IOCCC in the past.</p>
|
won the IOCCC in the past.</p>
|
||||||
<p>These rules are a <strong>TENTATIVE proposal</strong> for the next IOCCC
|
<p>These rules are a <strong>TENTATIVE proposal</strong> for the next IOCCC and are
|
||||||
and are <strong>likely be to be updated</strong> before the next IOCCC.</p>
|
<strong>likely be to be updated</strong> before the next IOCCC.</p>
|
||||||
<p>See our
|
<p>See our
|
||||||
FAQ on “<a href="../faq.html#feedback">rules, guidelines, tools feedback</a>”
|
FAQ on “<a href="../faq.html#feedback">rules, guidelines, tools feedback</a>”
|
||||||
as well as our
|
as well as our
|
||||||
FAQ on “<a href="../faq.html#question">about asking questions</a>”
|
FAQ on “<a href="../faq.html#question">about asking questions</a>”
|
||||||
about these rules. You might also find the FAQ in general useful, especially the
|
about these rules. You might also find the FAQ in general useful,
|
||||||
|
especially the
|
||||||
FAQ on “<a href="../quick-start.html#enter">how to enter the IOCCC</a>”.</p>
|
FAQ on “<a href="../quick-start.html#enter">how to enter the IOCCC</a>”.</p>
|
||||||
<p>Watch both <a href="../status.html">the IOCCC status page</a> and the
|
<p>Watch both <a href="../status.html">the IOCCC status page</a> and the <a href="https://fosstodon.org/@ioccc"><span class="citation" data-cites="IOCCC">@IOCCC</span>
|
||||||
<a href="https://fosstodon.org/@ioccc"><span class="citation" data-cites="IOCCC">@IOCCC</span> mastodon feed</a> for information about
|
mastodon feed</a> for information about
|
||||||
future IOCCC openings.</p>
|
future IOCCC openings.</p>
|
||||||
<p><strong>HINT to mastodon users</strong>: You may wish to refresh the <a href="https://fosstodon.org/@ioccc"><span class="citation" data-cites="IOCCC">@IOCCC</span>
|
<p><strong>HINT to mastodon users</strong>: You may wish to refresh the <a href="https://fosstodon.org/@ioccc"><span class="citation" data-cites="IOCCC">@IOCCC</span>
|
||||||
mastodon feed</a> page and/or mastodon
|
mastodon feed</a> page and/or mastodon app
|
||||||
app from time to time to view IOCCC mastodon updates.</p>
|
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">29th International Obfuscated C Code Contest Official Rules</h1>
|
<h1 id="th-international-obfuscated-c-code-contest-official-rules">29th International Obfuscated C Code Contest Official Rules</h1>
|
||||||
@@ -480,12 +481,14 @@ granted provided this copyright and notice are included in its entirety
|
|||||||
and remains unaltered. All other uses <strong>MUST</strong> receive prior permission in
|
and remains unaltered. All other uses <strong>MUST</strong> receive prior permission in
|
||||||
writing by <a href="../contact.html">contacting the judges</a>.</p>
|
writing by <a href="../contact.html">contacting the judges</a>.</p>
|
||||||
<h2 id="rules-version">Rules Version</h2>
|
<h2 id="rules-version">Rules Version</h2>
|
||||||
<p>These IOCCC Rules are version <strong>29.13 2025-12-01</strong>.</p>
|
<p>These IOCCC Rules are version <strong>29.14 2025-12-02</strong>.</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The <span style="font-size:28px;"><b>|</b></span> symbol indicates an <strong>change</strong> from the previous IOCCC.
|
The <span style="font-size:28px;"><b>|</b></span> symbol
|
||||||
|
indicates a <strong>change</strong> from the previous IOCCC.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Because the <strong>IOCCC29</strong> rules was a substantial rewrite, only <strong>important changes</strong> from <strong>IOCCC28</strong> have been marked.
|
Because the <strong>IOCCC29</strong> rules was a substantial rewrite, only
|
||||||
|
<strong>important changes</strong> from <strong>IOCCC28</strong> have been marked.
|
||||||
</p>
|
</p>
|
||||||
<p>Reminder: be SURE to read the <a href="guidelines.html">IOCCC guidelines</a>.</p>
|
<p>Reminder: be SURE to read the <a href="guidelines.html">IOCCC guidelines</a>.</p>
|
||||||
<div id="rule0">
|
<div id="rule0">
|
||||||
@@ -495,24 +498,30 @@ Because the <strong>IOCCC29</strong> rules was a substantial rewrite, only <stro
|
|||||||
This IOCCC runs from <code>2025-12-03 20:25:12.045045 UTC</code> to <code>2026-03-13 17:19:23.293137 UTC</code>.
|
This IOCCC runs from <code>2025-12-03 20:25:12.045045 UTC</code> to <code>2026-03-13 17:19:23.293137 UTC</code>.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
This contest will enter the <a href="../faq.html#pending">pending state</a> on <code>2025-12-03 20:25:12.045045 UTC</code>,
|
This contest will enter the <a href="../faq.html#pending">pending state</a> on
|
||||||
allowing people to <a href="register.html">register for the IOCCC</a>.
|
<code>2025-12-03 20:25:12.045045 UTC</code>, allowing people to <a href="register.html">register for the
|
||||||
|
IOCCC</a>.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
This contest will enter the <a href="../faq.html#open">open state</a> on <code>2025-12-15 18:21:24.273033 UTC</code>,
|
This contest will enter the <a href="../faq.html#open">open state</a> on
|
||||||
allowing people to <a href="submit.html">upload submissions</a>.
|
<code>2025-12-15 18:21:24.273033 UTC</code>, allowing people to <a href="submit.html">upload
|
||||||
|
submissions</a>.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
This contest will enter the <a href="../faq.html#judging">judging state</a> on <code>2026-03-13 17:19:23.293137 UTC</code>,
|
This contest will enter the <a href="../faq.html#judging">judging state</a> on
|
||||||
when people will no longer be allowed to upload submissions.
|
<code>2026-03-13 17:19:23.293137 UTC</code>, when people will no longer be allowed
|
||||||
|
to upload submissions.
|
||||||
</p>
|
</p>
|
||||||
<p>The above <strong>dates and times may change <em>AT ANY TIME</em></strong> until the <a href="../status.html">contest status</a> is <strong>open</strong>.</p>
|
<p>The above <strong>dates and times may change <em>AT ANY TIME</em></strong> until the
|
||||||
|
<a href="../status.html">contest status</a> is <strong>open</strong>.</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The above timestamps are in “<em>YYYY-MM-DD HH:MM:SS.micros UTC</em>” format.
|
The above timestamps are in “<em>YYYY-MM-DD HH:MM:SS.micros UTC</em>” format.
|
||||||
</p>
|
</p>
|
||||||
<p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to know</a>.</p>
|
<p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to
|
||||||
|
know</a>.</p>
|
||||||
<p>See
|
<p>See
|
||||||
FAQ on “<a href="../faq.html#feedback">How can I comment or make a suggestion on IOCCC rules, guidelines and tools?</a>”.</p>
|
FAQ on “<a href="../faq.html#feedback">How can I comment or make a suggestion on IOCCC rules,
|
||||||
|
guidelines and tools?</a>”.</p>
|
||||||
<div id="rule1">
|
<div id="rule1">
|
||||||
<div id="rule1-c">
|
<div id="rule1-c">
|
||||||
<h2 id="rule-1---c-program">Rule 1 - C program</h2>
|
<h2 id="rule-1---c-program">Rule 1 - C program</h2>
|
||||||
@@ -521,7 +530,8 @@ FAQ on “<a href="../faq.html#feedback">How can I comment or make a suggestion
|
|||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Your submission <strong>MUST</strong> be a C program.
|
Your submission <strong>MUST</strong> be a C program.
|
||||||
</p>
|
</p>
|
||||||
<p>See the <a href="guidelines.html#guideline1-c">Guidelines for Rule 1 - C program</a>.</p>
|
<p>See the <a href="guidelines.html#guideline1-c">Guidelines for Rule 1 - C
|
||||||
|
program</a>.</p>
|
||||||
<div id="rule2">
|
<div id="rule2">
|
||||||
<div id="rule2-size-restrictions">
|
<div id="rule2-size-restrictions">
|
||||||
<div id="rule2-size">
|
<div id="rule2-size">
|
||||||
@@ -529,13 +539,13 @@ Your submission <strong>MUST</strong> be a C program.
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p><code>Rule 2</code> requires that your submission satisfy <strong>BOTH</strong>
|
<p><code>Rule 2</code> requires that your submission satisfy <strong>BOTH</strong> <a href="rules.html#rule2a">Rule 2a
|
||||||
<a href="rules.html#rule2a">Rule 2a (Gross Size)</a>
|
(Gross Size)</a> and <a href="rules.html#rule2b">Rule 2b (Net
|
||||||
and
|
Size)</a>.</p>
|
||||||
<a href="rules.html#rule2b">Rule 2b (Net Size)</a>.
|
<p>During development this can be checked using <code>iocccsize(1)</code>:</p>
|
||||||
During development this can be checked using <code>iocccsize(1)</code>:</p>
|
|
||||||
<pre><code> iocccsize prog.c</code></pre>
|
<pre><code> iocccsize prog.c</code></pre>
|
||||||
<p>See the <a href="guidelines.html#guideline2-size">Guidelines for Rule 2 - Size restrictions</a>.</p>
|
<p>See the <a href="guidelines.html#guideline2-size">Guidelines for Rule 2 - Size
|
||||||
|
restrictions</a>.</p>
|
||||||
<div id="rule2a">
|
<div id="rule2a">
|
||||||
<div id="rule2a-gross-size">
|
<div id="rule2a-gross-size">
|
||||||
<h3 id="rule-2a---gross-size">Rule 2a - Gross Size</h3>
|
<h3 id="rule-2a---gross-size">Rule 2a - Gross Size</h3>
|
||||||
@@ -543,17 +553,15 @@ During development this can be checked using <code>iocccsize(1)</code>:</p>
|
|||||||
</div>
|
</div>
|
||||||
<p>The overall maximum size of your <code>prog.c</code> program source <strong>MUST NOT</strong>
|
<p>The overall maximum size of your <code>prog.c</code> program source <strong>MUST NOT</strong>
|
||||||
exceed <strong>4993</strong> bytes.</p>
|
exceed <strong>4993</strong> bytes.</p>
|
||||||
<p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to know</a>.</p>
|
<p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to
|
||||||
|
know</a>.</p>
|
||||||
<div id="rule2b">
|
<div id="rule2b">
|
||||||
<div id="rule2b-net-size">
|
<div id="rule2b-net-size">
|
||||||
<h3 id="rule-2b---net-size">Rule 2b - Net Size</h3>
|
<h3 id="rule-2b---net-size">Rule 2b - Net Size</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p>When the filename of your program source (i.e., <code>prog.c</code>) is given as a
|
<p>Check your source code using the latest official IOCCC size tool,
|
||||||
command line argument to the latest version of the official IOCCC size
|
<code>iocccsize(1)</code>. The value printed <strong>MUST NOT</strong> exceed <strong>2503</strong>.</p>
|
||||||
tool (hereby referred to as <code>iocccsize(1)</code>), the value printed <strong>MUST
|
|
||||||
NOT</strong> exceed <strong>2503</strong>.</p>
|
|
||||||
<p><strong>NOTE</strong>: <code>iocccsize</code> does <strong>NOT</strong> calculate the filename length.</p>
|
|
||||||
<p>See <a href="#rule17-mkiocccentry">Rule 17 - Use mkiocccentry</a>.</p>
|
<p>See <a href="#rule17-mkiocccentry">Rule 17 - Use mkiocccentry</a>.</p>
|
||||||
<div id="rule3">
|
<div id="rule3">
|
||||||
<div id="rule3-register">
|
<div id="rule3-register">
|
||||||
@@ -561,107 +569,120 @@ NOT</strong> exceed <strong>2503</strong>.</p>
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p>You <strong>MUST</strong> register, using a valid email address, in order to submit
|
<p>You <strong>MUST</strong> register, using a valid email address, in order to submit
|
||||||
to the IOCCC. You may register while the contest is <strong>pending</strong> or <strong>open</strong>.</p>
|
to the IOCCC. You may register while the contest is <strong>pending</strong> or
|
||||||
|
<strong>open</strong>.</p>
|
||||||
<p>A few days after registering, you’ll receive your UUID username and
|
<p>A few days after registering, you’ll receive your UUID username and
|
||||||
temporary password, which you <strong>MUST</strong> change within 14 days.</p>
|
temporary password, which you <strong>MUST</strong> change within 14 days.</p>
|
||||||
<p>See <a href="register.html">How to register for the IOCCC</a>.</p>
|
<p>See <a href="register.html">How to register for the IOCCC</a>.</p>
|
||||||
<p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to know</a>.</p>
|
<p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to
|
||||||
<p>See <a href="guidelines.html#guideline3-register">Guidelines for Rule 3 - Register for the IOCCC</a>.</p>
|
know</a>.</p>
|
||||||
|
<p>See <a href="guidelines.html#guideline3-register">Guidelines for Rule 3 - Register for the
|
||||||
|
IOCCC</a>.</p>
|
||||||
<div id="rule4">
|
<div id="rule4">
|
||||||
<div id="rule4-required-files">
|
<div id="rule4-required-files">
|
||||||
<h2 id="rule-4---required-files">Rule 4 - Required files</h2>
|
<h2 id="rule-4---required-files">Rule 4 - Required files</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Your submission <strong>MUST</strong> include at least these files: <code>Makefile</code>, <code>prog.c</code>,
|
Your submission <strong>MUST</strong> include at least these files: <code>Makefile</code>,
|
||||||
<code>remarks.md</code>,<code>.info.json</code>, and <code>.auth.json</code>, the latter two of which are
|
<code>prog.c</code>, <code>remarks.md</code>,<code>.info.json</code>, and <code>.auth.json</code>, the latter two
|
||||||
generated by <code>mkiocccentry(1)</code>. See <a href="#rule17-mkiocccentry">Rule 17 -
|
of which are generated by <code>mkiocccentry(1)</code>. See <a href="#rule17-mkiocccentry">Rule 17 - Use
|
||||||
Use mkiocccentry</a>.
|
mkiocccentry</a>.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
At a <strong>minimum</strong> the following requirements apply. Additional requirements
|
At a <strong>minimum</strong> the following requirements apply. Additional
|
||||||
may be imposed by <code>mkiocccentry(1)</code> updates that have yet to be listed
|
requirements may be imposed by <code>mkiocccentry(1)</code> updates that have yet
|
||||||
below:
|
to be listed below:
|
||||||
</p>
|
</p>
|
||||||
<p><span style="font-size:28px;"><b>|</b></span>
|
<p><span style="font-size:28px;"><b>|</b></span>
|
||||||
* <code>.info.json</code> and <code>.auth.json</code> <strong>MUST</strong> be generated by <code>mkiocccenty(1)</code>
|
* <code>.info.json</code> and <code>.auth.json</code> <strong>MUST</strong> be generated by
|
||||||
when packing a submission. When <code>chksubmit(1)</code> is run on the submission
|
<code>mkiocccenty(1)</code> when packing a submission. When <code>chksubmit(1)</code> is run
|
||||||
directory <strong>ALL</strong> tests must pass and if there is <strong>ANY</strong> problem with these
|
on the submission directory <strong>ALL</strong> tests must pass and if there is
|
||||||
JSON files or if either is missing it will fail. See <a href="#rule17-mkiocccentry">Rule 17 - use
|
<strong>ANY</strong> problem with these JSON files or if either is missing it will
|
||||||
mkiocccentry</a>.</p>
|
fail. See <a href="#rule17-mkiocccentry">Rule 17 - use mkiocccentry</a>.</p>
|
||||||
<p><span style="font-size:28px;"><b>|</b></span>
|
<p><span style="font-size:28px;"><b>|</b></span>
|
||||||
* The <code>Makefile</code>, <code>remarks.md</code>,<code>.info.json</code>, and <code>.auth.json</code> <strong>MUST</strong>
|
* The <code>Makefile</code>, <code>remarks.md</code>,<code>.info.json</code>, and <code>.auth.json</code> <strong>MUST</strong>
|
||||||
have a file size <strong>greater than 0</strong> and <strong>MUST</strong> have content. Note that
|
have a file size <strong>greater than 0</strong> and <strong>MUST</strong> have content. Note
|
||||||
<code>mkiocccentry(1)</code> will check for file <strong>size</strong> but will <strong>NOT</strong> check for
|
that <code>mkiocccentry(1)</code> will check for file <strong>size</strong> but will <strong>NOT</strong>
|
||||||
content.</p>
|
check for content.</p>
|
||||||
<p><span style="font-size:28px;"><b>|</b></span>
|
<p><span style="font-size:28px;"><b>|</b></span>
|
||||||
* Your submitted source code <strong>MUST</strong> be called <code>prog.c</code>. When the <code>Makefile</code>
|
* Your submitted source code <strong>MUST</strong> be called <code>prog.c</code>. When the
|
||||||
compiles your code, the executable (if applicable) <strong>MUST</strong> be called <code>prog</code>.
|
<code>Makefile</code> compiles your code, the executable (if applicable) <strong>MUST</strong>
|
||||||
The <code>Makefile</code> may compile your source code into other filenames as well, if you want.</p>
|
be called <code>prog</code>. The <code>Makefile</code> may compile your source code into
|
||||||
|
other filenames as well, if you want.</p>
|
||||||
<p><span style="font-size:28px;"><b>|</b></span>
|
<p><span style="font-size:28px;"><b>|</b></span>
|
||||||
* As <code>prog</code>, <code>prog.alt</code>, <code>prog.alt.o</code>, <code>prog.o</code> may be created by your
|
* As <code>prog</code>, <code>prog.alt</code>, <code>prog.alt.o</code>, <code>prog.o</code> may be created by your
|
||||||
<code>Makefile</code>, your submission <strong>MUST NOT</strong> include those files in your <strong>top</strong> directory.</p>
|
<code>Makefile</code>, your submission <strong>MUST NOT</strong> include those files in your
|
||||||
|
<strong>top</strong> directory.</p>
|
||||||
<p><span style="font-size:28px;"><b>|</b></span>
|
<p><span style="font-size:28px;"><b>|</b></span>
|
||||||
* Your submission may <strong>NOT</strong> have any file that starts with <code>COPYING</code>,
|
* Your submission may <strong>NOT</strong> have any file that starts with <code>COPYING</code>,
|
||||||
<code>COPYRIGHT</code>, or <code>LICENSE</code> as those files are reserved by IOCCC.</p>
|
<code>COPYRIGHT</code>, or <code>LICENSE</code> as those files are reserved by IOCCC.</p>
|
||||||
<p><span style="font-size:28px;"><b>|</b></span>
|
<p><span style="font-size:28px;"><b>|</b></span>
|
||||||
* Your submission may <strong>NOT</strong> have in the <strong>top</strong> directory: <code>prog.orig.c</code>,
|
* Your submission may <strong>NOT</strong> have in the <strong>top</strong> directory:
|
||||||
<code>README.md</code> or <code>index.html</code> as those files are reserved by the IOCCC.</p>
|
<code>prog.orig.c</code>, <code>README.md</code> or <code>index.html</code> as those files are reserved
|
||||||
|
by the IOCCC.</p>
|
||||||
<p><span style="font-size:28px;"><b>|</b></span>
|
<p><span style="font-size:28px;"><b>|</b></span>
|
||||||
* Your submission may <strong>NOT</strong> have in the <strong>top</strong> directory any file
|
* Your submission may <strong>NOT</strong> have in the <strong>top</strong> directory any file
|
||||||
that matches a file glob pattern form <code>[0-9][0-9][0-9][0-9]_*.tar.bz2</code>
|
that matches a file glob pattern form <code>[0-9][0-9][0-9][0-9]_*.tar.bz2</code>
|
||||||
as those files are reserved by IOCCC.</p>
|
as those files are reserved by IOCCC.</p>
|
||||||
<p><span style="font-size:28px;"><b>|</b></span>
|
<p><span style="font-size:28px;"><b>|</b></span>
|
||||||
* Your submission may <strong>ONLY</strong> contain files and directories. Other file
|
* Your submission may <strong>ONLY</strong> contain files and directories. Other
|
||||||
types such as symlinks, sockets etc. are <strong>NOT</strong> allowed.</p>
|
file types such as symlinks, sockets etc. are <strong>NOT</strong> allowed.</p>
|
||||||
<p><span style="font-size:28px;"><b>|</b></span>
|
<p><span style="font-size:28px;"><b>|</b></span>
|
||||||
* <strong>All</strong> directories <strong>MUST</strong> have permission mode of <strong>0755</strong>. All files
|
* <strong>All</strong> directories <strong>MUST</strong> have permission mode of <strong>0755</strong>. All
|
||||||
<strong>MUST</strong> have the file mode of <strong>0444</strong>, EXCEPT for files that
|
files <strong>MUST</strong> have the file mode of <strong>0444</strong>, EXCEPT for files that
|
||||||
end in <code>.sh</code> which must have a mode of <strong>0555</strong>.</p>
|
end in <code>.sh</code> which must have a mode of <strong>0555</strong>.</p>
|
||||||
<p><span style="font-size:28px;"><b>|</b></span>
|
<p><span style="font-size:28px;"><b>|</b></span>
|
||||||
* All files that end in <code>.md</code> <strong>MUST</strong> be in markdown format.</p>
|
* All files that end in <code>.md</code> <strong>MUST</strong> be in markdown format.</p>
|
||||||
<p><span style="font-size:28px;"><b>|</b></span>
|
<p><span style="font-size:28px;"><b>|</b></span>
|
||||||
* All filenames are treated as case insensitive. For example, <code>REMARKS.MD</code>,
|
* All filenames are treated as case insensitive. For example,
|
||||||
and <code>Remarks.md</code>, and <code>remarks.md</code> are considered by <code>mkiocccenty(1)</code>
|
<code>REMARKS.MD</code>, and <code>Remarks.md</code>, and <code>remarks.md</code> are considered by
|
||||||
to be the <strong>SAME</strong> file. When preparing a submission on a case
|
<code>mkiocccenty(1)</code> to be the <strong>SAME</strong> file. When preparing a submission
|
||||||
sensitive filesystem, ensure that the submission will work on
|
on a case sensitive filesystem, ensure that the submission will work on
|
||||||
a case insensitive filesystem.</p>
|
a case insensitive filesystem.</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
<strong>NOTE</strong>: by ‘top directory’ we mean the directory with <code>prog.c</code>, <code>Makefile</code>,
|
<strong>NOTE</strong>: by ‘top directory’ we mean the directory with <code>prog.c</code>,
|
||||||
<code>remarks.md</code> and the <code>mkiocccentry(1)</code> generated files <code>.auth.json</code> and
|
<code>Makefile</code>, <code>remarks.md</code> and the <code>mkiocccentry(1)</code> generated files
|
||||||
<code>.info.json</code> and <strong>NOT</strong> the <code>topdir</code> arg to <code>mkiocccentry(1)</code>.
|
<code>.auth.json</code> and <code>.info.json</code> and <strong>NOT</strong> the <code>topdir</code> arg to
|
||||||
|
<code>mkiocccentry(1)</code>.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
<strong>NOTE</strong>: <code>mkiocccentry(1)</code> will reject any directory which has prohibited files.
|
<strong>NOTE</strong>: <code>mkiocccentry(1)</code> will reject any directory which has
|
||||||
|
prohibited files.
|
||||||
</p>
|
</p>
|
||||||
<p>The <code>remarks.md</code> and <code>Makefile</code> are explained in more detail in the Guidelines.</p>
|
<p>The <code>remarks.md</code> and <code>Makefile</code> are explained in more detail in the
|
||||||
|
<a href="guidelines.html">Guidelines</a>.</p>
|
||||||
<p>See <a href="../markdown.html">IOCCC markdown guidelines</a>.</p>
|
<p>See <a href="../markdown.html">IOCCC markdown guidelines</a>.</p>
|
||||||
<p>See <a href="rules.html#rule17-mkiocccentry">Rule 17 - Use mkiocccentry</a>.</p>
|
<p>See <a href="rules.html#rule17-mkiocccentry">Rule 17 - Use mkiocccentry</a>.</p>
|
||||||
<p>See the
|
<p>See the
|
||||||
FAQ on “<a href="../faq.html#file_perms">What permissions may my files be and what if I need different permissions?</a>”.</p>
|
FAQ on “<a href="../faq.html#file_perms">What permissions may my files be and what if I need different
|
||||||
|
permissions?</a>”.</p>
|
||||||
<p>See the
|
<p>See the
|
||||||
FAQ on “<a href="../faq.html#makefile_details">What are the detailed recommendations for a submission Makefile?</a>”.</p>
|
FAQ on “<a href="../faq.html#makefile_details">What are the detailed recommendations for a submission
|
||||||
<p>See the <a href="guidelines.html#mkiocccentry_toolkit">Guidelines on the mkiocccentry toolkit</a>.</p>
|
Makefile?</a>”.</p>
|
||||||
|
<p>See the <a href="guidelines.html#mkiocccentry_toolkit">Guidelines on the mkiocccentry
|
||||||
|
toolkit</a>.</p>
|
||||||
<div id="rule5">
|
<div id="rule5">
|
||||||
<div id="rule5-modifying-files">
|
<div id="rule5-modifying-files">
|
||||||
<h2 id="rule-5---do-not-modify-submitted-files-or-filenames-or-parent-directories">Rule 5 - Do NOT modify submitted files or filenames or parent directories</h2>
|
<h2 id="rule-5---do-not-modify-submitted-files-filenames-or-parent-directories">Rule 5 - Do NOT modify submitted files, filenames or parent directories</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p>Your submission <strong>MUST NOT</strong> modify the filenames or content of any of your
|
<p>Your submission <strong>MUST NOT</strong> modify the filenames or content of any of
|
||||||
original submission, such as <code>prog.c</code>, <code>Makefile</code>, or <strong>ANY</strong> other supplied
|
your original submission, such as <code>prog.c</code>, <code>Makefile</code>, or <strong>ANY</strong>
|
||||||
files. To modify files, your program can make a copy or you can use the
|
other supplied files. To modify files, your program can make a copy or
|
||||||
<code>Makefile</code> to setup working copies. Any working copies <strong>MUST</strong> be cleaned up
|
you can use the <code>Makefile</code> to setup working copies. Any working copies
|
||||||
by the <code>Makefile</code> <code>clobber</code> target, so as to restore the directory to its
|
<strong>MUST</strong> be cleaned up by the <code>Makefile</code> <code>clobber</code> target, so as to
|
||||||
original state.</p>
|
restore the directory to its original state.</p>
|
||||||
<p>Your submission <strong>MUST NOT</strong> create or modify directories and files
|
<p>With the exception of the <code>/tmp</code> and the <code>/var/tmp</code> directories,
|
||||||
ABOVE the current directory (with the exception of the <code>/tmp</code> and the <code>/var/tmp</code>
|
assuming the directory name or filename does <strong>NOT</strong> start with a <code>.</code>
|
||||||
directories and as long as the directory name or filename does <strong>NOT</strong> start
|
(dot), your submission <strong>MUST NOT</strong> create or modify directories and
|
||||||
with a <code>.</code> (dot)).</p>
|
files ABOVE the current directory.</p>
|
||||||
<p>The <code>Makefile</code> <code>clobber</code> target <strong>MUST</strong> restore your submission to its
|
<p>The <code>Makefile</code> <code>clobber</code> target <strong>MUST</strong> restore your submission to its
|
||||||
original form, including the removal of any created files and directories.</p>
|
original form, including the removal of any created files and
|
||||||
|
directories.</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Your code should be able to run under a
|
Your code should be able to run under a <a href="https://pubs.opengroup.org/onlinepubs/9799919799/">SUS
|
||||||
<a href="https://pubs.opengroup.org/onlinepubs/9799919799/">SUS environment</a>.
|
environment</a>.
|
||||||
</p>
|
</p>
|
||||||
<div id="rule6">
|
<div id="rule6">
|
||||||
<div id="rule6-free-rule">
|
<div id="rule6-free-rule">
|
||||||
@@ -679,72 +700,88 @@ Your code should be able to run under a
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
You, the author(s), <strong>MUST</strong> own the contents of your submission, <strong>OR</strong>, IF you
|
You, the author(s), <strong>MUST</strong> own the contents of your submission,
|
||||||
do <strong>NOT</strong> own the work, then you <strong>MUST</strong> have permission from the original
|
<strong>OR</strong>, IF you do <strong>NOT</strong> own the work, then you <strong>MUST</strong> have
|
||||||
owner(s) to its use. If you submit <strong>ANY</strong> content that is owned by others, you
|
permission from the original owner(s) to its use. If you submit
|
||||||
<strong>MUST</strong> detail that ownership, i.e., who owns what, and document the permission
|
<strong>ANY</strong> content that is owned by others, you <strong>MUST</strong> detail that
|
||||||
you obtained from them in your <code>remarks.md</code> file.
|
ownership, i.e., who owns what, and document the permission you
|
||||||
|
obtained from them in your <code>remarks.md</code> file.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
You are permitted to use tools to write your code.
|
You are permitted to use tools to write your code.
|
||||||
</p>
|
</p>
|
||||||
<p>See <a href="rules.html#rule16-anonymous-judging">Rule 16 - Anonymous Judging</a>,
|
<p>See <a href="rules.html#rule16-anonymous-judging">Rule 16 - Anonymous Judging</a>,
|
||||||
and
|
and
|
||||||
<a href="guidelines.html#guideline7-original">Guidelines for Rule 7 - Original Work</a>.</p>
|
<a href="guidelines.html#guideline7-original">Guidelines for Rule 7 - Original
|
||||||
|
Work</a>.</p>
|
||||||
<div id="rule8">
|
<div id="rule8">
|
||||||
<div id="rule8-submitting-requirements">
|
<div id="rule8-submitting-requirements">
|
||||||
<h2 id="rule-8---submitting-requirements">Rule 8 - Submitting requirements</h2>
|
<h2 id="rule-8---submitting-requirements">Rule 8 - Submitting requirements</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p>The submit server will accept submissions <strong>ONLY</strong> from those who have
|
<p>The submit server will accept submissions <strong>ONLY</strong> from those who have
|
||||||
registered and <strong>ONLY</strong> while the contest is open.</p>
|
registered and <strong>ONLY</strong> while the contest is open and <strong>ONLY</strong> after
|
||||||
<p>The submit server places a total size limit of <strong>3999971</strong> bytes <strong>PER</strong>
|
you have changed your initial password.</p>
|
||||||
submission.</p>
|
<p>The submit server places a total size limit of <strong>3999971</strong> bytes
|
||||||
|
<strong>PER</strong> submission.</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Each account has ten (<strong>10.000</strong>) submission slots (<strong>0..9)</strong>. Each submission
|
Each account has ten (<strong>10.000</strong>) submission slots (<strong>0..9)</strong>.
|
||||||
slot should be annotated by the server as to whether its was received,
|
</p>
|
||||||
processed, malformed, etc. Please take note of any errors, rectify,
|
<p class="leftbar">
|
||||||
and resubmit. In order to avoid potential packaging errors, it is <strong>highly
|
Each submission slot should be annotated by the server as to whether it
|
||||||
recommended</strong> to use <code>mkiocccentry(1)</code>, <strong>AND</strong> to check from time to time the
|
was received, processed, malformed, etc. Please take note of any
|
||||||
status on the submit server, to see if any tests run by the server failed to
|
errors, rectify, and resubmit.
|
||||||
validate your submission.
|
</p>
|
||||||
|
<p class="leftbar">
|
||||||
|
In order to avoid potential packaging errors, it is <strong>highly
|
||||||
|
recommended</strong> to use <code>mkiocccentry(1)</code>, <strong>AND</strong> to check from time to
|
||||||
|
time the status on the submit server, to see if any tests run by the
|
||||||
|
server failed to validate your submission.
|
||||||
</p>
|
</p>
|
||||||
<p>See
|
<p>See
|
||||||
<a href="rules.html#rule3-register">Rule 3 - Registering for the IOCCC</a>,
|
<a href="rules.html#rule3-register">Rule 3 - Registering for the IOCCC</a>,
|
||||||
<a href="rules.html#rule15-gnu-makefile">Rule 15 - GNU Makefile</a>,
|
<a href="rules.html#rule15-gnu-makefile">Rule 15 - GNU Makefile</a>,
|
||||||
and
|
and
|
||||||
<a href="rules.html#rule17-mkiocccentry">Rule 17 - Use mkiocccentry</a>.</p>
|
<a href="rules.html#rule17-mkiocccentry">Rule 17 - Use mkiocccentry</a>.</p>
|
||||||
<p>See <a href="guidelines.html#guideline8-submitting">Guidelines for Rule 8 - Submitting requirements</a>.</p>
|
<p>See <a href="guidelines.html#guideline8-submitting">Guidelines for Rule 8 - Submitting
|
||||||
|
requirements</a>.</p>
|
||||||
<div id="rule9">
|
<div id="rule9">
|
||||||
<div id="rule9-no-interactive">
|
<div id="rule9-no-interactive">
|
||||||
<h2 id="rule-9---no-interactive-compiling-allowed">Rule 9 - No interactive compiling allowed</h2>
|
<h2 id="rule-9---no-interactive-compiling-allowed">Rule 9 - No interactive compiling allowed</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p>Entries requiring human interaction to be initially compiled are <strong>NOT</strong>
|
<p>Entries requiring human interaction to be initially compiled are <strong>NOT</strong>
|
||||||
permitted. However, see the guidelines. Each entry <strong>MUST</strong> automate the
|
permitted. However, see the <a href="guidelines.html#guideline9-no-interactive">guidelines on rule
|
||||||
build process using <code>bash</code>, <code>gmake</code>, <code>gcc</code> and/or <code>clang</code> and other commonly
|
9</a> as you
|
||||||
available tools under an <a href="https://pubs.opengroup.org/onlinepubs/9799919799/">SUS
|
<strong>may</strong> suggest alternative compilation steps to do something fun or
|
||||||
|
cute.</p>
|
||||||
|
<p>Each entry <strong>MUST</strong> automate the build process using <code>bash</code>, <code>gmake</code>,
|
||||||
|
<code>gcc</code> and/or <code>clang</code> and other commonly available tools under an <a href="https://pubs.opengroup.org/onlinepubs/9799919799/">SUS
|
||||||
environment</a>.</p>
|
environment</a>.</p>
|
||||||
<p><strong>NOTE</strong>: The references to <code>gmake(1)</code> can be any GNU Make compatible tool.</p>
|
<p><strong>NOTE</strong>: any reference to <code>gmake(1)</code> can be any GNU Make compatible
|
||||||
<p><strong>NOTE</strong>: it is better to use the <code>${MAKE}</code> variable as then one may override
|
tool.</p>
|
||||||
the make command.</p>
|
<p><strong>NOTE</strong>: it is better to use the <code>${MAKE}</code> variable as then one may
|
||||||
<p><strong>NOTE</strong>: it is better and more portable to <strong>NOT</strong> modify the <code>${CC}</code> variable
|
override the <code>make</code> command.</p>
|
||||||
in the Makefile.</p>
|
<p><strong>NOTE</strong>: it is better to <strong>NOT</strong> modify <code>${CC}</code> in your Makefile as
|
||||||
|
this makes your program more portable.</p>
|
||||||
<p>See <a href="rules.html#rule15-gnu-makefile">Rule 15 - GNU Makefile</a>.</p>
|
<p>See <a href="rules.html#rule15-gnu-makefile">Rule 15 - GNU Makefile</a>.</p>
|
||||||
<p>See <a href="guidelines.html#guideline9-no-interactive">Guidelines for Rule 9 - No interactive compiling allowed</a>.</p>
|
<p>See <a href="guidelines.html#guideline9-no-interactive">Guidelines for Rule 9 - No interactive compiling
|
||||||
|
allowed</a>.</p>
|
||||||
<div id="rule10">
|
<div id="rule10">
|
||||||
<h2 id="rule-10---program-file-permissions">Rule 10 - Program file permissions</h2>
|
<h2 id="rule-10---program-file-permissions">Rule 10 - Program file permissions</h2>
|
||||||
</div>
|
</div>
|
||||||
<p>Programs that require special privileges (<code>setuid(2)</code>, <code>setgid(2)</code>,
|
<p>Programs that require special privileges (<code>setuid(2)</code>, <code>setgid(2)</code>,
|
||||||
super-user, special owner, special group, etc.) are <strong>HIGHLY DISCOURAGED</strong>.
|
super-user, special owner, special group, etc.) are <strong>HIGHLY
|
||||||
We do <strong>NOT</strong> guarantee these functions will behave as you expect on our
|
DISCOURAGED</strong>. We do <strong>NOT</strong> guarantee these functions will behave as
|
||||||
test platforms. If your program needs special permissions you <strong>MUST</strong>
|
you expect on our test platforms.</p>
|
||||||
document this fact and explain why it is needed in your submission’s
|
<p>If your program needs special permissions you <strong>MUST</strong> document this
|
||||||
<code>remarks.md</code> file, preferably close to the top.</p>
|
fact and explain why it is needed in your submission’s <code>remarks.md</code>
|
||||||
|
file, preferably close to the top, because <code>mkiocccentry(1)</code> will
|
||||||
|
<strong>NOT</strong> set those modes.</p>
|
||||||
<p>Furthermore, if you need a supplementary program that you include to
|
<p>Furthermore, if you need a supplementary program that you include to
|
||||||
have these permissions, you will also have to explain this as well, because these
|
have these permissions, you will also have to explain this as well,
|
||||||
bits are <strong>NOT</strong> allowed in submissions and those bits will <strong>NOT</strong> be copied by
|
because these bits are <strong>NOT</strong> allowed in submissions and those bits
|
||||||
<code>mkiocccentry(1)</code>.</p>
|
will <strong>NOT</strong> be copied by <code>mkiocccentry(1)</code> either.</p>
|
||||||
<p>See <a href="rules.html#rule4-required-files">Rule 4 - Required files</a>,
|
<p>See <a href="rules.html#rule4-required-files">Rule 4 - Required files</a>,
|
||||||
and
|
and
|
||||||
<a href="rules.html#rule5-modifying-files">Rule 5 - Do NOT modify files</a>.</p>
|
<a href="rules.html#rule5-modifying-files">Rule 5 - Do NOT modify files</a>.</p>
|
||||||
@@ -753,95 +790,111 @@ and
|
|||||||
<h2 id="rule-11---legal-rule-abuse">Rule 11 - Legal rule abuse</h2>
|
<h2 id="rule-11---legal-rule-abuse">Rule 11 - Legal rule abuse</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p>Legal abuse of the rules is <strong>somewhat</strong> encouraged, but comes with risks.
|
<p>Legal abuse of the rules is <strong>somewhat</strong> encouraged, but comes with
|
||||||
A submission that, in the opinion of the Judges, <strong>violates</strong> the rules <strong>WILL
|
risks. A submission that, in the opinion of the Judges, <strong>violates</strong>
|
||||||
BE DISQUALIFIED</strong>. Submissions that plan to abuse the rules <strong>MUST</strong> justify
|
the rules <strong>WILL BE DISQUALIFIED</strong>. Submissions that plan to abuse the
|
||||||
why their rule abuse is legal (or interesting) in the <code>remarks.md</code> file.</p>
|
rules <strong>MUST</strong> justify why their rule abuse is legal (or interesting)
|
||||||
|
in the <code>remarks.md</code> file.</p>
|
||||||
<p>Submission packaging abuse will <strong>NOT</strong> be tolerated and for this reason,
|
<p>Submission packaging abuse will <strong>NOT</strong> be tolerated and for this reason,
|
||||||
amongst many others, it is recommended that you use <code>mkiocccentry(1)</code>. During
|
amongst many other reasons, it is recommended that you use
|
||||||
development you can check your <code>prog.c</code> size limits using <code>iocccsize(1)</code>, e.g.,
|
<code>mkiocccentry(1)</code>. See also <a href="#rule17-mkiocccentry">Rule 17 - use
|
||||||
<code>iocccsize -v1 prog.c</code>. Overriding problems detected by any of the IOCCC tools
|
mkiocccentry</a>.</p>
|
||||||
risks that the submission will be rejected.</p>
|
<p>During development you can check your <code>prog.c</code> size limits using
|
||||||
|
<code>iocccsize(1)</code>, e.g., <code>iocccsize -v1 prog.c</code>. Overriding problems
|
||||||
|
detected by any of the IOCCC tools risks that the submission will be
|
||||||
|
rejected.</p>
|
||||||
<p>If you do submit a rule abusing or violating submission, then consider
|
<p>If you do submit a rule abusing or violating submission, then consider
|
||||||
also submitting an alternate version in a different submission server
|
also submitting an alternate version in a different submission server
|
||||||
slot that does <strong>NOT</strong> violate the rules in case your rule abuse excuse
|
slot that does <strong>NOT</strong> violate the rules in case your rule abuse excuse
|
||||||
is rejected.</p>
|
is rejected.</p>
|
||||||
<p><strong>IMPORTANT</strong>: If you do submit such an alternate non-rule abusing
|
<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
|
version, <strong>PLEASE</strong> indicate that in your <code>remarks.md</code> file of your
|
||||||
abusing version so that the Judges don’t think you uploaded a duplicate into a
|
non-rule abusing version so that the Judges don’t think you uploaded a
|
||||||
wrong slot by mistake.</p>
|
duplicate into a wrong slot by mistake.</p>
|
||||||
<p>See <a href="guidelines.html#guideline11-abuse">Guidelines for Rule 11 - Legal rule abuse</a>.</p>
|
<p>See <a href="guidelines.html#guideline11-abuse">Guidelines for Rule 11 - Legal rule
|
||||||
|
abuse</a>.</p>
|
||||||
<div id="rule12">
|
<div id="rule12">
|
||||||
<div id="rule12-utf8">
|
<div id="rule12-utf8">
|
||||||
<h2 id="rule-12---utf-8">Rule 12 - UTF-8</h2>
|
<h2 id="rule-12---utf-8">Rule 12 - UTF-8</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p>Use of UTF-8 is supported by <code>C89</code> standard and its updates and so too by the
|
<p>Use of UTF-8 is supported by <code>C89</code> standard and its updates and so too
|
||||||
IOCCC.</p>
|
by the IOCCC.</p>
|
||||||
<p>See <a href="guidelines.html#guideline12-utf8">Guidelines for Rule 12 - UTF-8</a>.</p>
|
<p>See <a href="guidelines.html#guideline12-utf8">Guidelines for Rule 12 - UTF-8</a>.</p>
|
||||||
<div id="rule13">
|
<div id="rule13">
|
||||||
<div id="rule13-nocr">
|
<div id="rule13-nocr">
|
||||||
<h2 id="rule-13---no-carriage-returns-in-prog.c">Rule 13 - No carriage returns in prog.c</h2>
|
<h2 id="rule-13---no-carriage-returns-in-prog.c">Rule 13 - No carriage returns in prog.c</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p>Any C source that fails to compile because lines contain carriage-returns
|
<p>Any C source that fails to compile because lines contain
|
||||||
(CTRL+M, <code>\r</code>) in particular as part of DOS/Windows style newlines might
|
carriage-returns (CTRL+M, <code>\r</code>) in particular as part of DOS/Windows
|
||||||
be rejected. Please do <strong>NOT</strong> put trailing CTRL+M in <code>prog.c</code>, <code>Makefile</code>,
|
style newlines might be rejected. Please do <strong>NOT</strong> put trailing
|
||||||
or <code>remarks.md</code> files, but instead end lines with Unix newline (line-feed,
|
CTRL+M in <code>prog.c</code>, <code>Makefile</code>, or <code>remarks.md</code> files, but instead end
|
||||||
CTRL+J, <code>\n</code>).</p>
|
lines with Unix newline (line-feed, CTRL+J, <code>\n</code>).</p>
|
||||||
<p>You are permitted, in order to try and squeeze your <code>prog.c</code> under a
|
<p>You are permitted, in order to try and squeeze your <code>prog.c</code> under a
|
||||||
<a href="rules.html#rule2a-gross-size">Rule 2a Gross Size</a> and/or
|
<a href="rules.html#rule2a-gross-size">Rule 2a Gross Size</a> and/or <a href="rules.html#rule2b-net-size">Rule 2b Net
|
||||||
<a href="rules.html#rule2b-net-size">Rule 2b Net Size</a>
|
Size</a> limits, to <strong>NOT</strong> end source with a
|
||||||
limits, to <strong>NOT</strong> end source with a newline. If you
|
newline. If you need to do this, please document that in your
|
||||||
need to do this, please document that in your <code>remarks.md</code> file and if
|
<code>remarks.md</code> file and if your compiler complains about this, document
|
||||||
your compiler complains about this, document this too and update your
|
this too and update your <code>Makefile</code> to account for this.</p>
|
||||||
<code>Makefile</code> to account for this.</p>
|
<p>See <a href="guidelines.html#guideline13-nocr">Guidelines for Rule 13 - No carriage returns in
|
||||||
<p>See <a href="guidelines.html#guideline13-nocr">Guidelines for Rule 13 - No carriage returns in prog.c</a>.</p>
|
prog.c</a>.</p>
|
||||||
<div id="rule14">
|
<div id="rule14">
|
||||||
<h2 id="rule-14---resubmitting-lost-submissions">Rule 14 - Resubmitting lost submissions</h2>
|
<h2 id="rule-14---resubmitting-lost-submissions">Rule 14 - Resubmitting lost submissions</h2>
|
||||||
</div>
|
</div>
|
||||||
<p>Submissions that are substantially similar to previous winning IOCCC
|
<p>Submissions that are substantially similar to previous winning IOCCC
|
||||||
entries are discouraged.</p>
|
entries are discouraged. See the
|
||||||
<p>You are allowed to resubmit to a later contest, a submission that didn’t win the
|
FAQ on “<a href="../faq.html#frequent-themes">What types of entries have been frequently submitted to the
|
||||||
IOCCC. If you do so, then you would be <strong>WELL ADVISED</strong> to try and enhance and
|
IOCCC?</a>.</p>
|
||||||
improve your submission. If you do resubmit something that didn’t previously
|
<p>You are allowed to resubmit to a later contest, a submission that
|
||||||
win, then you are encouraged to mention this in your <code>remarks.md</code> file as this
|
didn’t win the IOCCC. If you do so, then you would be <strong>WELL ADVISED</strong>
|
||||||
<strong>sometimes</strong> helps.</p>
|
to try and enhance and improve your submission. If you do resubmit
|
||||||
|
something that didn’t previously win, then you are encouraged to
|
||||||
|
mention this in your <code>remarks.md</code> file as this <strong>sometimes</strong> helps.</p>
|
||||||
<div id="rule15">
|
<div id="rule15">
|
||||||
<div id="rule15-gnu-makefile">
|
<div id="rule15-gnu-makefile">
|
||||||
<h2 id="rule-15---gnu-makefile">Rule 15 - GNU Makefile</h2>
|
<h2 id="rule-15---gnu-makefile">Rule 15 - GNU Makefile</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The <code>Makefile</code> <strong>MUST</strong> adhere to GNU Makefile syntax. It’s highly recommended
|
The <code>Makefile</code> <strong>MUST</strong> adhere to GNU Makefile syntax. It’s highly
|
||||||
that you copy the <a href="Makefile.example">Makefile.example</a> as a template, renaming
|
recommended that you copy the <a href="Makefile.example">Makefile.example</a> as a
|
||||||
it to <code>Makefile</code>. The primary target of the <code>Makefile</code> <strong>MUST</strong> be <code>prog</code> and
|
template, renaming it to <code>Makefile</code>. The primary target of the
|
||||||
the source file is <code>prog.c</code>. The C compiler and preprocessor <strong>MUST</strong> be
|
<code>Makefile</code> <strong>MUST</strong> be <code>prog</code> and the source file is <code>prog.c</code>. The C
|
||||||
invoked using <code>${CC}</code> and <code>${CPP}</code> macros respectively.
|
compiler and preprocessor <strong>MUST</strong> be invoked using <code>${CC}</code> and
|
||||||
|
<code>${CPP}</code> macros respectively.
|
||||||
</p>
|
</p>
|
||||||
<p>The <code>clobber</code> target <strong>MUST</strong> clean and restore the submission directory tree to
|
<p>The <code>clobber</code> target <strong>MUST</strong> clean and restore the submission
|
||||||
its original state, such as removing temporary files or any modified data files.
|
directory tree to its original state, such as removing temporary files
|
||||||
Don’t assume that <code>git</code> tool chain is installed, i.e. do <strong>NOT</strong> expect <code>git clean -f</code> to work. To be clear: do <strong>NOT</strong> use <code>git</code> to clean out files as this
|
or any modified data files. Don’t assume that <code>git</code> tool chain is
|
||||||
can cause problems in the winner repo!</p>
|
installed, i.e. do <strong>NOT</strong> expect <code>git clean -f</code> to work. To be clear:
|
||||||
|
do <strong>NOT</strong> use <code>git</code> to clean out files as this <strong>WILL</strong> cause problems
|
||||||
|
in the winner repo!</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The <code>Makefile</code> <strong>MUST</strong> use a syntax that is compatible with
|
The <code>Makefile</code> <strong>MUST</strong> use a syntax that is compatible with <code>bash(1)</code>
|
||||||
<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
|
and GNU <code>make(1)</code>. You are encouraged to use <code>SHELL= bash</code> in your
|
||||||
the value such as:
|
<code>Makefile</code>; please add a space between the <code>=</code> and the value such as:
|
||||||
</p>
|
</p>
|
||||||
<pre><code> SHELL= bash</code></pre>
|
<pre><code> SHELL= bash</code></pre>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Assume that commands commonly found in <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX
|
Assume that commands commonly found in <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX
|
||||||
Specification</a>
|
Specification</a>
|
||||||
environments and systems are available in the search
|
environments and systems are available in the search
|
||||||
<code>$PATH</code>. Avoid command options that aren’t part of
|
<code>$PATH</code>.
|
||||||
|
</p>
|
||||||
|
<p class="leftbar">
|
||||||
|
Avoid command options that aren’t part of
|
||||||
<a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">SUS</a>, such as
|
<a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">SUS</a>, such as
|
||||||
GNU long name options (such as <code>--example</code>) or extensions like <code>grep -P</code>.
|
GNU long name options (such as <code>--example</code>) or extensions like <code>grep -P</code>.
|
||||||
</p>
|
</p>
|
||||||
<p>Do <strong>NOT</strong> assume that <code>.</code> (current directory) is in the <code>$PATH</code> environment variable.</p>
|
<p>Do <strong>NOT</strong> assume that <code>.</code> (current directory) is in the <code>$PATH</code>
|
||||||
|
environment variable.</p>
|
||||||
<p>See <a href="rules.html#rule4-required-files">Rule 4 - Required files</a>.</p>
|
<p>See <a href="rules.html#rule4-required-files">Rule 4 - Required files</a>.</p>
|
||||||
<p>See
|
<p>See
|
||||||
FAQ on “<a href="../faq.html#makefile_details">What are the detailed recommendations for a submission Makefile?</a>”.</p>
|
FAQ on “<a href="../faq.html#makefile_details">What are the detailed recommendations for a submission
|
||||||
<p>See <a href="guidelines.html#guideline15-gnu-makefile">Guidelines for Rule 15 - GNU Makefile</a>.</p>
|
Makefile?</a>”.</p>
|
||||||
|
<p>See <a href="guidelines.html#guideline15-gnu-makefile">Guidelines for Rule 15 - GNU
|
||||||
|
Makefile</a>.</p>
|
||||||
<div id="rule16">
|
<div id="rule16">
|
||||||
<div id="rule16-anonymous-judging">
|
<div id="rule16-anonymous-judging">
|
||||||
<h2 id="rule-16---anonymous-judging">Rule 16 - Anonymous judging</h2>
|
<h2 id="rule-16---anonymous-judging">Rule 16 - Anonymous judging</h2>
|
||||||
@@ -850,79 +903,88 @@ FAQ on “<a href="../faq.html#makefile_details">What are the detailed recommend
|
|||||||
<p>Your source code, data files, remarks, and program output <strong>MUST NOT</strong>
|
<p>Your source code, data files, remarks, and program output <strong>MUST NOT</strong>
|
||||||
identify the author(s) of your code (unless you are <strong>Peter Honeyman</strong>
|
identify the author(s) of your code (unless you are <strong>Peter Honeyman</strong>
|
||||||
or pretending to be <strong>Peter Honeyman</strong>). In order to be impartial the
|
or pretending to be <strong>Peter Honeyman</strong>). In order to be impartial the
|
||||||
<a href="https://www.ioccc.org/judges.html">Judges</a> do <strong>NOT</strong> know who is submitting
|
<a href="https://www.ioccc.org/judges.html">Judges</a> do <strong>NOT</strong> know who is
|
||||||
programs to the IOCCC until final selection is made, and <strong>only</strong> submissions
|
submitting programs to the IOCCC until final selection is made, and
|
||||||
that won.</p>
|
<strong>only</strong> submissions that won.</p>
|
||||||
<p>Even if you are a past winner, you <strong>MUST NOT</strong> reveal your identity
|
<p>Even if you are a past winner, you <strong>MUST NOT</strong> reveal your identity
|
||||||
deliberately or by accident anywhere in your submission. <strong><em>Failure to comply
|
deliberately or by accident anywhere in your submission. <strong><em>Failure to
|
||||||
may result in the submission being disqualified</em></strong>.</p>
|
comply may result in the submission being disqualified</em></strong>.</p>
|
||||||
<div id="rule17">
|
<div id="rule17">
|
||||||
<div id="rule17-mkiocccentry">
|
<div id="rule17-mkiocccentry">
|
||||||
<h2 id="rule-17---use-mkiocccentry">Rule 17 - Use <code>mkiocccentry</code></h2>
|
<h2 id="rule-17---use-mkiocccentry">Rule 17 - Use <code>mkiocccentry</code></h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p>TL;DR: use <code>mkiocccentry(1)</code> to package your submission.</p>
|
<p>TL;DR: use <code>mkiocccentry(1)</code> to package your submission.</p>
|
||||||
<p>The files, directories, and paths <strong>MUST</strong> conform to the limits imposed by
|
<p>The files, directories, and paths <strong>MUST</strong> conform to the limits
|
||||||
<code>mkiocccentry(1)</code>, including but <strong>NOT</strong> limited, to their names, count, path
|
imposed by <code>mkiocccentry(1)</code>, including but <strong>NOT</strong> limited, to their
|
||||||
length, directory tree depth, and permissions.</p>
|
names, count, path length, directory tree depth, and permissions.</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The submission tree may have at most <strong>13</strong> directories and maximum
|
The submission tree may have at most <strong>13</strong> directories and maximum
|
||||||
directory depths of <strong>4</strong>. The maximum number of files, excluding
|
directory depths of <strong>4</strong>. The maximum number of files, excluding
|
||||||
<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>prog.c</code>, <code>remarks.md</code>, <code>Makefile</code>, <code>prog.alt.c</code>, <code>try.sh</code>,
|
||||||
<code>.info.json</code> and <code>.auth.json</code> is <strong>31</strong>. And the maximum file-path
|
<code>try.alt.sh</code>, <code>.info.json</code> and <code>.auth.json</code> is <strong>31</strong>. And the maximum
|
||||||
component is <strong>38</strong> and maximum path length is <strong>60</strong>.
|
file-path component is <strong>38</strong> and maximum path length is <strong>60</strong>.
|
||||||
</p>
|
</p>
|
||||||
<p>The submission <strong>MUST</strong> be a <code>.txz</code> compressed tarball (i.e., tarball compressed by <code>xz(1)</code>)
|
<p>The submission <strong>MUST</strong> be a <code>.txz</code> compressed tarball (i.e., tarball
|
||||||
as constructed by <code>mkiocccentry(1)</code>, which <strong>MUST</strong> be within <strong>[1..3999971]</strong> bytes in size.</p>
|
compressed by <code>xz(1)</code>) as constructed by <code>mkiocccentry(1)</code>, which
|
||||||
<p>The tarball <strong>MUST</strong> be a <strong>v7 format</strong> tarball, and any supplementary tarballs
|
<strong>MUST</strong> be within <strong>[1..3999971]</strong> bytes in size.</p>
|
||||||
you provide <strong>MUST</strong> also be <strong>v7 format</strong>.</p>
|
<p>The tarball <strong>MUST</strong> be a <strong>v7 format</strong> tarball, and any supplementary
|
||||||
<p>The sum of all file lengths, after unpacking from the tarball, <strong>MUST</strong> be
|
tarballs you provide <strong>MUST</strong> also be <strong>v7 format</strong>.</p>
|
||||||
less than <code>27651*1024</code> (<strong>28314624</strong>) bytes.</p>
|
<p>The sum of all file lengths, after unpacking from the tarball, <strong>MUST</strong>
|
||||||
|
be less than <code>27651*1024</code> (<strong>28314624</strong>) bytes.</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The submission <strong>MUST</strong> pass all <code>txzchk(1)</code> checks, and the tarball filename
|
The submission <strong>MUST</strong> pass all <code>txzchk(1)</code> checks, and the tarball
|
||||||
<strong>MUST</strong> pass all <code>fnamchk(1)</code> checks as well.
|
filename <strong>MUST</strong> pass all <code>fnamchk(1)</code> checks as well.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
You may <strong>NOT</strong> submit a tarball created by the <code>-d</code>, <code>-e</code> <strong>OR</strong> by the <code>-s seed</code> options of <code>mkiocccentry(1)</code>.
|
You may <strong>NOT</strong> submit a tarball created by the <code>-d</code>, <code>-e</code> <strong>OR</strong> by
|
||||||
|
the <code>-s seed</code> options of <code>mkiocccentry(1)</code>.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The unpacked submission directory <strong>MUST</strong> pass the checks performed by the
|
The unpacked submission directory <strong>MUST</strong> pass the checks performed by
|
||||||
minimum required version of <code>chksubmit(1)</code>.
|
the minimum required version of <code>chksubmit(1)</code>.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Submissions may <strong>NOT</strong> use a <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
Submissions may <strong>NOT</strong> use a <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||||
toolkit</a> command line options that
|
toolkit</a> command line
|
||||||
are labelled as “<strong>for TESTING purposes</strong>”, <strong>OR</strong> labelled as “<strong>for the use by
|
options that are labelled as “<strong>for TESTING purposes</strong>”, <strong>OR</strong>
|
||||||
the IOCCC judges only</strong>”, in their respective man pages.
|
labelled as “<strong>for the use by the IOCCC judges only</strong>”, in their
|
||||||
|
respective man pages.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Submissions may <strong>ONLY</strong> use <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
Submissions may <strong>ONLY</strong> use <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||||
toolkit</a> command lines that confirm
|
toolkit</a> command lines that
|
||||||
to the command’s <code>-h</code> “<em>print help message</em>”, again notwithstanding the options
|
confirm to the command’s <code>-h</code> “<em>print help message</em>”, again
|
||||||
for testing and the IOCCC judges.
|
notwithstanding the options for testing and the IOCCC judges.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The <code>prog.c</code> file should pass the <a href="rules.html#rule2-size">Rule 2 - Size restrictions</a>
|
The <code>prog.c</code> file should pass the <a href="rules.html#rule2-size">Rule 2 - Size
|
||||||
checks performed by <code>iocccsize(1)</code>.
|
restrictions</a> checks performed by
|
||||||
|
<code>iocccsize(1)</code>.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The <code>.auth.json</code> and <code>.info.json</code> files <strong>MUST</strong> be compatible with what
|
The <code>.auth.json</code> and <code>.info.json</code> files <strong>MUST</strong> be exactly
|
||||||
<code>mkiocccentry(1)</code> generates.
|
what the minimum required <code>mkiocccentry(1)</code> version generates.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Any submission that fails to pass the checks performed by the minimum required
|
Any submission that fails to pass the checks performed by the minimum
|
||||||
version of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
required version of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||||
<strong>WILL be rejected</strong>!
|
toolkit</a> <strong>WILL be
|
||||||
|
rejected</strong>!
|
||||||
</p>
|
</p>
|
||||||
<p>See <a href="rules.html#rule4-required-files">Rule 4 - Required files</a>.</p>
|
<p>See <a href="rules.html#rule4-required-files">Rule 4 - Required files</a>.</p>
|
||||||
<p>See the
|
<p>See the
|
||||||
FAQ on “<a href="../faq.html#mkiocccentry">What is the mkiocccentry tool, how do I obtain it and how do I use it?</a>”.</p>
|
FAQ on “<a href="../faq.html#mkiocccentry">What is the mkiocccentry tool, how do I obtain it and how do I
|
||||||
<p>See the <a href="guidelines.html#guideline17-mkiocccentry">Guidelines for Rule 17 - Use mkiocccentry</a>.</p>
|
use it?</a>”.</p>
|
||||||
|
<p>See the <a href="guidelines.html#guideline17-mkiocccentry">Guidelines for Rule 17 - Use
|
||||||
|
mkiocccentry</a>.</p>
|
||||||
<div id="rule18">
|
<div id="rule18">
|
||||||
<h2 id="rule-18---submission-license">Rule 18 - Submission license</h2>
|
<h2 id="rule-18---submission-license">Rule 18 - Submission license</h2>
|
||||||
</div>
|
</div>
|
||||||
<p>The entirety of your submission <strong>MUST</strong> be submitted under the following license:</p>
|
<p>The entirety of your submission <strong>MUST</strong> be submitted under the
|
||||||
<p><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a></p>
|
following license:</p>
|
||||||
|
<p><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0
|
||||||
|
International</a>.</p>
|
||||||
<p>See <a href="rules.html#rule7-original-work">Rule 7 - Original Work</a>.</p>
|
<p>See <a href="rules.html#rule7-original-work">Rule 7 - Original Work</a>.</p>
|
||||||
<div id="rule19">
|
<div id="rule19">
|
||||||
<div id="rule19-prime">
|
<div id="rule19-prime">
|
||||||
@@ -931,19 +993,22 @@ FAQ on “<a href="../faq.html#mkiocccentry">What is the mkiocccentry tool, how
|
|||||||
</div>
|
</div>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
This 19th rule, while prime, is reserved for future abuse 😁.
|
This 19th rule, while prime, is reserved for future abuse 😁.
|
||||||
Additional rules, both humorous and otherwise, may be added
|
Additional rules, both humorous and otherwise, may be added below this
|
||||||
below this rule in future contests.
|
rule in future contests.
|
||||||
</p>
|
</p>
|
||||||
<p>See <a href="rules.html#rule6-free-rule">Rule 6 - Free Rule</a>.</p>
|
<p>See <a href="rules.html#rule6-free-rule">Rule 6 - Free Rule</a>.</p>
|
||||||
<h2 id="further-reading">Further Reading</h2>
|
<h2 id="further-reading">Further Reading</h2>
|
||||||
<p>Please read the <a href="guidelines.html">Guidelines</a> next for further commentary on these rules.</p>
|
<p>Please read the <a href="guidelines.html">Guidelines</a> next for further
|
||||||
|
commentary on these rules.</p>
|
||||||
<p>Read the
|
<p>Read the
|
||||||
<a href="https://www.ioccc.org/quick-start.html#enter">Entering the IOCCC: the bare minimum you need to know</a>
|
FAQ on “<a href="https://www.ioccc.org/quick-start.html#enter">Entering the IOCCC: the bare minimum you need to
|
||||||
|
know</a>”
|
||||||
for an overview of how to enter the contest.</p>
|
for an overview of how to enter the contest.</p>
|
||||||
<p>See also the <a href="../faq.html">FAQ</a>.</p>
|
<p>See also the <a href="../faq.html">FAQ</a> in general.</p>
|
||||||
<p>And now <a href="guidelines.html#fun">for something completely different</a>.</p>
|
<p>And now <a href="guidelines.html#fun">for something completely different</a>.</p>
|
||||||
<p>Consider joining the <a href="https://discord.com/invite/Wa42Qujwnw">IOCCC Discord Server</a>
|
<p>Consider joining the <a href="https://discord.com/invite/Wa42Qujwnw">IOCCC Discord
|
||||||
for discussions about The Rules, questions for the Judges, and <code>C</code> in general.</p>
|
Server</a> for discussions about
|
||||||
|
The Rules, questions for the Judges, and <code>C</code> in general.</p>
|
||||||
<p>Leonid A. Broukhis
|
<p>Leonid A. Broukhis
|
||||||
chongo (Landon Curt Noll) /\cc/\
|
chongo (Landon Curt Noll) /\cc/\
|
||||||
<!-- AFTER: last line of markdown file: next/rules.md --></p>
|
<!-- AFTER: last line of markdown file: next/rules.md --></p>
|
||||||
|
|||||||
+292
-223
@@ -3,26 +3,27 @@
|
|||||||
# The IOCCC is closed
|
# The IOCCC is closed
|
||||||
|
|
||||||
The IOCCC is **NOT** accepting new submissions at this time. See the
|
The IOCCC is **NOT** accepting new submissions at this time. See the
|
||||||
[IOCCC winning entries page](../years.html) for the entries that have won the
|
[IOCCC winning entries page](../years.html) for the entries that have
|
||||||
IOCCC in the past.
|
won the IOCCC in the past.
|
||||||
|
|
||||||
These rules are a **TENTATIVE proposal** for the next IOCCC
|
These rules are a **TENTATIVE proposal** for the next IOCCC and are
|
||||||
and are **likely be to be updated** before the next IOCCC.
|
**likely be to be updated** before the next IOCCC.
|
||||||
|
|
||||||
See our
|
See our
|
||||||
FAQ on "[rules, guidelines, tools feedback](../faq.html#feedback)"
|
FAQ on "[rules, guidelines, tools feedback](../faq.html#feedback)"
|
||||||
as well as our
|
as well as our
|
||||||
FAQ on "[about asking questions](../faq.html#question)"
|
FAQ on "[about asking questions](../faq.html#question)"
|
||||||
about these rules. You might also find the FAQ in general useful, especially the
|
about these rules. You might also find the FAQ in general useful,
|
||||||
|
especially the
|
||||||
FAQ on "[how to enter the IOCCC](../quick-start.html#enter)".
|
FAQ on "[how to enter the IOCCC](../quick-start.html#enter)".
|
||||||
|
|
||||||
Watch both [the IOCCC status page](../status.html) and the
|
Watch both [the IOCCC status page](../status.html) and the [@IOCCC
|
||||||
[@IOCCC mastodon feed](https://fosstodon.org/@ioccc) for information about
|
mastodon feed](https://fosstodon.org/@ioccc) for information about
|
||||||
future IOCCC openings.
|
future IOCCC openings.
|
||||||
|
|
||||||
**HINT to mastodon users**: You may wish to refresh the [@IOCCC
|
**HINT to mastodon users**: You may wish to refresh the [@IOCCC
|
||||||
mastodon feed](https://fosstodon.org/@ioccc) page and/or mastodon
|
mastodon feed](https://fosstodon.org/@ioccc) page and/or mastodon app
|
||||||
app from time to time to view IOCCC mastodon updates.
|
from time to time to view IOCCC mastodon updates.
|
||||||
|
|
||||||
<!-- END: the next line ends content from: inc/rules.closed.hdr -->
|
<!-- END: the next line ends content from: inc/rules.closed.hdr -->
|
||||||
<!-- This is the last line modified by the tool: bin/gen-status.sh -->
|
<!-- This is the last line modified by the tool: bin/gen-status.sh -->
|
||||||
@@ -39,14 +40,16 @@ writing by [contacting the judges](../contact.html).
|
|||||||
|
|
||||||
## Rules Version
|
## Rules Version
|
||||||
|
|
||||||
These IOCCC Rules are version **29.13 2025-12-01**.
|
These IOCCC Rules are version **29.14 2025-12-02**.
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The <span style='font-size:28px;'><b>|</b></span> symbol indicates an **change** from the previous IOCCC.
|
The <span style='font-size:28px;'><b>|</b></span> symbol
|
||||||
|
indicates a **change** from the previous IOCCC.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Because the **IOCCC29** rules was a substantial rewrite, only **important changes** from **IOCCC28** have been marked.
|
Because the **IOCCC29** rules was a substantial rewrite, only
|
||||||
|
**important changes** from **IOCCC28** have been marked.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
Reminder: be SURE to read the [IOCCC guidelines](guidelines.html).
|
Reminder: be SURE to read the [IOCCC guidelines](guidelines.html).
|
||||||
@@ -57,34 +60,41 @@ Reminder: be SURE to read the [IOCCC guidelines](guidelines.html).
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
This IOCCC runs from `2025-12-03 20:25:12.045045 UTC` to `2026-03-13 17:19:23.293137 UTC`.
|
This IOCCC runs from `2025-12-03 20:25:12.045045 UTC` to `2026-03-13
|
||||||
|
17:19:23.293137 UTC`.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
This contest will enter the [pending state](../faq.html#pending) on `2025-12-03 20:25:12.045045 UTC`,
|
This contest will enter the [pending state](../faq.html#pending) on
|
||||||
allowing people to [register for the IOCCC](register.html).
|
`2025-12-03 20:25:12.045045 UTC`, allowing people to [register for the
|
||||||
|
IOCCC](register.html).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
This contest will enter the [open state](../faq.html#open) on `2025-12-15 18:21:24.273033 UTC`,
|
This contest will enter the [open state](../faq.html#open) on
|
||||||
allowing people to [upload submissions](submit.html).
|
`2025-12-15 18:21:24.273033 UTC`, allowing people to [upload
|
||||||
|
submissions](submit.html).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
This contest will enter the [judging state](../faq.html#judging) on `2026-03-13 17:19:23.293137 UTC`,
|
This contest will enter the [judging state](../faq.html#judging) on
|
||||||
when people will no longer be allowed to upload submissions.
|
`2026-03-13 17:19:23.293137 UTC`, when people will no longer be allowed
|
||||||
|
to upload submissions.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
The above **dates and times may change _AT ANY TIME_** until the [contest status](../status.html) is **open**.
|
The above **dates and times may change _AT ANY TIME_** until the
|
||||||
|
[contest status](../status.html) is **open**.
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The above timestamps are in "_YYYY-MM-DD HH:MM:SS.micros UTC_" format.
|
The above timestamps are in "_YYYY-MM-DD HH:MM:SS.micros UTC_" format.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
See [Entering the IOCCC: the bare minimum you need to know](../quick-start.html#enter).
|
See [Entering the IOCCC: the bare minimum you need to
|
||||||
|
know](../quick-start.html#enter).
|
||||||
|
|
||||||
See
|
See
|
||||||
FAQ on "[How can I comment or make a suggestion on IOCCC rules, guidelines and tools?](../faq.html#feedback)".
|
FAQ on "[How can I comment or make a suggestion on IOCCC rules,
|
||||||
|
guidelines and tools?](../faq.html#feedback)".
|
||||||
|
|
||||||
|
|
||||||
<div id="rule1">
|
<div id="rule1">
|
||||||
@@ -97,7 +107,8 @@ FAQ on "[How can I comment or make a suggestion on IOCCC rules, guidelines and t
|
|||||||
Your submission **MUST** be a C program.
|
Your submission **MUST** be a C program.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
See the [Guidelines for Rule 1 - C program](guidelines.html#guideline1-c).
|
See the [Guidelines for Rule 1 - C
|
||||||
|
program](guidelines.html#guideline1-c).
|
||||||
|
|
||||||
|
|
||||||
<div id="rule2">
|
<div id="rule2">
|
||||||
@@ -108,17 +119,18 @@ See the [Guidelines for Rule 1 - C program](guidelines.html#guideline1-c).
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
`Rule 2` requires that your submission satisfy **BOTH**
|
`Rule 2` requires that your submission satisfy **BOTH** [Rule 2a
|
||||||
[Rule 2a (Gross Size)](rules.html#rule2a)
|
(Gross Size)](rules.html#rule2a) and [Rule 2b (Net
|
||||||
and
|
Size)](rules.html#rule2b).
|
||||||
[Rule 2b (Net Size)](rules.html#rule2b).
|
|
||||||
During development this can be checked using `iocccsize(1)`:
|
During development this can be checked using `iocccsize(1)`:
|
||||||
|
|
||||||
``` <!---sh-->
|
``` <!---sh-->
|
||||||
iocccsize prog.c
|
iocccsize prog.c
|
||||||
```
|
```
|
||||||
|
|
||||||
See the [Guidelines for Rule 2 - Size restrictions](guidelines.html#guideline2-size).
|
See the [Guidelines for Rule 2 - Size
|
||||||
|
restrictions](guidelines.html#guideline2-size).
|
||||||
|
|
||||||
|
|
||||||
<div id="rule2a">
|
<div id="rule2a">
|
||||||
@@ -130,7 +142,8 @@ See the [Guidelines for Rule 2 - Size restrictions](guidelines.html#guideline2-s
|
|||||||
The overall maximum size of your `prog.c` program source **MUST NOT**
|
The overall maximum size of your `prog.c` program source **MUST NOT**
|
||||||
exceed **4993** bytes.
|
exceed **4993** bytes.
|
||||||
|
|
||||||
See [Entering the IOCCC: the bare minimum you need to know](../quick-start.html#enter).
|
See [Entering the IOCCC: the bare minimum you need to
|
||||||
|
know](../quick-start.html#enter).
|
||||||
|
|
||||||
|
|
||||||
<div id="rule2b">
|
<div id="rule2b">
|
||||||
@@ -139,12 +152,8 @@ See [Entering the IOCCC: the bare minimum you need to know](../quick-start.html#
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
When the filename of your program source (i.e., `prog.c`) is given as a
|
Check your source code using the latest official IOCCC size tool,
|
||||||
command line argument to the latest version of the official IOCCC size
|
`iocccsize(1)`. The value printed **MUST NOT** exceed **2503**.
|
||||||
tool (hereby referred to as `iocccsize(1)`), the value printed **MUST
|
|
||||||
NOT** exceed **2503**.
|
|
||||||
|
|
||||||
**NOTE**: `iocccsize` does **NOT** calculate the filename length.
|
|
||||||
|
|
||||||
See [Rule 17 - Use mkiocccentry](#rule17-mkiocccentry).
|
See [Rule 17 - Use mkiocccentry](#rule17-mkiocccentry).
|
||||||
|
|
||||||
@@ -156,16 +165,19 @@ See [Rule 17 - Use mkiocccentry](#rule17-mkiocccentry).
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
You **MUST** register, using a valid email address, in order to submit
|
You **MUST** register, using a valid email address, in order to submit
|
||||||
to the IOCCC. You may register while the contest is **pending** or **open**.
|
to the IOCCC. You may register while the contest is **pending** or
|
||||||
|
**open**.
|
||||||
|
|
||||||
A few days after registering, you'll receive your UUID username and
|
A few days after registering, you'll receive your UUID username and
|
||||||
temporary password, which you **MUST** change within 14 days.
|
temporary password, which you **MUST** change within 14 days.
|
||||||
|
|
||||||
See [How to register for the IOCCC](register.html).
|
See [How to register for the IOCCC](register.html).
|
||||||
|
|
||||||
See [Entering the IOCCC: the bare minimum you need to know](../quick-start.html#enter).
|
See [Entering the IOCCC: the bare minimum you need to
|
||||||
|
know](../quick-start.html#enter).
|
||||||
|
|
||||||
See [Guidelines for Rule 3 - Register for the IOCCC](guidelines.html#guideline3-register).
|
See [Guidelines for Rule 3 - Register for the
|
||||||
|
IOCCC](guidelines.html#guideline3-register).
|
||||||
|
|
||||||
|
|
||||||
<div id="rule4">
|
<div id="rule4">
|
||||||
@@ -175,47 +187,50 @@ See [Guidelines for Rule 3 - Register for the IOCCC](guidelines.html#guideline3-
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Your submission **MUST** include at least these files: `Makefile`, `prog.c`,
|
Your submission **MUST** include at least these files: `Makefile`,
|
||||||
`remarks.md`,`.info.json`, and `.auth.json`, the latter two of which are
|
`prog.c`, `remarks.md`,`.info.json`, and `.auth.json`, the latter two
|
||||||
generated by `mkiocccentry(1)`. See [Rule 17 -
|
of which are generated by `mkiocccentry(1)`. See [Rule 17 - Use
|
||||||
Use mkiocccentry](#rule17-mkiocccentry).
|
mkiocccentry](#rule17-mkiocccentry).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
At a **minimum** the following requirements apply. Additional requirements
|
At a **minimum** the following requirements apply. Additional
|
||||||
may be imposed by `mkiocccentry(1)` updates that have yet to be listed
|
requirements may be imposed by `mkiocccentry(1)` updates that have yet
|
||||||
below:
|
to be listed below:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<span style='font-size:28px;'><b>|</b></span>
|
<span style='font-size:28px;'><b>|</b></span>
|
||||||
* `.info.json` and `.auth.json` **MUST** be generated by `mkiocccenty(1)`
|
* `.info.json` and `.auth.json` **MUST** be generated by
|
||||||
when packing a submission. When `chksubmit(1)` is run on the submission
|
`mkiocccenty(1)` when packing a submission. When `chksubmit(1)` is run
|
||||||
directory **ALL** tests must pass and if there is **ANY** problem with these
|
on the submission directory **ALL** tests must pass and if there is
|
||||||
JSON files or if either is missing it will fail. See [Rule 17 - use
|
**ANY** problem with these JSON files or if either is missing it will
|
||||||
mkiocccentry](#rule17-mkiocccentry).
|
fail. See [Rule 17 - use mkiocccentry](#rule17-mkiocccentry).
|
||||||
|
|
||||||
<span style='font-size:28px;'><b>|</b></span>
|
<span style='font-size:28px;'><b>|</b></span>
|
||||||
* The `Makefile`, `remarks.md`,`.info.json`, and `.auth.json` **MUST**
|
* The `Makefile`, `remarks.md`,`.info.json`, and `.auth.json` **MUST**
|
||||||
have a file size **greater than 0** and **MUST** have content. Note that
|
have a file size **greater than 0** and **MUST** have content. Note
|
||||||
`mkiocccentry(1)` will check for file **size** but will **NOT** check for
|
that `mkiocccentry(1)` will check for file **size** but will **NOT**
|
||||||
content.
|
check for content.
|
||||||
|
|
||||||
<span style='font-size:28px;'><b>|</b></span>
|
<span style='font-size:28px;'><b>|</b></span>
|
||||||
* Your submitted source code **MUST** be called `prog.c`. When the `Makefile`
|
* Your submitted source code **MUST** be called `prog.c`. When the
|
||||||
compiles your code, the executable (if applicable) **MUST** be called `prog`.
|
`Makefile` compiles your code, the executable (if applicable) **MUST**
|
||||||
The `Makefile` may compile your source code into other filenames as well, if you want.
|
be called `prog`. The `Makefile` may compile your source code into
|
||||||
|
other filenames as well, if you want.
|
||||||
|
|
||||||
<span style='font-size:28px;'><b>|</b></span>
|
<span style='font-size:28px;'><b>|</b></span>
|
||||||
* As `prog`, `prog.alt`, `prog.alt.o`, `prog.o` may be created by your
|
* As `prog`, `prog.alt`, `prog.alt.o`, `prog.o` may be created by your
|
||||||
`Makefile`, your submission **MUST NOT** include those files in your **top** directory.
|
`Makefile`, your submission **MUST NOT** include those files in your
|
||||||
|
**top** directory.
|
||||||
|
|
||||||
<span style='font-size:28px;'><b>|</b></span>
|
<span style='font-size:28px;'><b>|</b></span>
|
||||||
* Your submission may **NOT** have any file that starts with `COPYING`,
|
* Your submission may **NOT** have any file that starts with `COPYING`,
|
||||||
`COPYRIGHT`, or `LICENSE` as those files are reserved by IOCCC.
|
`COPYRIGHT`, or `LICENSE` as those files are reserved by IOCCC.
|
||||||
|
|
||||||
<span style='font-size:28px;'><b>|</b></span>
|
<span style='font-size:28px;'><b>|</b></span>
|
||||||
* Your submission may **NOT** have in the **top** directory: `prog.orig.c`,
|
* Your submission may **NOT** have in the **top** directory:
|
||||||
`README.md` or `index.html` as those files are reserved by the IOCCC.
|
`prog.orig.c`, `README.md` or `index.html` as those files are reserved
|
||||||
|
by the IOCCC.
|
||||||
|
|
||||||
<span style='font-size:28px;'><b>|</b></span>
|
<span style='font-size:28px;'><b>|</b></span>
|
||||||
* Your submission may **NOT** have in the **top** directory any file
|
* Your submission may **NOT** have in the **top** directory any file
|
||||||
@@ -223,73 +238,80 @@ that matches a file glob pattern form `[0-9][0-9][0-9][0-9]_*.tar.bz2`
|
|||||||
as those files are reserved by IOCCC.
|
as those files are reserved by IOCCC.
|
||||||
|
|
||||||
<span style='font-size:28px;'><b>|</b></span>
|
<span style='font-size:28px;'><b>|</b></span>
|
||||||
* Your submission may **ONLY** contain files and directories. Other file
|
* Your submission may **ONLY** contain files and directories. Other
|
||||||
types such as symlinks, sockets etc. are **NOT** allowed.
|
file types such as symlinks, sockets etc. are **NOT** allowed.
|
||||||
|
|
||||||
<span style='font-size:28px;'><b>|</b></span>
|
<span style='font-size:28px;'><b>|</b></span>
|
||||||
* **All** directories **MUST** have permission mode of **0755**. All files
|
* **All** directories **MUST** have permission mode of **0755**. All
|
||||||
**MUST** have the file mode of **0444**, EXCEPT for files that
|
files **MUST** have the file mode of **0444**, EXCEPT for files that
|
||||||
end in `.sh` which must have a mode of **0555**.
|
end in `.sh` which must have a mode of **0555**.
|
||||||
|
|
||||||
<span style='font-size:28px;'><b>|</b></span>
|
<span style='font-size:28px;'><b>|</b></span>
|
||||||
* All files that end in `.md` **MUST** be in markdown format.
|
* All files that end in `.md` **MUST** be in markdown format.
|
||||||
|
|
||||||
<span style='font-size:28px;'><b>|</b></span>
|
<span style='font-size:28px;'><b>|</b></span>
|
||||||
* All filenames are treated as case insensitive. For example, `REMARKS.MD`,
|
* All filenames are treated as case insensitive. For example,
|
||||||
and `Remarks.md`, and `remarks.md` are considered by `mkiocccenty(1)`
|
`REMARKS.MD`, and `Remarks.md`, and `remarks.md` are considered by
|
||||||
to be the **SAME** file. When preparing a submission on a case
|
`mkiocccenty(1)` to be the **SAME** file. When preparing a submission
|
||||||
sensitive filesystem, ensure that the submission will work on
|
on a case sensitive filesystem, ensure that the submission will work on
|
||||||
a case insensitive filesystem.
|
a case insensitive filesystem.
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
**NOTE**: by 'top directory' we mean the directory with `prog.c`, `Makefile`,
|
**NOTE**: by 'top directory' we mean the directory with `prog.c`,
|
||||||
`remarks.md` and the `mkiocccentry(1)` generated files `.auth.json` and
|
`Makefile`, `remarks.md` and the `mkiocccentry(1)` generated files
|
||||||
`.info.json` and **NOT** the `topdir` arg to `mkiocccentry(1)`.
|
`.auth.json` and `.info.json` and **NOT** the `topdir` arg to
|
||||||
|
`mkiocccentry(1)`.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
**NOTE**: `mkiocccentry(1)` will reject any directory which has prohibited files.
|
**NOTE**: `mkiocccentry(1)` will reject any directory which has
|
||||||
|
prohibited files.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
The `remarks.md` and `Makefile` are explained in more detail in the Guidelines.
|
The `remarks.md` and `Makefile` are explained in more detail in the
|
||||||
|
[Guidelines](guidelines.html).
|
||||||
|
|
||||||
See [IOCCC markdown guidelines](../markdown.html).
|
See [IOCCC markdown guidelines](../markdown.html).
|
||||||
|
|
||||||
See [Rule 17 - Use mkiocccentry](rules.html#rule17-mkiocccentry).
|
See [Rule 17 - Use mkiocccentry](rules.html#rule17-mkiocccentry).
|
||||||
|
|
||||||
See the
|
See the
|
||||||
FAQ on "[What permissions may my files be and what if I need different permissions?](../faq.html#file_perms)".
|
FAQ on "[What permissions may my files be and what if I need different
|
||||||
|
permissions?](../faq.html#file_perms)".
|
||||||
|
|
||||||
See the
|
See the
|
||||||
FAQ on "[What are the detailed recommendations for a submission Makefile?](../faq.html#makefile_details)".
|
FAQ on "[What are the detailed recommendations for a submission
|
||||||
|
Makefile?](../faq.html#makefile_details)".
|
||||||
|
|
||||||
See the [Guidelines on the mkiocccentry toolkit](guidelines.html#mkiocccentry_toolkit).
|
See the [Guidelines on the mkiocccentry
|
||||||
|
toolkit](guidelines.html#mkiocccentry_toolkit).
|
||||||
|
|
||||||
|
|
||||||
<div id="rule5">
|
<div id="rule5">
|
||||||
<div id="rule5-modifying-files">
|
<div id="rule5-modifying-files">
|
||||||
## Rule 5 - Do NOT modify submitted files or filenames or parent directories
|
## Rule 5 - Do NOT modify submitted files, filenames or parent directories
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Your submission **MUST NOT** modify the filenames or content of any of your
|
Your submission **MUST NOT** modify the filenames or content of any of
|
||||||
original submission, such as `prog.c`, `Makefile`, or **ANY** other supplied
|
your original submission, such as `prog.c`, `Makefile`, or **ANY**
|
||||||
files. To modify files, your program can make a copy or you can use the
|
other supplied files. To modify files, your program can make a copy or
|
||||||
`Makefile` to setup working copies. Any working copies **MUST** be cleaned up
|
you can use the `Makefile` to setup working copies. Any working copies
|
||||||
by the `Makefile` `clobber` target, so as to restore the directory to its
|
**MUST** be cleaned up by the `Makefile` `clobber` target, so as to
|
||||||
original state.
|
restore the directory to its original state.
|
||||||
|
|
||||||
Your submission **MUST NOT** create or modify directories and files
|
With the exception of the `/tmp` and the `/var/tmp` directories,
|
||||||
ABOVE the current directory (with the exception of the `/tmp` and the `/var/tmp`
|
assuming the directory name or filename does **NOT** start with a `.`
|
||||||
directories and as long as the directory name or filename does **NOT** start
|
(dot), your submission **MUST NOT** create or modify directories and
|
||||||
with a `.` (dot)).
|
files ABOVE the current directory.
|
||||||
|
|
||||||
The `Makefile` `clobber` target **MUST** restore your submission to its
|
The `Makefile` `clobber` target **MUST** restore your submission to its
|
||||||
original form, including the removal of any created files and directories.
|
original form, including the removal of any created files and
|
||||||
|
directories.
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Your code should be able to run under a
|
Your code should be able to run under a [SUS
|
||||||
[SUS environment](https://pubs.opengroup.org/onlinepubs/9799919799/).
|
environment](https://pubs.opengroup.org/onlinepubs/9799919799/).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
@@ -316,11 +338,12 @@ See [Rule 19 - Prime](rules.html#rule19-prime).
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
You, the author(s), **MUST** own the contents of your submission, **OR**, IF you
|
You, the author(s), **MUST** own the contents of your submission,
|
||||||
do **NOT** own the work, then you **MUST** have permission from the original
|
**OR**, IF you do **NOT** own the work, then you **MUST** have
|
||||||
owner(s) to its use. If you submit **ANY** content that is owned by others, you
|
permission from the original owner(s) to its use. If you submit
|
||||||
**MUST** detail that ownership, i.e., who owns what, and document the permission
|
**ANY** content that is owned by others, you **MUST** detail that
|
||||||
you obtained from them in your `remarks.md` file.
|
ownership, i.e., who owns what, and document the permission you
|
||||||
|
obtained from them in your `remarks.md` file.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
@@ -329,7 +352,8 @@ You are permitted to use tools to write your code.
|
|||||||
|
|
||||||
See [Rule 16 - Anonymous Judging](rules.html#rule16-anonymous-judging),
|
See [Rule 16 - Anonymous Judging](rules.html#rule16-anonymous-judging),
|
||||||
and
|
and
|
||||||
[Guidelines for Rule 7 - Original Work](guidelines.html#guideline7-original).
|
[Guidelines for Rule 7 - Original
|
||||||
|
Work](guidelines.html#guideline7-original).
|
||||||
|
|
||||||
|
|
||||||
<div id="rule8">
|
<div id="rule8">
|
||||||
@@ -339,19 +363,27 @@ and
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
The submit server will accept submissions **ONLY** from those who have
|
The submit server will accept submissions **ONLY** from those who have
|
||||||
registered and **ONLY** while the contest is open.
|
registered and **ONLY** while the contest is open and **ONLY** after
|
||||||
|
you have changed your initial password.
|
||||||
|
|
||||||
The submit server places a total size limit of **3999971** bytes **PER**
|
The submit server places a total size limit of **3999971** bytes
|
||||||
submission.
|
**PER** submission.
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Each account has ten (**10.000**) submission slots (**0..9)**. Each submission
|
Each account has ten (**10.000**) submission slots (**0..9)**.
|
||||||
slot should be annotated by the server as to whether its was received,
|
</p>
|
||||||
processed, malformed, etc. Please take note of any errors, rectify,
|
|
||||||
and resubmit. In order to avoid potential packaging errors, it is **highly
|
<p class="leftbar">
|
||||||
recommended** to use `mkiocccentry(1)`, **AND** to check from time to time the
|
Each submission slot should be annotated by the server as to whether it
|
||||||
status on the submit server, to see if any tests run by the server failed to
|
was received, processed, malformed, etc. Please take note of any
|
||||||
validate your submission.
|
errors, rectify, and resubmit.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="leftbar">
|
||||||
|
In order to avoid potential packaging errors, it is **highly
|
||||||
|
recommended** to use `mkiocccentry(1)`, **AND** to check from time to
|
||||||
|
time the status on the submit server, to see if any tests run by the
|
||||||
|
server failed to validate your submission.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
See
|
See
|
||||||
@@ -360,7 +392,8 @@ See
|
|||||||
and
|
and
|
||||||
[Rule 17 - Use mkiocccentry](rules.html#rule17-mkiocccentry).
|
[Rule 17 - Use mkiocccentry](rules.html#rule17-mkiocccentry).
|
||||||
|
|
||||||
See [Guidelines for Rule 8 - Submitting requirements](guidelines.html#guideline8-submitting).
|
See [Guidelines for Rule 8 - Submitting
|
||||||
|
requirements](guidelines.html#guideline8-submitting).
|
||||||
|
|
||||||
|
|
||||||
<div id="rule9">
|
<div id="rule9">
|
||||||
@@ -370,22 +403,28 @@ See [Guidelines for Rule 8 - Submitting requirements](guidelines.html#guideline8
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
Entries requiring human interaction to be initially compiled are **NOT**
|
Entries requiring human interaction to be initially compiled are **NOT**
|
||||||
permitted. However, see the guidelines. Each entry **MUST** automate the
|
permitted. However, see the [guidelines on rule
|
||||||
build process using `bash`, `gmake`, `gcc` and/or `clang` and other commonly
|
9](guidelines.html#guideline9-no-interactive) as you
|
||||||
available tools under an [SUS
|
**may** suggest alternative compilation steps to do something fun or
|
||||||
|
cute.
|
||||||
|
|
||||||
|
Each entry **MUST** automate the build process using `bash`, `gmake`,
|
||||||
|
`gcc` and/or `clang` and other commonly available tools under an [SUS
|
||||||
environment](https://pubs.opengroup.org/onlinepubs/9799919799/).
|
environment](https://pubs.opengroup.org/onlinepubs/9799919799/).
|
||||||
|
|
||||||
**NOTE**: The references to `gmake(1)` can be any GNU Make compatible tool.
|
**NOTE**: any reference to `gmake(1)` can be any GNU Make compatible
|
||||||
|
tool.
|
||||||
|
|
||||||
**NOTE**: it is better to use the `${MAKE}` variable as then one may override
|
**NOTE**: it is better to use the `${MAKE}` variable as then one may
|
||||||
the make command.
|
override the `make` command.
|
||||||
|
|
||||||
**NOTE**: it is better and more portable to **NOT** modify the `${CC}` variable
|
**NOTE**: it is better to **NOT** modify `${CC}` in your Makefile as
|
||||||
in the Makefile.
|
this makes your program more portable.
|
||||||
|
|
||||||
See [Rule 15 - GNU Makefile](rules.html#rule15-gnu-makefile).
|
See [Rule 15 - GNU Makefile](rules.html#rule15-gnu-makefile).
|
||||||
|
|
||||||
See [Guidelines for Rule 9 - No interactive compiling allowed](guidelines.html#guideline9-no-interactive).
|
See [Guidelines for Rule 9 - No interactive compiling
|
||||||
|
allowed](guidelines.html#guideline9-no-interactive).
|
||||||
|
|
||||||
|
|
||||||
<div id="rule10">
|
<div id="rule10">
|
||||||
@@ -393,16 +432,19 @@ See [Guidelines for Rule 9 - No interactive compiling allowed](guidelines.html#g
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
Programs that require special privileges (`setuid(2)`, `setgid(2)`,
|
Programs that require special privileges (`setuid(2)`, `setgid(2)`,
|
||||||
super-user, special owner, special group, etc.) are **HIGHLY DISCOURAGED**.
|
super-user, special owner, special group, etc.) are **HIGHLY
|
||||||
We do **NOT** guarantee these functions will behave as you expect on our
|
DISCOURAGED**. We do **NOT** guarantee these functions will behave as
|
||||||
test platforms. If your program needs special permissions you **MUST**
|
you expect on our test platforms.
|
||||||
document this fact and explain why it is needed in your submission’s
|
|
||||||
`remarks.md` file, preferably close to the top.
|
If your program needs special permissions you **MUST** document this
|
||||||
|
fact and explain why it is needed in your submission’s `remarks.md`
|
||||||
|
file, preferably close to the top, because `mkiocccentry(1)` will
|
||||||
|
**NOT** set those modes.
|
||||||
|
|
||||||
Furthermore, if you need a supplementary program that you include to
|
Furthermore, if you need a supplementary program that you include to
|
||||||
have these permissions, you will also have to explain this as well, because these
|
have these permissions, you will also have to explain this as well,
|
||||||
bits are **NOT** allowed in submissions and those bits will **NOT** be copied by
|
because these bits are **NOT** allowed in submissions and those bits
|
||||||
`mkiocccentry(1)`.
|
will **NOT** be copied by `mkiocccentry(1)` either.
|
||||||
|
|
||||||
See [Rule 4 - Required files](rules.html#rule4-required-files),
|
See [Rule 4 - Required files](rules.html#rule4-required-files),
|
||||||
and
|
and
|
||||||
@@ -415,16 +457,21 @@ and
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Legal abuse of the rules is **somewhat** encouraged, but comes with risks.
|
Legal abuse of the rules is **somewhat** encouraged, but comes with
|
||||||
A submission that, in the opinion of the Judges, **violates** the rules **WILL
|
risks. A submission that, in the opinion of the Judges, **violates**
|
||||||
BE DISQUALIFIED**. Submissions that plan to abuse the rules **MUST** justify
|
the rules **WILL BE DISQUALIFIED**. Submissions that plan to abuse the
|
||||||
why their rule abuse is legal (or interesting) in the `remarks.md` file.
|
rules **MUST** justify why their rule abuse is legal (or interesting)
|
||||||
|
in the `remarks.md` file.
|
||||||
|
|
||||||
Submission packaging abuse will **NOT** be tolerated and for this reason,
|
Submission packaging abuse will **NOT** be tolerated and for this reason,
|
||||||
amongst many others, it is recommended that you use `mkiocccentry(1)`. During
|
amongst many other reasons, it is recommended that you use
|
||||||
development you can check your `prog.c` size limits using `iocccsize(1)`, e.g.,
|
`mkiocccentry(1)`. See also [Rule 17 - use
|
||||||
`iocccsize -v1 prog.c`. Overriding problems detected by any of the IOCCC tools
|
mkiocccentry](#rule17-mkiocccentry).
|
||||||
risks that the submission will be rejected.
|
|
||||||
|
During development you can check your `prog.c` size limits using
|
||||||
|
`iocccsize(1)`, e.g., `iocccsize -v1 prog.c`. Overriding problems
|
||||||
|
detected by any of the IOCCC tools risks that the submission will be
|
||||||
|
rejected.
|
||||||
|
|
||||||
If you do submit a rule abusing or violating submission, then consider
|
If you do submit a rule abusing or violating submission, then consider
|
||||||
also submitting an alternate version in a different submission server
|
also submitting an alternate version in a different submission server
|
||||||
@@ -432,11 +479,12 @@ slot that does **NOT** violate the rules in case your rule abuse excuse
|
|||||||
is rejected.
|
is rejected.
|
||||||
|
|
||||||
**IMPORTANT**: If you do submit such an alternate non-rule abusing
|
**IMPORTANT**: If you do submit such an alternate non-rule abusing
|
||||||
version, **PLEASE** indicate that in your `remarks.md` file of your non-rule
|
version, **PLEASE** indicate that in your `remarks.md` file of your
|
||||||
abusing version so that the Judges don't think you uploaded a duplicate into a
|
non-rule abusing version so that the Judges don't think you uploaded a
|
||||||
wrong slot by mistake.
|
duplicate into a wrong slot by mistake.
|
||||||
|
|
||||||
See [Guidelines for Rule 11 - Legal rule abuse](guidelines.html#guideline11-abuse).
|
See [Guidelines for Rule 11 - Legal rule
|
||||||
|
abuse](guidelines.html#guideline11-abuse).
|
||||||
|
|
||||||
|
|
||||||
<div id="rule12">
|
<div id="rule12">
|
||||||
@@ -445,8 +493,8 @@ See [Guidelines for Rule 11 - Legal rule abuse](guidelines.html#guideline11-abus
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Use of UTF-8 is supported by `C89` standard and its updates and so too by the
|
Use of UTF-8 is supported by `C89` standard and its updates and so too
|
||||||
IOCCC.
|
by the IOCCC.
|
||||||
|
|
||||||
See [Guidelines for Rule 12 - UTF-8](guidelines.html#guideline12-utf8).
|
See [Guidelines for Rule 12 - UTF-8](guidelines.html#guideline12-utf8).
|
||||||
|
|
||||||
@@ -457,21 +505,21 @@ See [Guidelines for Rule 12 - UTF-8](guidelines.html#guideline12-utf8).
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Any C source that fails to compile because lines contain carriage-returns
|
Any C source that fails to compile because lines contain
|
||||||
(CTRL+M, `\r`) in particular as part of DOS/Windows style newlines might
|
carriage-returns (CTRL+M, `\r`) in particular as part of DOS/Windows
|
||||||
be rejected. Please do **NOT** put trailing CTRL+M in `prog.c`, `Makefile`,
|
style newlines might be rejected. Please do **NOT** put trailing
|
||||||
or `remarks.md` files, but instead end lines with Unix newline (line-feed,
|
CTRL+M in `prog.c`, `Makefile`, or `remarks.md` files, but instead end
|
||||||
CTRL+J, `\n`).
|
lines with Unix newline (line-feed, CTRL+J, `\n`).
|
||||||
|
|
||||||
You are permitted, in order to try and squeeze your `prog.c` under a
|
You are permitted, in order to try and squeeze your `prog.c` under a
|
||||||
[Rule 2a Gross Size](rules.html#rule2a-gross-size) and/or
|
[Rule 2a Gross Size](rules.html#rule2a-gross-size) and/or [Rule 2b Net
|
||||||
[Rule 2b Net Size](rules.html#rule2b-net-size)
|
Size](rules.html#rule2b-net-size) limits, to **NOT** end source with a
|
||||||
limits, to **NOT** end source with a newline. If you
|
newline. If you need to do this, please document that in your
|
||||||
need to do this, please document that in your `remarks.md` file and if
|
`remarks.md` file and if your compiler complains about this, document
|
||||||
your compiler complains about this, document this too and update your
|
this too and update your `Makefile` to account for this.
|
||||||
`Makefile` to account for this.
|
|
||||||
|
|
||||||
See [Guidelines for Rule 13 - No carriage returns in prog.c](guidelines.html#guideline13-nocr).
|
See [Guidelines for Rule 13 - No carriage returns in
|
||||||
|
prog.c](guidelines.html#guideline13-nocr).
|
||||||
|
|
||||||
|
|
||||||
<div id="rule14">
|
<div id="rule14">
|
||||||
@@ -479,14 +527,15 @@ See [Guidelines for Rule 13 - No carriage returns in prog.c](guidelines.html#gui
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
Submissions that are substantially similar to previous winning IOCCC
|
Submissions that are substantially similar to previous winning IOCCC
|
||||||
entries are discouraged.
|
entries are discouraged. See the
|
||||||
|
FAQ on "[What types of entries have been frequently submitted to the
|
||||||
You are allowed to resubmit to a later contest, a submission that didn't win the
|
IOCCC?](../faq.html#frequent-themes).
|
||||||
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 didn't previously
|
|
||||||
win, then you are encouraged to mention this in your `remarks.md` file as this
|
|
||||||
**sometimes** helps.
|
|
||||||
|
|
||||||
|
You are allowed to resubmit to a later contest, a submission that
|
||||||
|
didn't 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 didn't previously win, then you are encouraged to
|
||||||
|
mention this in your `remarks.md` file as this **sometimes** helps.
|
||||||
|
|
||||||
<div id="rule15">
|
<div id="rule15">
|
||||||
<div id="rule15-gnu-makefile">
|
<div id="rule15-gnu-makefile">
|
||||||
@@ -495,24 +544,25 @@ win, then you are encouraged to mention this in your `remarks.md` file as this
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The `Makefile` **MUST** adhere to GNU Makefile syntax. It's highly recommended
|
The `Makefile` **MUST** adhere to GNU Makefile syntax. It's highly
|
||||||
that you copy the [Makefile.example](Makefile.example) as a template, renaming
|
recommended that you copy the [Makefile.example](Makefile.example) as a
|
||||||
it to `Makefile`. The primary target of the `Makefile` **MUST** be `prog` and
|
template, renaming it to `Makefile`. The primary target of the
|
||||||
the source file is `prog.c`. The C compiler and preprocessor **MUST** be
|
`Makefile` **MUST** be `prog` and the source file is `prog.c`. The C
|
||||||
invoked using `${CC}` and `${CPP}` macros respectively.
|
compiler and preprocessor **MUST** be invoked using `${CC}` and
|
||||||
|
`${CPP}` macros respectively.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
The `clobber` target **MUST** clean and restore the submission directory tree to
|
The `clobber` target **MUST** clean and restore the submission
|
||||||
its original state, such as removing temporary files or any modified data files.
|
directory tree to its original state, such as removing temporary files
|
||||||
Don't assume that `git` tool chain is installed, i.e. do **NOT** expect `git
|
or any modified data files. Don't assume that `git` tool chain is
|
||||||
clean -f` to work. To be clear: do **NOT** use `git` to clean out files as this
|
installed, i.e. do **NOT** expect `git clean -f` to work. To be clear:
|
||||||
can cause problems in the winner repo!
|
do **NOT** use `git` to clean out files as this **WILL** cause problems
|
||||||
|
in the winner repo!
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The `Makefile` **MUST** use a syntax that is compatible with
|
The `Makefile` **MUST** use a syntax that is compatible with `bash(1)`
|
||||||
`bash(1)` and GNU `make(1)`. You are encouraged to use `SHELL=
|
and GNU `make(1)`. You are encouraged to use `SHELL= bash` in your
|
||||||
bash` in your `Makefile`; please add a space between the `=` and
|
`Makefile`; please add a space between the `=` and the value such as:
|
||||||
the value such as:
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
``` <!---makefile-->
|
``` <!---makefile-->
|
||||||
@@ -523,19 +573,27 @@ the value such as:
|
|||||||
Assume that commands commonly found in [Single UNIX
|
Assume that commands commonly found in [Single UNIX
|
||||||
Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification)
|
Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification)
|
||||||
environments and systems are available in the search
|
environments and systems are available in the search
|
||||||
`$PATH`. Avoid command options that aren't part of
|
`$PATH`.
|
||||||
[SUS](https://en.wikipedia.org/wiki/Single_UNIX_Specification), such as
|
|
||||||
GNU long name options (such as `--example`) or extensions like `grep -P`.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
Do **NOT** assume that `.` (current directory) is in the `$PATH` environment variable.
|
<p class="leftbar">
|
||||||
|
Avoid command options that aren't part of
|
||||||
|
[SUS](https://en.wikipedia.org/wiki/Single_UNIX_Specification), such as
|
||||||
|
GNU long name options (such as `--example`) or extensions like `grep
|
||||||
|
-P`.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
Do **NOT** assume that `.` (current directory) is in the `$PATH`
|
||||||
|
environment variable.
|
||||||
|
|
||||||
See [Rule 4 - Required files](rules.html#rule4-required-files).
|
See [Rule 4 - Required files](rules.html#rule4-required-files).
|
||||||
|
|
||||||
See
|
See
|
||||||
FAQ on "[What are the detailed recommendations for a submission Makefile?](../faq.html#makefile_details)".
|
FAQ on "[What are the detailed recommendations for a submission
|
||||||
|
Makefile?](../faq.html#makefile_details)".
|
||||||
|
|
||||||
See [Guidelines for Rule 15 - GNU Makefile](guidelines.html#guideline15-gnu-makefile).
|
See [Guidelines for Rule 15 - GNU
|
||||||
|
Makefile](guidelines.html#guideline15-gnu-makefile).
|
||||||
|
|
||||||
|
|
||||||
<div id="rule16">
|
<div id="rule16">
|
||||||
@@ -547,13 +605,13 @@ See [Guidelines for Rule 15 - GNU Makefile](guidelines.html#guideline15-gnu-make
|
|||||||
Your source code, data files, remarks, and program output **MUST NOT**
|
Your source code, data files, remarks, and program output **MUST NOT**
|
||||||
identify the author(s) of your code (unless you are **Peter Honeyman**
|
identify the author(s) of your code (unless you are **Peter Honeyman**
|
||||||
or pretending to be **Peter Honeyman**). In order to be impartial the
|
or pretending to be **Peter Honeyman**). In order to be impartial the
|
||||||
[Judges](https://www.ioccc.org/judges.html) do **NOT** know who is submitting
|
[Judges](https://www.ioccc.org/judges.html) do **NOT** know who is
|
||||||
programs to the IOCCC until final selection is made, and **only** submissions
|
submitting programs to the IOCCC until final selection is made, and
|
||||||
that won.
|
**only** submissions that won.
|
||||||
|
|
||||||
Even if you are a past winner, you **MUST NOT** reveal your identity
|
Even if you are a past winner, you **MUST NOT** reveal your identity
|
||||||
deliberately or by accident anywhere in your submission. **_Failure to comply
|
deliberately or by accident anywhere in your submission. **_Failure to
|
||||||
may result in the submission being disqualified_**.
|
comply may result in the submission being disqualified_**.
|
||||||
|
|
||||||
|
|
||||||
<div id="rule17">
|
<div id="rule17">
|
||||||
@@ -564,87 +622,95 @@ may result in the submission being disqualified_**.
|
|||||||
|
|
||||||
TL;DR: use `mkiocccentry(1)` to package your submission.
|
TL;DR: use `mkiocccentry(1)` to package your submission.
|
||||||
|
|
||||||
The files, directories, and paths **MUST** conform to the limits imposed by
|
The files, directories, and paths **MUST** conform to the limits
|
||||||
`mkiocccentry(1)`, including but **NOT** limited, to their names, count, path
|
imposed by `mkiocccentry(1)`, including but **NOT** limited, to their
|
||||||
length, directory tree depth, and permissions.
|
names, count, path length, directory tree depth, and permissions.
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The submission tree may have at most **13** directories and maximum
|
The submission tree may have at most **13** directories and maximum
|
||||||
directory depths of **4**. The maximum number of files, excluding
|
directory depths of **4**. The maximum number of files, excluding
|
||||||
`prog.c`, `remarks.md`, `Makefile`, `prog.alt.c`, `try.sh`, `try.alt.sh`,
|
`prog.c`, `remarks.md`, `Makefile`, `prog.alt.c`, `try.sh`,
|
||||||
`.info.json` and `.auth.json` is **31**. And the maximum file-path
|
`try.alt.sh`, `.info.json` and `.auth.json` is **31**. And the maximum
|
||||||
component is **38** and maximum path length is **60**.
|
file-path component is **38** and maximum path length is **60**.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
The submission **MUST** be a `.txz` compressed tarball (i.e., tarball compressed by `xz(1)`)
|
The submission **MUST** be a `.txz` compressed tarball (i.e., tarball
|
||||||
as constructed by `mkiocccentry(1)`, which **MUST** be within **[1..3999971]** bytes in size.
|
compressed by `xz(1)`) as constructed by `mkiocccentry(1)`, which
|
||||||
|
**MUST** be within **[1..3999971]** bytes in size.
|
||||||
|
|
||||||
The tarball **MUST** be a **v7 format** tarball, and any supplementary tarballs
|
The tarball **MUST** be a **v7 format** tarball, and any supplementary
|
||||||
you provide **MUST** also be **v7 format**.
|
tarballs you provide **MUST** also be **v7 format**.
|
||||||
|
|
||||||
The sum of all file lengths, after unpacking from the tarball, **MUST** be
|
The sum of all file lengths, after unpacking from the tarball, **MUST**
|
||||||
less than `27651*1024` (**28314624**) bytes.
|
be less than `27651*1024` (**28314624**) bytes.
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The submission **MUST** pass all `txzchk(1)` checks, and the tarball filename
|
The submission **MUST** pass all `txzchk(1)` checks, and the tarball
|
||||||
**MUST** pass all `fnamchk(1)` checks as well.
|
filename **MUST** pass all `fnamchk(1)` checks as well.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
You may **NOT** submit a tarball created by the `-d`, `-e` **OR** by the `-s
|
You may **NOT** submit a tarball created by the `-d`, `-e` **OR** by
|
||||||
seed` options of `mkiocccentry(1)`.
|
the `-s seed` options of `mkiocccentry(1)`.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The unpacked submission directory **MUST** pass the checks performed by the
|
The unpacked submission directory **MUST** pass the checks performed by
|
||||||
minimum required version of `chksubmit(1)`.
|
the minimum required version of `chksubmit(1)`.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Submissions may **NOT** use a [mkiocccentry
|
Submissions may **NOT** use a [mkiocccentry
|
||||||
toolkit](https://github.com/ioccc-src/mkiocccentry) command line options that
|
toolkit](https://github.com/ioccc-src/mkiocccentry) command line
|
||||||
are labelled as "**for TESTING purposes**", **OR** labelled as "**for the use by
|
options that are labelled as "**for TESTING purposes**", **OR**
|
||||||
the IOCCC judges only**", in their respective man pages.
|
labelled as "**for the use by the IOCCC judges only**", in their
|
||||||
|
respective man pages.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Submissions may **ONLY** use [mkiocccentry
|
Submissions may **ONLY** use [mkiocccentry
|
||||||
toolkit](https://github.com/ioccc-src/mkiocccentry) command lines that confirm
|
toolkit](https://github.com/ioccc-src/mkiocccentry) command lines that
|
||||||
to the command's `-h` "_print help message_", again notwithstanding the options
|
confirm to the command's `-h` "_print help message_", again
|
||||||
for testing and the IOCCC judges.
|
notwithstanding the options for testing and the IOCCC judges.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The `prog.c` file should pass the [Rule 2 - Size restrictions](rules.html#rule2-size)
|
The `prog.c` file should pass the [Rule 2 - Size
|
||||||
checks performed by `iocccsize(1)`.
|
restrictions](rules.html#rule2-size) checks performed by
|
||||||
|
`iocccsize(1)`.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The `.auth.json` and `.info.json` files **MUST** be compatible with what
|
The `.auth.json` and `.info.json` files **MUST** be exactly
|
||||||
`mkiocccentry(1)` generates.
|
what the minimum required `mkiocccentry(1)` version generates.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
Any submission that fails to pass the checks performed by the minimum required
|
Any submission that fails to pass the checks performed by the minimum
|
||||||
version of the [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
|
required version of the [mkiocccentry
|
||||||
**WILL be rejected**!
|
toolkit](https://github.com/ioccc-src/mkiocccentry) **WILL be
|
||||||
|
rejected**!
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
See [Rule 4 - Required files](rules.html#rule4-required-files).
|
See [Rule 4 - Required files](rules.html#rule4-required-files).
|
||||||
|
|
||||||
See the
|
See the
|
||||||
FAQ on "[What is the mkiocccentry tool, how do I obtain it and how do I use it?](../faq.html#mkiocccentry)".
|
FAQ on "[What is the mkiocccentry tool, how do I obtain it and how do I
|
||||||
|
use it?](../faq.html#mkiocccentry)".
|
||||||
|
|
||||||
See the [Guidelines for Rule 17 - Use mkiocccentry](guidelines.html#guideline17-mkiocccentry).
|
See the [Guidelines for Rule 17 - Use
|
||||||
|
mkiocccentry](guidelines.html#guideline17-mkiocccentry).
|
||||||
|
|
||||||
|
|
||||||
<div id="rule18">
|
<div id="rule18">
|
||||||
## Rule 18 - Submission license
|
## Rule 18 - Submission license
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
The entirety of your submission **MUST** be submitted under the following license:
|
The entirety of your submission **MUST** be submitted under the
|
||||||
|
following license:
|
||||||
|
|
||||||
[CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)
|
[CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0
|
||||||
|
International](https://creativecommons.org/licenses/by-sa/4.0/).
|
||||||
|
|
||||||
See [Rule 7 - Original Work](rules.html#rule7-original-work).
|
See [Rule 7 - Original Work](rules.html#rule7-original-work).
|
||||||
|
|
||||||
@@ -657,8 +723,8 @@ See [Rule 7 - Original Work](rules.html#rule7-original-work).
|
|||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
This 19th rule, while prime, is reserved for future abuse 😁.
|
This 19th rule, while prime, is reserved for future abuse 😁.
|
||||||
Additional rules, both humorous and otherwise, may be added
|
Additional rules, both humorous and otherwise, may be added below this
|
||||||
below this rule in future contests.
|
rule in future contests.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
See [Rule 6 - Free Rule](rules.html#rule6-free-rule).
|
See [Rule 6 - Free Rule](rules.html#rule6-free-rule).
|
||||||
@@ -666,18 +732,21 @@ See [Rule 6 - Free Rule](rules.html#rule6-free-rule).
|
|||||||
|
|
||||||
## Further Reading
|
## Further Reading
|
||||||
|
|
||||||
Please read the [Guidelines](guidelines.html) next for further commentary on these rules.
|
Please read the [Guidelines](guidelines.html) next for further
|
||||||
|
commentary on these rules.
|
||||||
|
|
||||||
Read the
|
Read the
|
||||||
[Entering the IOCCC: the bare minimum you need to know](https://www.ioccc.org/quick-start.html#enter)
|
FAQ on "[Entering the IOCCC: the bare minimum you need to
|
||||||
|
know](https://www.ioccc.org/quick-start.html#enter)"
|
||||||
for an overview of how to enter the contest.
|
for an overview of how to enter the contest.
|
||||||
|
|
||||||
See also the [FAQ](../faq.html).
|
See also the [FAQ](../faq.html) in general.
|
||||||
|
|
||||||
And now [for something completely different](guidelines.html#fun).
|
And now [for something completely different](guidelines.html#fun).
|
||||||
|
|
||||||
Consider joining the [IOCCC Discord Server](https://discord.com/invite/Wa42Qujwnw)
|
Consider joining the [IOCCC Discord
|
||||||
for discussions about The Rules, questions for the Judges, and `C` in general.
|
Server](https://discord.com/invite/Wa42Qujwnw) for discussions about
|
||||||
|
The Rules, questions for the Judges, and `C` in general.
|
||||||
|
|
||||||
Leonid A. Broukhis
|
Leonid A. Broukhis
|
||||||
chongo (Landon Curt Noll) /\\cc/\\
|
chongo (Landon Curt Noll) /\\cc/\\
|
||||||
Reference in new issue
Block a user