Improve change mark in guidelines and rules
Rather than have a literal vertical bar (|) for lines that indicate a
change from the last contest, it is now a CSS class which has a solid
black left border of 4 pixels. This not only makes it easier to see but
it fixes some formatting issues too (see below for tests).
This means that if a change mark is needed one can do:
<p class="leftbar">
...
</p>
A tip for vim users: in the .vimrc file add the following line
(temporarily or otherwise):
abbr leftbar <p class="leftbar">
Then you only need to type:
leftbar
and it will automatically add the proper block.
As for testing how this looks I have checked it with Safari with:
- an iPhone 14 Pro Max
- an iPhone 8 Plus
- a MacBook Pro 16 inch (both at full width and smallest width)
- an iPad Pro 11 inch 4th generation in both portrait and landscape
orientations
An important point that one needs to remember when using this CSS class
in lists is that one cannot do:
<p class="leftbar">
* foo
</p>
<p class="leftbar">
* bar
</p>
but rather do:
* <p class="leftbar">foo</p>
* <p class="leftbar">bar</p>
This commit is contained in:
1 parent
c8ec2b0423
commit
02a4ed232e
5 files changed
+1922
-838
No files matched your search
@@ -796,6 +796,13 @@ blockquote {
|
||||
color: DarkBlue;
|
||||
}
|
||||
|
||||
/* Guidelines / Rules change bar ============================================================================ */
|
||||
|
||||
.leftbar {
|
||||
border-left: 4px solid black;
|
||||
}
|
||||
|
||||
|
||||
/* Footer ======================================================================================== */
|
||||
|
||||
/* Style footer */
|
||||
|
||||
+634
-294
File diff suppressed because it is too large.
Load diff
+521
-214
File diff suppressed because it is too large.
Load diff
+420
-183
@@ -405,7 +405,9 @@ app from time to time to view IOCCC mastodon updates.</p>
|
||||
<!-- END: the next line ends content from: inc/rules.closed.hdr -->
|
||||
<!-- This is the last line modified by the tool: bin/gen-status.sh -->
|
||||
<h1 id="th-international-obfuscated-c-code-contest-official-rules">28th International Obfuscated C Code Contest Official Rules</h1>
|
||||
<p><strong><code>|</code></strong> Copyright © 2024 Leonid A. Broukhis and Landon Curt Noll.</p>
|
||||
<p class="leftbar">
|
||||
Copyright © 2024 Leonid A. Broukhis and Landon Curt Noll.
|
||||
</p>
|
||||
<p>All Rights Reserved. Permission for personal, education or non-profit use is
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in
|
||||
@@ -413,14 +415,19 @@ writing by <a href="../contact.html">contacting the judges</a>.</p>
|
||||
<div id="rules_version">
|
||||
<h2 id="ioccc-rules-version">IOCCC Rules version</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> These <a href="rules.html">IOCCC rules</a> are version <strong>28.4 2024-07-02</strong>.</p>
|
||||
<p class="leftbar">
|
||||
These <a href="rules.html">IOCCC rules</a> are version <strong>28.5 2024-07-08</strong>.
|
||||
</p>
|
||||
<p><strong>IMPORTANT</strong>: Be sure to read the <a href="guidelines.html">IOCCC guidelines</a>.</p>
|
||||
<div id="change_marks">
|
||||
<h3 id="change-marks">Change marks</h3>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> <strong>← Lines that start with this symbol indicate a change from the previous IOCCC</strong></p>
|
||||
<p class="leftbar">
|
||||
<strong>← Lines that start with this symbol indicate a change from the previous IOCCC</strong>
|
||||
</p>
|
||||
<p>Most lines (we sometimes make mistakes) that were modified since the previous
|
||||
IOCCC start with the <strong><code>|</code></strong> symbol.</p>
|
||||
IOCCC start with a solid 4 pixel black left border (or, in the case of a code
|
||||
block or blockquote, just a vertical bar).</p>
|
||||
<div id="obfuscate">
|
||||
<h1 id="obfuscate-defined">Obfuscate defined:</h1>
|
||||
</div>
|
||||
@@ -446,19 +453,25 @@ IOCCC start with the <strong><code>|</code></strong> symbol.</p>
|
||||
<div id="dates">
|
||||
<h1 id="important-ioccc-dates">Important IOCCC dates</h1>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> This IOCCC runs from <strong>2024-MMM-DD HH:MM:SS UTC</strong> to <strong>202x-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||||
<strong><code>|</code></strong> <strong>XXX - date/time is TBD - XXX</strong></p>
|
||||
<p><strong><code>|</code></strong> Until the start of this IOCCC, these <a href="rules.html">IOCCC rules</a>,
|
||||
<p class="leftbar">
|
||||
This IOCCC runs from <strong>2024-MMM-DD HH:MM:SS UTC</strong> to <strong>202x-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||||
<strong>XXX - date/time is TBD - XXX</strong>
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Until the start of this IOCCC, these <a href="rules.html">IOCCC rules</a>,
|
||||
<a href="guidelines.html">IOCCC guidelines</a> and the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
toolkit</a> should be considered
|
||||
provisional <strong>BETA</strong> versions and <strong>may be adjusted <em>AT ANY TIME</em></strong>.</p>
|
||||
provisional <strong>BETA</strong> versions and <strong>may be adjusted <em>AT ANY TIME</em></strong>.
|
||||
</p>
|
||||
<p>When the IOCCC is open, the submission URL is:
|
||||
<a href="https://submit.ioccc.org">https://submit.ioccc.org</a>; at all other
|
||||
times that link is likely to be unresponsive.</p>
|
||||
<p>Please check the <a href="../faq.html#submit">How to enter FAQ</a>
|
||||
for <strong>important information</strong> on how to submit to the IOCCC.</p>
|
||||
<p><strong><code>|</code></strong> The submit URL should be active on or slightly before <strong>2024-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||||
<strong><code>|</code></strong> <strong>XXX - date/time is TBD - XXX</strong></p>
|
||||
<p class="leftbar">
|
||||
The submit URL should be active on or slightly before <strong>2024-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||||
<strong>XXX - date/time is TBD - XXX</strong>
|
||||
</p>
|
||||
<p>Please wait to submit your entries until after that time.</p>
|
||||
<p>The official <a href="rules.html">IOCCC rules</a> and <a href="guidelines.html">IOCCC guidelines</a> will be
|
||||
available on the <a href="../index.html">official IOCCC website</a> on or slightly before
|
||||
@@ -486,44 +499,66 @@ submission URL</em></strong>.</p>
|
||||
<div id="rule2a">
|
||||
<h2 id="rule-2a">Rule 2a</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> The size of your program source <strong>should not exceed 4993 bytes</strong>.</p>
|
||||
<p><strong><code>|</code></strong> If you use the most recently released official IOCCC submission
|
||||
<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><strong><code>|</code></strong> The <code>mkiocccentry(1)</code> tool will give you the option of overriding the <a href="#rule2a">Rule 2a</a> warning.
|
||||
tool will warn you if there appears to be a <a href="#rule2a">Rule 2a</a> violation.
|
||||
</p>
|
||||
<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.</p>
|
||||
<p><strong><code>|</code></strong> If you do override the <a href="#rule2a">Rule 2a</a> warning from the
|
||||
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 your
|
||||
submission may still be rejected</strong>.</p>
|
||||
<p><strong><code>|</code></strong> 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>
|
||||
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>
|
||||
<div id="rule2b">
|
||||
<h2 id="rule-2b">Rule 2b</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> When the filename of your program source is given as a command line argument to the latest version
|
||||
<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>.</p>
|
||||
<p><strong><code>|</code></strong> The source to <code>iocccsize(1)</code> may be found in the
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>.</p>
|
||||
<p><strong><code>|</code></strong> If you use the <code>mkiocccentry(1)</code> tool, which we <strong>STRONGLY recommend
|
||||
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
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>.
|
||||
</p>
|
||||
<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.</p>
|
||||
<p><strong><code>|</code></strong> The <code>mkiocccentry(1)</code> tool will give you the option of overriding the <a href="#rule2b">Rule 2b</a> warning.
|
||||
then <code>mkiocccentry(1)</code> will invoke <code>iocccsize(1)</code> 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.</p>
|
||||
<p><strong><code>|</code></strong> If you do override the <a href="#rule2b">Rule 2b</a> warning from the <code>mkiocccentry(1)</code> tool,
|
||||
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>.</p>
|
||||
<p><strong><code>|</code></strong> 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>
|
||||
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>
|
||||
<div id="rule3">
|
||||
<h2 id="rule-3">Rule 3</h2>
|
||||
@@ -533,20 +568,30 @@ the <a href="../faq.html#submit">How to enter FAQ</a>.</p>
|
||||
<p>To submit to an open IOCCC, you must use the <a href="https://submit.ioccc.org/">IOCCC submit
|
||||
server</a>. Unless the IOCCC is open, that link will
|
||||
likely be unresponsive.</p>
|
||||
<p><strong><code>|</code></strong> The submit URL should be active on or slightly before <strong>2024-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||||
<strong><code>|</code></strong> <strong>XXX - date/time is TBD - XXX</strong></p>
|
||||
<p class="leftbar">
|
||||
The submit URL should be active on or slightly before <strong>2024-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||||
<strong>XXX - date/time is TBD - XXX</strong>
|
||||
</p>
|
||||
<p><strong>Please wait to submit</strong> your entries until after that time.</p>
|
||||
<div id="rule4">
|
||||
<h2 id="rule-4">Rule 4</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> If your submission is selected as a winner, it may be modified in order
|
||||
to fit into the structure of the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a>.</p>
|
||||
<p><strong><code>|</code></strong> For example, your submission’s <code>Makefile</code> might be modified.</p>
|
||||
<p><strong><code>|</code></strong> Your source code will be the file <code>prog.c</code>. The compiled binary
|
||||
<p class="leftbar">
|
||||
If your submission is selected as a winner, it may be modified in order
|
||||
to fit into the structure of the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
For example, your submission’s <code>Makefile</code> might be modified.
|
||||
</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,
|
||||
then modify your submission’s <code>Makefile</code> to <strong>COPY</strong> (<strong>NOT</strong> move)
|
||||
the files accordingly.</p>
|
||||
<p><strong><code>|</code></strong> See also <a href="#rule5">Rule 5</a>, <a href="#rule18">Rule 18</a> and <a href="#rule21">Rule 21</a>.</p>
|
||||
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>.
|
||||
</p>
|
||||
<div id="rule5">
|
||||
<h2 id="rule-5">Rule 5</h2>
|
||||
</div>
|
||||
@@ -559,10 +604,14 @@ file to a new filename and then modify that copy.</p>
|
||||
<div id="rule6">
|
||||
<h2 id="rule-6">Rule 6</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> I am not a rule, I am a <code>free(void *human);</code> ‼️</p>
|
||||
<p><strong><code>|</code></strong> <code>while (!(ioccc(rule(you(are(number(6)))))) {</code><br>
|
||||
<strong><code>|</code></strong> <code>ha_ha_ha();</code><br>
|
||||
<strong><code>|</code></strong> <code>}</code></p>
|
||||
<p class="leftbar">
|
||||
I am not a rule, I am a <code>free(void *human);</code> ‼️
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
<code>while (!(ioccc(rule(you(are(number(6)))))) {</code><br>
|
||||
<code>ha_ha_ha();</code><br>
|
||||
<code>}</code>
|
||||
</p>
|
||||
<div id="rule7">
|
||||
<h2 id="rule-7">Rule 7</h2>
|
||||
</div>
|
||||
@@ -570,7 +619,9 @@ file to a new filename and then modify that copy.</p>
|
||||
<p>You (the author(s)) must own the contents of your submission OR
|
||||
you must have permission from the owner(s) to submit their content
|
||||
under the following license:</p>
|
||||
<p><strong><code>|</code></strong> <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 class="leftbar">
|
||||
<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>If you submit any content that is owned by others, you <strong>MUST
|
||||
detail that ownership</strong> (i.e., who owns what) <strong><em>AND</em> document the
|
||||
permission you obtained</strong>.</p>
|
||||
@@ -578,14 +629,18 @@ permission you obtained</strong>.</p>
|
||||
<div id="rule8">
|
||||
<h2 id="rule-8">Rule 8</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> Entries must be received prior to the end of this IOCCC which is <strong>2024-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||||
<strong><code>|</code></strong> <strong>XXX - date/time is TBD - XXX</strong></p>
|
||||
<p class="leftbar">
|
||||
Entries must be received prior to the end of this IOCCC which is <strong>2024-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||||
<strong>XXX - date/time is TBD - XXX</strong>
|
||||
</p>
|
||||
<p>A confirmation of submission will be sent to the submitting email address
|
||||
before the close of the contest.</p>
|
||||
<div id="rule9">
|
||||
<h2 id="rule-9">Rule 9</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> Each person may submit up to and including <strong>10.000000</strong> entries per contest.</p>
|
||||
<p class="leftbar">
|
||||
Each person may submit up to and including <strong>10.000000</strong> (ten) entries per contest.
|
||||
</p>
|
||||
<p><strong>Each submission <em>must be submitted separately</em></strong>.</p>
|
||||
<div id="rule10">
|
||||
<h2 id="rule-10">Rule 10</h2>
|
||||
@@ -611,25 +666,33 @@ their rule abuse is legal, in the <code>remarks.md</code> file.</p>
|
||||
<div id="rule13">
|
||||
<h2 id="rule-13">Rule 13</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> Any C source that fails to compile because of unescaped octets with
|
||||
the high bit set (octet value >= 128) <strong><em>might</em></strong> be rejected.</p>
|
||||
<p class="leftbar">
|
||||
Any C source that fails to compile because of unescaped octets with
|
||||
the high bit set (octet value >= 128) <strong><em>might</em></strong> be rejected.
|
||||
</p>
|
||||
<div id="rule14">
|
||||
<h2 id="rule-14">Rule 14</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> 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.</p>
|
||||
<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.
|
||||
</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
|
||||
any control-M at the end of remark file lines.</p>
|
||||
<div id="rule15">
|
||||
<h2 id="rule-15">Rule 15</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> In order to register for the IOCCC, you <strong>MUST</strong> have a valid email address.</p>
|
||||
<p class="leftbar">
|
||||
In order to register for the IOCCC, you <strong>MUST</strong> have a valid email address.
|
||||
</p>
|
||||
<p>The judges <strong>are not responsible for delays in email</strong>, please plan
|
||||
enough time for one automated exchange of email as part of your
|
||||
submission.</p>
|
||||
<p><strong><code>|</code></strong> See <a href="../faq.html#register">the FAQ on how to register for the IOCCC</a> in the
|
||||
<a href="../faq.html">FAQ</a> for details.</p>
|
||||
<p class="leftbar">
|
||||
See <a href="../faq.html#register">the FAQ on how to register for the IOCCC</a> in the
|
||||
<a href="../faq.html">FAQ</a> for details.
|
||||
</p>
|
||||
<div id="rule16">
|
||||
<h2 id="rule-16">Rule 16</h2>
|
||||
</div>
|
||||
@@ -641,168 +704,323 @@ been published may be disqualified.</p>
|
||||
<h2 id="rule-17">Rule 17</h2>
|
||||
</div>
|
||||
<h3 id="tldr-rule-17---use-mkiocccentry1">TL;DR Rule 17 - Use <code>mkiocccentry(1)</code></h3>
|
||||
<p><strong><code>|</code></strong> This is a <strong>COMPLEX</strong> rule. <strong>Violating this rule will cause your submission to REJECTED</strong>!
|
||||
<p class="leftbar">
|
||||
This is a <strong>COMPLEX</strong> rule. <strong>Violating this rule will cause your submission to REJECTED</strong>!
|
||||
To help you avoid such a rejection, you are <strong>HIGHLY ENCOURAGED</strong> to use the <code>mkiocccentry(1)</code> tool,
|
||||
based on the latest release of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>,
|
||||
to form your submission’s xz compressed tarball.</p>
|
||||
<p><strong><code>|</code></strong> The <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>
|
||||
contains <strong>IMPORTANT</strong> tools such as:</p>
|
||||
to form your submission’s xz compressed tarball.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>
|
||||
contains <strong>IMPORTANT</strong> tools such as:
|
||||
</p>
|
||||
<ul>
|
||||
<li><code>chkentry(1)</code></li>
|
||||
<li><code>iocccsize(1)</code></li>
|
||||
<li><code>mkiocccentry(1)</code></li>
|
||||
<li><code>txzchk(1)</code></li>
|
||||
<li><code>fnamchk(1)</code></li>
|
||||
<li><code>jparse(1)</code> and <code>jparse(8)</code> (which <code>chkentry(1)</code> uses)</li>
|
||||
<li><p class="leftbar">
|
||||
<code>chkentry(1)</code>
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<code>iocccsize(1)</code>
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<code>mkiocccentry(1)</code>
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<code>txzchk(1)</code>
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<code>fnamchk(1)</code>
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<code>jparse(1)</code> and <code>jparse(8)</code> (which <code>chkentry(1)</code> uses)
|
||||
</p></li>
|
||||
</ul>
|
||||
<p><strong><code>|</code></strong> The above mentioned tools will help you verify that your submission
|
||||
conforms to <a href="#rule17">Rule 17</a>.</p>
|
||||
<p><strong><code>|</code></strong> Each above mentioned tools has a <code>-h</code> option that provides command
|
||||
line help. For additional details, see the tools’ man pages.</p>
|
||||
<p><strong><code>|</code></strong> You do not explicitly need to invoke <code>jparse(1)</code> but the <code>jparse(8)</code>
|
||||
library will be used when compiling various tools.</p>
|
||||
<p class="leftbar">
|
||||
The above mentioned tools will help you verify that your submission
|
||||
conforms to <a href="#rule17">Rule 17</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Each above mentioned tools has a <code>-h</code> option that provides command
|
||||
line help. For additional details, see the tools’ man pages.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
You do not explicitly need to invoke <code>jparse(1)</code> but the <code>jparse(8)</code>
|
||||
library will be used when compiling various tools.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Of course you <strong>can</strong> invoke <code>jparse(1)</code> if you wish to validate your own JSON
|
||||
data file or some other JSON file.
|
||||
</p>
|
||||
<h3 id="rule-17---the-complex-details">Rule 17 - The COMPLEX details</h3>
|
||||
<p><strong><code>|</code></strong> Each submission <strong>MUST</strong> be in the form of a xz compressed tarball.</p>
|
||||
<p><strong><code>|</code></strong> The xz compressed tarball filename must be of the form:</p>
|
||||
<p class="leftbar">
|
||||
Each submission <strong>MUST</strong> be in the form of a xz compressed tarball.
|
||||
The xz compressed tarball filename must be of the form:
|
||||
</p>
|
||||
<pre><code> ^submit.username-slot_num.[1-9][0-9]{9,}.txz$</code></pre>
|
||||
<p><strong><code>|</code></strong> where <em><code>username</code></em> is your IOCCC registration username <strong>in the form of a
|
||||
<p class="leftbar">
|
||||
… where <em><code>username</code></em> is your IOCCC registration username <strong>in the form of a
|
||||
<a href="https://en.wikipedia.org/wiki/Universally_unique_identifier">UUID</a></strong> (see
|
||||
<a href="https://datatracker.ietf.org/doc/html/rfc9562">RFC 9562</a> for
|
||||
details), and where <em><code>slot_num</code></em> is a single decimal digit integer
|
||||
(i.e., >= <code>0</code> and < <code>9</code>).</p>
|
||||
<p><strong><code>|</code></strong> In particular, <em><code>username</code></em> is in the form of:
|
||||
(i.e., >= <code>0</code> and < <code>9</code>).
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
In particular, <em><code>username</code></em> is in the form of:
|
||||
<code>xxxxxxxx-xxxx-4xxx-axxx-xxxxxxxxxxxx</code> where <code>x</code> is a hexadecimal digit in the
|
||||
range <code>[0-9a-f]</code>. And yes, there is a 4 (UUID version 4) and an <code>a</code> (UUID variant
|
||||
1) in there.</p>
|
||||
<p><strong><code>|</code></strong> Your xz compressed tarball <strong>MUST</strong> contain, at a minimum,
|
||||
the following files:</p>
|
||||
1) in there.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Your xz compressed tarball <strong>MUST</strong> contain, <strong>at a minimum</strong>, the following files:
|
||||
</p>
|
||||
<ul>
|
||||
<li><code>Makefile</code></li>
|
||||
<li><code>prog.c</code></li>
|
||||
<li><code>remarks.md</code></li>
|
||||
<li><code>.info.json</code></li>
|
||||
<li><code>.auth.json</code></li>
|
||||
<li><p class="leftbar">
|
||||
<code>Makefile</code>
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<code>prog.c</code>
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<code>remarks.md</code>
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<code>.info.json</code>
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<code>.auth.json</code>
|
||||
</p></li>
|
||||
</ul>
|
||||
<p><strong><code>|</code></strong> The <code>.info.json</code> must be valid JSON and pass the <code>chkentry(1)</code> tests.</p>
|
||||
<p><strong><code>|</code></strong> The <code>.auth.json</code> must be valid JSON and pass the <code>chkentry(1)</code> tests.</p>
|
||||
<p><strong><code>|</code></strong> You submission may have additional files, however the filenames of those additional files <strong>MUST</strong>:</p>
|
||||
<p><strong><code>|</code></strong> * Be less than <strong>100</strong> characters in length<br>
|
||||
<strong><code>|</code></strong> * Match the regular expression: <code>^[0-9A-Za-z][0-9A-Za-z._+-]*$</code></p>
|
||||
<p><strong><code>|</code></strong> The <code>mkiocccentry(1)</code> tool will not package any files that do not meet
|
||||
those requirements.</p>
|
||||
<p><strong><code>|</code></strong> The <code>Makefile</code> must be a non-empty file in <a href="https://www.gnu.org/software/make/manual/make.html">GNU
|
||||
Makefile</a> form. See the
|
||||
<p class="leftbar">
|
||||
The <code>.info.json</code> must be valid JSON and pass the <code>chkentry(1)</code> tests.
|
||||
It is generated by the <code>mkiocccentry(1)</code> tool.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <code>.auth.json</code> must be valid JSON and pass the <code>chkentry(1)</code> tests.
|
||||
It is generated by the <code>mkiocccentry(1)</code> tool.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
You submission may have additional files, however the filenames of those additional files <strong>MUST</strong>:
|
||||
</p>
|
||||
<ul>
|
||||
<li><p class="leftbar">
|
||||
Be less than <strong>100</strong> characters in length.
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
Match the regular expression:
|
||||
<code>^[0-9A-Za-z][0-9A-Za-z._+-]*$</code>
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
The <code>mkiocccentry(1)</code> tool will not package any files that do not meet
|
||||
those requirements.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <code>Makefile</code> <strong>MUST</strong> be a <strong>non</strong>-empty file in <strong><a href="https://www.gnu.org/software/make/manual/make.html">GNU
|
||||
Makefile</a></strong> form. See the
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example">Makefile.example</a>,
|
||||
the <a href="../faq.html#submission_makefiles">FAQ about your submission’s Makefile</a> and
|
||||
the <a href="../faq.html#make_compatibility">FAQ about IOCCC Makefile compatibility</a> for help.</p>
|
||||
<p><strong><code>|</code></strong> The <code>remarks.md</code> must be a non-empty file in markdown form. See also
|
||||
the <a href="../faq.html#make_compatibility">FAQ about IOCCC Makefile compatibility</a> for help.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <code>remarks.md</code> <strong>MUST</strong> be a <strong>non</strong>-empty file in markdown form. See also
|
||||
<a href="#rule18">Rule 18</a> and our <a href="../faq.html#remarks_md">FAQ about what to put in your
|
||||
remarks.md</a>.</p>
|
||||
<p><strong><code>|</code></strong> The xz compressed tarball file <strong>MUST</strong> be less than
|
||||
or equal <strong>3999971</strong> octets in size.</p>
|
||||
<p><strong><code>|</code></strong> When your submission’s xz compressed tarball is uncompressed,
|
||||
remarks.md</a> and the <a href="../faq.html#markdown">FAQ about IOCCC best markdown
|
||||
practices</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See also the <a href="https://www.markdownguide.org/basic-syntax">markdown syntax</a> guide
|
||||
and the <a href="https://spec.commonmark.org/current/">CommonMark Spec</a>.
|
||||
</p>
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The xz compressed tarball file <strong>MUST</strong> be less than or equal <strong>3999971</strong> octets in size.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
When your submission’s xz compressed tarball is uncompressed,
|
||||
the total size of your submission: the sum of the size of the program,
|
||||
hints, comments, build and info files <strong>MUST</strong> be less than or equal
|
||||
to <strong>28314624</strong> octets (<strong>27651K</strong>) in size.</p>
|
||||
<p><strong><code>|</code></strong> Your submission’s xz compressed tarball <strong>MUST</strong> pass the <code>txzchk(1)</code> test.</p>
|
||||
<p><strong><code>|</code></strong> You are <strong>HIGHLY ENCOURAGED</strong> to use the <code>mkiocccentry(1)</code>
|
||||
tool to form your submission’s xz compressed tarball.</p>
|
||||
<p><strong><code>|</code></strong> Your entry may <strong>NOT</strong> have subdirectories.</p>
|
||||
<p><strong><code>|</code></strong> Filenames in your entry (that is, not including the files generated by
|
||||
the <code>mkiocccentry(1)</code> tool or the tools it invokes) <strong>MUST</strong>:</p>
|
||||
to <strong>28314624</strong> octets (<strong>27651K</strong>) in size.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Your submission’s xz compressed tarball <strong>MUST</strong> pass the <code>txzchk(1)</code> test. See
|
||||
the <a href="guidelines.html">guidelines</a> for more details on this tool.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
You are <strong>HIGHLY ENCOURAGED</strong> to use the <code>mkiocccentry(1)</code> tool to form your
|
||||
submission’s xz compressed tarball. See the <a href="guidelines.html">guidelines</a> for
|
||||
more details on this tool and the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
repo</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Your entry may <strong>NOT</strong> have subdirectories. However, you can provide files that
|
||||
are in different directories as <code>mkiocccentry(1)</code> will copy them to the work
|
||||
directory (see the <a href="guidelines.html">guidelines</a> for more details).
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Filenames in your entry (that is, not including the files generated by the
|
||||
<code>mkiocccentry(1)</code> tool or the tools it or any other tool invokes) <strong>MUST</strong>:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Be less than <strong>100</strong> characters in length</li>
|
||||
<li><strong>NOT</strong> have a <strong><code>/</code></strong> (excluding the entry directory that the
|
||||
<code>mkiocccentry(1)</code> tool generates).</li>
|
||||
<li><strong>NOT</strong> contain a path component of: <strong><code>.</code></strong> (that is, with the exception of
|
||||
files generated by <code>mkiocccentry(1)</code> itself, it must have <strong>NO</strong> <strong><code>.</code></strong>).</li>
|
||||
<li><strong>NOT</strong> contain a path component of: <strong><code>..</code></strong> (that is, <strong>NO</strong> <strong><code>..</code></strong>).</li>
|
||||
<li>Match the regular expression <code>^[0-9A-Za-z][0-9A-Za-z._+-]*$</code> (again, excluding
|
||||
files generated by <code>mkiocccentry(1)</code>).</li>
|
||||
<li><p class="leftbar">
|
||||
Be less than <strong>100</strong> characters in length
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<strong>NOT</strong> have a <strong><code>/</code></strong> (excluding the entry directory that
|
||||
the <code>mkiocccentry(1)</code> tool generates).
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<strong>NOT</strong> contain a path component of: <strong><code>.</code></strong> (that is, with
|
||||
the exception of files generated by <code>mkiocccentry(1)</code> itself, it must have
|
||||
<strong>NO</strong> <strong><code>.</code></strong>).
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<strong>NOT</strong> contain a path component of: <strong><code>..</code></strong> (that is,
|
||||
<strong>NO</strong> <strong><code>..</code></strong>).
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
Match the regular expression
|
||||
<code>^[0-9A-Za-z][0-9A-Za-z._+-]*$</code> (again, excluding files generated by
|
||||
<code>mkiocccentry(1)</code>).
|
||||
</p></li>
|
||||
</ul>
|
||||
<p><strong><code>|</code></strong> Additionally, the tarball <strong>MUST</strong> have the following files (generated
|
||||
by the <code>mkiocccentry(1)</code> tool):</p>
|
||||
<p class="leftbar">
|
||||
Additionally, the tarball <strong>MUST</strong> have the following files (generated
|
||||
by the <code>mkiocccentry(1)</code> tool):
|
||||
</p>
|
||||
<ul>
|
||||
<li><code>.auth.json</code> which contains information about the author or authors (that will
|
||||
only be looked at if the submission wins).</li>
|
||||
<li><code>.info.json</code> which contains information about the entry.</li>
|
||||
<li><p class="leftbar">
|
||||
<code>.auth.json</code> which contains information about the author or
|
||||
authors (that will only be looked at if the submission wins).
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<code>.info.json</code> which contains information about the
|
||||
entry.
|
||||
</p></li>
|
||||
</ul>
|
||||
<p><strong><code>|</code></strong> The <code>txzchk(1)</code> tool will verify these (and other things) for you and
|
||||
<p class="leftbar">
|
||||
The <code>txzchk(1)</code> tool will verify these (and other things) for you and
|
||||
the <code>chkentry(1)</code> tool will do additional checks on the contents of the
|
||||
<code>.auth.json</code> and <code>.info.json</code> files.</p>
|
||||
<p><strong><code>|</code></strong> The tarball filename <strong>MUST</strong> pass <code>fnamchk(1)</code>; the tool <code>txzchk(1)</code>
|
||||
<code>.auth.json</code> and <code>.info.json</code> files including JSON validity. If these checks
|
||||
fail it is an error and <code>mkiocccentry(1)</code> will fail. In this case it is very
|
||||
<strong>possibly</strong> a bug; please <a href="https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E">report it at the mkiocccentry issues
|
||||
page</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The tarball filename <strong>MUST</strong> pass <code>fnamchk(1)</code>; the tool <code>txzchk(1)</code>
|
||||
will run <code>fnamchk(1)</code> as part of its algorithm. If you use <code>mkiocccentry(1)</code>
|
||||
there should be no problem but if you were to package things manually it is
|
||||
possible there could be a problem.</p>
|
||||
<p><strong><code>|</code></strong> The <code>fnamchk(1)</code>, which <code>txzchk(1)</code> executes, will verify that the
|
||||
filename is correct.</p>
|
||||
<p><strong><code>|</code></strong> These checks <strong>MUST PASS</strong>.</p>
|
||||
<p><strong><code>|</code></strong> Where <a href="#rule17">Rule 17</a> and the tools from the latest
|
||||
possible there could be a problem and this is a big risk.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <code>fnamchk(1)</code>, which <code>txzchk(1)</code> executes, will verify that the
|
||||
filename is correct.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
These checks <strong>MUST PASS</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Where <a href="#rule17">Rule 17</a> and the tools from the latest
|
||||
release of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>
|
||||
conflict, the <a href="../judges.html">IOCCC Judges</a> will use their best judgment which
|
||||
is likely to favor <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a> code.</p>
|
||||
<p><strong><code>|</code></strong> This means you should <strong>MAKE SURE</strong> that you use <code>mkiocccentry(1)</code> to
|
||||
is likely to favor <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a> code.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
This means you should <strong>MAKE SURE</strong> that you use <code>mkiocccentry(1)</code> to
|
||||
package your submission; <code>mkiocccentry(1)</code> will run the above mentioned tools
|
||||
(that do not act on the tarball) <strong>before</strong> creating the tarball and after the
|
||||
tarball is created it will then verify that the tarball is okay by running
|
||||
<code>txzchk(1)</code> on it.</p>
|
||||
<p><strong><code>|</code></strong> These tools will link in the <code>jparse(8)</code> library and <code>chkentry(1)</code>
|
||||
actually uses the parser to validate the
|
||||
<a href="https://www.json.org/json-en.html">JSON</a>.</p>
|
||||
<p><strong><code>|</code></strong> If you run into a problem with one or more of these tools, <strong>PLEASE</strong>
|
||||
report it at the <a href="https://github.com/ioccc-src/mkiocccentry/issues">mkiocccentry issues
|
||||
page</a>, <strong>making sure to run
|
||||
<code>bug_report.sh</code></strong>. See the <a href="guidelines.html">guidelines</a> for help here and also
|
||||
read <a href="../faq.html#mkiocccentry_bugs">the FAQ about reporting bugs in the mkiocccentry
|
||||
repo</a>.</p>
|
||||
<p><strong><code>|</code></strong> To state the obvious: submissions that violate <a href="#rule17">Rule 17</a> <strong>will be rejected</strong>,
|
||||
so be sure to use the latest release of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>,
|
||||
to form and test your submission’s xz compressed tarball.</p>
|
||||
<code>txzchk(1)</code> on it.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
<strong>MAKE SURE</strong> you use the correct release of the repository; you should do this
|
||||
<strong>AFTER</strong> the contest opens (pull any changes or if you prefer download the
|
||||
repository via the download option at GitHub).
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
We recommend that you run <code>make</code> and then install the tools (and man pages) via
|
||||
<code>make install</code> (as root or using <code>sudo(1)</code> to help you run these tools from your
|
||||
submission’s directory. The <code>make install</code> will install in <code>/usr/local</code>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
These tools will link in the <code>jparse(8)</code> library; <code>chkentry(1)</code> uses the parser
|
||||
to validate the <a href="https://www.json.org/json-en.html">JSON</a> but the other tools
|
||||
use parts of the library as well.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you run into a problem with one or more of these tools, <strong>PLEASE</strong> <a href="https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E">report it
|
||||
at the mkiocccentry issues
|
||||
page</a>,
|
||||
<strong>making sure to run <code>bug_report.sh</code></strong>. See the <a href="guidelines.html">guidelines</a>
|
||||
for help here and also read <a href="../faq.html#mkiocccentry_bugs">the FAQ about reporting bugs in the mkiocccentry
|
||||
repo</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
At the risk of stating the obvious: submissions that violate <a href="#rule17">Rule
|
||||
17</a> <strong>will be rejected</strong>, so <strong>be sure</strong> to use the latest release of the
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>, to form and test
|
||||
your submission’s xz compressed tarball. Do <strong>NOT</strong> assume you have the most
|
||||
recent release without pulling or downloading via GitHub and <strong>make sure</strong> you
|
||||
do this <strong>AFTER</strong> the <a href="../status.html">contest status</a> has changed to
|
||||
<a href="../status.html#open">open</a>.
|
||||
</p>
|
||||
<div id="rule18">
|
||||
<h2 id="rule-18">Rule 18</h2>
|
||||
</div>
|
||||
<p>The entirety of your submission must be submitted under the following license:</p>
|
||||
<p><strong><code>|</code></strong> <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 class="leftbar">
|
||||
<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>You (the author(s)) <strong>MUST</strong> own the contents of your submission <strong>OR</strong>
|
||||
you <strong>MUST HAVE PERMISSION</strong> from the owner(s) to submit their content.</p>
|
||||
<p>You must not submit anything that cannot be submitted under that license.</p>
|
||||
<p>You <strong>MUST NOT</strong> submit anything that cannot be submitted under that license.</p>
|
||||
<div id="rule19">
|
||||
<h2 id="rule-19">Rule 19</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> The <code>remarks.md</code> file, a required non-empty file, must be written in
|
||||
markdown format. See the Daring Fireball <a href="http://daringfireball.net/projects/markdown/basics">Markdown:
|
||||
Basics</a>.</p>
|
||||
<p><strong><code>|</code></strong> We currently use <a href="https://pandoc.org">pandoc</a> to convert markdown to HTML.</p>
|
||||
<p><strong><code>|</code></strong> Please see our <a href="../faq.html#remarks_md">FAQ about what to put in your
|
||||
<p class="leftbar">
|
||||
The <code>remarks.md</code> file, a required non-empty file, must be written in
|
||||
markdown format. See the <a href="http://daringfireball.net/projects/markdown/basics">Daring Fireball Markdown:
|
||||
Basics</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
We currently use <a href="https://pandoc.org">pandoc</a> to convert markdown to HTML.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Please see our <a href="../faq.html#remarks_md">FAQ about what to put in your
|
||||
remarks.md</a> and the <a href="../markdown.html">IOCCC markdown
|
||||
guidelines</a> for additional markdown guidance.</p>
|
||||
guidelines</a> for additional markdown guidance.
|
||||
</p>
|
||||
<div id="rule20">
|
||||
<h2 id="rule-20">Rule 20</h2>
|
||||
</div>
|
||||
<p>The how to build instructions must be in Makefile format. See <a href="../faq.html#make_compatibility">the FAQ about
|
||||
make(1) compatibility the IOCCC
|
||||
supports</a> for more details.</p>
|
||||
<p><strong><code>|</code></strong> You are <strong>ENCOURAGED</strong> to use
|
||||
<p class="leftbar">
|
||||
You are <strong>ENCOURAGED</strong> to use
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example">Makefile.example</a>,
|
||||
renamed as <code>Makefile</code> of course, for help in constructing your Makefile.</p>
|
||||
renamed as <code>Makefile</code> of course, for help in constructing your <code>Makefile</code>.
|
||||
</p>
|
||||
<p>The target of the Makefile 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 not assume that <code>.</code> (the current directory) is in the <code>$PATH</code>.</p>
|
||||
<p><strong><code>|</code></strong> Your <code>Makefile</code> <strong>MUST</strong> use a syntax that is compatible with bash
|
||||
<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">
|
||||
Your <code>Makefile</code> <strong>MUST</strong> use a syntax that is compatible with <code>bash(1)</code>
|
||||
and GNU <code>make(1)</code>. You are <strong>ENCOURAGED</strong> to use set <code>SHELL= bash</code> in
|
||||
your <code>Makefile</code>.</p>
|
||||
<p><strong><code>|</code></strong> Assume that commands commonly found in <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX
|
||||
your <code>Makefile</code>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Assume that commands commonly found in <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX
|
||||
Specification</a>
|
||||
environments and systems that conform to the <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX
|
||||
Specification</a> are
|
||||
available in the <code>$PATH</code> search path.</p>
|
||||
available in the <code>$PATH</code> search path.
|
||||
</p>
|
||||
<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
|
||||
with the exception of the <code>/tmp</code> and the <code>/var/tmp</code> directories. Your submission
|
||||
<p>Your submission <strong>MUST NOT</strong> create or modify files above 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
|
||||
directory name or filename you create.</p>
|
||||
@@ -810,13 +1028,13 @@ directory name or filename you create.</p>
|
||||
<h2 id="rule-22">Rule 22</h2>
|
||||
</div>
|
||||
<p>Catch 22:</p>
|
||||
<p>Your source code, data files, remarks and program output <strong>must NOT</strong>
|
||||
identify the authors of your code. The judges <strong>STRONGLY prefer</strong> to
|
||||
NOT know who is submitting entries to the IOCCC.</p>
|
||||
<p>Your source code, data files, remarks and program output <strong>MUST NOT</strong>
|
||||
identify the authors of your code. The judges <strong>STRONGLY PREFER</strong> to
|
||||
<strong>NOT</strong> know who is submitting entries to the IOCCC.</p>
|
||||
<p>Even if you are a previous IOCCC winner, catch 22 still applies.</p>
|
||||
<p>Identifying the author(s) of your submission in an obvious way anywhere
|
||||
within your code, data, remarks or program output (unless you are
|
||||
<em>Peter Honeyman</em> or pretending to be <em>Peter Honeyman</em>) will be grounds
|
||||
<strong>Peter Honeyman</strong> or pretending to be <strong>Peter Honeyman</strong>) will be grounds
|
||||
for disqualification of your submission.</p>
|
||||
<p>Yes, Virginia, <strong>WE REALLY MEAN IT!</strong></p>
|
||||
<div id="rule23">
|
||||
@@ -830,43 +1048,62 @@ for disqualification of your submission.</p>
|
||||
<div id="rule25">
|
||||
<h2 id="rule-25">Rule 25</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> The <a href="rules.html">IOCCC rule set</a> needs more than 5^2 rules: see <a href="#rule26">Rule 26</a>.</p>
|
||||
<p class="leftbar">
|
||||
The <a href="rules.html">IOCCC rule set</a> needs more than 5^2 rules: see <a href="#rule26">Rule 26</a>.
|
||||
</p>
|
||||
<div id="rule26">
|
||||
<h2 id="rule-26">Rule 26</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> “The quick brown fox jumps over the lazy dog”.<br>
|
||||
<strong><code>|</code></strong> “Pack my box with five dozen liquor jugs.”<br>
|
||||
<strong><code>|</code></strong> “How vexingly quick daft zebras jump!”<br>
|
||||
<strong><code>|</code></strong> “Sphinx of black quartz, judge my vow.”<br>
|
||||
<strong><code>|</code></strong> “Waltz, bad nymph, for quick jigs vex.”<br>
|
||||
<strong><code>|</code></strong> “Mr. Jock, TV quiz PhD, bags few lynx.”<br>
|
||||
<strong><code>|</code></strong> “abcdefg, hijklmnop, qrstu&v, wxy&z.”</p>
|
||||
<blockquote>
|
||||
<p>“The quick brown fox jumps over the lazy dog”.<br>
|
||||
“Pack my box with five dozen liquor jugs.”<br>
|
||||
“How vexingly quick daft zebras jump!”<br>
|
||||
“Sphinx of black quartz, judge my vow.”<br>
|
||||
“Waltz, bad nymph, for quick jigs vex.”<br>
|
||||
“Mr. Jock, TV quiz PhD, bags few lynx.”<br>
|
||||
“abcdefg, hijklmnop, qrstu&v, wxy&z.”</p>
|
||||
</blockquote>
|
||||
<div id="rule27">
|
||||
<h2 id="rule-27">Rule 27</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> Unless otherwise needed, <a href="#rule27">Rule 27</a> is reserved for something cubic. :-)</p>
|
||||
<p class="leftbar">
|
||||
Unless otherwise needed, <a href="#rule27">Rule 27</a> is reserved for something cubic. :-)
|
||||
</p>
|
||||
<div id="rule28">
|
||||
<h2 id="rule-28">Rule 28</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> <a href="#rule28">Rule 28</a> is a perfect way end to the list of <a href="rules.html">IOCCC rules</a> as we do <strong>NOT</strong> plan to have <strong>496</strong> rules. :-)</p>
|
||||
<p class="leftbar">
|
||||
<a href="#rule28">Rule 28</a> is a perfect way end to the list of <a href="rules.html">IOCCC rules</a>
|
||||
as we do <strong>NOT</strong> plan to have <strong>496</strong> rules. :-)
|
||||
</p>
|
||||
<div id="more-information">
|
||||
<div id="information">
|
||||
<h1 id="for-more-information">FOR MORE INFORMATION:</h1>
|
||||
</div>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> For questions or comments about the contest, see <a href="../contact.html">Contacting the IOCCC</a>.</p>
|
||||
<p><strong><code>|</code></strong> Be sure to review the <a href="index.html">IOCCC Rules and Guidelines</a> as
|
||||
<p class="leftbar">
|
||||
For questions or comments about the contest, see <a href="../contact.html">Contacting the IOCCC</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
<strong>Be SURE</strong> to review the <a href="index.html">IOCCC Rules and Guidelines</a> as
|
||||
<a href="rules.html">IOCCC rules</a> and the <a href="guidelines.html">IOCCC guidelines</a> may (and
|
||||
<strong>often do</strong>) change from year to year.</p>
|
||||
<p><strong><code>|</code></strong> You should be sure you have the current <a href="rules.html">IOCCC rules</a> and
|
||||
<a href="guidelines.html">IOCCC guidelines</a> prior to submitting entries.</p>
|
||||
<p><strong><code>|</code></strong> See the <a href="../news.html">Official IOCCC website news</a> for additional information.</p>
|
||||
<p><strong><code>|</code></strong> For the updates and breaking IOCCC news, you are encouraged to follow
|
||||
<strong>often do</strong>) change from year to year.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
You should be sure you have the current <a href="rules.html">IOCCC rules</a> and
|
||||
<a href="guidelines.html">IOCCC guidelines</a> prior to submitting entries.
|
||||
</p>
|
||||
<p>See the <a href="../news.html">Official IOCCC website news</a> for additional information.</p>
|
||||
<p class="leftbar">
|
||||
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
|
||||
<a href="../faq.html#try_mastodon">FAQ about Mastodon</a> for more information. Please do note that unless
|
||||
you are mentioned by us you will <strong>NOT</strong> get a notification from the app <em>so you
|
||||
should refresh the page <strong>even if you do follow us</strong></em>.</p>
|
||||
<p><strong><code>|</code></strong> Check out the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a> in general.</p>
|
||||
should refresh the page <strong>even if you do follow us</strong></em>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Check out the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a> in general.
|
||||
</p>
|
||||
<p><strong>Leonid A. Broukhis</strong><br>
|
||||
<strong>chongo (Landon Curt Noll) <code>/\cc/\</code></strong></p>
|
||||
<hr style="width:10%;text-align:left;margin-left:0">
|
||||
|
||||
+340
-147
@@ -31,7 +31,9 @@ app from time to time to view IOCCC mastodon updates.
|
||||
<!-- This is the last line modified by the tool: bin/gen-status.sh -->
|
||||
# 28th International Obfuscated C Code Contest Official Rules
|
||||
|
||||
**`|`** Copyright © 2024 Leonid A. Broukhis and Landon Curt Noll.
|
||||
<p class="leftbar">
|
||||
Copyright © 2024 Leonid A. Broukhis and Landon Curt Noll.
|
||||
</p>
|
||||
|
||||
All Rights Reserved. Permission for personal, education or non-profit use is
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
@@ -43,7 +45,9 @@ writing by [contacting the judges](../contact.html).
|
||||
## IOCCC Rules version
|
||||
</div>
|
||||
|
||||
**`|`** These [IOCCC rules](rules.html) are version **28.4 2024-07-02**.
|
||||
<p class="leftbar">
|
||||
These [IOCCC rules](rules.html) are version **28.5 2024-07-08**.
|
||||
</p>
|
||||
|
||||
**IMPORTANT**: Be sure to read the [IOCCC guidelines](guidelines.html).
|
||||
|
||||
@@ -52,10 +56,13 @@ writing by [contacting the judges](../contact.html).
|
||||
### Change marks
|
||||
</div>
|
||||
|
||||
**`|`** **← Lines that start with this symbol indicate a change from the previous IOCCC**
|
||||
<p class="leftbar">
|
||||
**← Lines that start with this symbol indicate a change from the previous IOCCC**
|
||||
</p>
|
||||
|
||||
Most lines (we sometimes make mistakes) that were modified since the previous
|
||||
IOCCC start with the **`|`** symbol.
|
||||
IOCCC start with a solid 4 pixel black left border (or, in the case of a code
|
||||
block or blockquote, just a vertical bar).
|
||||
|
||||
|
||||
<div id="obfuscate">
|
||||
@@ -89,13 +96,17 @@ The goals of the IOCCC:
|
||||
# Important IOCCC dates
|
||||
</div>
|
||||
|
||||
**`|`** This IOCCC runs from **2024-MMM-DD HH:MM:SS UTC** to **202x-MMM-DD HH:MM:SS UTC**.<br>
|
||||
**`|`** **XXX - date/time is TBD - XXX**
|
||||
<p class="leftbar">
|
||||
This IOCCC runs from **2024-MMM-DD HH:MM:SS UTC** to **202x-MMM-DD HH:MM:SS UTC**.<br>
|
||||
**XXX - date/time is TBD - XXX**
|
||||
</p>
|
||||
|
||||
**`|`** Until the start of this IOCCC, these [IOCCC rules](rules.html),
|
||||
<p class="leftbar">
|
||||
Until the start of this IOCCC, these [IOCCC rules](rules.html),
|
||||
[IOCCC guidelines](guidelines.html) and the [mkiocccentry
|
||||
toolkit](https://github.com/ioccc-src/mkiocccentry) should be considered
|
||||
provisional **BETA** versions and **may be adjusted _AT ANY TIME_**.
|
||||
</p>
|
||||
|
||||
When the IOCCC is open, the submission URL is:
|
||||
[https://submit.ioccc.org](https://submit.ioccc.org); at all other
|
||||
@@ -104,8 +115,10 @@ times that link is likely to be unresponsive.
|
||||
Please check the [How to enter FAQ](../faq.html#submit)
|
||||
for **important information** on how to submit to the IOCCC.
|
||||
|
||||
**`|`** The submit URL should be active on or slightly before **2024-MMM-DD HH:MM:SS UTC**.<br>
|
||||
**`|`** **XXX - date/time is TBD - XXX**
|
||||
<p class="leftbar">
|
||||
The submit URL should be active on or slightly before **2024-MMM-DD HH:MM:SS UTC**.<br>
|
||||
**XXX - date/time is TBD - XXX**
|
||||
</p>
|
||||
|
||||
Please wait to submit your entries until after that time.
|
||||
|
||||
@@ -151,26 +164,36 @@ The size rule requires your submission to satisfy **BOTH** [Rule 2a](#rule2a) an
|
||||
## Rule 2a
|
||||
</div>
|
||||
|
||||
**`|`** The size of your program source **should not exceed 4993 bytes**.
|
||||
<p class="leftbar">
|
||||
The size of your program source **should not exceed 4993 bytes**.
|
||||
</p>
|
||||
|
||||
**`|`** If you use the most recently released official IOCCC submission
|
||||
<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>
|
||||
|
||||
**`|`** The `mkiocccentry(1)` tool will give you the option of overriding the [Rule 2a](#rule2a) warning.
|
||||
<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>
|
||||
|
||||
**`|`** If you do override the [Rule 2a](#rule2a) warning from the
|
||||
<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**.
|
||||
</p>
|
||||
|
||||
**`|`** You may check your code prior to submission by giving the filename
|
||||
<p class="leftbar">
|
||||
You may check your code prior to submission by giving the filename
|
||||
as a command like argument to the `iocccsize(1)` tool. For example:
|
||||
</p>
|
||||
|
||||
``` <!---sh-->
|
||||
./iocccsize prog.c
|
||||
@@ -181,29 +204,41 @@ as a command like argument to the `iocccsize(1)` tool. For example:
|
||||
## Rule 2b
|
||||
</div>
|
||||
|
||||
**`|`** When the filename of your program source is given as a command line argument to the latest version
|
||||
<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_**.
|
||||
</p>
|
||||
|
||||
**`|`** The source to `iocccsize(1)` may be found in the
|
||||
<p class="leftbar">
|
||||
The source to `iocccsize(1)` may be found in the
|
||||
[mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry).
|
||||
</p>
|
||||
|
||||
**`|`** If you use the `mkiocccentry(1)` tool, which we **STRONGLY recommend
|
||||
<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.
|
||||
</p>
|
||||
|
||||
**`|`** The `mkiocccentry(1)` tool will give you the option of overriding the [Rule 2b](#rule2b) warning.
|
||||
<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.
|
||||
</p>
|
||||
|
||||
**`|`** If you do override the [Rule 2b](#rule2b) warning from the `mkiocccentry(1)` tool,
|
||||
<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**.
|
||||
</p>
|
||||
|
||||
**`|`** You may check your code prior to submission by giving the filename
|
||||
<p class="leftbar">
|
||||
You may check your code prior to submission by giving the filename
|
||||
as a command like argument to the `iocccsize(1)` tool. For example:
|
||||
</p>
|
||||
|
||||
``` <!---sh-->
|
||||
./iocccsize prog.c
|
||||
@@ -220,8 +255,10 @@ To submit to an open IOCCC, you must use the [IOCCC submit
|
||||
server](https://submit.ioccc.org/). Unless the IOCCC is open, that link will
|
||||
likely be unresponsive.
|
||||
|
||||
**`|`** The submit URL should be active on or slightly before **2024-MMM-DD HH:MM:SS UTC**.<br>
|
||||
**`|`** **XXX - date/time is TBD - XXX**
|
||||
<p class="leftbar">
|
||||
The submit URL should be active on or slightly before **2024-MMM-DD HH:MM:SS UTC**.<br>
|
||||
**XXX - date/time is TBD - XXX**
|
||||
</p>
|
||||
|
||||
**Please wait to submit** your entries until after that time.
|
||||
|
||||
@@ -230,17 +267,25 @@ likely be unresponsive.
|
||||
## Rule 4
|
||||
</div>
|
||||
|
||||
**`|`** If your submission is selected as a winner, it may be modified in order
|
||||
<p class="leftbar">
|
||||
If your submission is selected as a winner, it may be modified in order
|
||||
to fit into the structure of the [Official IOCCC winner website](https://www.ioccc.org/index.html).
|
||||
</p>
|
||||
|
||||
**`|`** For example, your submission's `Makefile` might be modified.
|
||||
<p class="leftbar">
|
||||
For example, your submission's `Makefile` might be modified.
|
||||
</p>
|
||||
|
||||
**`|`** Your source code will be the file `prog.c`. The compiled binary
|
||||
<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.
|
||||
</p>
|
||||
|
||||
**`|`** See also [Rule 5](#rule5), [Rule 18](#rule18) and [Rule 21](#rule21).
|
||||
<p class="leftbar">
|
||||
See also [Rule 5](#rule5), [Rule 18](#rule18) and [Rule 21](#rule21).
|
||||
</p>
|
||||
|
||||
|
||||
<div id="rule5">
|
||||
@@ -260,11 +305,15 @@ file to a new filename and then modify that copy.
|
||||
## Rule 6
|
||||
</div>
|
||||
|
||||
**`|`** I am not a rule, I am a `free(void *human);` ‼️
|
||||
<p class="leftbar">
|
||||
I am not a rule, I am a `free(void *human);` ‼️
|
||||
</p>
|
||||
|
||||
**`|`** `while (!(ioccc(rule(you(are(number(6)))))) {`<br>
|
||||
**`|`** `ha_ha_ha();`<br>
|
||||
**`|`** `}`
|
||||
<p class="leftbar">
|
||||
`while (!(ioccc(rule(you(are(number(6)))))) {`<br>
|
||||
`ha_ha_ha();`<br>
|
||||
`}`
|
||||
</p>
|
||||
|
||||
|
||||
<div id="rule7">
|
||||
@@ -277,7 +326,9 @@ You (the author(s)) must own the contents of your submission OR
|
||||
you must have permission from the owner(s) to submit their content
|
||||
under the following license:
|
||||
|
||||
**`|`** **[CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)**
|
||||
<p class="leftbar">
|
||||
**[CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)**
|
||||
</p>
|
||||
|
||||
If you submit any content that is owned by others, you **MUST
|
||||
detail that ownership** (i.e., who owns what) **_AND_ document the
|
||||
@@ -290,8 +341,10 @@ Please note that the IOCCC size tool is **NOT** an original work.
|
||||
## Rule 8
|
||||
</div>
|
||||
|
||||
**`|`** Entries must be received prior to the end of this IOCCC which is **2024-MMM-DD HH:MM:SS UTC**.<br>
|
||||
**`|`** **XXX - date/time is TBD - XXX**
|
||||
<p class="leftbar">
|
||||
Entries must be received prior to the end of this IOCCC which is **2024-MMM-DD HH:MM:SS UTC**.<br>
|
||||
**XXX - date/time is TBD - XXX**
|
||||
</p>
|
||||
|
||||
|
||||
A confirmation of submission will be sent to the submitting email address
|
||||
@@ -302,7 +355,9 @@ before the close of the contest.
|
||||
## Rule 9
|
||||
</div>
|
||||
|
||||
**`|`** Each person may submit up to and including **10.000000** entries per contest.
|
||||
<p class="leftbar">
|
||||
Each person may submit up to and including **10.000000** (ten) entries per contest.
|
||||
</p>
|
||||
|
||||
**Each submission _must be submitted separately_**.
|
||||
|
||||
@@ -341,16 +396,20 @@ their rule abuse is legal, in the `remarks.md` file.
|
||||
## Rule 13
|
||||
</div>
|
||||
|
||||
**`|`** Any C source that fails to compile because of unescaped octets with
|
||||
<p class="leftbar">
|
||||
Any C source that fails to compile because of unescaped octets with
|
||||
the high bit set (octet value >= 128) **_might_** be rejected.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="rule14">
|
||||
## Rule 14
|
||||
</div>
|
||||
|
||||
**`|`** Any C source that fails to compile because of lines with trailing
|
||||
<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.
|
||||
</p>
|
||||
|
||||
Please do **NOT** put trailing control-M's on remarks file lines.
|
||||
Please check to be sure, before submitting, that you have removed
|
||||
@@ -361,15 +420,18 @@ any control-M at the end of remark file lines.
|
||||
## Rule 15
|
||||
</div>
|
||||
|
||||
**`|`** In order to register for the IOCCC, you **MUST** have a valid email address.
|
||||
<p class="leftbar">
|
||||
In order to register for the IOCCC, you **MUST** have a valid email address.
|
||||
</p>
|
||||
|
||||
The judges **are not responsible for delays in email**, please plan
|
||||
enough time for one automated exchange of email as part of your
|
||||
submission.
|
||||
|
||||
**`|`** See [the FAQ on how to register for the IOCCC](../faq.html#register) in the
|
||||
<p class="leftbar">
|
||||
See [the FAQ on how to register for the IOCCC](../faq.html#register) in the
|
||||
[FAQ](../faq.html) for details.
|
||||
|
||||
</p>
|
||||
|
||||
<div id="rule16">
|
||||
## Rule 16
|
||||
@@ -388,156 +450,256 @@ been published may be disqualified.
|
||||
|
||||
### TL;DR Rule 17 - Use `mkiocccentry(1)`
|
||||
|
||||
**`|`** This is a **COMPLEX** rule. **Violating this rule will cause your submission to REJECTED**!
|
||||
<p class="leftbar">
|
||||
This is a **COMPLEX** rule. **Violating this rule will cause your submission to REJECTED**!
|
||||
To help you avoid such a rejection, you are **HIGHLY ENCOURAGED** to use the `mkiocccentry(1)` tool,
|
||||
based on the latest release of the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry),
|
||||
to form your submission's xz compressed tarball.
|
||||
</p>
|
||||
|
||||
**`|`** The [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry)
|
||||
<p class="leftbar">
|
||||
The [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry)
|
||||
contains **IMPORTANT** tools such as:
|
||||
</p>
|
||||
|
||||
* `chkentry(1)`
|
||||
* `iocccsize(1)`
|
||||
* `mkiocccentry(1)`
|
||||
* `txzchk(1)`
|
||||
* `fnamchk(1)`
|
||||
* `jparse(1)` and `jparse(8)` (which `chkentry(1)` uses)
|
||||
* <p class="leftbar">`chkentry(1)`</p>
|
||||
* <p class="leftbar">`iocccsize(1)`</p>
|
||||
* <p class="leftbar">`mkiocccentry(1)`</p>
|
||||
* <p class="leftbar">`txzchk(1)`</p>
|
||||
* <p class="leftbar">`fnamchk(1)`</p>
|
||||
* <p class="leftbar">`jparse(1)` and `jparse(8)` (which `chkentry(1)` uses)</p>
|
||||
|
||||
**`|`** The above mentioned tools will help you verify that your submission
|
||||
<p class="leftbar">
|
||||
The above mentioned tools will help you verify that your submission
|
||||
conforms to [Rule 17](#rule17).
|
||||
</p>
|
||||
|
||||
**`|`** Each above mentioned tools has a `-h` option that provides command
|
||||
<p class="leftbar">
|
||||
Each above mentioned tools has a `-h` option that provides command
|
||||
line help. For additional details, see the tools' man pages.
|
||||
</p>
|
||||
|
||||
**`|`** You do not explicitly need to invoke `jparse(1)` but the `jparse(8)`
|
||||
<p class="leftbar">
|
||||
You do not explicitly need to invoke `jparse(1)` but the `jparse(8)`
|
||||
library will be used when compiling various tools.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Of course you **can** invoke `jparse(1)` if you wish to validate your own JSON
|
||||
data file or some other JSON file.
|
||||
</p>
|
||||
|
||||
|
||||
### Rule 17 - The COMPLEX details
|
||||
|
||||
**`|`** Each submission **MUST** be in the form of a xz compressed tarball.
|
||||
|
||||
**`|`** The xz compressed tarball filename must be of the form:
|
||||
<p class="leftbar">
|
||||
Each submission **MUST** be in the form of a xz compressed tarball.
|
||||
The xz compressed tarball filename must be of the form:
|
||||
</p>
|
||||
|
||||
``` <!---re-->
|
||||
^submit.username-slot_num.[1-9][0-9]{9,}.txz$
|
||||
```
|
||||
|
||||
**`|`** where _`username`_ is your IOCCC registration username **in the form of a
|
||||
<p class="leftbar">
|
||||
... where _`username`_ is your IOCCC registration username **in the form of a
|
||||
[UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier)** (see
|
||||
[RFC 9562](https://datatracker.ietf.org/doc/html/rfc9562) for
|
||||
details), and where _`slot_num`_ is a single decimal digit integer
|
||||
(i.e., >= `0` and < `9`).
|
||||
</p>
|
||||
|
||||
**`|`** In particular, _`username`_ is in the form of:
|
||||
<p class="leftbar">
|
||||
In particular, _`username`_ is in the form of:
|
||||
`xxxxxxxx-xxxx-4xxx-axxx-xxxxxxxxxxxx` where `x` is a hexadecimal digit in the
|
||||
range `[0-9a-f]`. And yes, there is a 4 (UUID version 4) and an `a` (UUID variant
|
||||
1) in there.
|
||||
</p>
|
||||
|
||||
**`|`** Your xz compressed tarball **MUST** contain, at a minimum,
|
||||
the following files:
|
||||
<p class="leftbar">
|
||||
Your xz compressed tarball **MUST** contain, **at a minimum**, the following files:
|
||||
</p>
|
||||
|
||||
* `Makefile`
|
||||
* `prog.c`
|
||||
* `remarks.md`
|
||||
* `.info.json`
|
||||
* `.auth.json`
|
||||
* <p class="leftbar">`Makefile`</p>
|
||||
* <p class="leftbar">`prog.c`</p>
|
||||
* <p class="leftbar">`remarks.md`</p>
|
||||
* <p class="leftbar">`.info.json`</p>
|
||||
* <p class="leftbar">`.auth.json`</p>
|
||||
|
||||
**`|`** The `.info.json` must be valid JSON and pass the `chkentry(1)` tests.
|
||||
<p class="leftbar">
|
||||
The `.info.json` must be valid JSON and pass the `chkentry(1)` tests.
|
||||
It is generated by the `mkiocccentry(1)` tool.
|
||||
</p>
|
||||
|
||||
**`|`** The `.auth.json` must be valid JSON and pass the `chkentry(1)` tests.
|
||||
<p class="leftbar">
|
||||
The `.auth.json` must be valid JSON and pass the `chkentry(1)` tests.
|
||||
It is generated by the `mkiocccentry(1)` tool.
|
||||
</p>
|
||||
|
||||
**`|`** You submission may have additional files, however the filenames of those additional files **MUST**:
|
||||
<p class="leftbar">
|
||||
You submission may have additional files, however the filenames of those additional files **MUST**:
|
||||
</p>
|
||||
|
||||
**`|`** * Be less than **100** characters in length<br>
|
||||
**`|`** * Match the regular expression: `^[0-9A-Za-z][0-9A-Za-z._+-]*$`
|
||||
* <p class="leftbar"> Be less than **100** characters in length.</p>
|
||||
* <p class="leftbar">Match the regular expression:
|
||||
`^[0-9A-Za-z][0-9A-Za-z._+-]*$`</p>
|
||||
|
||||
**`|`** The `mkiocccentry(1)` tool will not package any files that do not meet
|
||||
<p class="leftbar">
|
||||
The `mkiocccentry(1)` tool will not package any files that do not meet
|
||||
those requirements.
|
||||
</p>
|
||||
|
||||
**`|`** The `Makefile` must be a non-empty file in [GNU
|
||||
Makefile](https://www.gnu.org/software/make/manual/make.html) form. See the
|
||||
<p class="leftbar">
|
||||
The `Makefile` **MUST** be a **non**-empty file in **[GNU
|
||||
Makefile](https://www.gnu.org/software/make/manual/make.html)** form. See the
|
||||
[Makefile.example](https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example),
|
||||
the [FAQ about your submission's Makefile](../faq.html#submission_makefiles) and
|
||||
the [FAQ about IOCCC Makefile compatibility](../faq.html#make_compatibility) for help.
|
||||
</p>
|
||||
|
||||
**`|`** The `remarks.md` must be a non-empty file in markdown form. See also
|
||||
<p class="leftbar">
|
||||
The `remarks.md` **MUST** be a **non**-empty file in markdown form. See also
|
||||
[Rule 18](#rule18) and our [FAQ about what to put in your
|
||||
remarks.md](../faq.html#remarks_md).
|
||||
remarks.md](../faq.html#remarks_md) and the [FAQ about IOCCC best markdown
|
||||
practices](../faq.html#markdown).
|
||||
</p>
|
||||
|
||||
**`|`** The xz compressed tarball file **MUST** be less than
|
||||
or equal **3999971** octets in size.
|
||||
<p class="leftbar">
|
||||
See also the [markdown syntax](https://www.markdownguide.org/basic-syntax) guide
|
||||
and the [CommonMark Spec](https://spec.commonmark.org/current/).</p>
|
||||
</p>
|
||||
|
||||
**`|`** When your submission's xz compressed tarball is uncompressed,
|
||||
<p class="leftbar">
|
||||
The xz compressed tarball file **MUST** be less than or equal **3999971** octets in size.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
When your submission's xz compressed tarball is uncompressed,
|
||||
the total size of your submission: the sum of the size of the program,
|
||||
hints, comments, build and info files **MUST** be less than or equal
|
||||
to **28314624** octets (**27651K**) in size.
|
||||
</p>
|
||||
|
||||
**`|`** Your submission's xz compressed tarball **MUST** pass the `txzchk(1)` test.
|
||||
<p class="leftbar">
|
||||
Your submission's xz compressed tarball **MUST** pass the `txzchk(1)` test. See
|
||||
the [guidelines](guidelines.html) for more details on this tool.
|
||||
</p>
|
||||
|
||||
**`|`** You are **HIGHLY ENCOURAGED** to use the `mkiocccentry(1)`
|
||||
tool to form your submission's xz compressed tarball.
|
||||
<p class="leftbar">
|
||||
You are **HIGHLY ENCOURAGED** to use the `mkiocccentry(1)` tool to form your
|
||||
submission's xz compressed tarball. See the [guidelines](guidelines.html) for
|
||||
more details on this tool and the [mkiocccentry
|
||||
repo](https://github.com/ioccc-src/mkiocccentry).
|
||||
</p>
|
||||
|
||||
**`|`** Your entry may **NOT** have subdirectories.
|
||||
<p class="leftbar">
|
||||
Your entry may **NOT** have subdirectories. However, you can provide files that
|
||||
are in different directories as `mkiocccentry(1)` will copy them to the work
|
||||
directory (see the [guidelines](guidelines.html) for more details).
|
||||
</p>
|
||||
|
||||
**`|`** Filenames in your entry (that is, not including the files generated by
|
||||
the `mkiocccentry(1)` tool or the tools it invokes) **MUST**:
|
||||
<p class="leftbar">
|
||||
Filenames in your entry (that is, not including the files generated by the
|
||||
`mkiocccentry(1)` tool or the tools it or any other tool invokes) **MUST**:
|
||||
</p>
|
||||
|
||||
* Be less than **100** characters in length
|
||||
* **NOT** have a **`/`** (excluding the entry directory that the
|
||||
`mkiocccentry(1)` tool generates).
|
||||
* **NOT** contain a path component of: **`.`** (that is, with the exception of
|
||||
files generated by `mkiocccentry(1)` itself, it must have **NO** **`.`**).
|
||||
* **NOT** contain a path component of: **`..`** (that is, **NO** **`..`**).
|
||||
* Match the regular expression `^[0-9A-Za-z][0-9A-Za-z._+-]*$` (again, excluding
|
||||
files generated by `mkiocccentry(1)`).
|
||||
* <p class="leftbar">Be less than **100** characters in length</p>
|
||||
* <p class="leftbar">**NOT** have a **`/`** (excluding the entry directory that
|
||||
the `mkiocccentry(1)` tool generates).</p>
|
||||
* <p class="leftbar">**NOT** contain a path component of: **`.`** (that is, with
|
||||
the exception of files generated by `mkiocccentry(1)` itself, it must have
|
||||
**NO** **`.`**).</p>
|
||||
* <p class="leftbar">**NOT** contain a path component of: **`..`** (that is,
|
||||
**NO** **`..`**).</p>
|
||||
* <p class="leftbar">Match the regular expression
|
||||
`^[0-9A-Za-z][0-9A-Za-z._+-]*$` (again, excluding files generated by
|
||||
`mkiocccentry(1)`).</p>
|
||||
|
||||
**`|`** Additionally, the tarball **MUST** have the following files (generated
|
||||
<p class="leftbar">
|
||||
Additionally, the tarball **MUST** have the following files (generated
|
||||
by the `mkiocccentry(1)` tool):
|
||||
</p>
|
||||
|
||||
* `.auth.json` which contains information about the author or authors (that will
|
||||
only be looked at if the submission wins).
|
||||
* `.info.json` which contains information about the entry.
|
||||
* <p class="leftbar">`.auth.json` which contains information about the author or
|
||||
authors (that will only be looked at if the submission wins).</p>
|
||||
* <p class="leftbar">`.info.json` which contains information about the
|
||||
entry.</p>
|
||||
|
||||
**`|`** The `txzchk(1)` tool will verify these (and other things) for you and
|
||||
<p class="leftbar">
|
||||
The `txzchk(1)` tool will verify these (and other things) for you and
|
||||
the `chkentry(1)` tool will do additional checks on the contents of the
|
||||
`.auth.json` and `.info.json` files.
|
||||
`.auth.json` and `.info.json` files including JSON validity. If these checks
|
||||
fail it is an error and `mkiocccentry(1)` will fail. In this case it is very
|
||||
**possibly** a bug; please [report it at the mkiocccentry issues
|
||||
page](https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E).
|
||||
</p>
|
||||
|
||||
**`|`** The tarball filename **MUST** pass `fnamchk(1)`; the tool `txzchk(1)`
|
||||
<p class="leftbar">
|
||||
The tarball filename **MUST** pass `fnamchk(1)`; the tool `txzchk(1)`
|
||||
will run `fnamchk(1)` as part of its algorithm. If you use `mkiocccentry(1)`
|
||||
there should be no problem but if you were to package things manually it is
|
||||
possible there could be a problem.
|
||||
possible there could be a problem and this is a big risk.
|
||||
</p>
|
||||
|
||||
**`|`** The `fnamchk(1)`, which `txzchk(1)` executes, will verify that the
|
||||
<p class="leftbar">
|
||||
The `fnamchk(1)`, which `txzchk(1)` executes, will verify that the
|
||||
filename is correct.
|
||||
</p>
|
||||
|
||||
**`|`** These checks **MUST PASS**.
|
||||
<p class="leftbar">
|
||||
These checks **MUST PASS**.
|
||||
</p>
|
||||
|
||||
**`|`** Where [Rule 17](#rule17) and the tools from the latest
|
||||
<p class="leftbar">
|
||||
Where [Rule 17](#rule17) and the tools from the latest
|
||||
release of the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry)
|
||||
conflict, the [IOCCC Judges](../judges.html) will use their best judgment which
|
||||
is likely to favor [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry) code.
|
||||
</p>
|
||||
|
||||
**`|`** This means you should **MAKE SURE** that you use `mkiocccentry(1)` to
|
||||
<p class="leftbar">
|
||||
This means you should **MAKE SURE** that you use `mkiocccentry(1)` to
|
||||
package your submission; `mkiocccentry(1)` will run the above mentioned tools
|
||||
(that do not act on the tarball) **before** creating the tarball and after the
|
||||
tarball is created it will then verify that the tarball is okay by running
|
||||
`txzchk(1)` on it.
|
||||
</p>
|
||||
|
||||
**`|`** These tools will link in the `jparse(8)` library and `chkentry(1)`
|
||||
actually uses the parser to validate the
|
||||
[JSON](https://www.json.org/json-en.html).
|
||||
<p class="leftbar">
|
||||
**MAKE SURE** you use the correct release of the repository; you should do this
|
||||
**AFTER** the contest opens (pull any changes or if you prefer download the
|
||||
repository via the download option at GitHub).
|
||||
</p>
|
||||
|
||||
**`|`** If you run into a problem with one or more of these tools, **PLEASE**
|
||||
report it at the [mkiocccentry issues
|
||||
page](https://github.com/ioccc-src/mkiocccentry/issues), **making sure to run
|
||||
`bug_report.sh`**. See the [guidelines](guidelines.html) for help here and also
|
||||
read [the FAQ about reporting bugs in the mkiocccentry
|
||||
<p class="leftbar">
|
||||
We recommend that you run `make` and then install the tools (and man pages) via
|
||||
`make install` (as root or using `sudo(1)` to help you run these tools from your
|
||||
submission's directory. The `make install` will install in `/usr/local`.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
These tools will link in the `jparse(8)` library; `chkentry(1)` uses the parser
|
||||
to validate the [JSON](https://www.json.org/json-en.html) but the other tools
|
||||
use parts of the library as well.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you run into a problem with one or more of these tools, **PLEASE** [report it
|
||||
at the mkiocccentry issues
|
||||
page](https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E),
|
||||
**making sure to run `bug_report.sh`**. See the [guidelines](guidelines.html)
|
||||
for help here and also read [the FAQ about reporting bugs in the mkiocccentry
|
||||
repo](../faq.html#mkiocccentry_bugs).
|
||||
</p>
|
||||
|
||||
**`|`** To state the obvious: submissions that violate [Rule 17](#rule17) **will be rejected**,
|
||||
so be sure to use the latest release of the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry),
|
||||
to form and test your submission's xz compressed tarball.
|
||||
<p class="leftbar">At the risk of stating the obvious: submissions that violate [Rule
|
||||
17](#rule17) **will be rejected**, so **be sure** to use the latest release of the
|
||||
[mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry), to form and test
|
||||
your submission's xz compressed tarball. Do **NOT** assume you have the most
|
||||
recent release without pulling or downloading via GitHub and **make sure** you
|
||||
do this **AFTER** the [contest status](../status.html) has changed to
|
||||
[open](../status.html#open).
|
||||
</p>
|
||||
|
||||
|
||||
<div id="rule18">
|
||||
@@ -546,27 +708,35 @@ to form and test your submission's xz compressed tarball.
|
||||
|
||||
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/)**
|
||||
<p class="leftbar">
|
||||
**[CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)**
|
||||
</p>
|
||||
|
||||
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 not submit anything that cannot be submitted under that license.
|
||||
You **MUST NOT** submit anything that cannot be submitted under that license.
|
||||
|
||||
|
||||
<div id="rule19">
|
||||
## Rule 19
|
||||
</div>
|
||||
|
||||
**`|`** The `remarks.md` file, a required non-empty file, must be written in
|
||||
markdown format. See the Daring Fireball [Markdown:
|
||||
<p class="leftbar">
|
||||
The `remarks.md` file, a required non-empty file, must be written in
|
||||
markdown format. See the [Daring Fireball Markdown:
|
||||
Basics](http://daringfireball.net/projects/markdown/basics).
|
||||
</p>
|
||||
|
||||
**`|`** We currently use [pandoc](https://pandoc.org) to convert markdown to HTML.
|
||||
<p class="leftbar">
|
||||
We currently use [pandoc](https://pandoc.org) to convert markdown to HTML.
|
||||
</p>
|
||||
|
||||
**`|`** Please see our [FAQ about what to put in your
|
||||
<p class="leftbar">
|
||||
Please see our [FAQ about what to put in your
|
||||
remarks.md](../faq.html#remarks_md) and the [IOCCC markdown
|
||||
guidelines](../markdown.html) for additional markdown guidance.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="rule20">
|
||||
@@ -577,35 +747,41 @@ The how to build instructions must be in Makefile format. See [the FAQ about
|
||||
make(1) compatibility the IOCCC
|
||||
supports](../faq.html#make_compatibility) for more details.
|
||||
|
||||
**`|`** You are **ENCOURAGED** to use
|
||||
<p class="leftbar">
|
||||
You are **ENCOURAGED** to use
|
||||
[Makefile.example](https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example),
|
||||
renamed as `Makefile` of course, for help in constructing your Makefile.
|
||||
renamed as `Makefile` of course, for help in constructing your `Makefile`.
|
||||
</p>
|
||||
|
||||
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 `${CPP}`.
|
||||
To invoke the C compiler, use `${CC}`. To invoke the C preprocessor use
|
||||
`${CPP}`.
|
||||
|
||||
Do not assume that `.` (the current directory) is in the `$PATH`.
|
||||
Do **NOT** assume that `.` (the current directory) is in the `$PATH`.
|
||||
|
||||
**`|`** Your `Makefile` **MUST** use a syntax that is compatible with bash
|
||||
<p class="leftbar">
|
||||
Your `Makefile` **MUST** use a syntax that is compatible with `bash(1)`
|
||||
and GNU `make(1)`. You are **ENCOURAGED** to use set `SHELL= bash` in
|
||||
your `Makefile`.
|
||||
</p>
|
||||
|
||||
**`|`** Assume that commands commonly found in [Single UNIX
|
||||
<p class="leftbar">
|
||||
Assume that commands commonly found in [Single UNIX
|
||||
Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification)
|
||||
environments and systems that conform to the [Single UNIX
|
||||
Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification) are
|
||||
available in the `$PATH` search path.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="rule21">
|
||||
## Rule 21
|
||||
</div>
|
||||
|
||||
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
|
||||
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
|
||||
directory name or filename you create.
|
||||
@@ -617,15 +793,15 @@ directory name or filename you create.
|
||||
|
||||
Catch 22:
|
||||
|
||||
Your source code, data files, remarks and program output **must NOT**
|
||||
identify the authors of your code. The judges **STRONGLY prefer** to
|
||||
NOT know who is submitting entries to the IOCCC.
|
||||
Your source code, data files, remarks and program output **MUST NOT**
|
||||
identify the authors of your code. The judges **STRONGLY PREFER** to
|
||||
**NOT** know who is submitting entries to the IOCCC.
|
||||
|
||||
Even if you are a previous IOCCC winner, catch 22 still applies.
|
||||
|
||||
Identifying the author(s) of your submission in an obvious way anywhere
|
||||
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.
|
||||
|
||||
Yes, Virginia, **WE REALLY MEAN IT!**
|
||||
@@ -649,34 +825,41 @@ Even though 24 is not prime, you should still see [Rule 23](#rule23).
|
||||
## Rule 25
|
||||
</div>
|
||||
|
||||
**`|`** The [IOCCC rule set](rules.html) needs more than 5^2 rules: see [Rule 26](#rule26).
|
||||
<p class="leftbar">
|
||||
The [IOCCC rule set](rules.html) needs more than 5^2 rules: see [Rule 26](#rule26).
|
||||
</p>
|
||||
|
||||
|
||||
<div id="rule26">
|
||||
## Rule 26
|
||||
</div>
|
||||
|
||||
**`|`** "The quick brown fox jumps over the lazy dog".<br>
|
||||
**`|`** "Pack my box with five dozen liquor jugs."<br>
|
||||
**`|`** "How vexingly quick daft zebras jump!"<br>
|
||||
**`|`** "Sphinx of black quartz, judge my vow."<br>
|
||||
**`|`** "Waltz, bad nymph, for quick jigs vex."<br>
|
||||
**`|`** "Mr. Jock, TV quiz PhD, bags few lynx."<br>
|
||||
**`|`** "abcdefg, hijklmnop, qrstu&v, wxy&z."
|
||||
> "The quick brown fox jumps over the lazy dog".<br>
|
||||
> "Pack my box with five dozen liquor jugs."<br>
|
||||
> "How vexingly quick daft zebras jump!"<br>
|
||||
> "Sphinx of black quartz, judge my vow."<br>
|
||||
> "Waltz, bad nymph, for quick jigs vex."<br>
|
||||
> "Mr. Jock, TV quiz PhD, bags few lynx."<br>
|
||||
> "abcdefg, hijklmnop, qrstu&v, wxy&z."
|
||||
|
||||
|
||||
<div id="rule27">
|
||||
## Rule 27
|
||||
</div>
|
||||
|
||||
**`|`** Unless otherwise needed, [Rule 27](#rule27) is reserved for something cubic. :-)
|
||||
<p class="leftbar">
|
||||
Unless otherwise needed, [Rule 27](#rule27) is reserved for something cubic. :-)
|
||||
</p>
|
||||
|
||||
|
||||
<div id="rule28">
|
||||
## Rule 28
|
||||
</div>
|
||||
|
||||
**`|`** [Rule 28](#rule28) is a perfect way end to the list of [IOCCC rules](rules.html) as we do **NOT** plan to have **496** rules. :-)
|
||||
<p class="leftbar">
|
||||
[Rule 28](#rule28) is a perfect way end to the list of [IOCCC rules](rules.html)
|
||||
as we do **NOT** plan to have **496** rules. :-)
|
||||
</p>
|
||||
|
||||
|
||||
<div id="more-information">
|
||||
@@ -685,24 +868,34 @@ Even though 24 is not prime, you should still see [Rule 23](#rule23).
|
||||
</div>
|
||||
</div>
|
||||
|
||||
**`|`** For questions or comments about the contest, see [Contacting the IOCCC](../contact.html).
|
||||
<p class="leftbar">
|
||||
For questions or comments about the contest, see [Contacting the IOCCC](../contact.html).
|
||||
</p>
|
||||
|
||||
**`|`** Be sure to review the [IOCCC Rules and Guidelines](index.html) as
|
||||
<p class="leftbar">
|
||||
**Be SURE** to review the [IOCCC Rules and Guidelines](index.html) as
|
||||
[IOCCC rules](rules.html) and the [IOCCC guidelines](guidelines.html) may (and
|
||||
**often do**) change from year to year.
|
||||
</p>
|
||||
|
||||
**`|`** You should be sure you have the current [IOCCC rules](rules.html) and
|
||||
<p class="leftbar">
|
||||
You should be sure you have the current [IOCCC rules](rules.html) and
|
||||
[IOCCC guidelines](guidelines.html) prior to submitting entries.
|
||||
</p>
|
||||
|
||||
**`|`** See the [Official IOCCC website news](../news.html) for additional information.
|
||||
See the [Official IOCCC website news](../news.html) for additional information.
|
||||
|
||||
**`|`** For the updates and breaking IOCCC news, you are encouraged to follow
|
||||
<p class="leftbar">
|
||||
For the updates and breaking IOCCC news, you are encouraged to follow
|
||||
the [IOCCC on Mastodon](https://fosstodon.org/@ioccc) account. See our
|
||||
[FAQ about Mastodon](../faq.html#try_mastodon) for more information. Please do note that unless
|
||||
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**_.
|
||||
</p>
|
||||
|
||||
**`|`** Check out the [Official IOCCC winner website](https://www.ioccc.org/index.html) in general.
|
||||
<p class="leftbar">
|
||||
Check out the [Official IOCCC winner website](https://www.ioccc.org/index.html) in general.
|
||||
</p>
|
||||
|
||||
|
||||
**Leonid A. Broukhis**<br>
|
||||
|
||||
Reference in new issue
Block a user