Fixes in rules
This includes the FAQ as there is an FAQ about Rule 17.
This commit is contained in:
1 parent
b717062099
commit
da9064d95b
4 files changed
+335
-246
No files matched your search
+101
-69
@@ -566,7 +566,7 @@ as well as
|
||||
<h2 id="rule-0">Rule 0</h2>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
Just as C starts at 0, so the IOCCC starts at <a href="#rule0">rule 0</a>. :-)
|
||||
Just as C starts at 0, so the IOCCC starts at <a href="#rule0">Rule 0</a>. :-)
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The “<a href="#dates">Important IOCCC dates</a>” section above is part of this rule.
|
||||
@@ -578,57 +578,63 @@ The “<a href="#dates">Important IOCCC dates</a>” section above is part of th
|
||||
<p class="leftbar">
|
||||
Your submission must be a C program.
|
||||
</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
|
||||
spec</a> might be called obfuscated. :-)
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule2">
|
||||
<h2 id="rule-2">Rule 2</h2>
|
||||
</div>
|
||||
<p>The size rule requires your submission to satisfy <strong>BOTH</strong> <a href="#rule2a">Rule 2a</a> and <a href="#rule2b">Rule 2b</a>:</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule2a">
|
||||
<h2 id="rule-2a">Rule 2a</h2>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
The size of your program source <strong>should not exceed 4993 bytes</strong>.
|
||||
</p>
|
||||
<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 do</strong> (see also <a href="#rule17">Rule 17</a>), then the <code>mkiocccentry(1)</code>
|
||||
tool will warn you if there appears to be a <a href="#rule2a">Rule 2a</a> violation.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule2a">
|
||||
<h2 id="rule-2a">Rule 2a</h2>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
The <code>mkiocccentry(1)</code> tool will give you the option of overriding the <a href="#rule2a">Rule 2a</a> warning.
|
||||
Overriding a <a href="#rule2a">Rule 2a</a> warning carries a <strong>fair amount of risk that your submission
|
||||
will be rejected</strong>. Be sure to consult the <a href="guidelines.html">IOCCC guidelines</a>
|
||||
ahead of time if you plan to override the <a href="#rule2a">Rule 2a</a> warning.
|
||||
The size of your program source <strong>should NOT exceed 4993 bytes</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do override the <a href="#rule2a">Rule 2a</a> warning from the
|
||||
<code>mkiocccentry(1)</code> tool, or otherwise plan to violate <a href="#rule2a">Rule 2a</a>, then
|
||||
you <strong>MUST CLEARLY EXPLAIN THE RATIONALE</strong> of why you are doing so 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>.
|
||||
The <code>mkiocccentry(1)</code> tool will give you the option of overriding the <a href="#rule2a">Rule
|
||||
2a</a> warning. Overriding the <a href="#rule2a">Rule 2a</a> warning carries a
|
||||
<strong>fair amount of risk that your submission will be rejected</strong>. Be sure to
|
||||
consult the <a href="guidelines.html">IOCCC guidelines</a> ahead of time if you plan to
|
||||
override the <a href="#rule2a">Rule 2a</a> warning.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do override the <a href="#rule2a">Rule 2a</a> warning from the <code>mkiocccentry(1)</code>
|
||||
tool, or otherwise plan to violate <a href="#rule2a">Rule 2a</a>, then you <strong>MUST CLEARLY
|
||||
EXPLAIN THE RATIONALE</strong> of why you are doing so in your <code>remarks.md</code> file.
|
||||
<strong><em>Even if you do</em> explain this in your <code>remarks.md</code> file you submission may
|
||||
still be rejected</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
You may check your code prior to submission by giving the filename
|
||||
as a command like argument to the <code>iocccsize(1)</code> tool. For example:
|
||||
</p>
|
||||
<pre><code> ./iocccsize prog.c</code></pre>
|
||||
<pre><code> iocccsize prog.c</code></pre>
|
||||
<p class="leftbar">
|
||||
Alternatively, you may use the <code>mkiocccentry(1)</code> option <code>-d</code> to verify that
|
||||
things check out without having to answer all the questions. See the
|
||||
FAQ on “<a href="../faq.html#mkiocccentry_test">how to test your submission without having to answer
|
||||
questions</a>”
|
||||
for more details.
|
||||
things check out okay (i.e. no problems are detected) without having to answer
|
||||
all the questions. See the
|
||||
FAQ on “<a href="../faq.html#mkiocccentry_test">how to test your submission without having
|
||||
to answer questions</a>” for more details.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule2b">
|
||||
<h2 id="rule-2b">Rule 2b</h2>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
When the filename of your program source is given as a command line argument to the latest version
|
||||
of the official IOCCC size tool (hereby referred to as <code>iocccsize(1)</code>), the
|
||||
value printed <strong>should NOT exceed <em>2503</em></strong>.
|
||||
When the filename of your program source is given as a command line argument to
|
||||
the latest version of the official IOCCC size tool (hereby referred to as
|
||||
<code>iocccsize(1)</code>), the value printed <strong>should NOT exceed <em>2503</em></strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The source to <code>iocccsize(1)</code> may be found in the
|
||||
@@ -637,25 +643,28 @@ The source to <code>iocccsize(1)</code> may be found in the
|
||||
<p class="leftbar">
|
||||
If you use the <code>mkiocccentry(1)</code> tool, which we <strong>STRONGLY recommend
|
||||
you do</strong> (again, see also <a href="#rule17">Rule 17</a>),
|
||||
then <code>mkiocccentry(1)</code> will invoke <code>iocccsize(1)</code> before packaging your submission.
|
||||
then <code>mkiocccentry(1)</code> will invoke the <code>iocccsize(1)</code> checks before packaging
|
||||
your submission.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <code>mkiocccentry(1)</code> tool will give you the option of overriding the <a href="#rule2b">Rule 2b</a> warning.
|
||||
Overriding a <a href="#rule2b">Rule 2b</a> warning carries a <strong>fair amount of risk that your submission
|
||||
will be rejected</strong>. Be sure to consult the <a href="guidelines.html">IOCCC guidelines</a>
|
||||
ahead of time if you plan to override the <a href="#rule2b">Rule 2b</a> warning.
|
||||
The <code>mkiocccentry(1)</code> tool will give you the option of overriding the <a href="#rule2b">Rule
|
||||
2b</a> warning. Overriding the <a href="#rule2b">Rule 2b</a> warning carries a <strong>fair
|
||||
amount of risk that your submission will be rejected</strong>. Be sure to consult the
|
||||
<a href="guidelines.html">IOCCC guidelines</a> ahead of time if you plan to override the
|
||||
<a href="#rule2b">Rule 2b</a> warning.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do override the <a href="#rule2b">Rule 2b</a> warning from the <code>mkiocccentry(1)</code> tool,
|
||||
or otherwise plan to violate <a href="#rule2b">Rule 2a</a>, then you <strong>MUST CLEARLY EXPLAIN THE RATIONALE</strong>
|
||||
of why you are doing so 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>.
|
||||
If you do override the <a href="#rule2b">Rule 2b</a> warning from the <code>mkiocccentry(1)</code>
|
||||
tool, or otherwise plan to violate <a href="#rule2b">Rule 2b</a>, then you <strong>MUST CLEARLY
|
||||
EXPLAIN THE RATIONALE</strong> of why you are doing so in your <code>remarks.md</code> file.
|
||||
<strong><em>Even if you do</em> explain this in your <code>remarks.md</code> file your submission may
|
||||
still be rejected</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
You may check your code prior to submission by giving the filename
|
||||
as a command like argument to the <code>iocccsize(1)</code> tool. For example:
|
||||
</p>
|
||||
<pre><code> ./iocccsize prog.c</code></pre>
|
||||
<pre><code> iocccsize prog.c</code></pre>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule3">
|
||||
<h2 id="rule-3">Rule 3</h2>
|
||||
@@ -673,7 +682,7 @@ for instructions on registering and participating in the IOCCC, as the process h
|
||||
<p class="leftbar">
|
||||
When the contest is <strong><a href="../faq.html#open">open</a></strong>, an
|
||||
<a href="../judges.html">IOCCC judge</a> will email you your <a href="https://submit.ioccc.org">submit server</a>
|
||||
<strong>Username</strong> and <strong>Initial password</strong>. This takes some time (maybe even a few days) for an
|
||||
<strong>Username</strong> and <strong>Initial password</strong>. It takes some time (maybe even a few days) for an
|
||||
<a href="../judges.html">IOCCC judge</a> to process your registration and email you your
|
||||
initial login and password.
|
||||
</p>
|
||||
@@ -696,10 +705,10 @@ The <a href="../judges.html">IOCCC judges</a> are <strong>NOT</strong> responsib
|
||||
or for those who wait until the last minute to try to register!
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you have <a href="register.html">registered</a> and received by email their
|
||||
If you have <a href="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>
|
||||
from an <a href="../judges.html">IOCCC judge</a>, you may upload your submission to
|
||||
the <a href="https://submit.ioccc.org">submit server</a> only while the
|
||||
the <a href="https://submit.ioccc.org">submit server</a> <strong>ONLY</strong> while the
|
||||
contest is <strong><a href="../faq.html#open">open</a></strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
@@ -755,8 +764,8 @@ will become a <code>README.md</code> which will be used to generate an <code>ind
|
||||
<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,
|
||||
then modify your submission’s <code>Makefile</code> to <strong>COPY</strong> (<strong>NOT</strong> move!)
|
||||
the files accordingly.
|
||||
then modify your submission’s <code>Makefile</code> to <strong>COPY</strong> (<strong>NOT</strong> move!) the files
|
||||
accordingly.
|
||||
</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>.
|
||||
@@ -765,19 +774,19 @@ See also <a href="#rule5">Rule 5</a>, <a href="#rule18">Rule 18</a> and <a href=
|
||||
<div id="rule5">
|
||||
<h2 id="rule-5">Rule 5</h2>
|
||||
</div>
|
||||
<p>Your submission <strong>MUST</strong> not modify the content or filename of any part of your
|
||||
<p>Your submission must <strong>NOT</strong> modify the content or filename of any part of your
|
||||
original submission including, but not limited to <code>prog.c</code>, the <code>Makefile</code>
|
||||
(that we create from your how to build instructions), as well as any data
|
||||
files you submit.</p>
|
||||
<p>If you submission needs (or wishes :-) ) to modify such content, it <strong>MUST</strong> first copy the
|
||||
file to a new filename and then modify that copy.</p>
|
||||
as well as any data files you submit.</p>
|
||||
<p>If you submission needs (or wishes :-) ) to modify such content, it <strong>MUST</strong>
|
||||
first copy the file to a new filename and then modify that copy.</p>
|
||||
<p class="leftbar">
|
||||
You may use your submission to form a copy, or you can make use of your <code>Makefile</code> to form that copy.
|
||||
You may use your submission (program) to form a copy, or you can make use of
|
||||
your <code>Makefile</code> to form that copy.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do make a copy and then modify that copy, please be sure that
|
||||
If you do make a copy and then modify that copy, <strong>PLEASE</strong> be sure that
|
||||
the <code>clobber</code> rule of your <code>Makefile</code> removes that copy in order to
|
||||
restore the contents if your submission to its original submission.
|
||||
restore the contents of your submission to its original submission.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule6">
|
||||
@@ -813,7 +822,11 @@ permission you obtained</strong>.</p>
|
||||
Please note that the IOCCC size tool, the tools in the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
repo</a> and the tools and library in
|
||||
the <a href="https://github.com/xexyl/jparse/issues">jparse repo</a> (that the
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a> clones) are
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a> clones) or the
|
||||
<a href="https://github.com/lcn2/dbg">dbg repo</a> (that the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
repo</a> clones) or the <a href="https://github.com/lcn2/dyn_array">dyn_array
|
||||
repo</a> (that the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
repo</a> clones) are
|
||||
<strong>NOT</strong> original works, unless of course you’re the respective authors, in
|
||||
which case they are. Of course, neither are any of the previous
|
||||
winning entries, unless of course you’re the winner! :-)
|
||||
@@ -830,14 +843,14 @@ Submissions may only be uploaded to the <a href="https://submit.ioccc.org">IOCCC
|
||||
while the contest is <strong><a href="../faq.html#open">open</a></strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Once the contest is in the <strong><a href="../faq.html#judging">judging</a></strong> state (or <strong><a href="../faq.html#closed">closed</a></strong>),
|
||||
you may <strong>NOT</strong> upload submissions.
|
||||
Once the contest is in the <strong><a href="../faq.html#judging">judging</a></strong> state (or
|
||||
<strong><a href="../faq.html#closed">closed</a></strong>), 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> may (but are not required to) modify the slot comment of your submission to indicate
|
||||
the <a href="../judges.html">IOCCC judges</a> <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 <a href="../judges.html">IOCCC judges</a>
|
||||
may (but are not required to) modify the slot comment accordingly.
|
||||
<strong>MAY</strong> (but are not required to) modify the slot comment accordingly.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See the “<a href="#dates">Important IOCCC dates</a>” section above for when these contest states are scheduled.
|
||||
@@ -850,8 +863,8 @@ See also <a href="#rule17">Rule 17</a>.
|
||||
<h2 id="rule-9">Rule 9</h2>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
Each person may register <strong>ONLY</strong> one account and each account may submit up to
|
||||
and including <strong>10.000000</strong> (ten in base 10) entries per contest.
|
||||
Each <strong>PERSON</strong> may register <strong>ONLY ONE</strong> account and each account may submit up to
|
||||
and including <strong>10.000000</strong> (ten in base 10) submissions <strong>PER</strong> contest.
|
||||
</p>
|
||||
<p><strong>Each submission <em>must be submitted separately</em></strong>.</p>
|
||||
<p class="leftbar">
|
||||
@@ -885,7 +898,7 @@ it is needed in your submission’s <code>remarks.md</code> file.</p>
|
||||
<h2 id="rule-12">Rule 12</h2>
|
||||
</div>
|
||||
<p><strong>Legal</strong> abuse of the rules is somewhat encouraged. <strong>A submission that, in
|
||||
the opinion of the <a href="../judges.html">judges</a>, violates the rules will be disqualified</strong>.
|
||||
the opinion of the <a href="../judges.html">judges</a>, violates the rules WILL BE DISQUALIFIED</strong>.
|
||||
Submissions that attempt to abuse the rules <strong>MUST</strong> try to justify why
|
||||
their rule abuse is legal, in the <code>remarks.md</code> file.</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
@@ -893,7 +906,11 @@ their rule abuse is legal, in the <code>remarks.md</code> file.</p>
|
||||
<h2 id="rule-13">Rule 13</h2>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
7 out of 13 UTF-8 characters in C code agree that this rule number is lucky enough to be a prime number.
|
||||
7 out of 13 UTF-8 characters in C code agree that this rule number is lucky
|
||||
enough to be a prime number.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Fun fact: the fear of the number 13 is called <em>triskaidekaphobia</em>.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule14">
|
||||
@@ -901,7 +918,7 @@ their rule abuse is legal, in the <code>remarks.md</code> file.</p>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
Any C source that fails to compile because of lines with trailing
|
||||
control-M’s (i.e., lines with a tailing octet <code>015</code>) <strong><em>might</em></strong> be rejected.
|
||||
control-M’s (i.e., lines with a trailing octet <code>015</code>) <strong><em>might</em></strong> be rejected.
|
||||
</p>
|
||||
<p>Please do <strong>NOT</strong> put trailing control-M’s on remarks file lines.
|
||||
Please check to be sure, before submitting, that you have removed
|
||||
@@ -913,7 +930,7 @@ any control-M at the end of remark file lines.</p>
|
||||
<p class="leftbar">
|
||||
In order to register for the IOCCC, you <strong>MUST</strong> have a valid email address.
|
||||
</p>
|
||||
<p>The <a href="../judges.html">judges</a> <strong>are not responsible for delays in email</strong>, please plan
|
||||
<p>The <a href="../judges.html">judges</a> <strong>are NOT responsible for delays in email</strong>, please plan
|
||||
enough time for the exchange of emails so you can upload your submission.</p>
|
||||
<p class="leftbar">
|
||||
See the
|
||||
@@ -935,8 +952,8 @@ been published may be disqualified.</p>
|
||||
<p class="leftbar">
|
||||
Your submission must be in the form of <strong>xz compressed tarball</strong>
|
||||
that <code>mkiocccentry(1)</code> tool would generate. The files, directories,
|
||||
and paths must conform to the limits imposed by <code>mkiocccentry(1)</code>
|
||||
including but not limited to their names, count, path length
|
||||
and paths <strong>MUST</strong> conform to the limits imposed by <code>mkiocccentry(1)</code>
|
||||
including but <strong>NOT LIMITED</strong> to their names, count, path length
|
||||
and directory tree depth.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
@@ -948,7 +965,7 @@ Your <strong>xz compressed tarball</strong> submission file must pass the tests
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
Your <strong>xz compressed tarball</strong> submission file must pass the tests performed by:
|
||||
Your <strong>xz compressed tarball</strong> submission filename must pass the tests performed by:
|
||||
</p>
|
||||
<ul>
|
||||
<li><p class="leftbar">
|
||||
@@ -965,6 +982,10 @@ must pass the checks performed by:
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
<code>txzchk(1)</code> uses the <code>fnamchk(1)</code> tool on your tarball to obtain the proper
|
||||
directory name. If either name is wrong, it will be flagged as an error.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The resulting <code>prog.c</code> file must pass the <a href="#rule2">Rule 2</a> size checked performed by:
|
||||
</p>
|
||||
<ul>
|
||||
@@ -984,10 +1005,16 @@ would produce as well as pass the tests performed by:
|
||||
<code>chkentry(1)</code>
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
The <code>Makefile</code> must <strong>NOT</strong> be empty.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <code>remarks.md</code> must <strong>NOT</strong> be empty.
|
||||
</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>
|
||||
<p>Let the <code>mkiocccentry(1)</code> tool form your <strong>xz compressed tarball</strong>
|
||||
submission file and don’t try to override override its checks and
|
||||
limits in order to be sure you submission conforms to this rule.</p>
|
||||
<p>Let the <code>mkiocccentry(1)</code> tool form your <strong>xz compressed tarball</strong> submission
|
||||
file and don’t try to override its checks and limits, in order to be sure you
|
||||
submission conforms to this rule.</p>
|
||||
<h3 id="warning">Warning</h3>
|
||||
<p>Using command line flags or input prompts to override checks and
|
||||
limits made by the above mentioned tools is <strong>NOT</strong> recommended
|
||||
@@ -1001,7 +1028,7 @@ for how to obtain and use the above mentioned tools.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
<strong>IMPORTANT</strong>: See the
|
||||
FAQ on “<a href="../faq.html#rule17">Rule17</a>”
|
||||
FAQ on “<a href="../faq.html#rule17">Rule 17</a>”
|
||||
for very important details behind this rule.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
@@ -1044,13 +1071,13 @@ Makefile example, renamed as <code>Makefile</code> of course, for help in constr
|
||||
<code>Makefile</code>. See the <a href="guidelines.html#makefile">Makefile section</a> in the
|
||||
guidelines for more details.
|
||||
</p>
|
||||
<p>The target of the Makefile 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>
|
||||
<p>To invoke the C compiler, use <code>${CC}</code>. To invoke the C preprocessor use
|
||||
<code>${CPP}</code>.</p>
|
||||
<p>Do <strong>NOT</strong> assume that <code>.</code> (the current directory) is in the <code>$PATH</code>.</p>
|
||||
<p class="leftbar">
|
||||
When <code>make clobber</code> is invoked, we request that submission be restored
|
||||
When <code>make clobber</code> is invoked, we request that submission directory be restored
|
||||
to its original submission state. For example, any temporary files
|
||||
created during the build process, or during execution should be
|
||||
removed by the <code>clobber</code> rule.
|
||||
@@ -1071,7 +1098,7 @@ available in the <code>$PATH</code> search path.
|
||||
<div id="rule21">
|
||||
<h2 id="rule-21">Rule 21</h2>
|
||||
</div>
|
||||
<p>Your submission <strong>MUST NOT</strong> create or modify files above the current directory
|
||||
<p>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
|
||||
<strong>MAY</strong> create subdirectories below the current directory, or in <code>/tmp</code>,
|
||||
or in <code>/var/tmp</code> provided that <code>.</code> is <strong>NOT</strong> the first octet in any
|
||||
@@ -1092,6 +1119,11 @@ 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
|
||||
<strong>Peter Honeyman</strong> or pretending to be <strong>Peter Honeyman</strong>) will be grounds
|
||||
for disqualification of your submission.</p>
|
||||
<p class="leftbar">
|
||||
And don’t assume that we won’t be able to determine your name even if it’s not
|
||||
obvious, because you stand a significant chance of violating this rule if you
|
||||
do.
|
||||
</p>
|
||||
<p>Yes, Virginia, <strong>WE REALLY MEAN IT!</strong></p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule23">
|
||||
|
||||
+106
-71
@@ -196,7 +196,7 @@ Jump to: [top](#)
|
||||
</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">
|
||||
@@ -215,6 +215,12 @@ Jump to: [top](#)
|
||||
Your submission must be a C program.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
You see, the contest is not called the **International Obfuscated JSON Contest**
|
||||
(**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. :-)
|
||||
</p>
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
@@ -225,6 +231,12 @@ Jump to: [top](#)
|
||||
|
||||
The size rule requires your submission to satisfy **BOTH** [Rule 2a](#rule2a) and [Rule 2b](#rule2b):
|
||||
|
||||
<p class="leftbar">
|
||||
If you use the most recently released official IOCCC submission
|
||||
packaging tool (hereby referred to as `mkiocccentry(1)`), which we **STRONGLY
|
||||
recommend you do** (see also [Rule 17](#rule17)), then the `mkiocccentry(1)`
|
||||
tool will warn you if there appears to be a [Rule 2a](#rule2a) violation.
|
||||
</p>
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
@@ -234,29 +246,23 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
The size of your program source **should not exceed 4993 bytes**.
|
||||
The size of your program source **should NOT exceed 4993 bytes**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you use the most recently released official IOCCC submission
|
||||
packaging tool (hereby referred to as `mkiocccentry(1)`), which we **STRONGLY
|
||||
recommend you do** (see also [Rule 17](#rule17)), then the `mkiocccentry(1)`
|
||||
tool will warn you if there appears to be a [Rule 2a](#rule2a) violation.
|
||||
The `mkiocccentry(1)` tool will give you the option of overriding the [Rule
|
||||
2a](#rule2a) warning. Overriding the [Rule 2a](#rule2a) warning carries a
|
||||
**fair amount of risk that your submission will be rejected**. Be sure to
|
||||
consult the [IOCCC guidelines](guidelines.html) ahead of time if you plan to
|
||||
override the [Rule 2a](#rule2a) warning.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `mkiocccentry(1)` tool will give you the option of overriding the [Rule 2a](#rule2a) warning.
|
||||
Overriding a [Rule 2a](#rule2a) warning carries a **fair amount of risk that your submission
|
||||
will be rejected**. Be sure to consult the [IOCCC guidelines](guidelines.html)
|
||||
ahead of time if you plan to override the [Rule 2a](#rule2a) warning.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you do override the [Rule 2a](#rule2a) warning from the
|
||||
`mkiocccentry(1)` tool, or otherwise plan to violate [Rule 2a](#rule2a), then
|
||||
you **MUST CLEARLY EXPLAIN THE RATIONALE** of why you are doing so in your
|
||||
`remarks.md` file. **_Even if you do_ explain this in your `remarks.md` file your
|
||||
submission may still be rejected**.
|
||||
If you do override the [Rule 2a](#rule2a) warning from the `mkiocccentry(1)`
|
||||
tool, or otherwise plan to violate [Rule 2a](#rule2a), then you **MUST CLEARLY
|
||||
EXPLAIN THE RATIONALE** of why you are doing so in your `remarks.md` file.
|
||||
**_Even if you do_ explain this in your `remarks.md` file you submission may
|
||||
still be rejected**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -265,18 +271,17 @@ as a command like argument to the `iocccsize(1)` tool. For example:
|
||||
</p>
|
||||
|
||||
``` <!---sh-->
|
||||
./iocccsize prog.c
|
||||
iocccsize prog.c
|
||||
```
|
||||
|
||||
<p class="leftbar">
|
||||
Alternatively, you may use the `mkiocccentry(1)` option `-d` to verify that
|
||||
things check out without having to answer all the questions. See the
|
||||
FAQ on "[how to test your submission without having to answer
|
||||
questions](../faq.html#mkiocccentry_test)"
|
||||
for more details.
|
||||
things check out okay (i.e. no problems are detected) without having to answer
|
||||
all the questions. See the
|
||||
FAQ on "[how to test your submission without having
|
||||
to answer questions](../faq.html#mkiocccentry_test)" for more details.
|
||||
</p>
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
@@ -285,9 +290,9 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
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 `iocccsize(1)`), the
|
||||
value printed **should NOT exceed _2503_**.
|
||||
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
|
||||
`iocccsize(1)`), the value printed **should NOT exceed _2503_**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -298,21 +303,24 @@ The source to `iocccsize(1)` may be found in the
|
||||
<p class="leftbar">
|
||||
If you use the `mkiocccentry(1)` tool, which we **STRONGLY recommend
|
||||
you do** (again, see also [Rule 17](#rule17)),
|
||||
then `mkiocccentry(1)` will invoke `iocccsize(1)` before packaging your submission.
|
||||
then `mkiocccentry(1)` will invoke the `iocccsize(1)` checks before packaging
|
||||
your submission.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `mkiocccentry(1)` tool will give you the option of overriding the [Rule 2b](#rule2b) warning.
|
||||
Overriding a [Rule 2b](#rule2b) warning carries a **fair amount of risk that your submission
|
||||
will be rejected**. Be sure to consult the [IOCCC guidelines](guidelines.html)
|
||||
ahead of time if you plan to override the [Rule 2b](#rule2b) warning.
|
||||
The `mkiocccentry(1)` tool will give you the option of overriding the [Rule
|
||||
2b](#rule2b) warning. Overriding the [Rule 2b](#rule2b) warning carries a **fair
|
||||
amount of risk that your submission will be rejected**. Be sure to consult the
|
||||
[IOCCC guidelines](guidelines.html) ahead of time if you plan to override the
|
||||
[Rule 2b](#rule2b) warning.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you do override the [Rule 2b](#rule2b) warning from the `mkiocccentry(1)` tool,
|
||||
or otherwise plan to violate [Rule 2a](#rule2b), then you **MUST CLEARLY EXPLAIN THE RATIONALE**
|
||||
of why you are doing so in your `remarks.md` file. **_Even if you do_ explain this in your `remarks.md` file
|
||||
your submission may still be rejected**.
|
||||
If you do override the [Rule 2b](#rule2b) warning from the `mkiocccentry(1)`
|
||||
tool, or otherwise plan to violate [Rule 2b](#rule2b), then you **MUST CLEARLY
|
||||
EXPLAIN THE RATIONALE** of why you are doing so in your `remarks.md` file.
|
||||
**_Even if you do_ explain this in your `remarks.md` file your submission may
|
||||
still be rejected**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -321,7 +329,7 @@ as a command like argument to the `iocccsize(1)` tool. For example:
|
||||
</p>
|
||||
|
||||
``` <!---sh-->
|
||||
./iocccsize prog.c
|
||||
iocccsize prog.c
|
||||
```
|
||||
|
||||
|
||||
@@ -347,7 +355,7 @@ for instructions on registering and participating in the IOCCC, as the process h
|
||||
<p class="leftbar">
|
||||
When the contest is **[open](../faq.html#open)**, an
|
||||
[IOCCC judge](../judges.html) will email you your [submit server](https://submit.ioccc.org)
|
||||
**Username** and **Initial password**. This takes some time (maybe even a few days) for an
|
||||
**Username** and **Initial password**. It takes some time (maybe even a few days) for an
|
||||
[IOCCC judge](../judges.html) to process your registration and email you your
|
||||
initial login and password.
|
||||
</p>
|
||||
@@ -374,10 +382,10 @@ or for those who wait until the last minute to try to register!
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you have [registered](register.html) and received by email their
|
||||
If you have [registered](register.html) and received by email your
|
||||
[submit server](https://submit.ioccc.org) **Username** and **Initial password**
|
||||
from an [IOCCC judge](../judges.html), you may upload your submission to
|
||||
the [submit server](https://submit.ioccc.org) only while the
|
||||
the [submit server](https://submit.ioccc.org) **ONLY** while the
|
||||
contest is **[open](../faq.html#open)**.
|
||||
</p>
|
||||
|
||||
@@ -447,8 +455,8 @@ will become a `README.md` which will be used to generate an `index.html` file.
|
||||
<p class="leftbar">
|
||||
Your source code will be the file `prog.c`. The compiled binary
|
||||
will be called `prog`. If you submission requires different filenames,
|
||||
then modify your submission's `Makefile` to **COPY** (**NOT** move!)
|
||||
the files accordingly.
|
||||
then modify your submission's `Makefile` to **COPY** (**NOT** move!) the files
|
||||
accordingly.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -463,22 +471,22 @@ Jump to: [top](#)
|
||||
## Rule 5
|
||||
</div>
|
||||
|
||||
Your submission **MUST** not modify the content or filename of any part of your
|
||||
Your submission must **NOT** modify the content or filename of any part of your
|
||||
original submission including, but not limited to `prog.c`, the `Makefile`
|
||||
(that we create from your how to build instructions), as well as any data
|
||||
files you submit.
|
||||
as well as any data files you submit.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
<p class="leftbar">
|
||||
You may use your submission to form a copy, or you can make use of your `Makefile` to form that copy.
|
||||
You may use your submission (program) to form a copy, or you can make use of
|
||||
your `Makefile` to form that copy.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you do make a copy and then modify that copy, please be sure that
|
||||
If you do make a copy and then modify that copy, **PLEASE** be sure that
|
||||
the `clobber` rule of your `Makefile` removes that copy in order to
|
||||
restore the contents if your submission to its original submission.
|
||||
restore the contents of your submission to its original submission.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -529,7 +537,11 @@ permission you obtained**.
|
||||
Please note that the IOCCC size tool, the tools in the [mkiocccentry
|
||||
repo](https://github.com/ioccc-src/mkiocccentry) and the tools and library in
|
||||
the [jparse repo](https://github.com/xexyl/jparse/issues) (that the
|
||||
[mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry) clones) are
|
||||
[mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry) clones) or the
|
||||
[dbg repo](https://github.com/lcn2/dbg) (that the [mkiocccentry
|
||||
repo](https://github.com/ioccc-src/mkiocccentry) clones) or the [dyn_array
|
||||
repo](https://github.com/lcn2/dyn_array) (that the [mkiocccentry
|
||||
repo](https://github.com/ioccc-src/mkiocccentry) clones) are
|
||||
**NOT** original works, unless of course you're the respective authors, in
|
||||
which case they are. Of course, neither are any of the previous
|
||||
winning entries, unless of course you're the winner! :-)
|
||||
@@ -553,15 +565,15 @@ while the contest is **[open](../faq.html#open)**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Once the contest is in the **[judging](../faq.html#judging)** state (or **[closed](../faq.html#closed)**),
|
||||
you may **NOT** upload submissions.
|
||||
Once the contest is in the **[judging](../faq.html#judging)** state (or
|
||||
**[closed](../faq.html#closed)**), you may **NOT** upload submissions.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
While the contest is **[open](../faq.html#open)** or in the **[judging](../faq.html#judging)** state,
|
||||
the [IOCCC judges](../judges.html) may (but are not required to) modify the slot comment of your submission to indicate
|
||||
the [IOCCC judges](../judges.html) **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 [IOCCC judges](../judges.html)
|
||||
may (but are not required to) modify the slot comment accordingly.
|
||||
**MAY** (but are not required to) modify the slot comment accordingly.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -581,8 +593,8 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
Each person may register **ONLY** one account and each account may submit up to
|
||||
and including **10.000000** (ten in base 10) entries per contest.
|
||||
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.
|
||||
</p>
|
||||
|
||||
**Each submission _must be submitted separately_**.
|
||||
@@ -632,7 +644,7 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
**Legal** abuse of the rules is somewhat encouraged. **A submission that, in
|
||||
the opinion of the [judges](../judges.html), violates the rules will be disqualified**.
|
||||
the opinion of the [judges](../judges.html), violates the rules WILL BE DISQUALIFIED**.
|
||||
Submissions that attempt to abuse the rules **MUST** try to justify why
|
||||
their rule abuse is legal, in the `remarks.md` file.
|
||||
|
||||
@@ -645,9 +657,13 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
7 out of 13 UTF-8 characters in C code agree that this rule number is lucky enough to be a prime number.
|
||||
7 out of 13 UTF-8 characters in C code agree that this rule number is lucky
|
||||
enough to be a prime number.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Fun fact: the fear of the number 13 is called _triskaidekaphobia_.
|
||||
</p>
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
@@ -658,7 +674,7 @@ Jump to: [top](#)
|
||||
|
||||
<p class="leftbar">
|
||||
Any C source that fails to compile because of lines with trailing
|
||||
control-M's (i.e., lines with a tailing octet `015`) **_might_** be rejected.
|
||||
control-M's (i.e., lines with a trailing octet `015`) **_might_** be rejected.
|
||||
</p>
|
||||
|
||||
Please do **NOT** put trailing control-M's on remarks file lines.
|
||||
@@ -677,7 +693,7 @@ Jump to: [top](#)
|
||||
In order to register for the IOCCC, you **MUST** have a valid email address.
|
||||
</p>
|
||||
|
||||
The [judges](../judges.html) **are not responsible for delays in email**, please plan
|
||||
The [judges](../judges.html) **are NOT responsible for delays in email**, please plan
|
||||
enough time for the exchange of emails so you can upload your submission.
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -710,8 +726,8 @@ Jump to: [top](#)
|
||||
<p class="leftbar">
|
||||
Your submission must be in the form of **xz compressed tarball**
|
||||
that `mkiocccentry(1)` tool would generate. The files, directories,
|
||||
and paths must conform to the limits imposed by `mkiocccentry(1)`
|
||||
including but not limited to their names, count, path length
|
||||
and paths **MUST** conform to the limits imposed by `mkiocccentry(1)`
|
||||
including but **NOT LIMITED** to their names, count, path length
|
||||
and directory tree depth.
|
||||
</p>
|
||||
|
||||
@@ -722,7 +738,7 @@ Your **xz compressed tarball** submission file must pass the tests performed by:
|
||||
* <p class="leftbar">`txzchk(1)`</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Your **xz compressed tarball** submission file must pass the tests performed by:
|
||||
Your **xz compressed tarball** submission filename must pass the tests performed by:
|
||||
</p>
|
||||
|
||||
* <p class="leftbar">`fnamchk(1)`</p>
|
||||
@@ -734,6 +750,11 @@ must pass the checks performed by:
|
||||
|
||||
* <p class="leftbar">`chkentry(1)`</p>
|
||||
|
||||
<p class="leftbar">
|
||||
`txzchk(1)` uses the `fnamchk(1)` tool on your tarball to obtain the proper
|
||||
directory name. If either name is wrong, it will be flagged as an error.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The resulting `prog.c` file must pass the [Rule 2](#rule2) size checked performed by:
|
||||
</p>
|
||||
@@ -748,12 +769,20 @@ would produce as well as pass the tests performed by:
|
||||
* <p class="leftbar">`jparse(3)`</p>
|
||||
* <p class="leftbar">`chkentry(1)`</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `Makefile` must **NOT** be empty.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `remarks.md` must **NOT** be empty.
|
||||
</p>
|
||||
|
||||
|
||||
### TL;DR Rule 17 - Use `mkiocccentry(1)` to form your submission
|
||||
|
||||
Let the `mkiocccentry(1)` tool form your **xz compressed tarball**
|
||||
submission file and don't try to override override its checks and
|
||||
limits in order to be sure you submission conforms to this rule.
|
||||
Let the `mkiocccentry(1)` tool form your **xz compressed tarball** submission
|
||||
file and don't try to override its checks and limits, in order to be sure you
|
||||
submission conforms to this rule.
|
||||
|
||||
### Warning
|
||||
|
||||
@@ -771,7 +800,7 @@ for how to obtain and use the above mentioned tools.
|
||||
|
||||
<p class="leftbar">
|
||||
**IMPORTANT**: See the
|
||||
FAQ on "[Rule17](../faq.html#rule17)"
|
||||
FAQ on "[Rule 17](../faq.html#rule17)"
|
||||
for very important details behind this rule.
|
||||
</p>
|
||||
|
||||
@@ -836,7 +865,7 @@ Makefile example, renamed as `Makefile` of course, for help in constructing your
|
||||
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`.
|
||||
|
||||
To invoke the C compiler, use `${CC}`. To invoke the C preprocessor use
|
||||
@@ -845,7 +874,7 @@ To invoke the C compiler, use `${CC}`. To invoke the C preprocessor use
|
||||
Do **NOT** assume that `.` (the current directory) is in the `$PATH`.
|
||||
|
||||
<p class="leftbar">
|
||||
When `make clobber` is invoked, we request that submission be restored
|
||||
When `make clobber` is invoked, we request that submission directory be restored
|
||||
to its original submission state. For example, any temporary files
|
||||
created during the build process, or during execution should be
|
||||
removed by the `clobber` rule.
|
||||
@@ -873,7 +902,7 @@ Jump to: [top](#)
|
||||
## Rule 21
|
||||
</div>
|
||||
|
||||
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
|
||||
**MAY** create subdirectories below the current directory, or in `/tmp`,
|
||||
or in `/var/tmp` provided that `.` is **NOT** the first octet in any
|
||||
@@ -904,6 +933,12 @@ within your code, data, remarks or program output (unless you are
|
||||
**Peter Honeyman** or pretending to be **Peter Honeyman**) will be grounds
|
||||
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
|
||||
obvious, because you stand a significant chance of violating this rule if you
|
||||
do.
|
||||
</p>
|
||||
|
||||
Yes, Virginia, **WE REALLY MEAN IT!**
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user