Merge pull request #225 from xexyl/chkentry

Update FAQ, rules/guidelines etc. for #208
This commit is contained in:
Landon Curt Noll authored and GitHub committed 2025-11-17 12:08:39 -08:00
commit 156ebd29d1
10 files changed
+1293 -3387

No files matched your search

+244 -688
View File
File diff suppressed because it is too large. Load diff
+172 -585
View File
File diff suppressed because it is too large. Load diff
+502 -926
View File
File diff suppressed because it is too large. Load diff
+131 -529
View File
File diff suppressed because it is too large. Load diff
+210 -419
View File
@@ -488,12 +488,10 @@ writing by <a href="../contact.html">contacting the judges</a>.</p>
</div> </div>
</div> </div>
<p class="leftbar"> <p class="leftbar">
These <a href="rules.html">IOCCC rules</a> are version <strong>28.30 2025-03-03</strong>. These <a href="rules.html">IOCCC rules</a> are version <strong>28.31 2025-11-17</strong>.
</p>
<p class="leftbar">
The markdown form of these rules <a href="rules.md" download="rules.md">is
available for download</a>.
</p> </p>
<p>The markdown form of these rules <a href="rules.md" download="rules.md">is
available for download</a>.</p>
<p><strong>IMPORTANT</strong>: Be sure to read the <a href="guidelines.html">IOCCC guidelines</a>.</p> <p><strong>IMPORTANT</strong>: Be sure to read the <a href="guidelines.html">IOCCC guidelines</a>.</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="change_marks"> <div id="change_marks">
@@ -545,16 +543,14 @@ This contest will enter the <strong><a href="../faq.html#judging">judging</a></s
<strong>IMPORTANT NOTE</strong>: Until the contest enters the <strong><a href="../faq.html#open">open</a></strong> state, any or all <strong>IMPORTANT NOTE</strong>: Until the contest enters the <strong><a href="../faq.html#open">open</a></strong> state, any or all
of the above <strong>dates and times may change</strong>! of the above <strong>dates and times may change</strong>!
</p> </p>
<p class="leftbar"> <p>See the
See the
FAQ on “<a href="../faq.html#mkiocccentry">obtaining and compiling the mkiocccentry tools</a>” FAQ on “<a href="../faq.html#mkiocccentry">obtaining and compiling the mkiocccentry tools</a>”
and the and the
FAQ on “<a href="../quick-start.html#enter">how to enter the IOCCC</a>” FAQ on “<a href="../quick-start.html#enter">how to enter the IOCCC</a>”
as that FAQ has important details on as that FAQ has important details on
<a href="../next/register.html">how to register</a> <a href="../next/register.html">how to register</a>
as well as as well as
<a href="../next/submit.html">how to upload your submission</a> to the IOCCC. <a href="../next/submit.html">how to upload your submission</a> to the IOCCC.</p>
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rules"> <div id="rules">
<h1 id="ioccc-rules">IOCCC RULES</h1> <h1 id="ioccc-rules">IOCCC RULES</h1>
@@ -563,192 +559,132 @@ as well as
<div id="rule_abuse"> <div id="rule_abuse">
<h4 id="a-warning-about-rule-abuse">A warning about rule abuse</h4> <h4 id="a-warning-about-rule-abuse">A warning about rule abuse</h4>
</div> </div>
<p class="leftbar"> <p><strong>WARNING:</strong> Abusing these rules comes with a <strong>fair amount of risk</strong>
<strong>WARNING:</strong> Abusing these rules comes with a <strong>fair amount of risk</strong>
that your submission will be rejected. If you do plan to abuse the that your submission will be rejected. If you do plan to abuse the
rules, then you <strong>MUST CLEARLY EXPLAIN THE RATIONALE</strong> in your <code>remarks.md</code> file, rules, then you <strong>MUST CLEARLY EXPLAIN THE RATIONALE</strong> in your <code>remarks.md</code> file,
as to why you think your rule abuse should be allowed, and as to why you think as to why you think your rule abuse should be allowed, and as to why you think
your submission should not be rejected for a rule violation. your submission should not be rejected for a rule violation.
<strong>Nevertheless, <em>even if you do</em> explain this in your <code>remarks.md</code> file <strong>Nevertheless, <em>even if you do</em> explain this in your <code>remarks.md</code> file
you submission may still be rejected</strong>. you submission may still be rejected</strong>.</p>
</p> <p>If you use the most recently released official IOCCC submission packaging tool
<p class="leftbar">
If you use the most recently released official IOCCC submission packaging tool
(hereby referred to as <code>mkiocccentry(1)</code>), which we <strong>STRONGLY recommend you (hereby referred to as <code>mkiocccentry(1)</code>), which we <strong>STRONGLY recommend you
do</strong>, then the <code>mkiocccentry(1)</code> tool will warn you if there appears to be a do</strong>, then the <code>mkiocccentry(1)</code> tool will warn you if there appears to be a
violation in certain rules (not all can be detected). The <code>mkiocccentry(1)</code> violation in certain rules (not all can be detected). The <code>mkiocccentry(1)</code>
tool also runs <code>chkentry(1)</code> and <code>txzchk(1)</code>, the latter of which runs tool also runs <code>chksubmit(1)</code> and <code>txzchk(1)</code>, the latter of which runs
<code>fnamchk(1)</code>. Overriding problems detected by any of these tools comes with a <code>fnamchk(1)</code>. Overriding problems detected by any of these tools comes with a
<strong>fair amount of risk</strong> that your submission will be rejected. <strong>fair amount of risk</strong> that your submission will be rejected.</p>
</p> <p>If you do override a rule violation warning from the <code>mkiocccentry(1)</code> or
<p class="leftbar">
If you do override a rule violation warning from the <code>mkiocccentry(1)</code> or
another related IOCCC tool, or otherwise plan to abuse the rules, then you another related IOCCC tool, or otherwise plan to abuse the rules, then you
<strong>MUST CLEARLY EXPLAIN THE RATIONALE</strong> of why you are attempting to abuse the <strong>MUST CLEARLY EXPLAIN THE RATIONALE</strong> of why you are attempting to abuse the
rules in your <code>remarks.md</code> file. <strong><em>Even if you do</em> explain this in your rules in your <code>remarks.md</code> file. <strong><em>Even if you do</em> explain this in your
<code>remarks.md</code> file your submission may still be rejected</strong>. <code>remarks.md</code> file your submission may still be rejected</strong>.</p>
</p> <p><strong>HINT:</strong> If you do submit such a rule abusing / rule violating
<p class="leftbar">
<strong>HINT:</strong> If you do submit such a rule abusing / rule violating
submission, then consider also submitting an alternate version in a submission, then consider also submitting an alternate version in a
<strong>different submission</strong> server slot that does <strong>NOT</strong> violate the rules <strong>different submission</strong> server slot that does <strong>NOT</strong> violate the rules
in case your rule abuse excuse is rejected. in case your rule abuse excuse is rejected.</p>
</p> <p><strong>IMPORTANT</strong>: if you do submit such an alternate non-rule abusing version,
<p class="leftbar">
<strong>IMPORTANT</strong>: if you do submit such an alternate non-rule abusing version,
<strong>PLEASE</strong> indicate that in your <code>remarks.md</code> file of your non-rule abusing <strong>PLEASE</strong> indicate that in your <code>remarks.md</code> file of your non-rule abusing
version so that the <a href="../judges.html">IOCCC judges</a> do not think you uploaded a version so that the <a href="../judges.html">IOCCC judges</a> do not think you uploaded a
duplicate into a wrong slot by mistake. duplicate into a wrong slot by mistake.</p>
</p> <p>Uploading a tarball not formed by <code>mkiocccentry(1)</code> puts you at a very big risk of
<p class="leftbar">
Uploading a tarball not formed by <code>mkiocccentry(1)</code> puts you at a very big risk of
violating <a href="rules.html#rule17">Rule 17</a>, especially as <code>mkiocccentry(1)</code> does a violating <a href="rules.html#rule17">Rule 17</a>, especially as <code>mkiocccentry(1)</code> does a
great number of things that are required, and it also runs many checks, and if great number of things that are required, and it also runs many checks, and if
any of those checks fail, you are at a very great risk of having your submission any of those checks fail, you are at a very great risk of having your submission
rejected for violating <a href="rules.html#rule17">Rule 17</a>. rejected for violating <a href="rules.html#rule17">Rule 17</a>.</p>
</p> <p>See also <a href="#rule13">Rule 12</a>.</p>
<p class="leftbar">
See also <a href="#rule13">Rule 12</a>.
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule0"> <div id="rule0">
<h2 id="rule-0">Rule 0</h2> <h2 id="rule-0">Rule 0</h2>
</div> </div>
<p class="leftbar"> <p>Just as C starts at 0, so the IOCCC starts at <a href="#rule0">Rule 0</a>. :-)</p>
Just as C starts at 0, so the IOCCC starts at <a href="#rule0">Rule 0</a>. :-) <p>The “<a href="#dates">Important IOCCC dates</a>” section above is part of this rule.</p>
</p>
<p class="leftbar">
The “<a href="#dates">Important IOCCC dates</a>” section above is part of this rule.
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule1"> <div id="rule1">
<h2 id="rule-1">Rule 1</h2> <h2 id="rule-1">Rule 1</h2>
</div> </div>
<p class="leftbar"> <p>Your submission must be a C program.</p>
Your submission must be a C program. <p>You see, the contest is not called the <strong>International Obfuscated JSON Contest</strong>
</p>
<p class="leftbar">
You see, the contest is not called the <strong>International Obfuscated JSON Contest</strong>
(<strong>IOJSONC</strong>), even if the <a href="https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec">so-called JSON (<strong>IOJSONC</strong>), even if the <a href="https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec">so-called JSON
spec</a> might be called obfuscated spec</a> might be called obfuscated
by some people. :-) by some people. :-)</p>
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule2"> <div id="rule2">
<h2 id="rule-2">Rule 2</h2> <h2 id="rule-2">Rule 2</h2>
</div> </div>
<p><a href="#rule2">Rule 2</a> requires that your submission satisfy <strong>BOTH</strong> <a href="#rule2a">Rule <p><a href="#rule2">Rule 2</a> requires that your submission satisfy <strong>BOTH</strong> <a href="#rule2a">Rule
2a</a> <strong>AND</strong> <a href="#rule2b">Rule 2b</a>.</p> 2a</a> <strong>AND</strong> <a href="#rule2b">Rule 2b</a>.</p>
<p class="leftbar"> <p>You may check your code with respect to <a href="#rule2a">Rule 2a</a> and <a href="#rule2b">Rule
You may check your code with respect to <a href="#rule2a">Rule 2a</a> and <a href="#rule2b">Rule
2b</a> prior to submitting your code by giving the filename 2b</a> prior to submitting your code by giving the filename
as a command like argument to the <code>iocccsize(1)</code> tool. For example: as a command like argument to the <code>iocccsize(1)</code> tool. For example:</p>
</p>
<pre><code> iocccsize prog.c</code></pre> <pre><code> iocccsize prog.c</code></pre>
<p class="leftbar"> <p>The source to <code>iocccsize(1)</code> may be found in the
The source to <code>iocccsize(1)</code> may be found in the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>.</p>
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>. <p>See also the
</p>
<p class="leftbar">
See also the
FAQ on “<a href="../faq.html#mkiocccentry_test">how to further test your submission</a>” FAQ on “<a href="../faq.html#mkiocccentry_test">how to further test your submission</a>”
for more more thorough testing, including <a href="#rule2">Rule 2</a>. for more more thorough testing, including <a href="#rule2">Rule 2</a>.</p>
</p> <p>See also <a href="#rule2a">Rule 2a</a>, <a href="#rule2b">Rule 2b</a>, and <a href="#rule17">Rule 17</a>.</p>
<p class="leftbar">
See also <a href="#rule2a">Rule 2a</a>, <a href="#rule2b">Rule 2b</a>, and <a href="#rule17">Rule 17</a>.
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule2a"> <div id="rule2a">
<h2 id="rule-2a">Rule 2a</h2> <h2 id="rule-2a">Rule 2a</h2>
</div> </div>
<p class="leftbar"> <p class="leftbar">
The size of your program source <strong>should NOT exceed 4993 bytes</strong>. The size of your program source <strong>MUST NOT exceed 4993 bytes</strong>.
</p> </p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule2b"> <div id="rule2b">
<h2 id="rule-2b">Rule 2b</h2> <h2 id="rule-2b">Rule 2b</h2>
</div> </div>
<p class="leftbar"> <p>When the filename of your program source is given as a command line argument to
When the filename of your program source is given as a command line argument to
the latest version of the official IOCCC size tool (hereby referred to as the latest version of the official IOCCC size tool (hereby referred to as
<code>iocccsize(1)</code>), the value printed <strong>should NOT exceed <em>2503</em></strong>. <code>iocccsize(1)</code>), the value printed <strong>MUST NOT exceed <em>2503</em></strong>.</p>
</p> <p>See also <a href="#rule17">Rule 17</a>.</p>
<p class="leftbar">
See also <a href="#rule17">Rule 17</a>.
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule3"> <div id="rule3">
<h2 id="rule-3">Rule 3</h2> <h2 id="rule-3">Rule 3</h2>
</div> </div>
<p class="leftbar"> <p>You must <a href="../next/register.html">register</a> in order to submit your entry to the IOCCC.
You must <a href="../next/register.html">register</a> in order to submit your entry to the IOCCC.
You may <a href="../next/register.html">register</a> while the contest is either You may <a href="../next/register.html">register</a> while the contest is either
<strong><a href="../faq.html#pending">pending</a></strong> or <strong><a href="../faq.html#open">open</a></strong>. <strong><a href="../faq.html#pending">pending</a></strong> or <strong><a href="../faq.html#open">open</a></strong>.</p>
</p> <p>When the contest is <strong><a href="../faq.html#open">open</a></strong>, the <a href="https://submit.ioccc.org">submit server</a>
<p class="leftbar">
When the contest is <strong><a href="../faq.html#open">open</a></strong>, the <a href="https://submit.ioccc.org">submit server</a>
will email you your <a href="https://submit.ioccc.org">submit server</a> will email you your <a href="https://submit.ioccc.org">submit server</a>
<strong>Username</strong> and <strong>Initial password</strong>. <strong>Please be patient</strong> as it may take some time, <strong>Username</strong> and <strong>Initial password</strong>. <strong>Please be patient</strong> as it may take some time,
perhaps as much as a few days, for your registration to be processed and for that email to be sent. perhaps as much as a few days, for your registration to be processed and for that email to be sent.</p>
</p> <p>Those who <a href="../next/register.html">register</a> while the contest status is <strong><a href="../faq.html#pending">pending</a></strong>
<p class="leftbar">
Those who <a href="../next/register.html">register</a> while the contest status is <strong><a href="../faq.html#pending">pending</a></strong>
will receive their email (containing their <a href="https://submit.ioccc.org">submit server</a> <strong>Username</strong> will receive their email (containing their <a href="https://submit.ioccc.org">submit server</a> <strong>Username</strong>
and <strong>Initial password</strong>), later: usually a few days around the time when the contest status and <strong>Initial password</strong>), later: usually a few days around the time when the contest status
becomes <strong><a href="../faq.html#open">open</a></strong>. becomes <strong><a href="../faq.html#open">open</a></strong>.</p>
</p> <p>Once that email with your <strong>Username</strong> and <strong>Initial password</strong> is sent, you
<p class="leftbar"> will have fortnight (<strong>14 days</strong>) to <a href="../next/pw-change.html">change your submit server initial password</a>.</p>
Once that email with your <strong>Username</strong> and <strong>Initial password</strong> is sent, you <p>If you do not change your <strong>Initial password</strong> in time, you will have to
will have fortnight (<strong>14 days</strong>) to <a href="../next/pw-change.html">change your submit server initial password</a>.
</p>
<p class="leftbar">
If you do not change your <strong>Initial password</strong> in time, you will have to
<a href="../contact.md#if-you-really-need-to-send-email-the-ioccc-judges">send email to the IOCCC judges</a> <a href="../contact.md#if-you-really-need-to-send-email-the-ioccc-judges">send email to the IOCCC judges</a>
to ask for your password to be reset. to ask for your password to be reset.</p>
</p> <p>Because it takes time (maybe even a few days) to process your registration
<p class="leftbar">
Because it takes time (maybe even a few days) to process your registration
and for the server to email you your initial login and password, you and for the server to email you your initial login and password, you
should <strong>MAKE SURE</strong> you give yourself enough time to register well should <strong>MAKE SURE</strong> you give yourself enough time to register well
before the contest closes. In other words, <strong>DO NOT WAIT UNTIL THE FINAL DAYS</strong> before the contest closes. In other words, <strong>DO NOT WAIT UNTIL THE FINAL DAYS</strong>
of the contest to register! The <a href="../judges.html">IOCCC judges</a> of the contest to register! The <a href="../judges.html">IOCCC judges</a>
are <strong>NOT</strong> responsible for delayed or lost email, or for those who wait are <strong>NOT</strong> responsible for delayed or lost email, or for those who wait
until the last minute to try to register! until the last minute to try to register!</p>
</p> <p>See the
<p class="leftbar">
See the
FAQ on “<a href="../quick-start.html#enter">how to register and submit to the IOCCC</a>” FAQ on “<a href="../quick-start.html#enter">how to register and submit to the IOCCC</a>”
for instructions on registering and participating in the IOCCC, as the process for instructions on registering and participating in the IOCCC, as the process
may change from contest to contest. may change from contest to contest.</p>
</p> <p>See also <a href="#rule8">Rule 8</a>.</p>
<p class="leftbar">
See also <a href="#rule8">Rule 8</a>.
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule4"> <div id="rule4">
<h2 id="rule-4">Rule 4</h2> <h2 id="rule-4">Rule 4</h2>
</div> </div>
<p class="leftbar"> <p>If your submission is selected as a winning entry, then your submission may be modified in order
If your submission is selected as a winning entry, then your submission may be modified in order to fit into the structure of the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a>.</p>
to fit into the structure of the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a>. <p>For example, your submission’s <code>Makefile</code> will be modified and your <code>remarks.md</code>
</p> will become a <code>README.md</code> which will be used to generate an <code>index.html</code> file.</p>
<p class="leftbar"> <p>Your source code will be the file <code>prog.c</code>. The compiled binary
For example, your submission’s <code>Makefile</code> will be modified and your <code>remarks.md</code>
will become a <code>README.md</code> which will be used to generate an <code>index.html</code> file.
</p>
<p class="leftbar">
Your source code will be the file <code>prog.c</code>. The compiled binary
will be called <code>prog</code>. If you submission requires different filenames, will be called <code>prog</code>. If you submission requires different filenames,
then modify your submission’s <code>Makefile</code> to <strong>COPY</strong> (<strong>NOT</strong> move!) the files then modify your submission’s <code>Makefile</code> to <strong>COPY</strong> (<strong>NOT</strong> move!) the files
accordingly. accordingly.</p>
</p> <p>Of course your program may also do this, as long as it works, but you’re welcome
<p class="leftbar"> to use your <code>Makefile</code> as well.</p>
Of course your program may also do this, as long as it works, but you’re welcome <p>See also <a href="#rule5">Rule 5</a>, <a href="#rule18">Rule 18</a> and <a href="#rule21">Rule 21</a>.</p>
to use your <code>Makefile</code> as well.
</p>
<p class="leftbar">
See also <a href="#rule5">Rule 5</a>, <a href="#rule18">Rule 18</a> and <a href="#rule21">Rule 21</a>.
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule5"> <div id="rule5">
<h2 id="rule-5">Rule 5</h2> <h2 id="rule-5">Rule 5</h2>
@@ -758,64 +694,45 @@ part of your original submission including, but not limited to <code>prog.c</cod
<code>Makefile</code> or any data files you submit.</p> <code>Makefile</code> or any data files you submit.</p>
<p>If you submission needs (or wishes :-) ) to modify such content, it <strong>MUST</strong> <p>If you submission needs (or wishes :-) ) to modify such content, it <strong>MUST</strong>
first copy the file to a new filename and then modify that copy.</p> first copy the file to a new filename and then modify that copy.</p>
<p class="leftbar"> <p>You may use your submission (program) to form a copy, or you can make use of
You may use your submission (program) to form a copy, or you can make use of your <code>Makefile</code> to form that copy.</p>
your <code>Makefile</code> to form that copy. <p>If you do make a copy of a submission file, <strong>PLEASE</strong> be sure that
</p>
<p class="leftbar">
If you do make a copy of a submission file, <strong>PLEASE</strong> be sure that
the <code>clobber</code> rule of your <code>Makefile</code> removes that copy in order to the <code>clobber</code> rule of your <code>Makefile</code> removes that copy in order to
restore your submission to its original submission state. restore your submission to its original submission state.</p>
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule6"> <div id="rule6">
<h2 id="rule-6">Rule 6</h2> <h2 id="rule-6">Rule 6</h2>
</div> </div>
<p class="leftbar"> <p>I am not a rule, I am a <code>free(void *human);</code> ‼️</p>
I am not a rule, I am a <code>free(void *human);</code> ‼️ <p>        <code>while (!(ioccc(rule(you(are(number(6)))))) {</code><br>
</p>
<p class="leftbar">
        <code>while (!(ioccc(rule(you(are(number(6)))))) {</code><br>
                <code>ha_ha_ha();</code><br>                 <code>ha_ha_ha();</code><br>
        <code>}</code>         <code>}</code></p>
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule7"> <div id="rule7">
<h2 id="rule-7">Rule 7</h2> <h2 id="rule-7">Rule 7</h2>
</div> </div>
<p class="leftbar"> <p>The obfuscated C program must be your own original work.</p>
The obfuscated C program must be your own original work. <p>You (the author(s)) <strong>MUST</strong> own the contents of your submission <strong>OR</strong>
</p> you <strong>MUST</strong> have permission from the owner(s) to submit their content.</p>
<p class="leftbar"> <p>If you submit any content that is owned by others, you <strong>MUST
You (the author(s)) <strong>MUST</strong> own the contents of your submission <strong>OR</strong>
you <strong>MUST</strong> have permission from the owner(s) to submit their content.
</p>
<p class="leftbar">
If you submit any content that is owned by others, you <strong>MUST
detail that ownership</strong> (i.e., who owns what) <strong><em>AND</em> document the detail that ownership</strong> (i.e., who owns what) <strong><em>AND</em> document the
permission you obtained from them</strong>, in your <code>remarks.md</code> file. permission you obtained from them</strong>, in your <code>remarks.md</code> file.</p>
</p> <p>Please note that the tools in <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
<p class="leftbar">
Please note that the tools in <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
repo</a> are <strong>NOT</strong> original works, repo</a> are <strong>NOT</strong> original works,
unless of course you’re the original authors, in which case they are original. :-) unless of course you’re the original authors, in which case they are original. :-)</p>
</p> <p>Nevertheless tools such as those listed are <strong>NOT</strong> obfuscated. If submitted, they
<p class="leftbar"> would probably violate a number of rules. :-)</p>
Nevertheless tools such as those listed are <strong>NOT</strong> obfuscated. If submitted, they
would probably violate a number of rules. :-)
</p>
<ul> <ul>
<li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/mkiocccentry.c">mkiocccentry(1)</a></li> <li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/mkiocccentry.c">mkiocccentry(1)</a></li>
<li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c">iocccsize(1)</a></li> <li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c">iocccsize(1)</a></li>
<li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/chkentry.c">chkentry(1)</a></li> <li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/chksubmit.c">chksubmit(1)</a></li>
<li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c">txzchk(1)</a></li> <li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c">txzchk(1)</a></li>
<li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/location_main.c">location(1)</a></li> <li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/location_main.c">location(1)</a></li>
<li><a href="https://github.com/xexyl/jparse">jparse repo as cloned by the mkiocccentry repo</a></li> <li><a href="https://github.com/xexyl/jparse">jparse repo as cloned by the mkiocccentry repo</a></li>
<li><a href="https://github.com/lcn2/dbg">dbg repo as cloned by the mkiocccentry repo</a></li> <li><a href="https://github.com/lcn2/dbg">dbg repo as cloned by the mkiocccentry repo</a></li>
<li><a href="https://github.com/lcn2/dyn_array">dyn_array repo as cloned by the mkiocccentry repo</a></li> <li><a href="https://github.com/lcn2/dyn_array">dyn_array repo as cloned by the mkiocccentry repo</a></li>
</ul> </ul>
<p class="leftbar"> <p>The IOCCC has a rich history of remarkable winning entries created by
The IOCCC has a rich history of remarkable winning entries created by
authors who skillfully employed various techniques to develop their code. authors who skillfully employed various techniques to develop their code.
While it is <strong>NOT</strong> required, you are <em>allowed</em> to use tools to develop While it is <strong>NOT</strong> required, you are <em>allowed</em> to use tools to develop
and test your submission. These tools may include, but are not limited and test your submission. These tools may include, but are not limited
@@ -823,77 +740,50 @@ to code generators, code analysis tools, static code analysis tools,
runtime analysis tools, machine learning tools, natural language models, runtime analysis tools, machine learning tools, natural language models,
code copilot tools, so-called AI services, large language models (LLMs), etc. code copilot tools, so-called AI services, large language models (LLMs), etc.
If you do make use of such tools or services, then we <strong>ENCOURAGE you to describe If you do make use of such tools or services, then we <strong>ENCOURAGE you to describe
what tools and how you used those tools</strong>, in your <code>remarks.md</code> file. what tools and how you used those tools</strong>, in your <code>remarks.md</code> file.</p>
</p> <p>See also <a href="#rule5">Rule 5</a>, <a href="#rule18">Rule 18</a> and <a href="#rule21">Rule 21</a>.</p>
<p class="leftbar">
See also <a href="#rule5">Rule 5</a>, <a href="#rule18">Rule 18</a> and <a href="#rule21">Rule 21</a>.
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule8"> <div id="rule8">
<h2 id="rule-8">Rule 8</h2> <h2 id="rule-8">Rule 8</h2>
</div> </div>
<p class="leftbar"> <p>Submissions may only be uploaded to the <a href="https://submit.ioccc.org">IOCCC submit server</a>
Submissions may only be uploaded to the <a href="https://submit.ioccc.org">IOCCC submit server</a> while the contest is <strong><a href="../faq.html#open">open</a></strong>.</p>
while the contest is <strong><a href="../faq.html#open">open</a></strong>. <p>If you have <a href="../next/register.html">registered</a> and received by email your <a href="https://submit.ioccc.org">submit
</p>
<p class="leftbar">
If you have <a href="../next/register.html">registered</a> and received by email your <a href="https://submit.ioccc.org">submit
server</a> <strong>Username</strong> and <strong>Initial password</strong> you may server</a> <strong>Username</strong> and <strong>Initial password</strong> you may
upload your submission to the <a href="https://submit.ioccc.org">submit server</a> but upload your submission to the <a href="https://submit.ioccc.org">submit server</a> but
<strong>ONLY</strong> while the contest is <strong><a href="../faq.html#open">open</a></strong>. <strong>ONLY</strong> while the contest is <strong><a href="../faq.html#open">open</a></strong>.</p>
</p> <p>The <a href="https://submit.ioccc.org">submit server</a>, in accordance with <a href="rules.html#rule17">Rule
<p class="leftbar">
The <a href="https://submit.ioccc.org">submit server</a>, in accordance with <a href="rules.html#rule17">Rule
17</a>, places a limit of <strong>3999971</strong> bytes on the size of your 17</a>, places a limit of <strong>3999971</strong> bytes on the size of your
upload. upload.</p>
</p> <p>Once the contest is in the <strong><a href="../faq.html#judging">judging</a></strong> state (or
<p class="leftbar"> <strong><a href="../faq.html#closed">closed</a></strong> state), you may <strong>NOT</strong> upload submissions.</p>
Once the contest is in the <strong><a href="../faq.html#judging">judging</a></strong> state (or <p>While the contest is <strong><a href="../faq.html#open">open</a></strong> or in the
<strong><a href="../faq.html#closed">closed</a></strong> state), you may <strong>NOT</strong> upload submissions.
</p>
<p class="leftbar">
While the contest is <strong><a href="../faq.html#open">open</a></strong> or in the
<strong><a href="../faq.html#judging">judging</a></strong> state, the <a href="../judges.html">IOCCC judges</a> <strong><a href="../faq.html#judging">judging</a></strong> state, the <a href="../judges.html">IOCCC judges</a>
<strong>MAY</strong> (but are not required to) modify the slot comment of your submission to <strong>MAY</strong> (but are not required to) modify the slot comment of your submission to
indicate that they have received it. If uploaded submission is malformed, the indicate that they have received it. If uploaded submission is malformed, the
<a href="../judges.html">IOCCC judges</a> <strong>MAY</strong> (but are not required to) modify the slot <a href="../judges.html">IOCCC judges</a> <strong>MAY</strong> (but are not required to) modify the slot
comment accordingly. comment accordingly.</p>
</p> <p>You are <strong>STRONGLY</strong> advised to use the <code>mkiocccentry(1)</code> tool
<p class="leftbar">
You are <strong>STRONGLY</strong> advised to use the <code>mkiocccentry(1)</code> tool
as found in the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a> as found in the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>
to form the file to upload to the <a href="https://submit.ioccc.org">submit server</a>. to form the file to upload to the <a href="https://submit.ioccc.org">submit server</a>.</p>
</p> <p>The <a href="https://submit.ioccc.org">submit server</a> will become active when the
<p class="leftbar">
The <a href="https://submit.ioccc.org">submit server</a> will become active when the
contest is <strong><a href="../faq.html#open">open</a></strong>. Until the contest status becomes contest is <strong><a href="../faq.html#open">open</a></strong>. Until the contest status becomes
<strong><a href="../faq.html#open">open</a></strong>, the <a href="https://submit.ioccc.org">submit server</a> may <strong><a href="../faq.html#open">open</a></strong>, the <a href="https://submit.ioccc.org">submit server</a> may
be offline and/or unresponsive. be offline and/or unresponsive.</p>
</p> <p>See the
<p class="leftbar">
See the
FAQs on “<a href="../faq.html#mkiocccentry">obtaining, compiling, installing and using the latest release of the mkiocccentry tools</a>” FAQs on “<a href="../faq.html#mkiocccentry">obtaining, compiling, installing and using the latest release of the mkiocccentry tools</a>”
for more information about the <code>mkiocccentry(1)</code> tool. for more information about the <code>mkiocccentry(1)</code> tool.</p>
</p> <p>See the “<a href="#dates">Important IOCCC dates</a>” section above for when these contest states are scheduled.</p>
<p class="leftbar"> <p>See also <a href="#rule3">Rule 3</a> and <a href="#rule17">Rule 17</a>.</p>
See the “<a href="#dates">Important IOCCC dates</a>” section above for when these contest states are scheduled.
</p>
<p class="leftbar">
See also <a href="#rule3">Rule 3</a> and <a href="#rule17">Rule 17</a>.
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule9"> <div id="rule9">
<h2 id="rule-9">Rule 9</h2> <h2 id="rule-9">Rule 9</h2>
</div> </div>
<p class="leftbar"> <p>Each <strong>PERSON</strong> may register <strong>ONLY ONE</strong> account and each account may submit up to
Each <strong>PERSON</strong> may register <strong>ONLY ONE</strong> account and each account may submit up to and including <strong>10.000000</strong> (ten in base 10) submissions <strong>PER</strong> contest.</p>
and including <strong>10.000000</strong> (ten in base 10) submissions <strong>PER</strong> contest.
</p>
<p><strong>Each submission <em>must be submitted separately</em></strong>.</p> <p><strong>Each submission <em>must be submitted separately</em></strong>.</p>
<p class="leftbar"> <p>If this seems unreasonable we suggest you wait until the next contest and in
If this seems unreasonable we suggest you wait until the next contest and in the interim ponder this (modified or not) quote said by Bill Gates:</p>
the interim ponder this (modified or not) quote said by Bill Gates:
</p>
<blockquote> <blockquote>
<p>640K submissions ought to be enough for anybody.</p> <p>640K submissions ought to be enough for anybody.</p>
<p>– Bill Gates s/640K/10/ (allegedly :-) )</p> <p>– Bill Gates s/640K/10/ (allegedly :-) )</p>
@@ -914,14 +804,10 @@ DISCOURAGED</strong>. We do not guarantee these functions will behave as
you expect on our test platforms. If your program needs special you expect on our test platforms. If your program needs special
permissions you <strong>MUST</strong> document this fact, and explain why permissions you <strong>MUST</strong> document this fact, and explain why
it is needed in your submission’s <code>remarks.md</code> file.</p> it is needed in your submission’s <code>remarks.md</code> file.</p>
<p class="leftbar"> <p>Furthermore, if you need a supplementary program that you include, to have these
Furthermore, if you need a supplementary program that you include, to have these
permissions, you will also have to explain this, because these bits are not permissions, you will also have to explain this, because these bits are not
allowed in submissions and those bits will not be copied by <code>mkiocccentry(1)</code>. allowed in submissions and those bits will not be copied by <code>mkiocccentry(1)</code>.</p>
</p> <p>See also <a href="#rule17">Rule 17</a>.</p>
<p class="leftbar">
See also <a href="#rule17">Rule 17</a>.
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule12"> <div id="rule12">
<h2 id="rule-12">Rule 12</h2> <h2 id="rule-12">Rule 12</h2>
@@ -930,163 +816,118 @@ See also <a href="#rule17">Rule 17</a>.
the opinion of the <a href="../judges.html">judges</a>, violates the rules WILL BE DISQUALIFIED</strong>. the opinion of the <a href="../judges.html">judges</a>, violates the rules WILL BE DISQUALIFIED</strong>.
Submissions that attempt to abuse the rules <strong>MUST</strong> try to justify why Submissions that attempt to abuse the rules <strong>MUST</strong> try to justify why
their rule abuse is legal, in the <code>remarks.md</code> file.</p> their rule abuse is legal, in the <code>remarks.md</code> file.</p>
<p class="leftbar"> <p>See also <a href="#rule_abuse">the warning about rule abuse</a>.</p>
See also <a href="#rule_abuse">the warning about rule abuse</a>.
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule13"> <div id="rule13">
<h2 id="rule-13">Rule 13</h2> <h2 id="rule-13">Rule 13</h2>
</div> </div>
<p class="leftbar"> <p>7 out of 13 UTF-8 characters in C code agree that this rule number is lucky
7 out of 13 UTF-8 characters in C code agree that this rule number is lucky enough to be a prime number.</p>
enough to be a prime number. <p>Fun fact: the fear of the number 13 is called <em>triskaidekaphobia</em>.</p>
</p>
<p class="leftbar">
Fun fact: the fear of the number 13 is called <em>triskaidekaphobia</em>.
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule14"> <div id="rule14">
<h2 id="rule-14">Rule 14</h2> <h2 id="rule-14">Rule 14</h2>
</div> </div>
<p class="leftbar"> <p>Any C source that fails to compile because of lines with trailing
Any C source that fails to compile because of lines with trailing control-M’s (i.e., lines with a trailing byte <code>015</code>) <strong>might</strong> be rejected.</p>
control-M’s (i.e., lines with a trailing byte <code>015</code>) <strong>might</strong> be rejected. <p>Please do <strong>NOT</strong> put trailing control-M’s on <code>prog.c</code>, <code>Makefile</code>, or
</p>
<p class="leftbar">
Please do <strong>NOT</strong> put trailing control-M’s on <code>prog.c</code>, <code>Makefile</code>, or
<code>remarks.md</code> files but instead end lines with a trailing newline (i.e., <code>remarks.md</code> files but instead end lines with a trailing newline (i.e.,
byte <code>012</code>) character. byte <code>012</code>) character.</p>
</p> <p>As we do <strong>NOT</strong> use DOS, please also be sure that the <code>Makefile</code> and
<p class="leftbar"> <code>remarks.md</code> files end in final newline (i.e., byte <code>012</code>) character.</p>
As we do <strong>NOT</strong> use DOS, please also be sure that the <code>Makefile</code> and <p>You are permitted, in order to try and squeeze your <code>prog.c</code> under
<code>remarks.md</code> files end in final newline (i.e., byte <code>012</code>) character.
</p>
<p class="leftbar">
You are permitted, in order to try and squeeze your <code>prog.c</code> under
a <a href="#rule2a">Rule 2a</a> and/or <a href="#rule2b">Rule 2b</a> limit, to <strong>NOT</strong> a <a href="#rule2a">Rule 2a</a> and/or <a href="#rule2b">Rule 2b</a> limit, to <strong>NOT</strong>
end your <code>prog.c</code> with a newline (i.e., byte <code>012</code>) character. end your <code>prog.c</code> with a newline (i.e., byte <code>012</code>) character.
If you need to do this, <strong>PLEASE</strong> document that in your <code>remarks.md</code> file and If you need to do this, <strong>PLEASE</strong> document that in your <code>remarks.md</code> file and
if your compiler complains about this, document this too and update your if your compiler complains about this, document this too and update your
<code>Makefile</code> to account for this. <code>Makefile</code> to account for this.</p>
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule15"> <div id="rule15">
<h2 id="rule-15">Rule 15</h2> <h2 id="rule-15">Rule 15</h2>
</div> </div>
<p class="leftbar"> <p>In order to register for the IOCCC, you <strong>MUST</strong> have a valid email address.</p>
In order to register for the IOCCC, you <strong>MUST</strong> have a valid email address. <p>The <a href="../judges.html">judges</a> <strong>are NOT responsible for delays in email</strong>, so please plan
</p> enough time accordingly.</p>
<p class="leftbar"> <p>See the
The <a href="../judges.html">judges</a> <strong>are NOT responsible for delays in email</strong>, so please plan
enough time accordingly.
</p>
<p class="leftbar">
See the
FAQ on “<a href="../quick-start.html#register">how to register</a>” FAQ on “<a href="../quick-start.html#register">how to register</a>”
for details. for details.</p>
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule16"> <div id="rule16">
<h2 id="rule-16">Rule 16</h2> <h2 id="rule-16">Rule 16</h2>
</div> </div>
<p>Submissions that are similar to previous winning IOCCC entries are discouraged.</p> <p>Submissions that are similar to previous winning IOCCC entries are discouraged.</p>
<p class="leftbar"> <p>You are allowed to resubmit to a later contest, a submission that
You are allowed to resubmit to a later contest, a submission that
did not win the IOCCC. If you do so, then you would be well advised did not win the IOCCC. If you do so, then you would be well advised
to try and enhance and improve your submission. to try and enhance and improve your submission.
If you do resubmit something that did not previously win, then If you do resubmit something that did not previously win, then
you are <strong>encouraged</strong> to mention this in your <code>remarks.md</code> file you are <strong>encouraged</strong> to mention this in your <code>remarks.md</code> file
as this <strong>sometimes</strong> helps. as this <strong>sometimes</strong> helps.</p>
</p> <p>Resubmitting an improved submission that did not become an
<p class="leftbar">
Resubmitting an improved submission that did not become an
IOCCC winning entry is a <strong>time honored</strong> tradition of the IOCCC. IOCCC winning entry is a <strong>time honored</strong> tradition of the IOCCC.
There are some IOCCC winning entries that were submitted to multiple contests There are some IOCCC winning entries that were submitted to multiple contests
before they were improved enough to “climb over” (as the expression before they were improved enough to “climb over” (as the expression
goes) all the other submissions for a given contest. goes) all the other submissions for a given contest.</p>
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule17"> <div id="rule17">
<h2 id="rule-17">Rule 17</h2> <h2 id="rule-17">Rule 17</h2>
</div> </div>
<p class="leftbar"> <p>Your submission must be in the form of a <strong>xz compressed tarball</strong> that
Your submission must be in the form of a <strong>xz compressed tarball</strong> that
the <strong>current released version</strong> of the <code>mkiocccentry(1)</code> tool would generate. the <strong>current released version</strong> of the <code>mkiocccentry(1)</code> tool would generate.
The files, directories, and paths <strong>MUST</strong> conform to the limits imposed The files, directories, and paths <strong>MUST</strong> conform to the limits imposed
by <code>mkiocccentry(1)</code> including but <strong>NOT LIMITED</strong> to their names, count, by <code>mkiocccentry(1)</code> including but <strong>NOT LIMITED</strong> to their names, count,
path length, directory tree depth and permissions. path length, directory tree depth and permissions.</p>
</p> <p>Your <strong>xz compressed tarball</strong> must be larger than <strong>0</strong> bytes and no larger
<p class="leftbar"> than <strong>3999971</strong> bytes.</p>
Your <strong>xz compressed tarball</strong> must be larger than <strong>0</strong> bytes and no larger <p>The sum of the byte lengths of all files, after the <strong>xz compressed tarball</strong> is untarred,
than <strong>3999971</strong> bytes. must <strong>NOT</strong> exceed <code>27651*1024</code> bytes.</p>
</p> <p>Your <strong>xz compressed tarball</strong> submission <em>file</em> <strong>MUST</strong> pass the tests performed by
<p class="leftbar"> the current version of <code>txzchk(1)</code>.</p>
The sum of the byte lengths of all files, after the <strong>xz compressed tarball</strong> is untarred, <p>Your <strong>xz compressed tarball</strong> submission <em>filename</em> <strong>MUST</strong> pass the tests
must <strong>NOT</strong> exceed <code>27651*1024</code> bytes. performed by the current version of <code>fnamchk(1)</code>.</p>
</p> <p>When your <strong>xz compressed tarball</strong> submission file is untarred, the
<p class="leftbar">
Your <strong>xz compressed tarball</strong> submission <em>file</em> <strong>MUST</strong> pass the tests performed by
the current version of <code>txzchk(1)</code>.
</p>
<p class="leftbar">
Your <strong>xz compressed tarball</strong> submission <em>filename</em> <strong>MUST</strong> pass the tests
performed by the current version of <code>fnamchk(1)</code>.
</p>
<p class="leftbar">
When your <strong>xz compressed tarball</strong> submission file is untarred, the
resulting <em>directory</em> <strong>MUST</strong> pass the checks performed by the current version resulting <em>directory</em> <strong>MUST</strong> pass the checks performed by the current version
of <code>chkentry(1)</code>. of <code>chksubmit(1)</code>.</p>
</p> <p>The resulting <code>prog.c</code> file <strong>MUST</strong> pass the <a href="#rule2">Rule 2</a> size checks performed by the current
<p class="leftbar"> version of <code>iocccsize(1)</code>.</p>
The resulting <code>prog.c</code> file <strong>MUST</strong> pass the <a href="#rule2">Rule 2</a> size checks performed by the current <p>The <code>.auth.json</code> and <code>.info.json</code> <strong>MUST</strong> be compatible with what the
version of <code>iocccsize(1)</code>.
</p>
<p class="leftbar">
The <code>.auth.json</code> and <code>.info.json</code> <strong>MUST</strong> be compatible with what the
current version of the <code>mkiocccentry(1)</code> tool would produce. They <strong>MUST current version of the <code>mkiocccentry(1)</code> tool would produce. They <strong>MUST
ALSO</strong> pass the tests performed by the current version of <code>chkentry(1)</code>. ALSO</strong> pass the tests performed by the current version of <code>chksubmit(1)</code>.</p>
</p> <p>The required <code>Makefile</code> must <strong>NOT</strong> be empty.</p>
<p class="leftbar"> <p>The required <code>remarks.md</code> must <strong>NOT</strong> be empty.</p>
The required <code>Makefile</code> must <strong>NOT</strong> be empty. <p>You may <strong>NOT</strong> submit a tarball created by the <code>-d</code> or <code>-s seed</code> option of
</p> <code>mkiocccentry(1)</code>.</p>
<p class="leftbar">
The required <code>remarks.md</code> must <strong>NOT</strong> be empty.
</p>
<p class="leftbar">
You may <strong>NOT</strong> submit a tarball created by the <code>-d</code> or <code>-s seed</code> option of
<code>mkiocccentry(1)</code>.
</p>
<p class="leftbar"> <p class="leftbar">
The maximum number of files your submission tarball may contain, not counting The maximum number of files your submission tarball may contain, not counting
the optional files (<code>prog.alt.c</code>, <code>try.sh</code>, <code>try.alt.sh</code>) and the mandatory the free files (<code>prog.c</code>, <code>remarks.md</code>, <code>Makefile</code>, <code>prog.alt.c</code>, <code>try.sh</code>,
files (<code>prog.c</code>, <code>Makefile</code>, <code>remarks.md</code>) is 31. <code>try.alt.sh</code> and the two files generated by <code>mkiocccentry</code>, <code>.info.json</code> and
<code>.auth.json</code>) is 31.
</p>
<p class="leftbar">
The maximum number of directories your submission may have is 13 and the maximum
depth a path may have is 4.
</p>
<p class="leftbar">
The maximum filename length (a component of a path) is 38 which means the
maximum length total of a path is 60 characters.
</p> </p>
<p>See the <p>See the
FAQ on “<a href="../faq.html#extra-files">what extra files are and how to include more</a>” FAQ on “<a href="../faq.html#extra-files">what extra files are and how to include more</a>”
as well as the <a href="guidelines.html#extra-files">guidelines on extra files</a> as well as the <a href="guidelines.html#extra-files">guidelines on extra files</a>
for more details.</p> for more details.</p>
<h3 id="tldr-rule-17---use-mkiocccentry1-to-form-your-submission">TL;DR Rule 17 - Use <code>mkiocccentry(1)</code> to form your submission</h3> <h3 id="tldr-rule-17---use-mkiocccentry1-to-form-your-submission">TL;DR Rule 17 - Use <code>mkiocccentry(1)</code> to form your submission</h3>
<p class="leftbar"> <p>Let the current version of the <code>mkiocccentry(1)</code> tool form your <strong>xz
Let the current version of the <code>mkiocccentry(1)</code> tool form your <strong>xz compressed tarball</strong> submission file.</p>
compressed tarball</strong> submission file.
</p>
<h3 id="warning">Warning</h3> <h3 id="warning">Warning</h3>
<p class="leftbar"> <p>Using command line flags or input prompts to override checks and
Using command line flags or input prompts to override checks and
limits made by the above mentioned tools is <strong>NOT</strong> recommended limits made by the above mentioned tools is <strong>NOT</strong> recommended
and may result in your submission being rejected by the <a href="https://submit.ioccc.org">IOCCC and may result in your submission being rejected by the <a href="https://submit.ioccc.org">IOCCC
submit server</a> and/or the <a href="../judges.html">IOCCC Judges</a>. submit server</a> and/or the <a href="../judges.html">IOCCC Judges</a>.</p>
</p> <p>See the
<p class="leftbar">
See the
FAQ on the “<a href="../faq.html#mkiocccentry">mkiocccentry toolkit</a> FAQ on the “<a href="../faq.html#mkiocccentry">mkiocccentry toolkit</a>
for how to obtain and use the above mentioned tools. for how to obtain and use the above mentioned tools.</p>
</p> <p><strong>IMPORTANT</strong>: See the
<p class="leftbar">
<strong>IMPORTANT</strong>: See the
FAQ on “<a href="../faq.html#rule17">Rule 17</a>” FAQ on “<a href="../faq.html#rule17">Rule 17</a>”
for very important details behind this rule. for very important details behind this rule.</p>
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule18"> <div id="rule18">
<h2 id="rule-18">Rule 18</h2> <h2 id="rule-18">Rule 18</h2>
@@ -1095,53 +936,37 @@ for very important details behind this rule.
<blockquote> <blockquote>
<p><strong><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a></strong></p> <p><strong><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a></strong></p>
</blockquote> </blockquote>
<p class="leftbar"> <p>See also <a href="#rule7">Rule 7</a>.</p>
See also <a href="#rule7">Rule 7</a>.
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule19"> <div id="rule19">
<h2 id="rule-19">Rule 19</h2> <h2 id="rule-19">Rule 19</h2>
</div> </div>
<p class="leftbar"> <p>The <code>remarks.md</code> file, a required non-empty file, must be written in
The <code>remarks.md</code> file, a required non-empty file, must be written in <a href="https://www.markdownguide.org/basic-syntax/">Markdown format</a>.</p>
<a href="https://www.markdownguide.org/basic-syntax/">Markdown format</a>. <p>We currently use <a href="https://pandoc.org">pandoc(1)</a> to automatically
</p>
<p class="leftbar">
We currently use <a href="https://pandoc.org">pandoc(1)</a> to automatically
convert markdown to HTML. Please try to avoid submitting an HTML file convert markdown to HTML. Please try to avoid submitting an HTML file
translation to any markdown file. If you <strong>MUST</strong> submit such an HTML translation to any markdown file. If you <strong>MUST</strong> submit such an HTML
translation, <strong>PLEASE</strong> mention this in your <code>remarks.md</code> file. translation, <strong>PLEASE</strong> mention this in your <code>remarks.md</code> file.</p>
</p> <p>For any submission that wins the contest, we modify your <code>remarks.md</code> file and
<p class="leftbar">
For any submission that wins the contest, we modify your <code>remarks.md</code> file and
rename it as <code>README.md</code> and then use <a href="https://pandoc.org">pandoc(1)</a> rename it as <code>README.md</code> and then use <a href="https://pandoc.org">pandoc(1)</a>
to generate the <code>index.html</code> file in the top level directory of your submission. to generate the <code>index.html</code> file in the top level directory of your submission.
For this reason, <code>mkiocccentry(1)</code> will <strong>NOT</strong> package such files (in the top For this reason, <code>mkiocccentry(1)</code> will <strong>NOT</strong> package such files (in the top
level submission directory) and both <code>txzchk(1)</code> and <code>chkentry(1)</code> will flag level submission directory) and both <code>txzchk(1)</code> and <code>chksubmit(1)</code> will flag
them as errors (in the top level submission directory) as well, so please do them as errors (in the top level submission directory) as well, so please do
<strong>NOT</strong> try and slip these files in the top level directory where your <strong>NOT</strong> try and slip these files in the top level directory where your
<code>remarks.md</code> resides. <code>remarks.md</code> resides.</p>
</p> <p>See the <a href="https://www.markdownguide.org/cheat-sheet/">Markdown Cheat Sheet</a>
<p class="leftbar"> for a handy quick reference to the Markdown syntax.</p>
See the <a href="https://www.markdownguide.org/cheat-sheet/">Markdown Cheat Sheet</a> <p>See the <a href="https://www.markdownguide.org">Markdown guide</a>
for a handy quick reference to the Markdown syntax.
</p>
<p class="leftbar">
See the <a href="https://www.markdownguide.org">Markdown guide</a>
for free and open-source reference guide that explains for free and open-source reference guide that explains
how to use markdown. how to use markdown.</p>
</p> <p>See also the <a href="http://daringfireball.net/projects/markdown/basics">Daring Fireball Markdown:
<p class="leftbar">
See also the <a href="http://daringfireball.net/projects/markdown/basics">Daring Fireball Markdown:
Basics</a> for Basics</a> for
information on the markdown format. information on the markdown format.</p>
</p> <p><strong>PLEASE</strong> see our
<p class="leftbar">
<strong>PLEASE</strong> see our
FAQ on “<a href="../faq.html#remarks_md">remarks.md</a>” FAQ on “<a href="../faq.html#remarks_md">remarks.md</a>”
<strong>AND</strong> the <strong>AND</strong> the
<a href="../markdown.html">IOCCC markdown guidelines</a> for additional markdown guidance. <a href="../markdown.html">IOCCC markdown guidelines</a> for additional markdown guidance.</p>
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule20"> <div id="rule20">
<h2 id="rule-20">Rule 20</h2> <h2 id="rule-20">Rule 20</h2>
@@ -1149,54 +974,40 @@ FAQ on “<a href="../faq.html#remarks_md">remarks.md</a>”
<p>The how to build instructions must be in GNU Makefile format. See the <p>The how to build instructions must be in GNU Makefile format. See the
FAQ about “<a href="../faq.html#make_compatibility">make(1) compatibility the IOCCC supports</a> FAQ about “<a href="../faq.html#make_compatibility">make(1) compatibility the IOCCC supports</a>
for more details.</p> for more details.</p>
<p class="leftbar"> <p>You are <strong>ENCOURAGED</strong> to use the
You are <strong>ENCOURAGED</strong> to use the
Makefile example, renamed as <code>Makefile</code> of course, for help in constructing your Makefile example, renamed as <code>Makefile</code> of course, for help in constructing your
<code>Makefile</code>. See the <a href="guidelines.html#makefile">Makefile section</a> in the <code>Makefile</code>. See the <a href="guidelines.html#makefile">Makefile section</a> in the
guidelines for more details. guidelines for more details.</p>
</p>
<p>The target of the <code>Makefile</code> must be called <code>prog</code>. The original <p>The target of the <code>Makefile</code> must be called <code>prog</code>. The original
C source file must be called <code>prog.c</code>.</p> C source file must be called <code>prog.c</code>.</p>
<p>To invoke the C compiler, use <code>${CC}</code>. To invoke the C preprocessor use <p>To invoke the C compiler, use <code>${CC}</code>. To invoke the C preprocessor use
<code>${CPP}</code>.</p> <code>${CPP}</code>.</p>
<p>Do <strong>NOT</strong> assume that <code>.</code> (the current directory) is in the <code>$PATH</code>.</p> <p>Do <strong>NOT</strong> assume that <code>.</code> (the current directory) is in the <code>$PATH</code>.</p>
<p class="leftbar"> <p>When <code>make clobber</code> is invoked, we request that your submission directory be restored
When <code>make clobber</code> is invoked, we request that your submission directory be restored
to its original submission state. For example, any temporary files to its original submission state. For example, any temporary files
created during the build process, or during execution should be created during the build process, or during execution should be
removed by the <code>clobber</code> rule. removed by the <code>clobber</code> rule.</p>
</p> <p>Your <code>Makefile</code> <strong>MUST</strong> use a syntax that is compatible with <code>bash(1)</code>
<p class="leftbar">
Your <code>Makefile</code> <strong>MUST</strong> use a syntax that is compatible with <code>bash(1)</code>
<strong>AND</strong> GNU <code>make(1)</code>. You are <strong>ENCOURAGED</strong> to use <code>SHELL= bash</code> in <strong>AND</strong> GNU <code>make(1)</code>. You are <strong>ENCOURAGED</strong> to use <code>SHELL= bash</code> in
your <code>Makefile</code>. Please add a space between the <code>=</code> and the value. your <code>Makefile</code>. Please add a space between the <code>=</code> and the value.</p>
</p> <p>Assume that commands commonly found in <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX
<p class="leftbar">
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 that conform to the <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX environments and systems that conform to the <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX
Specification</a> are Specification</a> are
available in the <code>$PATH</code> search path. available in the <code>$PATH</code> search path.</p>
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule21"> <div id="rule21">
<h2 id="rule-21">Rule 21</h2> <h2 id="rule-21">Rule 21</h2>
</div> </div>
<p class="leftbar"> <p>Your submission <strong>MUST NOT</strong> create or modify files <strong>ABOVE</strong> the current directory
Your submission <strong>MUST NOT</strong> create or modify files <strong>ABOVE</strong> the current directory
<em>with the exception of</em> the <code>/tmp</code> and the <code>/var/tmp</code> directories. Your submission <em>with the exception of</em> the <code>/tmp</code> and the <code>/var/tmp</code> directories. Your submission
<strong>MAY</strong> create subdirectories <strong>below</strong> the submission directory, or in <code>/tmp</code>, <strong>MAY</strong> create subdirectories <strong>below</strong> the submission directory, or in <code>/tmp</code>,
or in <code>/var/tmp</code> provided that <code>.</code> is <strong>NOT</strong> the first byte in any or in <code>/var/tmp</code> provided that <code>.</code> is <strong>NOT</strong> the first byte in any
directory name or filename you create. directory name or filename you create.</p>
</p> <p>If you do create files and directories, <strong>PLEASE</strong> be sure that
<p class="leftbar">
If you do create files and directories, <strong>PLEASE</strong> be sure that
the <code>clobber</code> rule of your <code>Makefile</code> removes such created files the <code>clobber</code> rule of your <code>Makefile</code> removes such created files
in order to restore your submission to its original submission state. in order to restore your submission to its original submission state.</p>
</p> <p>See also <a href="#rule5">Rule 5</a>.</p>
<p class="leftbar">
See also <a href="#rule5">Rule 5</a>.
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule22"> <div id="rule22">
<h2 id="rule-22">Rule 22</h2> <h2 id="rule-22">Rule 22</h2>
@@ -1210,11 +1021,9 @@ identify the authors of your code. The <a href="../judges.html">judges</a> <stro
within your code, data, remarks or program output (unless you are within your code, data, remarks or program output (unless you are
<strong>Peter Honeyman</strong> or pretending to be <strong>Peter Honeyman</strong>) will be grounds <strong>Peter Honeyman</strong> or pretending to be <strong>Peter Honeyman</strong>) will be grounds
for disqualification of your submission.</p> for disqualification of your submission.</p>
<p class="leftbar"> <p>And don’t assume that we won’t be able to determine your name even if it’s not
And don’t assume that we won’t be able to determine your name even if it’s not
obvious, because you stand a significant chance of violating this rule if you obvious, because you stand a significant chance of violating this rule if you
do. do.</p>
</p>
<p>Yes, Virginia, <strong>WE REALLY MEAN IT!</strong></p> <p>Yes, Virginia, <strong>WE REALLY MEAN IT!</strong></p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule23"> <div id="rule23">
@@ -1250,60 +1059,42 @@ The <a href="rules.html">IOCCC rule set</a> needs more than <code>5^2</code> rul
<div id="rule27"> <div id="rule27">
<h2 id="rule-27">Rule 27</h2> <h2 id="rule-27">Rule 27</h2>
</div> </div>
<p class="leftbar"> <p>Unless otherwise needed, <a href="#rule27">Rule 27</a> is reserved for something cubic. :-)</p>
Unless otherwise needed, <a href="#rule27">Rule 27</a> is reserved for something cubic. :-)
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="rule28"> <div id="rule28">
<h2 id="rule-28">Rule 28</h2> <h2 id="rule-28">Rule 28</h2>
</div> </div>
<p class="leftbar"> <p><a href="#rule28">Rule 28</a> is a perfect way to end the list of <a href="rules.html">IOCCC rules</a>
<a href="#rule28">Rule 28</a> is a perfect way to end the list of <a href="rules.html">IOCCC rules</a> as we do <strong>NOT</strong> plan to have <strong>496</strong> rules. :-)</p>
as we do <strong>NOT</strong> plan to have <strong>496</strong> rules. :-)
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="more-information"> <div id="more-information">
<div id="information"> <div id="information">
<h1 id="for-more-information">FOR MORE INFORMATION:</h1> <h1 id="for-more-information">FOR MORE INFORMATION:</h1>
</div> </div>
</div> </div>
<p class="leftbar"> <p>For questions or comments about the contest, see <a href="../contact.html">Contacting the IOCCC</a>.</p>
For questions or comments about the contest, see <a href="../contact.html">Contacting the IOCCC</a>. <p><strong>Be SURE</strong> to review the <a href="index.html">IOCCC Rules and Guidelines</a> as they
</p> may (and <strong>often do</strong>) change from year to year.</p>
<p class="leftbar"> <p><strong>PLEASE</strong> be <strong>SURE</strong> you have the <strong>current</strong> <a href="rules.html">IOCCC rules</a> and
<strong>Be SURE</strong> to review the <a href="index.html">IOCCC Rules and Guidelines</a> as they <a href="guidelines.html">IOCCC guidelines</a> prior to submitting to the contest.</p>
may (and <strong>often do</strong>) change from year to year.
</p>
<p class="leftbar">
<strong>PLEASE</strong> be <strong>SURE</strong> you have the <strong>current</strong> <a href="rules.html">IOCCC rules</a> and
<a href="guidelines.html">IOCCC guidelines</a> prior to submitting to the contest.
</p>
<p>See the <a href="../news.html">Official IOCCC website news</a> for additional information.</p> <p>See the <a href="../news.html">Official IOCCC website news</a> for additional information.</p>
<p class="leftbar"> <p>For the updates and breaking IOCCC news, you are encouraged to follow
For the updates and breaking IOCCC news, you are encouraged to follow
the <a href="https://fosstodon.org/@ioccc">IOCCC on Mastodon</a> account. See our the <a href="https://fosstodon.org/@ioccc">IOCCC on Mastodon</a> account. See our
FAQ on “<a href="../faq.html#try_mastodon">Mastodon</a>” FAQ on “<a href="../faq.html#try_mastodon">Mastodon</a>”
for more information. Please do note that unless for more information. Please do note that unless
you are mentioned by us you will <strong>NOT</strong> get a notification from the app <em>so you you are mentioned by us you will <strong>NOT</strong> get a notification from the app <em>so you
should refresh the page <strong>even if you do follow us</strong></em>. should refresh the page <strong>even if you do follow us</strong></em>.</p>
</p> <p>Check out the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a> in general.</p>
<p class="leftbar"> <p>Consider joining the IOCCC discord community via this link:
Check out the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a> in general. <a href="https://discord.gg/Wa42Qujwnw">https://discord.gg/Wa42Qujwnw</a></p>
</p> <p>See the
<p class="leftbar">
Consider joining the IOCCC discord community via this link:
<a href="https://discord.gg/Wa42Qujwnw">https://discord.gg/Wa42Qujwnw</a>
</p>
<p class="leftbar">
See the
FAQ on “<a href="../faq.html#mkiocccentry">obtaining, compiling, installing and using the mkiocccentry tools</a>” FAQ on “<a href="../faq.html#mkiocccentry">obtaining, compiling, installing and using the mkiocccentry tools</a>”
and the and the
FAQ on “<a href="../quick-start.html#enter">how to enter the IOCCC</a>” FAQ on “<a href="../quick-start.html#enter">how to enter the IOCCC</a>”
as that FAQ has important details on as that FAQ has important details on
<a href="../next/register.html">how to register</a> <a href="../next/register.html">how to register</a>
as well as as well as
<a href="../next/submit.html">how to upload your submission</a> for the IOCCC. <a href="../next/submit.html">how to upload your submission</a> for the IOCCC.</p>
</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<p><strong>Leonid A. Broukhis</strong><br> <p><strong>Leonid A. Broukhis</strong><br>
<strong>chongo (Landon Curt Noll) <code>/\cc/\</code></strong></p> <strong>chongo (Landon Curt Noll) <code>/\cc/\</code></strong></p>
+22 -228
View File
@@ -48,13 +48,11 @@ Jump to: [top](#)
</div> </div>
<p class="leftbar"> <p class="leftbar">
These [IOCCC rules](rules.html) are version **28.30 2025-03-03**. These [IOCCC rules](rules.html) are version **28.31 2025-11-17**.
</p> </p>
<p class="leftbar">
The markdown form of these rules <a href="rules.md" download="rules.md">is The markdown form of these rules <a href="rules.md" download="rules.md">is
available for download</a>. available for download</a>.
</p>
**IMPORTANT**: Be sure to read the [IOCCC guidelines](guidelines.html). **IMPORTANT**: Be sure to read the [IOCCC guidelines](guidelines.html).
@@ -131,7 +129,6 @@ This contest will enter the **[judging](../faq.html#judging)** state on **2025-0
of the above **dates and times may change**! of the above **dates and times may change**!
</p> </p>
<p class="leftbar">
See the See the
FAQ on "[obtaining and compiling the mkiocccentry tools](../faq.html#mkiocccentry)" FAQ on "[obtaining and compiling the mkiocccentry tools](../faq.html#mkiocccentry)"
and the and the
@@ -140,7 +137,6 @@ as that FAQ has important details on
[how to register](../next/register.html) [how to register](../next/register.html)
as well as as well as
[how to upload your submission](../next/submit.html) to the IOCCC. [how to upload your submission](../next/submit.html) to the IOCCC.
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -156,7 +152,6 @@ To help us with the volume of submissions, we ask that you follow the rules belo
#### A warning about rule abuse #### A warning about rule abuse
</div> </div>
<p class="leftbar">
**WARNING:** Abusing these rules comes with a **fair amount of risk** **WARNING:** Abusing these rules comes with a **fair amount of risk**
that your submission will be rejected. If you do plan to abuse the that your submission will be rejected. If you do plan to abuse the
rules, then you **MUST CLEARLY EXPLAIN THE RATIONALE** in your `remarks.md` file, rules, then you **MUST CLEARLY EXPLAIN THE RATIONALE** in your `remarks.md` file,
@@ -164,50 +159,38 @@ as to why you think your rule abuse should be allowed, and as to why you think
your submission should not be rejected for a rule violation. your submission should not be rejected for a rule violation.
**Nevertheless, _even if you do_ explain this in your `remarks.md` file **Nevertheless, _even if you do_ explain this in your `remarks.md` file
you submission may still be rejected**. you submission may still be rejected**.
</p>
<p class="leftbar">
If you use the most recently released official IOCCC submission packaging tool If you use the most recently released official IOCCC submission packaging tool
(hereby referred to as `mkiocccentry(1)`), which we **STRONGLY recommend you (hereby referred to as `mkiocccentry(1)`), which we **STRONGLY recommend you
do**, then the `mkiocccentry(1)` tool will warn you if there appears to be a do**, then the `mkiocccentry(1)` tool will warn you if there appears to be a
violation in certain rules (not all can be detected). The `mkiocccentry(1)` violation in certain rules (not all can be detected). The `mkiocccentry(1)`
tool also runs `chkentry(1)` and `txzchk(1)`, the latter of which runs tool also runs `chksubmit(1)` and `txzchk(1)`, the latter of which runs
`fnamchk(1)`. Overriding problems detected by any of these tools comes with a `fnamchk(1)`. Overriding problems detected by any of these tools comes with a
**fair amount of risk** that your submission will be rejected. **fair amount of risk** that your submission will be rejected.
</p>
<p class="leftbar">
If you do override a rule violation warning from the `mkiocccentry(1)` or If you do override a rule violation warning from the `mkiocccentry(1)` or
another related IOCCC tool, or otherwise plan to abuse the rules, then you another related IOCCC tool, or otherwise plan to abuse the rules, then you
**MUST CLEARLY EXPLAIN THE RATIONALE** of why you are attempting to abuse the **MUST CLEARLY EXPLAIN THE RATIONALE** of why you are attempting to abuse the
rules in your `remarks.md` file. **_Even if you do_ explain this in your rules in your `remarks.md` file. **_Even if you do_ explain this in your
`remarks.md` file your submission may still be rejected**. `remarks.md` file your submission may still be rejected**.
</p>
<p class="leftbar">
**HINT:** If you do submit such a rule abusing / rule violating **HINT:** If you do submit such a rule abusing / rule violating
submission, then consider also submitting an alternate version in a submission, then consider also submitting an alternate version in a
**different submission** server slot that does **NOT** violate the rules **different submission** server slot that does **NOT** violate the rules
in case your rule abuse excuse is rejected. in case your rule abuse excuse is rejected.
</p>
<p class="leftbar">
**IMPORTANT**: if you do submit such an alternate non-rule abusing version, **IMPORTANT**: if you do submit such an alternate non-rule abusing version,
**PLEASE** indicate that in your `remarks.md` file of your non-rule abusing **PLEASE** indicate that in your `remarks.md` file of your non-rule abusing
version so that the [IOCCC judges](../judges.html) do not think you uploaded a version so that the [IOCCC judges](../judges.html) do not think you uploaded a
duplicate into a wrong slot by mistake. duplicate into a wrong slot by mistake.
</p>
<p class="leftbar">
Uploading a tarball not formed by `mkiocccentry(1)` puts you at a very big risk of Uploading a tarball not formed by `mkiocccentry(1)` puts you at a very big risk of
violating [Rule 17](rules.html#rule17), especially as `mkiocccentry(1)` does a violating [Rule 17](rules.html#rule17), especially as `mkiocccentry(1)` does a
great number of things that are required, and it also runs many checks, and if great number of things that are required, and it also runs many checks, and if
any of those checks fail, you are at a very great risk of having your submission any of those checks fail, you are at a very great risk of having your submission
rejected for violating [Rule 17](rules.html#rule17). rejected for violating [Rule 17](rules.html#rule17).
</p>
<p class="leftbar">
See also [Rule 12](#rule13). See also [Rule 12](#rule13).
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -217,13 +200,9 @@ Jump to: [top](#)
## Rule 0 ## Rule 0
</div> </div>
<p class="leftbar">
Just as C starts at 0, so the IOCCC starts at [Rule 0](#rule0). :-) Just as C starts at 0, so the IOCCC starts at [Rule 0](#rule0). :-)
</p>
<p class="leftbar">
The "[Important IOCCC dates](#dates)" section above is part of this rule. The "[Important IOCCC dates](#dates)" section above is part of this rule.
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -233,16 +212,12 @@ Jump to: [top](#)
## Rule 1 ## Rule 1
</div> </div>
<p class="leftbar">
Your submission must be a C program. Your submission must be a C program.
</p>
<p class="leftbar">
You see, the contest is not called the **International Obfuscated JSON Contest** You see, the contest is not called the **International Obfuscated JSON Contest**
(**IOJSONC**), even if the [so-called JSON (**IOJSONC**), even if the [so-called JSON
spec](https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec) might be called obfuscated spec](https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec) might be called obfuscated
by some people. :-) by some people. :-)
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -255,31 +230,23 @@ Jump to: [top](#)
[Rule 2](#rule2) requires that your submission satisfy **BOTH** [Rule [Rule 2](#rule2) requires that your submission satisfy **BOTH** [Rule
2a](#rule2a) **AND** [Rule 2b](#rule2b). 2a](#rule2a) **AND** [Rule 2b](#rule2b).
<p class="leftbar">
You may check your code with respect to [Rule 2a](#rule2a) and [Rule You may check your code with respect to [Rule 2a](#rule2a) and [Rule
2b](#rule2b) prior to submitting your code by giving the filename 2b](#rule2b) prior to submitting your code by giving the filename
as a command like argument to the `iocccsize(1)` tool. For example: as a command like argument to the `iocccsize(1)` tool. For example:
</p>
``` <!---sh--> ``` <!---sh-->
iocccsize prog.c iocccsize prog.c
``` ```
<p class="leftbar">
The source to `iocccsize(1)` may be found in the The source to `iocccsize(1)` may be found in the
[mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry). [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry).
</p>
<p class="leftbar">
See also the See also the
FAQ on "[how to further test your submission](../faq.html#mkiocccentry_test)" FAQ on "[how to further test your submission](../faq.html#mkiocccentry_test)"
for more more thorough testing, including [Rule 2](#rule2). for more more thorough testing, including [Rule 2](#rule2).
</p>
<p class="leftbar">
See also [Rule 2a](#rule2a), [Rule 2b](#rule2b), and [Rule 17](#rule17). See also [Rule 2a](#rule2a), [Rule 2b](#rule2b), and [Rule 17](#rule17).
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -289,7 +256,7 @@ Jump to: [top](#)
</div> </div>
<p class="leftbar"> <p class="leftbar">
The size of your program source **should NOT exceed 4993 bytes**. The size of your program source **MUST NOT exceed 4993 bytes**.
</p> </p>
Jump to: [top](#) Jump to: [top](#)
@@ -299,15 +266,11 @@ Jump to: [top](#)
## Rule 2b ## Rule 2b
</div> </div>
<p class="leftbar">
When the filename of your program source is given as a command line argument to When the filename of your program source is given as a command line argument to
the latest version of the official IOCCC size tool (hereby referred to as the latest version of the official IOCCC size tool (hereby referred to as
`iocccsize(1)`), the value printed **should NOT exceed _2503_**. `iocccsize(1)`), the value printed **MUST NOT exceed _2503_**.
</p>
<p class="leftbar">
See also [Rule 17](#rule17). See also [Rule 17](#rule17).
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -316,38 +279,27 @@ Jump to: [top](#)
## Rule 3 ## Rule 3
</div> </div>
<p class="leftbar">
You must [register](../next/register.html) in order to submit your entry to the IOCCC. You must [register](../next/register.html) in order to submit your entry to the IOCCC.
You may [register](../next/register.html) while the contest is either You may [register](../next/register.html) while the contest is either
**[pending](../faq.html#pending)** or **[open](../faq.html#open)**. **[pending](../faq.html#pending)** or **[open](../faq.html#open)**.
</p>
<p class="leftbar">
When the contest is **[open](../faq.html#open)**, the [submit server](https://submit.ioccc.org) When the contest is **[open](../faq.html#open)**, the [submit server](https://submit.ioccc.org)
will email you your [submit server](https://submit.ioccc.org) will email you your [submit server](https://submit.ioccc.org)
**Username** and **Initial password**. **Please be patient** as it may take some time, **Username** and **Initial password**. **Please be patient** as it may take some time,
perhaps as much as a few days, for your registration to be processed and for that email to be sent. perhaps as much as a few days, for your registration to be processed and for that email to be sent.
</p>
<p class="leftbar">
Those who [register](../next/register.html) while the contest status is **[pending](../faq.html#pending)** Those who [register](../next/register.html) while the contest status is **[pending](../faq.html#pending)**
will receive their email (containing their [submit server](https://submit.ioccc.org) **Username** will receive their email (containing their [submit server](https://submit.ioccc.org) **Username**
and **Initial password**), later: usually a few days around the time when the contest status and **Initial password**), later: usually a few days around the time when the contest status
becomes **[open](../faq.html#open)**. becomes **[open](../faq.html#open)**.
</p>
<p class="leftbar">
Once that email with your **Username** and **Initial password** is sent, you Once that email with your **Username** and **Initial password** is sent, you
will have fortnight (**14 days**) to [change your submit server initial password](../next/pw-change.html). will have fortnight (**14 days**) to [change your submit server initial password](../next/pw-change.html).
</p>
<p class="leftbar">
If you do not change your **Initial password** in time, you will have to If you do not change your **Initial password** in time, you will have to
[send email to the IOCCC judges](../contact.md#if-you-really-need-to-send-email-the-ioccc-judges) [send email to the IOCCC judges](../contact.md#if-you-really-need-to-send-email-the-ioccc-judges)
to ask for your password to be reset. to ask for your password to be reset.
</p>
<p class="leftbar">
Because it takes time (maybe even a few days) to process your registration Because it takes time (maybe even a few days) to process your registration
and for the server to email you your initial login and password, you and for the server to email you your initial login and password, you
should **MAKE SURE** you give yourself enough time to register well should **MAKE SURE** you give yourself enough time to register well
@@ -355,18 +307,13 @@ before the contest closes. In other words, **DO NOT WAIT UNTIL THE FINAL DAYS**
of the contest to register! The [IOCCC judges](../judges.html) of the contest to register! The [IOCCC judges](../judges.html)
are **NOT** responsible for delayed or lost email, or for those who wait are **NOT** responsible for delayed or lost email, or for those who wait
until the last minute to try to register! until the last minute to try to register!
</p>
<p class="leftbar">
See the See the
FAQ on "[how to register and submit to the IOCCC](../quick-start.html#enter)" FAQ on "[how to register and submit to the IOCCC](../quick-start.html#enter)"
for instructions on registering and participating in the IOCCC, as the process for instructions on registering and participating in the IOCCC, as the process
may change from contest to contest. may change from contest to contest.
</p>
<p class="leftbar">
See also [Rule 8](#rule8). See also [Rule 8](#rule8).
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -376,31 +323,21 @@ Jump to: [top](#)
## Rule 4 ## Rule 4
</div> </div>
<p class="leftbar">
If your submission is selected as a winning entry, then your submission may be modified in order If your submission is selected as a winning entry, then your submission may be modified in order
to fit into the structure of the [Official IOCCC winner website](https://www.ioccc.org/index.html). to fit into the structure of the [Official IOCCC winner website](https://www.ioccc.org/index.html).
</p>
<p class="leftbar">
For example, your submission's `Makefile` will be modified and your `remarks.md` For example, your submission's `Makefile` will be modified and your `remarks.md`
will become a `README.md` which will be used to generate an `index.html` file. will become a `README.md` which will be used to generate an `index.html` file.
</p>
<p class="leftbar">
Your source code will be the file `prog.c`. The compiled binary Your source code will be the file `prog.c`. The compiled binary
will be called `prog`. If you submission requires different filenames, will be called `prog`. If you submission requires different filenames,
then modify your submission's `Makefile` to **COPY** (**NOT** move!) the files then modify your submission's `Makefile` to **COPY** (**NOT** move!) the files
accordingly. accordingly.
</p>
<p class="leftbar">
Of course your program may also do this, as long as it works, but you're welcome Of course your program may also do this, as long as it works, but you're welcome
to use your `Makefile` as well. to use your `Makefile` as well.
</p>
<p class="leftbar">
See also [Rule 5](#rule5), [Rule 18](#rule18) and [Rule 21](#rule21). See also [Rule 5](#rule5), [Rule 18](#rule18) and [Rule 21](#rule21).
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -417,16 +354,12 @@ part of your original submission including, but not limited to `prog.c`, the
If you submission needs (or wishes :-) ) to modify such content, it **MUST** If you submission needs (or wishes :-) ) to modify such content, it **MUST**
first copy the file to a new filename and then modify that copy. first copy the file to a new filename and then modify that copy.
<p class="leftbar">
You may use your submission (program) to form a copy, or you can make use of You may use your submission (program) to form a copy, or you can make use of
your `Makefile` to form that copy. your `Makefile` to form that copy.
</p>
<p class="leftbar">
If you do make a copy of a submission file, **PLEASE** be sure that If you do make a copy of a submission file, **PLEASE** be sure that
the `clobber` rule of your `Makefile` removes that copy in order to the `clobber` rule of your `Makefile` removes that copy in order to
restore your submission to its original submission state. restore your submission to its original submission state.
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -436,15 +369,11 @@ Jump to: [top](#)
## Rule 6 ## Rule 6
</div> </div>
<p class="leftbar">
I am not a rule, I am a `free(void *human);` ‼️ I am not a rule, I am a `free(void *human);` ‼️
</p>
<p class="leftbar">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`while (!(ioccc(rule(you(are(number(6)))))) {`<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`while (!(ioccc(rule(you(are(number(6)))))) {`<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`ha_ha_ha();`<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`ha_ha_ha();`<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`}` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`}`
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -454,42 +383,31 @@ Jump to: [top](#)
## Rule 7 ## Rule 7
</div> </div>
<p class="leftbar">
The obfuscated C program must be your own original work. The obfuscated C program must be your own original work.
</p>
<p class="leftbar">
You (the author(s)) **MUST** own the contents of your submission **OR** You (the author(s)) **MUST** own the contents of your submission **OR**
you **MUST** have permission from the owner(s) to submit their content. you **MUST** have permission from the owner(s) to submit their content.
</p>
<p class="leftbar">
If you submit any content that is owned by others, you **MUST If you submit any content that is owned by others, you **MUST
detail that ownership** (i.e., who owns what) **_AND_ document the detail that ownership** (i.e., who owns what) **_AND_ document the
permission you obtained from them**, in your `remarks.md` file. permission you obtained from them**, in your `remarks.md` file.
</p>
<p class="leftbar">
Please note that the tools in [mkiocccentry Please note that the tools in [mkiocccentry
repo](https://github.com/ioccc-src/mkiocccentry) are **NOT** original works, repo](https://github.com/ioccc-src/mkiocccentry) are **NOT** original works,
unless of course you're the original authors, in which case they are original. :-) unless of course you're the original authors, in which case they are original. :-)
</p>
<p class="leftbar">
Nevertheless tools such as those listed are **NOT** obfuscated. If submitted, they Nevertheless tools such as those listed are **NOT** obfuscated. If submitted, they
would probably violate a number of rules. :-) would probably violate a number of rules. :-)
</p>
- [mkiocccentry&lpar;1&rpar;](https://github.com/ioccc-src/mkiocccentry/blob/master/mkiocccentry.c) - [mkiocccentry&lpar;1&rpar;](https://github.com/ioccc-src/mkiocccentry/blob/master/mkiocccentry.c)
- [iocccsize&lpar;1&rpar;](https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c) - [iocccsize&lpar;1&rpar;](https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c)
- [chkentry&lpar;1&rpar;](https://github.com/ioccc-src/mkiocccentry/blob/master/chkentry.c) - [chksubmit&lpar;1&rpar;](https://github.com/ioccc-src/mkiocccentry/blob/master/chksubmit.c)
- [txzchk&lpar;1&rpar;](https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c) - [txzchk&lpar;1&rpar;](https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c)
- [location&lpar;1&rpar;](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/location_main.c) - [location&lpar;1&rpar;](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/location_main.c)
- [jparse repo as cloned by the mkiocccentry repo](https://github.com/xexyl/jparse) - [jparse repo as cloned by the mkiocccentry repo](https://github.com/xexyl/jparse)
- [dbg repo as cloned by the mkiocccentry repo](https://github.com/lcn2/dbg) - [dbg repo as cloned by the mkiocccentry repo](https://github.com/lcn2/dbg)
- [dyn_array repo as cloned by the mkiocccentry repo](https://github.com/lcn2/dyn_array) - [dyn_array repo as cloned by the mkiocccentry repo](https://github.com/lcn2/dyn_array)
<p class="leftbar">
The IOCCC has a rich history of remarkable winning entries created by The IOCCC has a rich history of remarkable winning entries created by
authors who skillfully employed various techniques to develop their code. authors who skillfully employed various techniques to develop their code.
While it is **NOT** required, you are _allowed_ to use tools to develop While it is **NOT** required, you are _allowed_ to use tools to develop
@@ -499,11 +417,8 @@ runtime analysis tools, machine learning tools, natural language models,
code copilot tools, so-called AI services, large language models (LLMs), etc. code copilot tools, so-called AI services, large language models (LLMs), etc.
If you do make use of such tools or services, then we **ENCOURAGE you to describe If you do make use of such tools or services, then we **ENCOURAGE you to describe
what tools and how you used those tools**, in your `remarks.md` file. what tools and how you used those tools**, in your `remarks.md` file.
</p>
<p class="leftbar">
See also [Rule 5](#rule5), [Rule 18](#rule18) and [Rule 21](#rule21). See also [Rule 5](#rule5), [Rule 18](#rule18) and [Rule 21](#rule21).
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -513,64 +428,44 @@ Jump to: [top](#)
## Rule 8 ## Rule 8
</div> </div>
<p class="leftbar">
Submissions may only be uploaded to the [IOCCC submit server](https://submit.ioccc.org) Submissions may only be uploaded to the [IOCCC submit server](https://submit.ioccc.org)
while the contest is **[open](../faq.html#open)**. while the contest is **[open](../faq.html#open)**.
</p>
<p class="leftbar">
If you have [registered](../next/register.html) and received by email your [submit If you have [registered](../next/register.html) and received by email your [submit
server](https://submit.ioccc.org) **Username** and **Initial password** you may server](https://submit.ioccc.org) **Username** and **Initial password** you may
upload your submission to the [submit server](https://submit.ioccc.org) but upload your submission to the [submit server](https://submit.ioccc.org) but
**ONLY** while the contest is **[open](../faq.html#open)**. **ONLY** while the contest is **[open](../faq.html#open)**.
</p>
<p class="leftbar">
The [submit server](https://submit.ioccc.org), in accordance with [Rule The [submit server](https://submit.ioccc.org), in accordance with [Rule
17](rules.html#rule17), places a limit of **3999971** bytes on the size of your 17](rules.html#rule17), places a limit of **3999971** bytes on the size of your
upload. upload.
</p>
<p class="leftbar">
Once the contest is in the **[judging](../faq.html#judging)** state (or Once the contest is in the **[judging](../faq.html#judging)** state (or
**[closed](../faq.html#closed)** state), you may **NOT** upload submissions. **[closed](../faq.html#closed)** state), you may **NOT** upload submissions.
</p>
<p class="leftbar">
While the contest is **[open](../faq.html#open)** or in the While the contest is **[open](../faq.html#open)** or in the
**[judging](../faq.html#judging)** state, the [IOCCC judges](../judges.html) **[judging](../faq.html#judging)** state, the [IOCCC judges](../judges.html)
**MAY** (but are not required to) modify the slot comment of your submission to **MAY** (but are not required to) modify the slot comment of your submission to
indicate that they have received it. If uploaded submission is malformed, the indicate that they have received it. If uploaded submission is malformed, the
[IOCCC judges](../judges.html) **MAY** (but are not required to) modify the slot [IOCCC judges](../judges.html) **MAY** (but are not required to) modify the slot
comment accordingly. comment accordingly.
</p>
<p class="leftbar">
You are **STRONGLY** advised to use the `mkiocccentry(1)` tool You are **STRONGLY** advised to use the `mkiocccentry(1)` tool
as found in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry) as found in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry)
to form the file to upload to the [submit server](https://submit.ioccc.org). to form the file to upload to the [submit server](https://submit.ioccc.org).
</p>
<p class="leftbar">
The [submit server](https://submit.ioccc.org) will become active when the The [submit server](https://submit.ioccc.org) will become active when the
contest is **[open](../faq.html#open)**. Until the contest status becomes contest is **[open](../faq.html#open)**. Until the contest status becomes
**[open](../faq.html#open)**, the [submit server](https://submit.ioccc.org) may **[open](../faq.html#open)**, the [submit server](https://submit.ioccc.org) may
be offline and/or unresponsive. be offline and/or unresponsive.
</p>
<p class="leftbar">
See the See the
FAQs on "[obtaining, compiling, installing and using the latest release of the mkiocccentry tools](../faq.html#mkiocccentry)" FAQs on "[obtaining, compiling, installing and using the latest release of the mkiocccentry tools](../faq.html#mkiocccentry)"
for more information about the `mkiocccentry(1)` tool. for more information about the `mkiocccentry(1)` tool.
</p>
<p class="leftbar">
See the "[Important IOCCC dates](#dates)" section above for when these contest states are scheduled. See the "[Important IOCCC dates](#dates)" section above for when these contest states are scheduled.
</p>
<p class="leftbar">
See also [Rule 3](#rule3) and [Rule 17](#rule17). See also [Rule 3](#rule3) and [Rule 17](#rule17).
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -580,17 +475,13 @@ Jump to: [top](#)
## Rule 9 ## Rule 9
</div> </div>
<p class="leftbar">
Each **PERSON** may register **ONLY ONE** account and each account may submit up to Each **PERSON** may register **ONLY ONE** account and each account may submit up to
and including **10.000000** (ten in base 10) submissions **PER** contest. and including **10.000000** (ten in base 10) submissions **PER** contest.
</p>
**Each submission _must be submitted separately_**. **Each submission _must be submitted separately_**.
<p class="leftbar">
If this seems unreasonable we suggest you wait until the next contest and in If this seems unreasonable we suggest you wait until the next contest and in
the interim ponder this (modified or not) quote said by Bill Gates: the interim ponder this (modified or not) quote said by Bill Gates:
</p>
> 640K submissions ought to be enough for anybody. > 640K submissions ought to be enough for anybody.
> >
@@ -622,15 +513,11 @@ you expect on our test platforms. If your program needs special
permissions you **MUST** document this fact, and explain why permissions you **MUST** document this fact, and explain why
it is needed in your submission's `remarks.md` file. it is needed in your submission's `remarks.md` file.
<p class="leftbar">
Furthermore, if you need a supplementary program that you include, to have these Furthermore, if you need a supplementary program that you include, to have these
permissions, you will also have to explain this, because these bits are not permissions, you will also have to explain this, because these bits are not
allowed in submissions and those bits will not be copied by `mkiocccentry(1)`. allowed in submissions and those bits will not be copied by `mkiocccentry(1)`.
</p>
<p class="leftbar">
See also [Rule 17](#rule17). See also [Rule 17](#rule17).
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -644,9 +531,7 @@ the opinion of the [judges](../judges.html), violates the rules WILL BE DISQUALI
Submissions that attempt to abuse the rules **MUST** try to justify why Submissions that attempt to abuse the rules **MUST** try to justify why
their rule abuse is legal, in the `remarks.md` file. their rule abuse is legal, in the `remarks.md` file.
<p class="leftbar">
See also [the warning about rule abuse](#rule_abuse). See also [the warning about rule abuse](#rule_abuse).
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -655,14 +540,10 @@ Jump to: [top](#)
## Rule 13 ## Rule 13
</div> </div>
<p class="leftbar">
7 out of 13 UTF-8 characters in C code agree that this rule number is lucky 7 out of 13 UTF-8 characters in C code agree that this rule number is lucky
enough to be a prime number. enough to be a prime number.
</p>
<p class="leftbar">
Fun fact: the fear of the number 13 is called _triskaidekaphobia_. Fun fact: the fear of the number 13 is called _triskaidekaphobia_.
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -672,30 +553,22 @@ Jump to: [top](#)
## Rule 14 ## Rule 14
</div> </div>
<p class="leftbar">
Any C source that fails to compile because of lines with trailing Any C source that fails to compile because of lines with trailing
control-M's (i.e., lines with a trailing byte `015`) **might** be rejected. control-M's (i.e., lines with a trailing byte `015`) **might** be rejected.
</p>
<p class="leftbar">
Please do **NOT** put trailing control-M's on `prog.c`, `Makefile`, or Please do **NOT** put trailing control-M's on `prog.c`, `Makefile`, or
`remarks.md` files but instead end lines with a trailing newline (i.e., `remarks.md` files but instead end lines with a trailing newline (i.e.,
byte `012`) character. byte `012`) character.
</p>
<p class="leftbar">
As we do **NOT** use DOS, please also be sure that the `Makefile` and As we do **NOT** use DOS, please also be sure that the `Makefile` and
`remarks.md` files end in final newline (i.e., byte `012`) character. `remarks.md` files end in final newline (i.e., byte `012`) character.
</p>
<p class="leftbar">
You are permitted, in order to try and squeeze your `prog.c` under You are permitted, in order to try and squeeze your `prog.c` under
a [Rule 2a](#rule2a) and/or [Rule 2b](#rule2b) limit, to **NOT** a [Rule 2a](#rule2a) and/or [Rule 2b](#rule2b) limit, to **NOT**
end your `prog.c` with a newline (i.e., byte `012`) character. end your `prog.c` with a newline (i.e., byte `012`) character.
If you need to do this, **PLEASE** document that in your `remarks.md` file and If you need to do this, **PLEASE** document that in your `remarks.md` file and
if your compiler complains about this, document this too and update your if your compiler complains about this, document this too and update your
`Makefile` to account for this. `Makefile` to account for this.
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -705,20 +578,14 @@ Jump to: [top](#)
## Rule 15 ## Rule 15
</div> </div>
<p class="leftbar">
In order to register for the IOCCC, you **MUST** have a valid email address. In order to register for the IOCCC, you **MUST** have a valid email address.
</p>
<p class="leftbar">
The [judges](../judges.html) **are NOT responsible for delays in email**, so please plan The [judges](../judges.html) **are NOT responsible for delays in email**, so please plan
enough time accordingly. enough time accordingly.
</p>
<p class="leftbar">
See the See the
FAQ on "[how to register](../quick-start.html#register)" FAQ on "[how to register](../quick-start.html#register)"
for details. for details.
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -730,22 +597,18 @@ Jump to: [top](#)
Submissions that are similar to previous winning IOCCC entries are discouraged. Submissions that are similar to previous winning IOCCC entries are discouraged.
<p class="leftbar">
You are allowed to resubmit to a later contest, a submission that You are allowed to resubmit to a later contest, a submission that
did not win the IOCCC. If you do so, then you would be well advised did not win the IOCCC. If you do so, then you would be well advised
to try and enhance and improve your submission. to try and enhance and improve your submission.
If you do resubmit something that did not previously win, then If you do resubmit something that did not previously win, then
you are **encouraged** to mention this in your `remarks.md` file you are **encouraged** to mention this in your `remarks.md` file
as this **sometimes** helps. as this **sometimes** helps.
</p>
<p class="leftbar">
Resubmitting an improved submission that did not become an Resubmitting an improved submission that did not become an
IOCCC winning entry is a **time honored** tradition of the IOCCC. IOCCC winning entry is a **time honored** tradition of the IOCCC.
There are some IOCCC winning entries that were submitted to multiple contests There are some IOCCC winning entries that were submitted to multiple contests
before they were improved enough to "climb over" (as the expression before they were improved enough to "climb over" (as the expression
goes) all the other submissions for a given contest. goes) all the other submissions for a given contest.
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -754,68 +617,57 @@ Jump to: [top](#)
## Rule 17 ## Rule 17
</div> </div>
<p class="leftbar">
Your submission must be in the form of a **xz compressed tarball** that Your submission must be in the form of a **xz compressed tarball** that
the **current released version** of the `mkiocccentry(1)` tool would generate. the **current released version** of the `mkiocccentry(1)` tool would generate.
The files, directories, and paths **MUST** conform to the limits imposed The files, directories, and paths **MUST** conform to the limits imposed
by `mkiocccentry(1)` including but **NOT LIMITED** to their names, count, by `mkiocccentry(1)` including but **NOT LIMITED** to their names, count,
path length, directory tree depth and permissions. path length, directory tree depth and permissions.
</p>
<p class="leftbar">
Your **xz compressed tarball** must be larger than **0** bytes and no larger Your **xz compressed tarball** must be larger than **0** bytes and no larger
than **3999971** bytes. than **3999971** bytes.
</p>
<p class="leftbar">
The sum of the byte lengths of all files, after the **xz compressed tarball** is untarred, The sum of the byte lengths of all files, after the **xz compressed tarball** is untarred,
must **NOT** exceed `27651*1024` bytes. must **NOT** exceed `27651*1024` bytes.
</p>
<p class="leftbar">
Your **xz compressed tarball** submission _file_ **MUST** pass the tests performed by Your **xz compressed tarball** submission _file_ **MUST** pass the tests performed by
the current version of `txzchk(1)`. the current version of `txzchk(1)`.
</p>
<p class="leftbar">
Your **xz compressed tarball** submission _filename_ **MUST** pass the tests Your **xz compressed tarball** submission _filename_ **MUST** pass the tests
performed by the current version of `fnamchk(1)`. performed by the current version of `fnamchk(1)`.
</p>
<p class="leftbar">
When your **xz compressed tarball** submission file is untarred, the When your **xz compressed tarball** submission file is untarred, the
resulting _directory_ **MUST** pass the checks performed by the current version resulting _directory_ **MUST** pass the checks performed by the current version
of `chkentry(1)`. of `chksubmit(1)`.
</p>
<p class="leftbar">
The resulting `prog.c` file **MUST** pass the [Rule 2](#rule2) size checks performed by the current The resulting `prog.c` file **MUST** pass the [Rule 2](#rule2) size checks performed by the current
version of `iocccsize(1)`. version of `iocccsize(1)`.
</p>
<p class="leftbar">
The `.auth.json` and `.info.json` **MUST** be compatible with what the The `.auth.json` and `.info.json` **MUST** be compatible with what the
current version of the `mkiocccentry(1)` tool would produce. They **MUST current version of the `mkiocccentry(1)` tool would produce. They **MUST
ALSO** pass the tests performed by the current version of `chkentry(1)`. ALSO** pass the tests performed by the current version of `chksubmit(1)`.
</p>
<p class="leftbar">
The required `Makefile` must **NOT** be empty. The required `Makefile` must **NOT** be empty.
</p>
<p class="leftbar">
The required `remarks.md` must **NOT** be empty. The required `remarks.md` must **NOT** be empty.
</p>
<p class="leftbar">
You may **NOT** submit a tarball created by the `-d` or `-s seed` option of You may **NOT** submit a tarball created by the `-d` or `-s seed` option of
`mkiocccentry(1)`. `mkiocccentry(1)`.
</p>
<p class="leftbar"> <p class="leftbar">
The maximum number of files your submission tarball may contain, not counting The maximum number of files your submission tarball may contain, not counting
the optional files (`prog.alt.c`, `try.sh`, `try.alt.sh`) and the mandatory the free files (`prog.c`, `remarks.md`, `Makefile`, `prog.alt.c`, `try.sh`,
files (`prog.c`, `Makefile`, `remarks.md`) is 31. `try.alt.sh` and the two files generated by `mkiocccentry`, `.info.json` and
`.auth.json`) is 31.
</p>
<p class="leftbar">
The maximum number of directories your submission may have is 13 and the maximum
depth a path may have is 4.
</p>
<p class="leftbar">
The maximum filename length (a component of a path) is 38 which means the
maximum length total of a path is 60 characters.
</p> </p>
See the See the
@@ -825,31 +677,23 @@ for more details.
### TL;DR Rule 17 - Use `mkiocccentry(1)` to form your submission ### TL;DR Rule 17 - Use `mkiocccentry(1)` to form your submission
<p class="leftbar">
Let the current version of the `mkiocccentry(1)` tool form your **xz Let the current version of the `mkiocccentry(1)` tool form your **xz
compressed tarball** submission file. compressed tarball** submission file.
</p>
### Warning ### Warning
<p class="leftbar">
Using command line flags or input prompts to override checks and Using command line flags or input prompts to override checks and
limits made by the above mentioned tools is **NOT** recommended limits made by the above mentioned tools is **NOT** recommended
and may result in your submission being rejected by the [IOCCC and may result in your submission being rejected by the [IOCCC
submit server](https://submit.ioccc.org) and/or the [IOCCC Judges](../judges.html). submit server](https://submit.ioccc.org) and/or the [IOCCC Judges](../judges.html).
</p>
<p class="leftbar">
See the See the
FAQ on the "[mkiocccentry toolkit](../faq.html#mkiocccentry) FAQ on the "[mkiocccentry toolkit](../faq.html#mkiocccentry)
for how to obtain and use the above mentioned tools. for how to obtain and use the above mentioned tools.
</p>
<p class="leftbar">
**IMPORTANT**: See the **IMPORTANT**: See the
FAQ on "[Rule 17](../faq.html#rule17)" FAQ on "[Rule 17](../faq.html#rule17)"
for very important details behind this rule. for very important details behind this rule.
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -863,9 +707,7 @@ 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/)**
<p class="leftbar">
See also [Rule 7](#rule7). See also [Rule 7](#rule7).
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -875,52 +717,38 @@ Jump to: [top](#)
## Rule 19 ## Rule 19
</div> </div>
<p class="leftbar">
The `remarks.md` file, a required non-empty file, must be written in The `remarks.md` file, a required non-empty file, must be written in
[Markdown format](https://www.markdownguide.org/basic-syntax/). [Markdown format](https://www.markdownguide.org/basic-syntax/).
</p>
<p class="leftbar">
We currently use [pandoc&lpar;1&rpar;](https://pandoc.org) to automatically We currently use [pandoc&lpar;1&rpar;](https://pandoc.org) to automatically
convert markdown to HTML. Please try to avoid submitting an HTML file convert markdown to HTML. Please try to avoid submitting an HTML file
translation to any markdown file. If you **MUST** submit such an HTML translation to any markdown file. If you **MUST** submit such an HTML
translation, **PLEASE** mention this in your `remarks.md` file. translation, **PLEASE** mention this in your `remarks.md` file.
</p>
<p class="leftbar">
For any submission that wins the contest, we modify your `remarks.md` file and For any submission that wins the contest, we modify your `remarks.md` file and
rename it as `README.md` and then use [pandoc&lpar;1&rpar;](https://pandoc.org) rename it as `README.md` and then use [pandoc&lpar;1&rpar;](https://pandoc.org)
to generate the `index.html` file in the top level directory of your submission. to generate the `index.html` file in the top level directory of your submission.
For this reason, `mkiocccentry(1)` will **NOT** package such files (in the top For this reason, `mkiocccentry(1)` will **NOT** package such files (in the top
level submission directory) and both `txzchk(1)` and `chkentry(1)` will flag level submission directory) and both `txzchk(1)` and `chksubmit(1)` will flag
them as errors (in the top level submission directory) as well, so please do them as errors (in the top level submission directory) as well, so please do
**NOT** try and slip these files in the top level directory where your **NOT** try and slip these files in the top level directory where your
`remarks.md` resides. `remarks.md` resides.
</p>
<p class="leftbar">
See the [Markdown Cheat Sheet](https://www.markdownguide.org/cheat-sheet/) See the [Markdown Cheat Sheet](https://www.markdownguide.org/cheat-sheet/)
for a handy quick reference to the Markdown syntax. for a handy quick reference to the Markdown syntax.
</p>
<p class="leftbar">
See the [Markdown guide](https://www.markdownguide.org) See the [Markdown guide](https://www.markdownguide.org)
for free and open-source reference guide that explains for free and open-source reference guide that explains
how to use markdown. how to use markdown.
</p>
<p class="leftbar">
See also the [Daring Fireball Markdown: See also the [Daring Fireball Markdown:
Basics](http://daringfireball.net/projects/markdown/basics) for Basics](http://daringfireball.net/projects/markdown/basics) for
information on the markdown format. information on the markdown format.
</p>
<p class="leftbar">
**PLEASE** see our **PLEASE** see our
FAQ on "[remarks.md](../faq.html#remarks_md)" FAQ on "[remarks.md](../faq.html#remarks_md)"
**AND** the **AND** the
[IOCCC markdown guidelines](../markdown.html) for additional markdown guidance. [IOCCC markdown guidelines](../markdown.html) for additional markdown guidance.
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -934,12 +762,10 @@ The how to build instructions must be in GNU Makefile format. See the
FAQ about "[make&lpar;1&rpar; compatibility the IOCCC supports](../faq.html#make_compatibility) FAQ about "[make&lpar;1&rpar; compatibility the IOCCC supports](../faq.html#make_compatibility)
for more details. for more details.
<p class="leftbar">
You are **ENCOURAGED** to use the You are **ENCOURAGED** to use the
Makefile example, renamed as `Makefile` of course, for help in constructing your Makefile example, renamed as `Makefile` of course, for help in constructing your
`Makefile`. See the [Makefile section](guidelines.html#makefile) in the `Makefile`. See the [Makefile section](guidelines.html#makefile) in the
guidelines for more details. guidelines for more details.
</p>
The target of the `Makefile` must be called `prog`. The original The target of the `Makefile` must be called `prog`. The original
C source file must be called `prog.c`. C source file must be called `prog.c`.
@@ -949,26 +775,20 @@ To invoke the C compiler, use `${CC}`. To invoke the C preprocessor use
Do **NOT** assume that `.` (the current directory) is in the `$PATH`. Do **NOT** assume that `.` (the current directory) is in the `$PATH`.
<p class="leftbar">
When `make clobber` is invoked, we request that your submission directory be restored When `make clobber` is invoked, we request that your submission directory be restored
to its original submission state. For example, any temporary files to its original submission state. For example, any temporary files
created during the build process, or during execution should be created during the build process, or during execution should be
removed by the `clobber` rule. removed by the `clobber` rule.
</p>
<p class="leftbar">
Your `Makefile` **MUST** use a syntax that is compatible with `bash(1)` Your `Makefile` **MUST** use a syntax that is compatible with `bash(1)`
**AND** GNU `make(1)`. You are **ENCOURAGED** to use `SHELL= bash` in **AND** GNU `make(1)`. You are **ENCOURAGED** to use `SHELL= bash` in
your `Makefile`. Please add a space between the `=` and the value. your `Makefile`. Please add a space between the `=` and the value.
</p>
<p class="leftbar">
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 that conform to the [Single UNIX environments and systems that conform to the [Single UNIX
Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification) are Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification) are
available in the `$PATH` search path. available in the `$PATH` search path.
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -978,23 +798,17 @@ Jump to: [top](#)
## Rule 21 ## Rule 21
</div> </div>
<p class="leftbar">
Your submission **MUST NOT** create or modify files **ABOVE** the current directory Your submission **MUST NOT** create or modify files **ABOVE** the current directory
_with the exception of_ the `/tmp` and the `/var/tmp` directories. Your submission _with the exception of_ the `/tmp` and the `/var/tmp` directories. Your submission
**MAY** create subdirectories **below** the submission directory, or in `/tmp`, **MAY** create subdirectories **below** the submission directory, or in `/tmp`,
or in `/var/tmp` provided that `.` is **NOT** the first byte in any or in `/var/tmp` provided that `.` is **NOT** the first byte in any
directory name or filename you create. directory name or filename you create.
</p>
<p class="leftbar">
If you do create files and directories, **PLEASE** be sure that If you do create files and directories, **PLEASE** be sure that
the `clobber` rule of your `Makefile` removes such created files the `clobber` rule of your `Makefile` removes such created files
in order to restore your submission to its original submission state. in order to restore your submission to its original submission state.
</p>
<p class="leftbar">
See also [Rule 5](#rule5). See also [Rule 5](#rule5).
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -1017,11 +831,9 @@ within your code, data, remarks or program output (unless you are
**Peter Honeyman** or pretending to be **Peter Honeyman**) will be grounds **Peter Honeyman** or pretending to be **Peter Honeyman**) will be grounds
for disqualification of your submission. for disqualification of your submission.
<p class="leftbar">
And don't assume that we won't be able to determine your name even if it's not And don't assume that we won't be able to determine your name even if it's not
obvious, because you stand a significant chance of violating this rule if you obvious, because you stand a significant chance of violating this rule if you
do. do.
</p>
Yes, Virginia, **WE REALLY MEAN IT!** Yes, Virginia, **WE REALLY MEAN IT!**
@@ -1080,9 +892,7 @@ Jump to: [top](#)
## Rule 27 ## Rule 27
</div> </div>
<p class="leftbar">
Unless otherwise needed, [Rule 27](#rule27) is reserved for something cubic. :-) Unless otherwise needed, [Rule 27](#rule27) is reserved for something cubic. :-)
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -1092,10 +902,8 @@ Jump to: [top](#)
## Rule 28 ## Rule 28
</div> </div>
<p class="leftbar">
[Rule 28](#rule28) is a perfect way to end the list of [IOCCC rules](rules.html) [Rule 28](#rule28) is a perfect way to end the list of [IOCCC rules](rules.html)
as we do **NOT** plan to have **496** rules. :-) as we do **NOT** plan to have **496** rules. :-)
</p>
Jump to: [top](#) Jump to: [top](#)
@@ -1106,41 +914,28 @@ Jump to: [top](#)
</div> </div>
</div> </div>
<p class="leftbar">
For questions or comments about the contest, see [Contacting the IOCCC](../contact.html). For questions or comments about the contest, see [Contacting the IOCCC](../contact.html).
</p>
<p class="leftbar">
**Be SURE** to review the [IOCCC Rules and Guidelines](index.html) as they **Be SURE** to review the [IOCCC Rules and Guidelines](index.html) as they
may (and **often do**) change from year to year. may (and **often do**) change from year to year.
</p>
<p class="leftbar">
**PLEASE** be **SURE** you have the **current** [IOCCC rules](rules.html) and **PLEASE** be **SURE** you have the **current** [IOCCC rules](rules.html) and
[IOCCC guidelines](guidelines.html) prior to submitting to the contest. [IOCCC guidelines](guidelines.html) prior to submitting to the contest.
</p>
See the [Official IOCCC website news](../news.html) for additional information. See the [Official IOCCC website news](../news.html) for additional information.
<p class="leftbar">
For the updates and breaking IOCCC news, you are encouraged to follow For the updates and breaking IOCCC news, you are encouraged to follow
the [IOCCC on Mastodon](https://fosstodon.org/@ioccc) account. See our the [IOCCC on Mastodon](https://fosstodon.org/@ioccc) account. See our
FAQ on "[Mastodon](../faq.html#try_mastodon)" FAQ on "[Mastodon](../faq.html#try_mastodon)"
for more information. Please do note that unless for more information. Please do note that unless
you are mentioned by us you will **NOT** get a notification from the app _so you you are mentioned by us you will **NOT** get a notification from the app _so you
should refresh the page **even if you do follow us**_. should refresh the page **even if you do follow us**_.
</p>
<p class="leftbar">
Check out the [Official IOCCC winner website](https://www.ioccc.org/index.html) in general. Check out the [Official IOCCC winner website](https://www.ioccc.org/index.html) in general.
</p>
<p class="leftbar">
Consider joining the IOCCC discord community via this link: Consider joining the IOCCC discord community via this link:
[https://discord.gg/Wa42Qujwnw](https://discord.gg/Wa42Qujwnw) [https://discord.gg/Wa42Qujwnw](https://discord.gg/Wa42Qujwnw)
</p>
<p class="leftbar">
See the See the
FAQ on "[obtaining, compiling, installing and using the mkiocccentry tools](../faq.html#mkiocccentry)" FAQ on "[obtaining, compiling, installing and using the mkiocccentry tools](../faq.html#mkiocccentry)"
and the and the
@@ -1149,7 +944,6 @@ as that FAQ has important details on
[how to register](../next/register.html) [how to register](../next/register.html)
as well as as well as
[how to upload your submission](../next/submit.html) for the IOCCC. [how to upload your submission](../next/submit.html) for the IOCCC.
</p>
Jump to: [top](#) Jump to: [top](#)
+5 -5
View File
@@ -495,7 +495,7 @@ of:</p>
timestamp</a>.</p> timestamp</a>.</p>
<p>We highly recommend that you use <code>mkiocccentry(1)</code> to create your submit file as <p>We highly recommend that you use <code>mkiocccentry(1)</code> to create your submit file as
it must pass the <code>txzchk(1)</code> sanity checks, and when the uncompressed tarball is it must pass the <code>txzchk(1)</code> sanity checks, and when the uncompressed tarball is
untarred, the resulting directory must pass <code>chkentry(1)</code>.</p> untarred, the resulting directory must pass <code>chksubmit(1)</code>.</p>
</blockquote> </blockquote>
<p><strong>NOTE</strong>: the <code>00000000-0000-4000-0000-000000000000</code> is your UUID. <strong>MAKE SURE <p><strong>NOTE</strong>: the <code>00000000-0000-4000-0000-000000000000</code> is your UUID. <strong>MAKE SURE
YOU CHANGE IT TO YOUR UUID</strong>!</p> YOU CHANGE IT TO YOUR UUID</strong>!</p>
@@ -571,7 +571,7 @@ To see any status updates, you should logout and log back in later.</p>
</blockquote> </blockquote>
<p>Or:</p> <p>Or:</p>
<blockquote> <blockquote>
<p><strong>Status: submit file failed the chkentry test! Use mkiocccentry to rebuild and resubmit to this slot.</strong></p> <p><strong>Status: submit file failed the chksubmit test! Use mkiocccentry to rebuild and resubmit to this slot.</strong></p>
</blockquote> </blockquote>
<p>… or <strong>ANY</strong> other error then you <strong>MUST FIX</strong> your submission, repackage your <p>… or <strong>ANY</strong> other error then you <strong>MUST FIX</strong> your submission, repackage your
tarball with <code>mkiocccentry</code> and upload to the same slot again! If you do not fix tarball with <code>mkiocccentry</code> and upload to the same slot again! If you do not fix
@@ -579,7 +579,7 @@ this your submission <strong>WILL BE REJECTED</strong> for violating <a href="ru
17</a>!</p> 17</a>!</p>
<p>If the format test went well, then you will see:</p> <p>If the format test went well, then you will see:</p>
<blockquote> <blockquote>
<p><strong>Status: submit file received by the IOCCC judges. Passed both txzchk and chkentry tests.</strong></p> <p><strong>Status: submit file received by the IOCCC judges. Passed both txzchk and chksubmit tests.</strong></p>
</blockquote> </blockquote>
<p><strong>IMPORTANT</strong>: this does <strong>NOT</strong> mean that your submission does not violate the <p><strong>IMPORTANT</strong>: this does <strong>NOT</strong> mean that your submission does not violate the
rules or that everything is OK once the tarball is extracted; it simply means rules or that everything is OK once the tarball is extracted; it simply means
@@ -589,8 +589,8 @@ submission rejected for violating <a href="rules.html#rule17">Rule 17</a>, even
tests passed.</p> tests passed.</p>
<p>For details on <code>txzchk</code>, see the <p>For details on <code>txzchk</code>, see the
FAQ on “<a href="../faq.html#txzchk">txzchk</a>”.</p> FAQ on “<a href="../faq.html#txzchk">txzchk</a>”.</p>
<p>For details on <code>chkentry</code>, see the <p>For details on <code>chksubmit</code>, see the
FAQ on “<a href="../faq.html#chkentry">chkentry</a>”.</p> FAQ on “<a href="../faq.html#chksubmit">chksubmit</a>”.</p>
<p>If you need more information on the two JSON files, see <p>If you need more information on the two JSON files, see
FAQ on the <a href="../faq.html#info_json">“.info.json file</a>” FAQ on the <a href="../faq.html#info_json">“.info.json file</a>”
and the and the
+5 -5
View File
@@ -56,7 +56,7 @@ timestamp](https://unixtime.org/).
> >
> We highly recommend that you use `mkiocccentry(1)` to create your submit file as > We highly recommend that you use `mkiocccentry(1)` to create your submit file as
it must pass the `txzchk(1)` sanity checks, and when the uncompressed tarball is it must pass the `txzchk(1)` sanity checks, and when the uncompressed tarball is
untarred, the resulting directory must pass `chkentry(1)`. untarred, the resulting directory must pass `chksubmit(1)`.
**NOTE**: the `00000000-0000-4000-0000-000000000000` is your UUID. **MAKE SURE **NOTE**: the `00000000-0000-4000-0000-000000000000` is your UUID. **MAKE SURE
YOU CHANGE IT TO YOUR UUID**! YOU CHANGE IT TO YOUR UUID**!
@@ -153,7 +153,7 @@ After the format test is complete, if you see an error such as:
Or: Or:
> **Status: submit file failed the chkentry test! Use mkiocccentry to rebuild and resubmit to this slot.** > **Status: submit file failed the chksubmit test! Use mkiocccentry to rebuild and resubmit to this slot.**
... or **ANY** other error then you **MUST FIX** your submission, repackage your ... or **ANY** other error then you **MUST FIX** your submission, repackage your
tarball with `mkiocccentry` and upload to the same slot again! If you do not fix tarball with `mkiocccentry` and upload to the same slot again! If you do not fix
@@ -162,7 +162,7 @@ this your submission **WILL BE REJECTED** for violating [Rule
If the format test went well, then you will see: If the format test went well, then you will see:
> **Status: submit file received by the IOCCC judges. Passed both txzchk and chkentry tests.** > **Status: submit file received by the IOCCC judges. Passed both txzchk and chksubmit tests.**
**IMPORTANT**: this does **NOT** mean that your submission does not violate the **IMPORTANT**: this does **NOT** mean that your submission does not violate the
rules or that everything is OK once the tarball is extracted; it simply means rules or that everything is OK once the tarball is extracted; it simply means
@@ -174,8 +174,8 @@ tests passed.
For details on `txzchk`, see the For details on `txzchk`, see the
FAQ on "[txzchk](../faq.html#txzchk)". FAQ on "[txzchk](../faq.html#txzchk)".
For details on `chkentry`, see the For details on `chksubmit`, see the
FAQ on "[chkentry](../faq.html#chkentry)". FAQ on "[chksubmit](../faq.html#chksubmit)".
If you need more information on the two JSON files, see If you need more information on the two JSON files, see
FAQ on the [".info.json file](../faq.html#info_json)" FAQ on the [".info.json file](../faq.html#info_json)"
+1 -1
View File
@@ -577,7 +577,7 @@ you have an earlier version and you have not installed the tools and run the
tools from outside the repo directory, you will have to use the options to the tools from outside the repo directory, you will have to use the options to the
tools to set the path to the required tools.</p> tools to set the path to the required tools.</p>
<p>Do remember to make sure you have the latest vers <p>Do remember to make sure you have the latest vers
<code>chkentry(1)</code>, <code>txzchk(1)</code> and <code>fnamchk(1)</code>. And remember to make sure you have <code>chksubmit(1)</code>, <code>txzchk(1)</code> and <code>fnamchk(1)</code>. And remember to make sure you have
the latest version so you do not violate <a href="next/rules.html#rule17">Rule 17</a>. the latest version so you do not violate <a href="next/rules.html#rule17">Rule 17</a>.
See the See the
FAQ on “<a href="faq.html#obtaining_mkiocccentry">obtaining the latest mkiocccentry tools</a>”, FAQ on “<a href="faq.html#obtaining_mkiocccentry">obtaining the latest mkiocccentry tools</a>”,
+1 -1
View File
@@ -177,7 +177,7 @@ tools from outside the repo directory, you will have to use the options to the
tools to set the path to the required tools. tools to set the path to the required tools.
Do remember to make sure you have the latest vers Do remember to make sure you have the latest vers
`chkentry(1)`, `txzchk(1)` and `fnamchk(1)`. And remember to make sure you have `chksubmit(1)`, `txzchk(1)` and `fnamchk(1)`. And remember to make sure you have
the latest version so you do not violate [Rule 17](next/rules.html#rule17). the latest version so you do not violate [Rule 17](next/rules.html#rule17).
See the See the
FAQ on "[obtaining the latest mkiocccentry tools](faq.html#obtaining_mkiocccentry)", FAQ on "[obtaining the latest mkiocccentry tools](faq.html#obtaining_mkiocccentry)",