important IOCCC rules updates, checkpoint on guidelines
This commit is contained in:
1 parent
388431628e
commit
37ba5f892b
4 files changed
+595
-373
No files matched your search
+48
-26
@@ -461,7 +461,7 @@ writing by <a href="../contact.html">contacting the judges</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
These <a href="guidelines.html">IOCCC guidelines</a> are version <strong>28.41 2025-03-03</strong>.
|
||||
These <a href="guidelines.html">IOCCC guidelines</a> are version <strong>28.42 2025-03-03</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The markdown form of these guidelines <a href="guidelines.md"
|
||||
@@ -590,7 +590,11 @@ the <a href="https://submit.ioccc.org">submit server</a> might be offline and/or
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <a href="https://submit.ioccc.org">submit server</a>, in accordance with <a href="rules.html#rule17">Rule 17</a>,
|
||||
places a limit of <strong>3999971</strong> octets on the size of your upload.
|
||||
places a limit of <strong>3999971</strong> bytes on the size of your upload.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The some the byte lengths of all files, after the <strong>xz compressed tarball</strong> is un-tarred,
|
||||
must not exceed <strong>27651*1024</strong> bytes.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Submissions are uploaded as a single xz compressed tarball.
|
||||
@@ -717,9 +721,9 @@ The IOCCC size tool algorithm can be summarized as follows:
|
||||
</p>
|
||||
<blockquote>
|
||||
<p>The size tool counts most C reserved words (keyword, secondary, and selected
|
||||
preprocessor keywords) as 1. The size tool counts all other octets as 1
|
||||
preprocessor keywords) as 1. The size tool counts all other bytes as 1
|
||||
excluding ASCII whitespace, and excluding any ‘<code>;</code>’, ‘<code>{</code>’ or ‘<code>}</code>’ followed by
|
||||
ASCII whitespace, and excluding any ‘<code>;</code>’, ‘<code>{</code>’ or ‘<code>}</code>’ octet immediately
|
||||
ASCII whitespace, and excluding any ‘<code>;</code>’, ‘<code>{</code>’ or ‘<code>}</code>’ byte immediately
|
||||
before the end of file.</p>
|
||||
</blockquote>
|
||||
<p>ASCII whitespace includes ASCII tab, ASCII space, ASCII newline,
|
||||
@@ -791,15 +795,24 @@ Although we are in an age where AI/LLM can create code, we don’t want to stop
|
||||
anyone from using any tools they like when they’re working on their submissions.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The IOCCC has a rich history of remarkable winning entries created
|
||||
by authors who skillfully employed various techniques
|
||||
such as code generators, code analysis tools, machine learning tools,
|
||||
natural language models, code copilot tools, so-called AI services,
|
||||
and/or large language models. Although it is <strong>NOT</strong> required use such
|
||||
large language models, etc. Although it is <strong>NOT</strong> required use such
|
||||
things to develop your submission, you are free to continue to create
|
||||
their submissions using such tools.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The IOCCC has a rich history of remarkable winning entries created by
|
||||
authors who skillfully employed various techniques to develop their code.
|
||||
While it is <strong>NOT</strong> required, you are allowed to use tools to develop
|
||||
and test your submission. These tools may include, but are not limited
|
||||
to code generators, code analysis tools, static code analysis tools,
|
||||
runtime analysis tools, machine learning tools, natural language models,
|
||||
code copilot tools, so-called AI services, large language models, etc.
|
||||
If you do make use of such tools, then we <strong>ENCOURAGE you to describe
|
||||
how you used such tools</strong> in your <code>remarks.md</code> file.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do make use of code generator, code analysis tool, machine learning
|
||||
tool, natural language model, code copilot tool, a so-called AI service,
|
||||
and/or large language models we <strong>ENCOURAGE you to describe how you used
|
||||
@@ -1668,7 +1681,7 @@ tarball containing a number of extra files may be needed. Such a need for a
|
||||
tarball <strong>MUST</strong> be explained in the <code>remarks.md</code> file.
|
||||
</p>
|
||||
<p>On 28 January 2007, the Judges rescinded the requirement that the
|
||||
<code>#</code> in a C preprocessor directive must be the 1st non-whitespace octet.</p>
|
||||
<code>#</code> in a C preprocessor directive must be the 1st non-whitespace byte.</p>
|
||||
<p>The <code>exit(3)</code> function returns <code>void</code>. Some broken systems have <code>exit(3)</code>
|
||||
return <code>int</code>; your submission should assume that <code>exit(3)</code> returns a <code>void</code>.</p>
|
||||
<p class="leftbar">
|
||||
@@ -1688,7 +1701,7 @@ explain to the Walrus why our seas are boiling hot, the question of
|
||||
whether pigs have wings is likely to remain a debatable point to most.
|
||||
</p>
|
||||
<p>One line programs should be short one line programs: say around 80 to 120
|
||||
octets long. Going well beyond 120 octets is a bit too long to be called
|
||||
bytes long. Going well beyond 120 bytes is a bit too long to be called
|
||||
a one-liner in our vague opinion.</p>
|
||||
<p>We tend to <strong>DISLIKE</strong> programs that:</p>
|
||||
<ul>
|
||||
@@ -1808,7 +1821,7 @@ For example, one could put in their <code>Makefile</code>:</p>
|
||||
<p>and then include special notes in your <code>remarks.md</code> file for
|
||||
alternate / human intervention based building.</p>
|
||||
<p>We want to get away from source that is simply a compact blob of
|
||||
octets. Really try to be more creative than blob coding. <strong>HINT!</strong></p>
|
||||
bytes. Really try to be more creative than blob coding. <strong>HINT!</strong></p>
|
||||
<p>Please do not use things like <code>gzip(1)</code> to get around the size limit.
|
||||
Please try to be much more creative.</p>
|
||||
<p>We really <strong>DISLIKE</strong> entries that make blatant use of including
|
||||
@@ -2512,30 +2525,39 @@ into a tattoo!
|
||||
For questions or comments about the contest, see <a href="../contact.html">Contacting the IOCCC</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Be sure to review the <a href="index.html">IOCCC Rules and Guidelines</a> as the
|
||||
<a href="rules.html">IOCCC rules</a> and the <a href="guidelines.html">IOCCC guidelines</a> may (and often do) change from year to year.
|
||||
<strong>Be SURE</strong> to review the <a href="index.html">IOCCC Rules and Guidelines</a> as they
|
||||
may (and <strong>often do</strong>) change from year to year.
|
||||
</p>
|
||||
<p 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.
|
||||
<strong>PLEASE</strong> be sure you have the current <a href="rules.html">IOCCC rules</a> and
|
||||
<a href="guidelines.html">IOCCC guidelines</a> prior to submitting to the contest.
|
||||
</p>
|
||||
<p>See the <a href="../news.html">Official IOCCC website news</a> for additional information.</p>
|
||||
<p class="leftbar">
|
||||
See the <a href="../news.html">Official IOCCC website news</a> for additional information.
|
||||
</p>
|
||||
<p class="change marker">
|
||||
For the updates and breaking <a href="../news.html">IOCCC news</a>, you are encouraged to follow
|
||||
the <a href="https://fosstodon.org/@ioccc">IOCCC on Mastodon</a>. See our
|
||||
For the updates and breaking IOCCC news, you are encouraged to follow
|
||||
the <a href="https://fosstodon.org/@ioccc">IOCCC on Mastodon</a> account. See our
|
||||
FAQ on “<a href="../faq.html#try_mastodon">Mastodon</a>”
|
||||
for more information. <strong>Please be
|
||||
aware</strong> that unless you are mentioned you most likely will <strong>NOT</strong> get a
|
||||
notification so you should make sure to check the page.
|
||||
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 class="leftbar">
|
||||
Check out the <a href="https://www.ioccc.org/index.html">Official IOCCC website</a> in general.
|
||||
Check out the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a> in general.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Consider joining the IOCCC discord community via this link:
|
||||
<a href="https://discord.gg/Wa42Qujwnw">https://discord.gg/Wa42Qujwnw</a>
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See the
|
||||
FAQ on “<a href="../faq.html#mkiocccentry">obtaining and compiling the mkiocccentry tools</a>”
|
||||
and the
|
||||
FAQ on “<a href="../quick-start.html#enter">how to enter the IOCCC</a>”
|
||||
as that FAQ has important details on
|
||||
<a href="register.html">how to register</a>
|
||||
as well as
|
||||
<a href="submit.html">how to upload your submission</a> for the IOCCC.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<p>Leonid A. Broukhis<br>
|
||||
chongo (Landon Curt Noll) /\cc/\</p>
|
||||
<hr style="width:10%;text-align:left;margin-left:0">
|
||||
<p>Jump to: <a href="#">top</a>
|
||||
<!-- AFTER: last line of markdown file: next/guidelines.md --></p>
|
||||
|
||||
+51
-27
@@ -49,7 +49,7 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
These [IOCCC guidelines](guidelines.html) are version **28.41 2025-03-03**.
|
||||
These [IOCCC guidelines](guidelines.html) are version **28.42 2025-03-03**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -205,10 +205,14 @@ Until the contest status becomes **[pending](../faq.html#pending)**,
|
||||
the [submit server](https://submit.ioccc.org) might be offline and/or unresponsive.
|
||||
</p>
|
||||
|
||||
|
||||
<p class="leftbar">
|
||||
The [submit server](https://submit.ioccc.org), in accordance with [Rule 17](rules.html#rule17),
|
||||
places a limit of **3999971** octets on the size of your upload.
|
||||
places a limit of **3999971** bytes on the size of your upload.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The some the byte lengths of all files, after the **xz compressed tarball** is un-tarred,
|
||||
must not exceed **27651\*1024** bytes.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -364,9 +368,9 @@ The IOCCC size tool algorithm can be summarized as follows:
|
||||
</p>
|
||||
|
||||
> The size tool counts most C reserved words (keyword, secondary, and selected
|
||||
preprocessor keywords) as 1. The size tool counts all other octets as 1
|
||||
preprocessor keywords) as 1. The size tool counts all other bytes as 1
|
||||
excluding ASCII whitespace, and excluding any '`;`', '`{`' or '`}`' followed by
|
||||
ASCII whitespace, and excluding any '`;`', '`{`' or '`}`' octet immediately
|
||||
ASCII whitespace, and excluding any '`;`', '`{`' or '`}`' byte immediately
|
||||
before the end of file.
|
||||
|
||||
ASCII whitespace includes ASCII tab, ASCII space, ASCII newline,
|
||||
@@ -454,15 +458,25 @@ anyone from using any tools they like when they're working on their submissions.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The IOCCC has a rich history of remarkable winning entries created
|
||||
by authors who skillfully employed various techniques
|
||||
such as code generators, code analysis tools, machine learning tools,
|
||||
natural language models, code copilot tools, so-called AI services,
|
||||
and/or large language models. Although it is **NOT** required use such
|
||||
large language models, etc. Although it is **NOT** required use such
|
||||
things to develop your submission, you are free to continue to create
|
||||
their submissions using such tools.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The IOCCC has a rich history of remarkable winning entries created by
|
||||
authors who skillfully employed various techniques to develop their code.
|
||||
While it is **NOT** required, you are allowed to use tools to develop
|
||||
and test your submission. These tools may include, but are not limited
|
||||
to code generators, code analysis tools, static code analysis tools,
|
||||
runtime analysis tools, machine learning tools, natural language models,
|
||||
code copilot tools, so-called AI services, large language models, etc.
|
||||
If you do make use of such tools, then we **ENCOURAGE you to describe
|
||||
how you used such tools** in your `remarks.md` file.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you do make use of code generator, code analysis tool, machine learning
|
||||
tool, natural language model, code copilot tool, a so-called AI service,
|
||||
@@ -1556,7 +1570,7 @@ tarball **MUST** be explained in the `remarks.md` file.
|
||||
</p>
|
||||
|
||||
On 28 January 2007, the Judges rescinded the requirement that the
|
||||
`#` in a C preprocessor directive must be the 1st non-whitespace octet.
|
||||
`#` in a C preprocessor directive must be the 1st non-whitespace byte.
|
||||
|
||||
The `exit(3)` function returns `void`. Some broken systems have `exit(3)`
|
||||
return `int`; your submission should assume that `exit(3)` returns a `void`.
|
||||
@@ -1581,7 +1595,7 @@ whether pigs have wings is likely to remain a debatable point to most.
|
||||
</p>
|
||||
|
||||
One line programs should be short one line programs: say around 80 to 120
|
||||
octets long. Going well beyond 120 octets is a bit too long to be called
|
||||
bytes long. Going well beyond 120 bytes is a bit too long to be called
|
||||
a one-liner in our vague opinion.
|
||||
|
||||
We tend to **DISLIKE** programs that:
|
||||
@@ -1708,7 +1722,7 @@ and then include special notes in your `remarks.md` file for
|
||||
alternate / human intervention based building.
|
||||
|
||||
We want to get away from source that is simply a compact blob of
|
||||
octets. Really try to be more creative than blob coding. **HINT!**
|
||||
bytes. Really try to be more creative than blob coding. **HINT!**
|
||||
|
||||
Please do not use things like `gzip(1)` to get around the size limit.
|
||||
Please try to be much more creative.
|
||||
@@ -2528,6 +2542,7 @@ Last, but not least, [winners](../authors.html) receive international fame and f
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
<div id="more-information">
|
||||
<div id="information">
|
||||
# FOR MORE INFORMATION:
|
||||
@@ -2539,36 +2554,45 @@ For questions or comments about the contest, see [Contacting the IOCCC](../conta
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Be sure to review the [IOCCC Rules and Guidelines](index.html) as the
|
||||
[IOCCC rules](rules.html) and the [IOCCC guidelines](guidelines.html) may (and often do) change from year to year.
|
||||
**Be SURE** to review the [IOCCC Rules and Guidelines](index.html) as they
|
||||
may (and **often do**) change from year to year.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
You should be sure you have the current [IOCCC rules](rules.html) and
|
||||
[IOCCC guidelines](guidelines.html) prior to submitting entries.
|
||||
**PLEASE** be sure you have the current [IOCCC rules](rules.html) and
|
||||
[IOCCC guidelines](guidelines.html) prior to submitting to the contest.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
See the [Official IOCCC website news](../news.html) for additional information.
|
||||
</p>
|
||||
|
||||
<p class="change marker">
|
||||
For the updates and breaking [IOCCC news](../news.html), you are encouraged to follow
|
||||
the [IOCCC on Mastodon](https://fosstodon.org/@ioccc). See our
|
||||
<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 on "[Mastodon](../faq.html#try_mastodon)"
|
||||
for more information. **Please be
|
||||
aware** that unless you are mentioned you most likely will **NOT** get a
|
||||
notification so you should make sure to check the page.
|
||||
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>
|
||||
|
||||
<p class="leftbar">
|
||||
Check out the [Official IOCCC website](https://www.ioccc.org/index.html) in general.
|
||||
Check out the [Official IOCCC winner website](https://www.ioccc.org/index.html) in general.
|
||||
</p>
|
||||
|
||||
Jump to: [top](#)
|
||||
<p class="leftbar">
|
||||
Consider joining the IOCCC discord community via this link:
|
||||
[https://discord.gg/Wa42Qujwnw](https://discord.gg/Wa42Qujwnw)
|
||||
</p>
|
||||
|
||||
Leonid A. Broukhis<br>
|
||||
chongo (Landon Curt Noll) /\\cc/\\
|
||||
<p class="leftbar">
|
||||
See the
|
||||
FAQ on "[obtaining and compiling the mkiocccentry tools](../faq.html#mkiocccentry)"
|
||||
and the
|
||||
FAQ on "[how to enter the IOCCC](../quick-start.html#enter)"
|
||||
as that FAQ has important details on
|
||||
[how to register](register.html)
|
||||
as well as
|
||||
[how to upload your submission](submit.html) for the IOCCC.
|
||||
</p>
|
||||
|
||||
|
||||
<hr style="width:10%;text-align:left;margin-left:0">
|
||||
|
||||
+237
-164
@@ -461,7 +461,7 @@ writing by <a href="../contact.html">contacting the judges</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
These <a href="rules.html">IOCCC rules</a> are version <strong>28.28 2025-03-03</strong>.
|
||||
These <a href="rules.html">IOCCC rules</a> are version <strong>28.29 2025-03-03</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The markdown form of these rules <a href="rules.md" download="rules.md">is
|
||||
@@ -560,7 +560,48 @@ as well as
|
||||
<div id="rules">
|
||||
<h1 id="ioccc-rules">IOCCC RULES</h1>
|
||||
</div>
|
||||
<p>To help us with the volume of submissions, we ask that you follow these rules:</p>
|
||||
<p>To help us with the volume of submissions, we ask that you follow the rules below.</p>
|
||||
<div id="rule_abuse">
|
||||
<h4 id="a-warning-about-rule-abuse">A warning about rule abuse</h4>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
<strong>WARNING:</strong> Abusing these rules comes with a <strong>fair amount of risk</strong>
|
||||
that your submission will be rejected. If you do plan to abuse the
|
||||
rules, then you <strong>MUST CLEARLY EXPLAIN THE RATIONALE</strong> in your <code>remarks.md</code> file,
|
||||
as to why you think your rule abuse should be allowed, and as to why you think
|
||||
your submission should not be rejected for a rule violation.
|
||||
<strong>Nevertheless, <em>Even if you do</em> explain this in your <code>remarks.md</code> file
|
||||
you submission may still be rejected</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>, then the <code>mkiocccentry(1)</code> tool will warn you
|
||||
if there appears to be a rule violation. The <code>mkiocccentry(1)</code> tool
|
||||
also runs the <code>fnamchk(1)</code>, <code>txzchk(1)</code> and <code>chkentry(1)</code> tools.
|
||||
Overriding problems detected by any of these tools comes with a
|
||||
<strong>fair amount of risk</strong> that your submission will be rejected.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do override a rule violation warning from the <code>mkiocccentry(1)</code>
|
||||
or related IOCCC tool, or otherwise plan to abuse the rules, then you <strong>MUST CLEARLY
|
||||
EXPLAIN THE RATIONALE</strong> of why you are attempting to abuse the rules in your
|
||||
<code>remarks.md</code> file. <strong><em>Even if you do</em> explain this in your <code>remarks.md</code> file
|
||||
your submission may still be rejected</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
<strong>HINT:</strong> If you do submit such a rule abusing / rule violating
|
||||
submission, then consider also submitting an alternate version in a
|
||||
different submission server slot that does <strong>NOT</strong> violate the rules
|
||||
in case your rule abuse excuse is rejected. If you do submit such an
|
||||
alternate non-rule abusing version, <strong>PLEASE</strong> indicate that in your
|
||||
<code>remarks.md</code> file of your non-rule abusing version so that the <a href="../judges.html">IOCCC
|
||||
judges</a> do not think you uploaded a duplicate into a
|
||||
wrong slot by mistake.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See also <a href="#rule13">Rule 12</a>.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule0">
|
||||
<h2 id="rule-0">Rule 0</h2>
|
||||
@@ -581,18 +622,16 @@ Your submission must be a C program.
|
||||
<p class="leftbar">
|
||||
You see, the contest is not called the <strong>International Obfuscated JSON Contest</strong>
|
||||
(<strong>IOJSONC</strong>), even if the <a href="https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec">so-called JSON
|
||||
spec</a> might be called obfuscated. :-)
|
||||
spec</a> might be called obfuscated
|
||||
by some people. :-)
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule2">
|
||||
<h2 id="rule-2">Rule 2</h2>
|
||||
</div>
|
||||
<p>The size rule requires your submission to satisfy <strong>BOTH</strong> <a href="#rule2a">Rule 2a</a> and <a href="#rule2b">Rule 2b</a>:</p>
|
||||
<p><a href="#rule2">Rule 2</a> requires that your submission satisfy <strong>BOTH</strong> <a href="#rule2a">Rule 2a</a> and <a href="#rule2b">Rule 2b</a>.</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.
|
||||
See also <a href="#rule2a">Rule 2a</a>, <a href="#rule2b">Rule 2b</a>, and <a href="#rule17">Rule 17</a>.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule2a">
|
||||
@@ -602,21 +641,7 @@ tool will warn you if there appears to be a <a href="#rule2a">Rule 2a</a> violat
|
||||
The size of your program source <strong>should NOT exceed 4993 bytes</strong>.
|
||||
</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 the <a href="#rule2a">Rule 2a</a> warning carries a
|
||||
<strong>fair amount of risk that your submission will be rejected</strong>. Be sure to
|
||||
consult the <a href="guidelines.html">IOCCC guidelines</a> ahead of time if you plan to
|
||||
override the <a href="#rule2a">Rule 2a</a> warning.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do override the <a href="#rule2a">Rule 2a</a> warning from the <code>mkiocccentry(1)</code>
|
||||
tool, or otherwise plan to violate <a href="#rule2a">Rule 2a</a>, then you <strong>MUST CLEARLY
|
||||
EXPLAIN THE RATIONALE</strong> of why you are doing so in your <code>remarks.md</code> file.
|
||||
<strong><em>Even if you do</em> explain this in your <code>remarks.md</code> file you submission may
|
||||
still be rejected</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
You may check your code prior to submission by giving the filename
|
||||
You may check your code with respect to <a href="#rule2">Rule 2</a> 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>
|
||||
@@ -624,8 +649,7 @@ as a command like argument to the <code>iocccsize(1)</code> tool. For example:
|
||||
Alternatively, you may use the <code>mkiocccentry(1)</code> option <code>-d</code> to verify that
|
||||
things check out okay (i.e. no problems are detected) without having to answer
|
||||
all the questions. See the
|
||||
FAQ on “<a href="../faq.html#mkiocccentry_test">how to test your submission without having
|
||||
to answer questions</a>” for more details.
|
||||
FAQ on “<a href="../faq.html#mkiocccentry_test">how to rule test your submission</a>” for more details.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule2b">
|
||||
@@ -642,29 +666,17 @@ The source to <code>iocccsize(1)</code> may be found in the
|
||||
</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 the <code>iocccsize(1)</code> checks before packaging
|
||||
you do</strong> then <code>mkiocccentry(1)</code> will invoke the <code>iocccsize(1)</code> checks before packaging
|
||||
your submission.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <code>mkiocccentry(1)</code> tool will give you the option of overriding the <a href="#rule2b">Rule
|
||||
2b</a> warning. Overriding the <a href="#rule2b">Rule 2b</a> warning carries a <strong>fair
|
||||
amount of risk that your submission will be rejected</strong>. Be sure to consult the
|
||||
<a href="guidelines.html">IOCCC guidelines</a> ahead of time if you plan to override the
|
||||
<a href="#rule2b">Rule 2b</a> warning.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do override the <a href="#rule2b">Rule 2b</a> warning from the <code>mkiocccentry(1)</code>
|
||||
tool, or otherwise plan to violate <a href="#rule2b">Rule 2b</a>, then you <strong>MUST CLEARLY
|
||||
EXPLAIN THE RATIONALE</strong> of why you are doing so in your <code>remarks.md</code> file.
|
||||
<strong><em>Even if you do</em> explain this in your <code>remarks.md</code> file your submission may
|
||||
still be rejected</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
You may check your code prior to submission by giving the filename
|
||||
as a command like argument to the <code>iocccsize(1)</code> tool. For example:
|
||||
</p>
|
||||
<pre><code> iocccsize prog.c</code></pre>
|
||||
<p class="leftbar">
|
||||
See also <a href="#rule17">Rule 17</a>.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule3">
|
||||
<h2 id="rule-3">Rule 3</h2>
|
||||
@@ -675,26 +687,28 @@ You may <a href="register.html">register</a> while the contest is either
|
||||
<strong><a href="../faq.html#pending">pending</a></strong> or <strong><a href="../faq.html#open">open</a></strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See the
|
||||
FAQ on “<a href="../quick-start.html#enter">how to register and submit to the IOCCC</a>”
|
||||
for instructions on registering and participating in the IOCCC, as the process has changed from previous years!
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
When the contest is <strong><a href="../faq.html#open">open</a></strong>, an
|
||||
<a href="../judges.html">IOCCC judge</a> will email you your <a href="https://submit.ioccc.org">submit server</a>
|
||||
<strong>Username</strong> and <strong>Initial password</strong>. It takes some time (maybe even a few days) for an
|
||||
<a href="../judges.html">IOCCC judge</a> to process your registration and email you your
|
||||
initial login and password.
|
||||
When the contest is <strong><a href="../faq.html#open">open</a></strong>, the <a href="https://submit.ioccc.org">submit server</a>
|
||||
will email you your <a href="https://submit.ioccc.org">submit server</a>
|
||||
<strong>Username</strong> and <strong>Initial password</strong>. <strong>Please be patient</strong> as it may take some time,
|
||||
perhaps as much as a few days, for your registration to be processed and for that email to be sent.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Those who <a href="register.html">register</a> while the contest status is <strong><a href="../faq.html#pending">pending</a></strong>
|
||||
will receive email with their <a href="https://submit.ioccc.org">submit server</a> <strong>Username</strong> and <strong>Initial password</strong>
|
||||
from an <a href="../judges.html">IOCCC judge</a> shortly after the contest status becomes <strong><a href="../faq.html#open">open</a></strong>.
|
||||
will receive their email (containing their <a href="https://submit.ioccc.org">submit server</a> <strong>Username</strong>
|
||||
and <strong>Initial password</strong>), much later: few days around the time when the contest status becomes <strong><a href="../faq.html#open">open</a></strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Once an <a href="../judges.html">IOCCC judge</a> emails you your <strong>Username</strong> and <strong>Initial password</strong>, you
|
||||
Once that email you your <strong>Username</strong> and <strong>Initial password</strong> is sent, you
|
||||
will have 72 hours to <a href="pw-change.html">change your submit server initial password</a>.
|
||||
If you do not change your <strong>Initial password</strong> in time, you will have to <a href="register.html">re-register</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do not change your <strong>Initial password</strong> in time, you will have
|
||||
to <a href="contact.html">contact an IOCCC judge</a> by email and ask them to reset
|
||||
your password. Not only is this a hassle for everyone involved, it will
|
||||
delay your IOCCC registration process, perhaps by a number of days that
|
||||
<code>egrep(1)</code> would be able to pattern match. By <code>egrep(1)</code>, we refer to the
|
||||
long standing <strong>UNIX</strong> utility that should just run and <strong>NOT</strong> whine about
|
||||
the command being deprecated.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Because it takes time (maybe even a few days) for an <a href="../judges.html">IOCCC judge</a>
|
||||
@@ -705,11 +719,13 @@ The <a href="../judges.html">IOCCC judges</a> are <strong>NOT</strong> responsib
|
||||
or for those who wait until the last minute to try to register!
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you have <a href="register.html">registered</a> and received by email your
|
||||
<a href="https://submit.ioccc.org">submit server</a> <strong>Username</strong> and <strong>Initial password</strong>
|
||||
from an <a href="../judges.html">IOCCC judge</a>, you may upload your submission to
|
||||
the <a href="https://submit.ioccc.org">submit server</a> <strong>ONLY</strong> while the
|
||||
contest is <strong><a href="../faq.html#open">open</a></strong>.
|
||||
See the
|
||||
FAQ on “<a href="../quick-start.html#enter">how to register and submit to the IOCCC</a>”
|
||||
for instructions on registering and participating in the IOCCC, as the process
|
||||
may change from contest to contest.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See also <a href="#rule8">Rule 8</a>.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule4">
|
||||
@@ -746,9 +762,9 @@ You may use your submission (program) to form a copy, or you can make use of
|
||||
your <code>Makefile</code> to form that copy.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do make a copy and then modify that copy, <strong>PLEASE</strong> be sure that
|
||||
If you do make a copy of a submission file, <strong>PLEASE</strong> be sure that
|
||||
the <code>clobber</code> rule of your <code>Makefile</code> removes that copy in order to
|
||||
restore the contents of your submission to its original submission.
|
||||
in order restore your submission to its original submission state.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule6">
|
||||
@@ -771,33 +787,43 @@ The obfuscated C program must be your own original work.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
You (the author(s)) must own the contents of your submission OR
|
||||
you must have permission from the owner(s) to submit their content
|
||||
under the following license:
|
||||
you must have permission from the owner(s) to submit their content.
|
||||
</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
|
||||
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>
|
||||
<p class="leftbar">
|
||||
Please note that the IOCCC size tool, the tools in the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
repo</a> and the tools and library in
|
||||
the <a href="https://github.com/xexyl/jparse/issues">jparse repo</a> (that the
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a> clones) or the
|
||||
<a href="https://github.com/lcn2/dbg">dbg repo</a> (that the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
repo</a> clones) or the <a href="https://github.com/lcn2/dyn_array">dyn_array
|
||||
repo</a> (that the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
repo</a> clones) are
|
||||
<strong>NOT</strong> original works, unless of course you’re the respective authors, in
|
||||
which case they are. Of course, neither are any of the previous
|
||||
winning entries, unless of course you’re the winner! :-)
|
||||
permission you obtained</strong> in your <code>remarks.md</code> file.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
<p>You are allowed to use tools to develop and test your submission.
|
||||
These tools may include, but are not limited to code generators, code
|
||||
analysis tools, machine learning tools, natural language models, code
|
||||
copilot tools, etc.</p>
|
||||
Please note that <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo tools</a>
|
||||
are <strong>NOT</strong> original works, unless of course you’re the respective authors, in
|
||||
which case they are original. :-)
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Nevertheless tools such as those listed are <strong>NOT</strong> obfuscated. If submitted, they
|
||||
would probably violate a number of rules. :-)
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
<ul>
|
||||
<li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/mkiocccentry.c">mkioccentry(1)</a></li>
|
||||
<li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c">iooccsize(1)</a></li>
|
||||
<li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/chkentry.c">chkentry(1)</a></li>
|
||||
<li><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c">txzchk(1)</a></li>
|
||||
<li><a href="https://github.com/xexyl/jparse">jparse repo as cloned by the mkiocccentry repo</a></li>
|
||||
<li><a href="https://github.com/lcn2/dbg">dbg repo as cloned by the mkiocccentry repo</a></li>
|
||||
<li><a href="https://github.com/lcn2/dyn_array">dyn_array repo as cloned by the mkiocccentry repo</a></li>
|
||||
</ul>
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The IOCCC has a rich history of remarkable winning entries created by
|
||||
authors who skillfully employed various techniques to develop their code.
|
||||
While it is <strong>NOT</strong> required, you are allowed to use tools to develop
|
||||
and test your submission. These tools may include, but are not limited
|
||||
to code generators, code analysis tools, static code analysis tools,
|
||||
runtime analysis tools, machine learning tools, natural language models,
|
||||
code copilot tools, so-called AI services, large language models, etc.
|
||||
If you do make use of such tools, then we <strong>ENCOURAGE you to describe
|
||||
how you used such tools</strong> in your <code>remarks.md</code> file.
|
||||
</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>.
|
||||
@@ -811,8 +837,15 @@ Submissions may only be uploaded to the <a href="https://submit.ioccc.org">IOCCC
|
||||
while the contest is <strong><a href="../faq.html#open">open</a></strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you have <a href="register.html">registered</a> and received by email your
|
||||
<a href="https://submit.ioccc.org">submit server</a> <strong>Username</strong> and <strong>Initial password</strong>
|
||||
from an <a href="../judges.html">IOCCC judge</a>, you may upload your submission to
|
||||
the <a href="https://submit.ioccc.org">submit server</a> <strong>ONLY</strong> while the
|
||||
contest is <strong><a href="../faq.html#open">open</a></strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <a href="https://submit.ioccc.org">submit server</a>, in accordance with <a href="rules.html#rule17">Rule 17</a>,
|
||||
places a limit of <strong>3999971</strong> octets on the size of your upload.
|
||||
places a limit of <strong>3999971</strong> bytes on the size of your upload.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Once the contest is in the <strong><a href="../faq.html#judging">judging</a></strong> state (or
|
||||
@@ -843,7 +876,7 @@ for more information about the <code>mkiocccentry(1)</code> tool.
|
||||
See the “<a href="#dates">Important IOCCC dates</a>” section above for when these contest states are scheduled.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See also <a href="#rule17">Rule 17</a>.
|
||||
See also <a href="#rule3">Rule 3</a> and <a href="#rule17">Rule 17</a>.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule9">
|
||||
@@ -888,6 +921,9 @@ it is needed in your submission’s <code>remarks.md</code> file.</p>
|
||||
the opinion of the <a href="../judges.html">judges</a>, violates the rules WILL BE DISQUALIFIED</strong>.
|
||||
Submissions that attempt to abuse the rules <strong>MUST</strong> try to justify why
|
||||
their rule abuse is legal, in the <code>remarks.md</code> file.</p>
|
||||
<p class="leftbar">
|
||||
See also <a href="#rule_abuse">the warning about rule abuse</a>.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule13">
|
||||
<h2 id="rule-13">Rule 13</h2>
|
||||
@@ -905,11 +941,23 @@ Fun fact: the fear of the number 13 is called <em>triskaidekaphobia</em>.
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
Any C source that fails to compile because of lines with trailing
|
||||
control-M’s (i.e., lines with a trailing octet <code>015</code>) <strong><em>might</em></strong> be rejected.
|
||||
control-M’s (i.e., lines with a trailing byte <code>015</code>) <strong><em>might</em></strong> be rejected.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Please do <strong>NOT</strong> put trailing control-M’s on <code>prog.c</code>, <code>Makefile</code>, or
|
||||
<code>remarks.md</code> files but instead end lines with a trailing newline (i.e.,
|
||||
byte <code>012</code>) character.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
As we do <strong>NOT</strong> DOS, please also be sure that the <code>Makefile</code> and
|
||||
<code>remarks.md</code> files end in final newline (i.e., byte <code>012</code>) character.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
You are permitted, in order to try and squeeze your <code>prog.c</code> under
|
||||
a <a href="#rule2a">Rule 2a</a> and/or <a href="#rule2b">Rule 2b</a> limit, to <strong>NOT</strong>
|
||||
end your <code>prog.c</code> with a newline (i.e., byte <code>012</code>) character.
|
||||
If you need to do this, <strong>PLEASE</strong> document that in your <code>remarks.md</code> file.
|
||||
</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>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule15">
|
||||
<h2 id="rule-15">Rule 15</h2>
|
||||
@@ -917,8 +965,10 @@ any control-M at the end of remark file lines.</p>
|
||||
<p class="leftbar">
|
||||
In order to register for the IOCCC, you <strong>MUST</strong> have a valid email address.
|
||||
</p>
|
||||
<p>The <a href="../judges.html">judges</a> <strong>are NOT responsible for delays in email</strong>, please plan
|
||||
enough time for the exchange of emails so you can upload your submission.</p>
|
||||
<p class="leftbar">
|
||||
The <a href="../judges.html">judges</a> <strong>are NOT responsible for delays in email</strong>, so please plan
|
||||
enough time accordingly.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See the
|
||||
FAQ on “<a href="../quick-start.html#register">how to register</a>”
|
||||
@@ -928,70 +978,59 @@ for details.
|
||||
<div id="rule16">
|
||||
<h2 id="rule-16">Rule 16</h2>
|
||||
</div>
|
||||
<p>You are <strong>STRONGLY</strong> encouraged to submit an <strong>original submission</strong>.
|
||||
Submissions that are similar to previous entries are
|
||||
discouraged. As we judge anonymously, submissions that have already
|
||||
been published may be disqualified.</p>
|
||||
<p>Submissions that are similar to previous winning IOCCC entries are discouraged.</p>
|
||||
<p class="leftbar">
|
||||
You are allowed to re-submit to a later contest, a submission that
|
||||
did not win the IOCCC. If you do so, then you would be well advised
|
||||
to try and enhance and improve your submission.
|
||||
If you do re-submit something that did not previously win, then
|
||||
you are <strong>encouraged</strong> to mention this in your <code>remarks.md</code> file
|
||||
as this sometimes helps.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Re-submitting an improved submission that did not become an
|
||||
IOCCC winning entry is a <strong>time honored</strong> tradition of the IOCCC.
|
||||
There are some IOCCC winning entries that were submitted to multiple contests
|
||||
before they were improved enough to “climb over” (as the expression
|
||||
goes) all the other submissions for a given contest.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule17">
|
||||
<h2 id="rule-17">Rule 17</h2>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
Your submission must be in the form of <strong>xz compressed tarball</strong>
|
||||
that <code>mkiocccentry(1)</code> tool would generate. The files, directories,
|
||||
and paths <strong>MUST</strong> conform to the limits imposed by <code>mkiocccentry(1)</code>
|
||||
including but <strong>NOT LIMITED</strong> to their names, count, path length
|
||||
and directory tree depth.
|
||||
Your submission must be in the form of a <strong>xz compressed tarball</strong> that
|
||||
the current released version of the <code>mkiocccentry(1)</code> tool would generate.
|
||||
The files, directories, and paths <strong>MUST</strong> conform to the limits imposed
|
||||
by <code>mkiocccentry(1)</code> including but <strong>NOT LIMITED</strong> to their names, count,
|
||||
path length and directory tree depth.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Your <strong>xz compressed tarball</strong> submission file must pass the tests performed by:
|
||||
</p>
|
||||
<ul>
|
||||
<li><p class="leftbar">
|
||||
<code>txzchk(1)</code>
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
Your <strong>xz compressed tarball</strong> submission filename must pass the tests performed by:
|
||||
</p>
|
||||
<ul>
|
||||
<li><p class="leftbar">
|
||||
<code>fnamchk(1)</code>
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
The resulting directory produced when your <strong>xz compressed tarball</strong> submission file uncompressed
|
||||
must pass the checks performed by:
|
||||
</p>
|
||||
<ul>
|
||||
<li><p class="leftbar">
|
||||
<code>chkentry(1)</code>
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
<code>txzchk(1)</code> uses the <code>fnamchk(1)</code> tool on your tarball to obtain the proper
|
||||
directory name. If either name is wrong, it will be flagged as an error.
|
||||
Your <strong>xz compressed tarball</strong> must be larger than <strong>0</strong> bytes and no larger than <strong>3999971</strong> bytes.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The resulting <code>prog.c</code> file must pass the <a href="#rule2">Rule 2</a> size checked performed by:
|
||||
The sum of the byte lengths of all files, after the <strong>xz compressed tarball</strong> is un-tarred,
|
||||
must not exceed <strong>27651*1024</strong> bytes.
|
||||
</p>
|
||||
<ul>
|
||||
<li><p class="leftbar">
|
||||
<code>iocccsize(1)</code>
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
The <code>.auth.json</code> and <code>.info.json</code> must be compatible with what hat <code>mkiocccentry(1)</code> tool
|
||||
would produce as well as pass the tests performed by:
|
||||
Your <strong>xz compressed tarball</strong> submission file must pass the tests performed by the current version of <code>txzchk(1)</code>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Your <strong>xz compressed tarball</strong> submission filename must pass the tests performed by the current version of <code>fnamchk(1)</code>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
When your <strong>xz compressed tarball</strong> submission file is un-tarred, the
|
||||
resulting directory must pass the checks performed by the current version of <code>chkentry(1)</code>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The resulting <code>prog.c</code> file must pass the <a href="#rule2">Rule 2</a> size checks performed by the current
|
||||
version of <code>iocccsize(1)</code>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <code>.auth.json</code> and <code>.info.json</code> must be compatible with what the
|
||||
current version of the <code>mkiocccentry(1)</code> tool would produce. They must
|
||||
also pass the tests performed by the current version of <code>chkentry(1)</code>.
|
||||
</p>
|
||||
<ul>
|
||||
<li><p class="leftbar">
|
||||
<code>jparse(3)</code>
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<code>chkentry(1)</code>
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
The <code>Makefile</code> must <strong>NOT</strong> be empty.
|
||||
</p>
|
||||
@@ -999,15 +1038,17 @@ The <code>Makefile</code> must <strong>NOT</strong> be empty.
|
||||
The <code>remarks.md</code> must <strong>NOT</strong> be empty.
|
||||
</p>
|
||||
<h3 id="tldr-rule-17---use-mkiocccentry1-to-form-your-submission">TL;DR Rule 17 - Use <code>mkiocccentry(1)</code> to form your submission</h3>
|
||||
<p>Let the <code>mkiocccentry(1)</code> tool form your <strong>xz compressed tarball</strong> submission
|
||||
file and don’t try to override its checks and limits, in order to be sure you
|
||||
submission conforms to this rule.</p>
|
||||
<p class="leftbar">
|
||||
Let the current version of the <code>mkiocccentry(1)</code> tool form your <strong>xz
|
||||
compressed tarball</strong> submission file.
|
||||
</p>
|
||||
<h3 id="warning">Warning</h3>
|
||||
<p>Using command line flags or input prompts to override checks and
|
||||
<p class="leftbar">
|
||||
Using command line flags or input prompts to override checks and
|
||||
limits made by the above mentioned tools is <strong>NOT</strong> recommended
|
||||
and may result in your submission being rejected by the <a href="https://submit.ioccc.org">IOCCC
|
||||
submit server</a> and/or the <a href="../judges.html">IOCCC
|
||||
Judges</a>.</p>
|
||||
submit server</a> and/or the <a href="../judges.html">IOCCC Judges</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See the
|
||||
FAQ on the “<a href="../faq.html#mkiocccentry">mkiocccentry tool</a>
|
||||
@@ -1024,22 +1065,46 @@ for very important details behind this rule.
|
||||
</div>
|
||||
<p>The entirety of your submission must be submitted under the following license:</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>
|
||||
<ul>
|
||||
<li><strong><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a></strong></li>
|
||||
</ul>
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See also <a href="#rule7">Rule 7</a>.
|
||||
</p>
|
||||
<p>You (the author(s)) <strong>MUST</strong> own the content of your submission <strong>OR</strong>
|
||||
you <strong>MUST HAVE PERMISSION</strong> from the owner(s) to submit their content.</p>
|
||||
<p>You <strong>MUST NOT</strong> submit anything that cannot be submitted under that license.</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule19">
|
||||
<h2 id="rule-19">Rule 19</h2>
|
||||
</div>
|
||||
<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>.
|
||||
<a href="https://www.markdownguide.org/basic-syntax/">Markdown format</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
We currently use <a href="https://pandoc.org">pandoc</a> to convert markdown to HTML.
|
||||
We currently use <a href="https://pandoc.org">pandoc(1)</a> to automatically convert markdown to HTML.
|
||||
Please try to avoid submitting an HTML file translation to any markdown file.
|
||||
If you <strong>MUST</strong> submit such an HTML translation, <strong>PLEASE</strong> mention this in your <code>remarks.md</code> file.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
For any submission that wins the contest, we modify your <code>remarks.md</code> file and
|
||||
rename it as <code>README.md</code> and then use <a href="https://pandoc.org">pandoc(1)</a> to generate
|
||||
the <code>index.html</code> file in the top level directory of your submission.
|
||||
For this reason, please do <strong>NOT</strong> submit a <code>README.md</code> file, <strong>NOR</strong> an <code>index.html</code>
|
||||
file in the top level directory where your <code>remarks.md</code> file resides.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See the <a href="https://www.markdownguide.org/cheat-sheet/">Markdown Cheat Sheet</a>
|
||||
for a handy quick reference to the Markdown syntax.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See the <a href="https://www.markdownguide.org">Markdown guide</a>
|
||||
for free and open-source reference guide that explains
|
||||
how to use markdown.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See also the <a href="http://daringfireball.net/projects/markdown/basics">Daring Fireball Markdown:
|
||||
Basics</a> for
|
||||
information on the markdown format.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Please see our FAQ “<a href="../faq.html#remarks_md">remarks.md</a>” and the <a href="../markdown.html">IOCCC markdown
|
||||
@@ -1088,9 +1153,14 @@ available in the <code>$PATH</code> search path.
|
||||
<p>Your submission <strong>MUST NOT</strong> create or modify files <strong>ABOVE</strong> the current directory
|
||||
<em>with the exception of</em> the <code>/tmp</code> and the <code>/var/tmp</code> directories. Your submission
|
||||
<strong>MAY</strong> create subdirectories below the current directory, or in <code>/tmp</code>,
|
||||
or in <code>/var/tmp</code> provided that <code>.</code> is <strong>NOT</strong> the first octet in any
|
||||
or in <code>/var/tmp</code> provided that <code>.</code> is <strong>NOT</strong> the first byte in any
|
||||
directory name or filename you create.</p>
|
||||
<p class="leftbar">
|
||||
If you do create files and directories, <strong>PLEASE</strong> be sure that
|
||||
the <code>clobber</code> rule of your <code>Makefile</code> removes such created files
|
||||
in order restore your submission to its original submission state.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See also <a href="#rule5">Rule 5</a>.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
@@ -1154,7 +1224,7 @@ Unless otherwise needed, <a href="#rule27">Rule 27</a> is reserved for something
|
||||
<h2 id="rule-28">Rule 28</h2>
|
||||
</div>
|
||||
<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>
|
||||
<a href="#rule28">Rule 28</a> is a perfect way to end the list of <a href="rules.html">IOCCC rules</a>
|
||||
as we do <strong>NOT</strong> plan to have <strong>496</strong> rules. :-)
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
@@ -1167,13 +1237,12 @@ as we do <strong>NOT</strong> plan to have <strong>496</strong> rules. :-)
|
||||
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.
|
||||
<strong>Be SURE</strong> to review the <a href="index.html">IOCCC Rules and Guidelines</a> as they
|
||||
may (and <strong>often do</strong>) change from year to year.
|
||||
</p>
|
||||
<p 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.
|
||||
<strong>PLEASE</strong> be sure you have the current <a href="rules.html">IOCCC rules</a> and
|
||||
<a href="guidelines.html">IOCCC guidelines</a> prior to submitting to the contest.
|
||||
</p>
|
||||
<p>See the <a href="../news.html">Official IOCCC website news</a> for additional information.</p>
|
||||
<p class="leftbar">
|
||||
@@ -1188,6 +1257,10 @@ should refresh the page <strong>even if you do follow us</strong></em>.
|
||||
Check out the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a> in general.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Consider joining the IOCCC discord community via this link:
|
||||
<a href="https://discord.gg/Wa42Qujwnw">https://discord.gg/Wa42Qujwnw</a>
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See the
|
||||
FAQ on “<a href="../faq.html#mkiocccentry">obtaining and compiling the mkiocccentry tools</a>”
|
||||
and the
|
||||
|
||||
+259
-156
@@ -51,7 +51,7 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
These [IOCCC rules](rules.html) are version **28.28 2025-03-03**.
|
||||
These [IOCCC rules](rules.html) are version **28.29 2025-03-03**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -185,7 +185,54 @@ Jump to: [top](#)
|
||||
# IOCCC RULES
|
||||
</div>
|
||||
|
||||
To help us with the volume of submissions, we ask that you follow these rules:
|
||||
To help us with the volume of submissions, we ask that you follow the rules below.
|
||||
|
||||
<div id="rule_abuse">
|
||||
#### A warning about rule abuse
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
**WARNING:** Abusing these rules comes with a **fair amount of risk**
|
||||
that your submission will be rejected. If you do plan to abuse the
|
||||
rules, then you **MUST CLEARLY EXPLAIN THE RATIONALE** in your `remarks.md` file,
|
||||
as to why you think your rule abuse should be allowed, and as to why you think
|
||||
your submission should not be rejected for a rule violation.
|
||||
**Nevertheless, _Even if you do_ explain this in your `remarks.md` file
|
||||
you submission may still be rejected**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you use the most recently released official IOCCC submission packaging
|
||||
tool (hereby referred to as `mkiocccentry(1)`), which we **STRONGLY
|
||||
recommend you do**, then the `mkiocccentry(1)` tool will warn you
|
||||
if there appears to be a rule violation. The `mkiocccentry(1)` tool
|
||||
also runs the `fnamchk(1)`, `txzchk(1)` and `chkentry(1)` tools.
|
||||
Overriding problems detected by any of these tools comes with a
|
||||
**fair amount of risk** that your submission will be rejected.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you do override a rule violation warning from the `mkiocccentry(1)`
|
||||
or related IOCCC tool, or otherwise plan to abuse the rules, then you **MUST CLEARLY
|
||||
EXPLAIN THE RATIONALE** of why you are attempting to abuse the rules in your
|
||||
`remarks.md` file. **_Even if you do_ explain this in your `remarks.md` file
|
||||
your submission may still be rejected**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
**HINT:** If you do submit such a rule abusing / rule violating
|
||||
submission, then consider also submitting an alternate version in a
|
||||
different submission server slot that does **NOT** violate the rules
|
||||
in case your rule abuse excuse is rejected. If you do submit such an
|
||||
alternate non-rule abusing version, **PLEASE** indicate that in your
|
||||
`remarks.md` file of your non-rule abusing version so that the [IOCCC
|
||||
judges](../judges.html) do not think you uploaded a duplicate into a
|
||||
wrong slot by mistake.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
See also [Rule 12](#rule13).
|
||||
</p>
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
@@ -218,7 +265,8 @@ Your submission must be a C program.
|
||||
<p class="leftbar">
|
||||
You see, the contest is not called the **International Obfuscated JSON Contest**
|
||||
(**IOJSONC**), even if the [so-called JSON
|
||||
spec](https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec) might be called obfuscated. :-)
|
||||
spec](https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec) might be called obfuscated
|
||||
by some people. :-)
|
||||
</p>
|
||||
|
||||
|
||||
@@ -229,13 +277,10 @@ Jump to: [top](#)
|
||||
## Rule 2
|
||||
</div>
|
||||
|
||||
The size rule requires your submission to satisfy **BOTH** [Rule 2a](#rule2a) and [Rule 2b](#rule2b):
|
||||
[Rule 2](#rule2) requires that your submission satisfy **BOTH** [Rule 2a](#rule2a) and [Rule 2b](#rule2b).
|
||||
|
||||
<p class="leftbar">
|
||||
If you use the most recently released official IOCCC submission
|
||||
packaging tool (hereby referred to as `mkiocccentry(1)`), which we **STRONGLY
|
||||
recommend you do** (see also [Rule 17](#rule17)), then the `mkiocccentry(1)`
|
||||
tool will warn you if there appears to be a [Rule 2a](#rule2a) violation.
|
||||
See also [Rule 2a](#rule2a), [Rule 2b](#rule2b), and [Rule 17](#rule17).
|
||||
</p>
|
||||
|
||||
Jump to: [top](#)
|
||||
@@ -250,23 +295,7 @@ The size of your program source **should NOT exceed 4993 bytes**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `mkiocccentry(1)` tool will give you the option of overriding the [Rule
|
||||
2a](#rule2a) warning. Overriding the [Rule 2a](#rule2a) warning carries a
|
||||
**fair amount of risk that your submission will be rejected**. Be sure to
|
||||
consult the [IOCCC guidelines](guidelines.html) ahead of time if you plan to
|
||||
override the [Rule 2a](#rule2a) warning.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you do override the [Rule 2a](#rule2a) warning from the `mkiocccentry(1)`
|
||||
tool, or otherwise plan to violate [Rule 2a](#rule2a), then you **MUST CLEARLY
|
||||
EXPLAIN THE RATIONALE** of why you are doing so in your `remarks.md` file.
|
||||
**_Even if you do_ explain this in your `remarks.md` file you submission may
|
||||
still be rejected**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
You may check your code prior to submission by giving the filename
|
||||
You may check your code with respect to [Rule 2](#rule2) prior to submission by giving the filename
|
||||
as a command like argument to the `iocccsize(1)` tool. For example:
|
||||
</p>
|
||||
|
||||
@@ -278,8 +307,7 @@ as a command like argument to the `iocccsize(1)` tool. For example:
|
||||
Alternatively, you may use the `mkiocccentry(1)` option `-d` to verify that
|
||||
things check out okay (i.e. no problems are detected) without having to answer
|
||||
all the questions. See the
|
||||
FAQ on "[how to test your submission without having
|
||||
to answer questions](../faq.html#mkiocccentry_test)" for more details.
|
||||
FAQ on "[how to rule test your submission](../faq.html#mkiocccentry_test)" for more details.
|
||||
</p>
|
||||
|
||||
Jump to: [top](#)
|
||||
@@ -302,27 +330,10 @@ The source to `iocccsize(1)` may be found in the
|
||||
|
||||
<p class="leftbar">
|
||||
If you use the `mkiocccentry(1)` tool, which we **STRONGLY recommend
|
||||
you do** (again, see also [Rule 17](#rule17)),
|
||||
then `mkiocccentry(1)` will invoke the `iocccsize(1)` checks before packaging
|
||||
you do** then `mkiocccentry(1)` will invoke the `iocccsize(1)` checks before packaging
|
||||
your submission.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `mkiocccentry(1)` tool will give you the option of overriding the [Rule
|
||||
2b](#rule2b) warning. Overriding the [Rule 2b](#rule2b) warning carries a **fair
|
||||
amount of risk that your submission will be rejected**. Be sure to consult the
|
||||
[IOCCC guidelines](guidelines.html) ahead of time if you plan to override the
|
||||
[Rule 2b](#rule2b) warning.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you do override the [Rule 2b](#rule2b) warning from the `mkiocccentry(1)`
|
||||
tool, or otherwise plan to violate [Rule 2b](#rule2b), then you **MUST CLEARLY
|
||||
EXPLAIN THE RATIONALE** of why you are doing so in your `remarks.md` file.
|
||||
**_Even if you do_ explain this in your `remarks.md` file your submission may
|
||||
still be rejected**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
You may check your code prior to submission by giving the filename
|
||||
as a command like argument to the `iocccsize(1)` tool. For example:
|
||||
@@ -332,6 +343,10 @@ as a command like argument to the `iocccsize(1)` tool. For example:
|
||||
iocccsize prog.c
|
||||
```
|
||||
|
||||
<p class="leftbar">
|
||||
See also [Rule 17](#rule17).
|
||||
</p>
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
@@ -347,29 +362,31 @@ You may [register](register.html) while the contest is either
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
See the
|
||||
FAQ on "[how to register and submit to the IOCCC](../quick-start.html#enter)"
|
||||
for instructions on registering and participating in the IOCCC, as the process has changed from previous years!
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
When the contest is **[open](../faq.html#open)**, an
|
||||
[IOCCC judge](../judges.html) will email you your [submit server](https://submit.ioccc.org)
|
||||
**Username** and **Initial password**. It takes some time (maybe even a few days) for an
|
||||
[IOCCC judge](../judges.html) to process your registration and email you your
|
||||
initial login and password.
|
||||
When the contest is **[open](../faq.html#open)**, the [submit server](https://submit.ioccc.org)
|
||||
will email you your [submit server](https://submit.ioccc.org)
|
||||
**Username** and **Initial password**. **Please be patient** as it may take some time,
|
||||
perhaps as much as a few days, for your registration to be processed and for that email to be sent.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Those who [register](register.html) while the contest status is **[pending](../faq.html#pending)**
|
||||
will receive email with their [submit server](https://submit.ioccc.org) **Username** and **Initial password**
|
||||
from an [IOCCC judge](../judges.html) shortly after the contest status becomes **[open](../faq.html#open)**.
|
||||
will receive their email (containing their [submit server](https://submit.ioccc.org) **Username**
|
||||
and **Initial password**), much later: few days around the time when the contest status becomes **[open](../faq.html#open)**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Once an [IOCCC judge](../judges.html) emails you your **Username** and **Initial password**, you
|
||||
Once that email you your **Username** and **Initial password** is sent, you
|
||||
will have 72 hours to [change your submit server initial password](pw-change.html).
|
||||
If you do not change your **Initial password** in time, you will have to [re-register](register.html).
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you do not change your **Initial password** in time, you will have
|
||||
to [contact an IOCCC judge](contact.html) by email and ask them to reset
|
||||
your password. Not only is this a hassle for everyone involved, it will
|
||||
delay your IOCCC registration process, perhaps by a number of days that
|
||||
`egrep(1)` would be able to pattern match. By `egrep(1)`, we refer to the
|
||||
long standing **UNIX** utility that should just run and **NOT** whine about
|
||||
the command being deprecated.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -382,11 +399,14 @@ or for those who wait until the last minute to try to register!
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you have [registered](register.html) and received by email your
|
||||
[submit server](https://submit.ioccc.org) **Username** and **Initial password**
|
||||
from an [IOCCC judge](../judges.html), you may upload your submission to
|
||||
the [submit server](https://submit.ioccc.org) **ONLY** while the
|
||||
contest is **[open](../faq.html#open)**.
|
||||
See the
|
||||
FAQ on "[how to register and submit to the IOCCC](../quick-start.html#enter)"
|
||||
for instructions on registering and participating in the IOCCC, as the process
|
||||
may change from contest to contest.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
See also [Rule 8](#rule8).
|
||||
</p>
|
||||
|
||||
|
||||
@@ -439,9 +459,9 @@ your `Makefile` to form that copy.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you do make a copy and then modify that copy, **PLEASE** be sure that
|
||||
If you do make a copy of a submission file, **PLEASE** be sure that
|
||||
the `clobber` rule of your `Makefile` removes that copy in order to
|
||||
restore the contents of your submission to its original submission.
|
||||
in order restore your submission to its original submission state.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -476,38 +496,46 @@ The obfuscated C program must be your own original work.
|
||||
|
||||
<p class="leftbar">
|
||||
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:
|
||||
you must have permission from the owner(s) to submit their content.
|
||||
</p>
|
||||
|
||||
<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
|
||||
permission you obtained**.
|
||||
|
||||
<p class="leftbar">
|
||||
Please note that the IOCCC size tool, the tools in the [mkiocccentry
|
||||
repo](https://github.com/ioccc-src/mkiocccentry) and the tools and library in
|
||||
the [jparse repo](https://github.com/xexyl/jparse/issues) (that the
|
||||
[mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry) clones) or the
|
||||
[dbg repo](https://github.com/lcn2/dbg) (that the [mkiocccentry
|
||||
repo](https://github.com/ioccc-src/mkiocccentry) clones) or the [dyn_array
|
||||
repo](https://github.com/lcn2/dyn_array) (that the [mkiocccentry
|
||||
repo](https://github.com/ioccc-src/mkiocccentry) clones) are
|
||||
**NOT** original works, unless of course you're the respective authors, in
|
||||
which case they are. Of course, neither are any of the previous
|
||||
winning entries, unless of course you're the winner! :-)
|
||||
permission you obtained** in your `remarks.md` file.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
You are allowed to use tools to develop and test your submission.
|
||||
These tools may include, but are not limited to code generators, code
|
||||
analysis tools, machine learning tools, natural language models, code
|
||||
copilot tools, etc.
|
||||
Please note that [mkiocccentry repo tools](https://github.com/ioccc-src/mkiocccentry)
|
||||
are **NOT** original works, unless of course you're the respective authors, in
|
||||
which case they are original. :-)
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Nevertheless tools such as those listed are **NOT** obfuscated. If submitted, they
|
||||
would probably violate a number of rules. :-)
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
- [mkioccentry(1)](https://github.com/ioccc-src/mkiocccentry/blob/master/mkiocccentry.c)
|
||||
- [iooccsize(1)](https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c)
|
||||
- [chkentry(1)](https://github.com/ioccc-src/mkiocccentry/blob/master/chkentry.c)
|
||||
- [txzchk(1)](https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c)
|
||||
- [jparse repo as cloned by the mkiocccentry repo](https://github.com/xexyl/jparse)
|
||||
- [dbg repo as cloned by the mkiocccentry repo](https://github.com/lcn2/dbg)
|
||||
- [dyn_array repo as cloned by the mkiocccentry repo](https://github.com/lcn2/dyn_array)
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The IOCCC has a rich history of remarkable winning entries created by
|
||||
authors who skillfully employed various techniques to develop their code.
|
||||
While it is **NOT** required, you are allowed to use tools to develop
|
||||
and test your submission. These tools may include, but are not limited
|
||||
to code generators, code analysis tools, static code analysis tools,
|
||||
runtime analysis tools, machine learning tools, natural language models,
|
||||
code copilot tools, so-called AI services, large language models, etc.
|
||||
If you do make use of such tools, then we **ENCOURAGE you to describe
|
||||
how you used such tools** in your `remarks.md` file.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -527,9 +555,17 @@ Submissions may only be uploaded to the [IOCCC submit server](https://submit.ioc
|
||||
while the contest is **[open](../faq.html#open)**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you have [registered](register.html) and received by email your
|
||||
[submit server](https://submit.ioccc.org) **Username** and **Initial password**
|
||||
from an [IOCCC judge](../judges.html), you may upload your submission to
|
||||
the [submit server](https://submit.ioccc.org) **ONLY** while the
|
||||
contest is **[open](../faq.html#open)**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The [submit server](https://submit.ioccc.org), in accordance with [Rule 17](rules.html#rule17),
|
||||
places a limit of **3999971** octets on the size of your upload.
|
||||
places a limit of **3999971** bytes on the size of your upload.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -567,7 +603,7 @@ See the "[Important IOCCC dates](#dates)" section above for when these contest s
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
See also [Rule 17](#rule17).
|
||||
See also [Rule 3](#rule3) and [Rule 17](#rule17).
|
||||
</p>
|
||||
|
||||
|
||||
@@ -596,6 +632,7 @@ the interim ponder this modified quote purportedly said by Bill Gates:
|
||||
> -- Bill Gates s/640K/10/ (allegedly)
|
||||
</p>
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
@@ -634,6 +671,10 @@ the opinion of the [judges](../judges.html), violates the rules WILL BE DISQUALI
|
||||
Submissions that attempt to abuse the rules **MUST** try to justify why
|
||||
their rule abuse is legal, in the `remarks.md` file.
|
||||
|
||||
<p class="leftbar">
|
||||
See also [the warning about rule abuse](#rule_abuse).
|
||||
</p>
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
@@ -651,6 +692,7 @@ enough to be a prime number.
|
||||
Fun fact: the fear of the number 13 is called _triskaidekaphobia_.
|
||||
</p>
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
@@ -660,12 +702,26 @@ Jump to: [top](#)
|
||||
|
||||
<p class="leftbar">
|
||||
Any C source that fails to compile because of lines with trailing
|
||||
control-M's (i.e., lines with a trailing octet `015`) **_might_** be rejected.
|
||||
control-M's (i.e., lines with a trailing byte `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
|
||||
any control-M at the end of remark file lines.
|
||||
<p class="leftbar">
|
||||
Please do **NOT** put trailing control-M's on `prog.c`, `Makefile`, or
|
||||
`remarks.md` files but instead end lines with a trailing newline (i.e.,
|
||||
byte `012`) character.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
As we do **NOT** DOS, please also be sure that the `Makefile` and
|
||||
`remarks.md` files end in final newline (i.e., byte `012`) character.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
You are permitted, in order to try and squeeze your `prog.c` under
|
||||
a [Rule 2a](#rule2a) and/or [Rule 2b](#rule2b) limit, to **NOT**
|
||||
end your `prog.c` with a newline (i.e., byte `012`) character.
|
||||
If you need to do this, **PLEASE** document that in your `remarks.md` file.
|
||||
</p>
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
@@ -679,8 +735,10 @@ Jump to: [top](#)
|
||||
In order to register for the IOCCC, you **MUST** have a valid email address.
|
||||
</p>
|
||||
|
||||
The [judges](../judges.html) **are NOT responsible for delays in email**, please plan
|
||||
enough time for the exchange of emails so you can upload your submission.
|
||||
<p class="leftbar">
|
||||
The [judges](../judges.html) **are NOT responsible for delays in email**, so please plan
|
||||
enough time accordingly.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
See the
|
||||
@@ -696,10 +754,24 @@ Jump to: [top](#)
|
||||
## Rule 16
|
||||
</div>
|
||||
|
||||
You are **STRONGLY** encouraged to submit an **original submission**.
|
||||
Submissions that are similar to previous entries are
|
||||
discouraged. As we judge anonymously, submissions that have already
|
||||
been published may be disqualified.
|
||||
Submissions that are similar to previous winning IOCCC entries are discouraged.
|
||||
|
||||
<p class="leftbar">
|
||||
You are allowed to re-submit to a later contest, a submission that
|
||||
did not win the IOCCC. If you do so, then you would be well advised
|
||||
to try and enhance and improve your submission.
|
||||
If you do re-submit something that did not previously win, then
|
||||
you are **encouraged** to mention this in your `remarks.md` file
|
||||
as this sometimes helps.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Re-submitting an improved submission that did not become an
|
||||
IOCCC winning entry is a **time honored** tradition of the IOCCC.
|
||||
There are some IOCCC winning entries that were submitted to multiple contests
|
||||
before they were improved enough to "climb over" (as the expression
|
||||
goes) all the other submissions for a given contest.
|
||||
</p>
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
@@ -710,50 +782,45 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
Your submission must be in the form of **xz compressed tarball**
|
||||
that `mkiocccentry(1)` tool would generate. The files, directories,
|
||||
and paths **MUST** conform to the limits imposed by `mkiocccentry(1)`
|
||||
including but **NOT LIMITED** to their names, count, path length
|
||||
and directory tree depth.
|
||||
Your submission must be in the form of a **xz compressed tarball** that
|
||||
the current released version of the `mkiocccentry(1)` tool would generate.
|
||||
The files, directories, and paths **MUST** conform to the limits imposed
|
||||
by `mkiocccentry(1)` including but **NOT LIMITED** to their names, count,
|
||||
path length and directory tree depth.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Your **xz compressed tarball** submission file must pass the tests performed by:
|
||||
</p>
|
||||
|
||||
* <p class="leftbar">`txzchk(1)`</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Your **xz compressed tarball** submission filename must pass the tests performed by:
|
||||
</p>
|
||||
|
||||
* <p class="leftbar">`fnamchk(1)`</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The resulting directory produced when your **xz compressed tarball** submission file uncompressed
|
||||
must pass the checks performed by:
|
||||
</p>
|
||||
|
||||
* <p class="leftbar">`chkentry(1)`</p>
|
||||
|
||||
<p class="leftbar">
|
||||
`txzchk(1)` uses the `fnamchk(1)` tool on your tarball to obtain the proper
|
||||
directory name. If either name is wrong, it will be flagged as an error.
|
||||
Your **xz compressed tarball** must be larger than **0** bytes and no larger than **3999971** bytes.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The resulting `prog.c` file must pass the [Rule 2](#rule2) size checked performed by:
|
||||
The sum of the byte lengths of all files, after the **xz compressed tarball** is un-tarred,
|
||||
must not exceed **27651\*1024** bytes.
|
||||
</p>
|
||||
|
||||
* <p class="leftbar">`iocccsize(1)`</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `.auth.json` and `.info.json` must be compatible with what hat `mkiocccentry(1)` tool
|
||||
would produce as well as pass the tests performed by:
|
||||
Your **xz compressed tarball** submission file must pass the tests performed by the current version of `txzchk(1)`.
|
||||
</p>
|
||||
|
||||
* <p class="leftbar">`jparse(3)`</p>
|
||||
* <p class="leftbar">`chkentry(1)`</p>
|
||||
<p class="leftbar">
|
||||
Your **xz compressed tarball** submission filename must pass the tests performed by the current version of `fnamchk(1)`.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
When your **xz compressed tarball** submission file is un-tarred, the
|
||||
resulting directory must pass the checks performed by the current version of `chkentry(1)`.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The resulting `prog.c` file must pass the [Rule 2](#rule2) size checks performed by the current
|
||||
version of `iocccsize(1)`.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `.auth.json` and `.info.json` must be compatible with what the
|
||||
current version of the `mkiocccentry(1)` tool would produce. They must
|
||||
also pass the tests performed by the current version of `chkentry(1)`.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `Makefile` must **NOT** be empty.
|
||||
@@ -766,17 +833,19 @@ The `remarks.md` must **NOT** be empty.
|
||||
|
||||
### TL;DR Rule 17 - Use `mkiocccentry(1)` to form your submission
|
||||
|
||||
Let the `mkiocccentry(1)` tool form your **xz compressed tarball** submission
|
||||
file and don't try to override its checks and limits, in order to be sure you
|
||||
submission conforms to this rule.
|
||||
<p class="leftbar">
|
||||
Let the current version of the `mkiocccentry(1)` tool form your **xz
|
||||
compressed tarball** submission file.
|
||||
</p>
|
||||
|
||||
### Warning
|
||||
|
||||
<p class="leftbar">
|
||||
Using command line flags or input prompts to override checks and
|
||||
limits made by the above mentioned tools is **NOT** recommended
|
||||
and may result in your submission being rejected by the [IOCCC
|
||||
submit server](https://submit.ioccc.org) and/or the [IOCCC
|
||||
Judges](../judges.html).
|
||||
submit server](https://submit.ioccc.org) and/or the [IOCCC Judges](../judges.html).
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
See the
|
||||
@@ -801,13 +870,12 @@ Jump to: [top](#)
|
||||
The entirety of your submission must be submitted under the following license:
|
||||
|
||||
<p class="leftbar">
|
||||
**[CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)**
|
||||
- **[CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)**
|
||||
</p>
|
||||
|
||||
You (the author(s)) **MUST** own the content 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.
|
||||
<p class="leftbar">
|
||||
See also [Rule 7](#rule7).
|
||||
</p>
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
@@ -819,12 +887,38 @@ Jump to: [top](#)
|
||||
|
||||
<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).
|
||||
[Markdown format](https://www.markdownguide.org/basic-syntax/).
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
We currently use [pandoc](https://pandoc.org) to convert markdown to HTML.
|
||||
We currently use [pandoc(1)](https://pandoc.org) to automatically convert markdown to HTML.
|
||||
Please try to avoid submitting an HTML file translation to any markdown file.
|
||||
If you **MUST** submit such an HTML translation, **PLEASE** mention this in your `remarks.md` file.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
For any submission that wins the contest, we modify your `remarks.md` file and
|
||||
rename it as `README.md` and then use [pandoc(1)](https://pandoc.org) to generate
|
||||
the `index.html` file in the top level directory of your submission.
|
||||
For this reason, please do **NOT** submit a `README.md` file, **NOR** an `index.html`
|
||||
file in the top level directory where your `remarks.md` file resides.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
See the [Markdown Cheat Sheet](https://www.markdownguide.org/cheat-sheet/)
|
||||
for a handy quick reference to the Markdown syntax.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
See the [Markdown guide](https://www.markdownguide.org)
|
||||
for free and open-source reference guide that explains
|
||||
how to use markdown.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
See also the [Daring Fireball Markdown:
|
||||
Basics](http://daringfireball.net/projects/markdown/basics) for
|
||||
information on the markdown format.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -891,9 +985,15 @@ Jump to: [top](#)
|
||||
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
|
||||
or in `/var/tmp` provided that `.` is **NOT** the first byte in any
|
||||
directory name or filename you create.
|
||||
|
||||
<p class="leftbar">
|
||||
If you do create files and directories, **PLEASE** be sure that
|
||||
the `clobber` rule of your `Makefile` removes such created files
|
||||
in order restore your submission to its original submission state.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
See also [Rule 5](#rule5).
|
||||
</p>
|
||||
@@ -996,14 +1096,13 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
[Rule 28](#rule28) is a perfect way end to the list of [IOCCC rules](rules.html)
|
||||
[Rule 28](#rule28) is a perfect way to end the list of [IOCCC rules](rules.html)
|
||||
as we do **NOT** plan to have **496** rules. :-)
|
||||
</p>
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
<div id="more-information">
|
||||
<div id="information">
|
||||
# FOR MORE INFORMATION:
|
||||
@@ -1015,14 +1114,13 @@ For questions or comments about the contest, see [Contacting the IOCCC](../conta
|
||||
</p>
|
||||
|
||||
<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.
|
||||
**Be SURE** to review the [IOCCC Rules and Guidelines](index.html) as they
|
||||
may (and **often do**) change from year to year.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
You should be sure you have the current [IOCCC rules](rules.html) and
|
||||
[IOCCC guidelines](guidelines.html) prior to submitting entries.
|
||||
**PLEASE** be sure you have the current [IOCCC rules](rules.html) and
|
||||
[IOCCC guidelines](guidelines.html) prior to submitting to the contest.
|
||||
</p>
|
||||
|
||||
See the [Official IOCCC website news](../news.html) for additional information.
|
||||
@@ -1040,6 +1138,11 @@ should refresh the page **even if you do follow us**_.
|
||||
Check out the [Official IOCCC winner website](https://www.ioccc.org/index.html) in general.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Consider joining the IOCCC discord community via this link:
|
||||
[https://discord.gg/Wa42Qujwnw](https://discord.gg/Wa42Qujwnw)
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
See the
|
||||
FAQ on "[obtaining and compiling the mkiocccentry tools](../faq.html#mkiocccentry)"
|
||||
|
||||
Reference in new issue
Block a user