Update FAQ and fix guidelines
The FAQ has a new item that is referred to in the guidelines updates. The guidelines has some link fixes and other minor changes. Some fun was corrected in the guidelines as well but kept a fair bit shorter than before (i.e. shorter than IOCCC28). In particular because some code from the mkiocccentry (from some contributors) is no longer extant, and because said code was not even a complete program, only refer to two programs that were strictly written by someone other than the judges. Those paragraphs are only one sentence (they used to be more than one) and the rest of the mkiocccentry repos is not mentioned (this was the longest one and it went into other things that while fun were not relevant). This keeps it light, fun, very short and more importantly correct both to the rule about submissions must be a COMPLETE C program and other rules as well. Some typo fixes were made. I believe this commit resolves the problems from yesterday although I did not go through the file extremely carefully as I know @SirWumpus also wants to go through it and so does Landon, so I kind of rushed through it.
This commit is contained in:
1 parent
d53e0deffd
commit
f3de2bdf14
4 files changed
+178
-141
No files matched your search
@@ -453,7 +453,7 @@
|
|||||||
|
|
||||||
<!-- BEFORE: 1st line of markdown file: faq.md -->
|
<!-- BEFORE: 1st line of markdown file: faq.md -->
|
||||||
<h1 id="ioccc-faq-table-of-contents">IOCCC FAQ Table of Contents</h1>
|
<h1 id="ioccc-faq-table-of-contents">IOCCC FAQ Table of Contents</h1>
|
||||||
<p>This is FAQ version <strong>29.02 2025-11-29</strong>.</p>
|
<p>This is FAQ version <strong>29.03 2025-11-30</strong>.</p>
|
||||||
<h2 id="entering-the-ioccc-the-bare-minimum-you-need-to-know">0. <a href="#enter_questions">Entering the IOCCC: the bare minimum you need to know</a></h2>
|
<h2 id="entering-the-ioccc-the-bare-minimum-you-need-to-know">0. <a href="#enter_questions">Entering the IOCCC: the bare minimum you need to know</a></h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><strong>Q 0.0</strong>: <a class="normal" href="#enter">How can I enter the IOCCC?</a></li>
|
<li><strong>Q 0.0</strong>: <a class="normal" href="#enter">How can I enter the IOCCC?</a></li>
|
||||||
@@ -486,6 +486,7 @@
|
|||||||
<li><strong>Q 1.10</strong>: <a class="normal" href="#download_submission">Can I download my submission tarball from the submit server?</a></li>
|
<li><strong>Q 1.10</strong>: <a class="normal" href="#download_submission">Can I download my submission tarball from the submit server?</a></li>
|
||||||
<li><strong>Q 1.11</strong>: <a class="normal" href="#del_submission">Can I delete a submission from the submit server?</a></li>
|
<li><strong>Q 1.11</strong>: <a class="normal" href="#del_submission">Can I delete a submission from the submit server?</a></li>
|
||||||
<li><strong>Q 1.12</strong>: <a class="normal" href="#makefile_details">What are the detailed recommendations for a submission Makefile?</a></li>
|
<li><strong>Q 1.12</strong>: <a class="normal" href="#makefile_details">What are the detailed recommendations for a submission Makefile?</a></li>
|
||||||
|
<li><strong>Q 1.13</strong>: <a class="normal" href="#github">May I use GitHub or other services to develop my submission?</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2 id="ioccc-judging-process">2. <a href="#judging_process">IOCCC Judging process</a></h2>
|
<h2 id="ioccc-judging-process">2. <a href="#judging_process">IOCCC Judging process</a></h2>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -1698,6 +1699,14 @@ directory. And although it is not an error if this fails, if it fails because th
|
|||||||
Makefile does not have a clobber rule, it will be flagged by <code>mkiocccentry(1)</code>
|
Makefile does not have a clobber rule, it will be flagged by <code>mkiocccentry(1)</code>
|
||||||
(you may ignore this but it does put you at a risk of violating the rules).</p>
|
(you may ignore this but it does put you at a risk of violating the rules).</p>
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
<p>Jump to: <a href="#">top</a></p>
|
||||||
|
<div id="github">
|
||||||
|
<h3 id="q-1.13-may-i-use-github-or-other-services-to-develop-my-submission">Q 1.13: May I use GitHub or other services to develop my submission?</h3>
|
||||||
|
</div>
|
||||||
|
<p>While you may use your own git server or a publicly available service to develop
|
||||||
|
your submission, we <strong>DISLIKE</strong> submissions that require it. What’s more,
|
||||||
|
since it would possibly not be anonymous it would break the rules as you are
|
||||||
|
<strong>NOT</strong> allowed to reveal who you are.</p>
|
||||||
|
<p>Jump to: <a href="#">top</a></p>
|
||||||
<hr style="width:50%;text-align:left;margin-left:0">
|
<hr style="width:50%;text-align:left;margin-left:0">
|
||||||
<hr style="width:50%;text-align:left;margin-left:0">
|
<hr style="width:50%;text-align:left;margin-left:0">
|
||||||
<div id="judging_process">
|
<div id="judging_process">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# IOCCC FAQ Table of Contents
|
# IOCCC FAQ Table of Contents
|
||||||
|
|
||||||
This is FAQ version **29.02 2025-11-29**.
|
This is FAQ version **29.03 2025-11-30**.
|
||||||
|
|
||||||
|
|
||||||
## 0. [Entering the IOCCC: the bare minimum you need to know](#enter_questions)
|
## 0. [Entering the IOCCC: the bare minimum you need to know](#enter_questions)
|
||||||
@@ -32,6 +32,7 @@ This is FAQ version **29.02 2025-11-29**.
|
|||||||
- **Q 1.10**: <a class="normal" href="#download_submission">Can I download my submission tarball from the submit server?</a>
|
- **Q 1.10**: <a class="normal" href="#download_submission">Can I download my submission tarball from the submit server?</a>
|
||||||
- **Q 1.11**: <a class="normal" href="#del_submission">Can I delete a submission from the submit server?</a>
|
- **Q 1.11**: <a class="normal" href="#del_submission">Can I delete a submission from the submit server?</a>
|
||||||
- **Q 1.12**: <a class="normal" href="#makefile_details">What are the detailed recommendations for a submission Makefile?</a>
|
- **Q 1.12**: <a class="normal" href="#makefile_details">What are the detailed recommendations for a submission Makefile?</a>
|
||||||
|
- **Q 1.13**: <a class="normal" href="#github">May I use GitHub or other services to develop my submission?</a>
|
||||||
|
|
||||||
|
|
||||||
## 2. [IOCCC Judging process](#judging_process)
|
## 2. [IOCCC Judging process](#judging_process)
|
||||||
@@ -1644,6 +1645,17 @@ Makefile does not have a clobber rule, it will be flagged by `mkiocccentry(1)`
|
|||||||
|
|
||||||
Jump to: [top](#)
|
Jump to: [top](#)
|
||||||
|
|
||||||
|
<div id="github">
|
||||||
|
### Q 1.13: May I use GitHub or other services to develop my submission?
|
||||||
|
</div>
|
||||||
|
|
||||||
|
While you may use your own git server or a publicly available service to develop
|
||||||
|
your submission, we **DISLIKE** submissions that require it. What's more,
|
||||||
|
since it would possibly not be anonymous it would break the rules as you are
|
||||||
|
**NOT** allowed to reveal who you are.
|
||||||
|
|
||||||
|
|
||||||
|
Jump to: [top](#)
|
||||||
|
|
||||||
<hr style="width:50%;text-align:left;margin-left:0">
|
<hr style="width:50%;text-align:left;margin-left:0">
|
||||||
<hr style="width:50%;text-align:left;margin-left:0">
|
<hr style="width:50%;text-align:left;margin-left:0">
|
||||||
|
|||||||
+74
-67
@@ -462,7 +462,7 @@ and remains unaltered. All other uses must receive prior permission in
|
|||||||
writing by <a href="../contact.html">contacting the judges</a>.</p>
|
writing by <a href="../contact.html">contacting the judges</a>.</p>
|
||||||
<h1 id="guidelines-version">Guidelines Version</h1>
|
<h1 id="guidelines-version">Guidelines Version</h1>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
These IOCCC guidelines are version <strong>29.01 2025-11-29</strong>.
|
These IOCCC guidelines are version <strong>29.02 2025-11-30</strong>.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The <span style="font-size:28px;"><b>|</b></span> symbol indicates an <strong>change</strong> from the previous IOCCC.
|
The <span style="font-size:28px;"><b>|</b></span> symbol indicates an <strong>change</strong> from the previous IOCCC.
|
||||||
@@ -483,9 +483,9 @@ You should pay attention to our observations on
|
|||||||
<a href="../2024/index.html#code-size-and-rule-2">code size and Rule 2 remarks for IOCCC28</a>.
|
<a href="../2024/index.html#code-size-and-rule-2">code size and Rule 2 remarks for IOCCC28</a>.
|
||||||
</p>
|
</p>
|
||||||
<p>Your submission must satisfy <strong>BOTH</strong> the
|
<p>Your submission must satisfy <strong>BOTH</strong> the
|
||||||
<a href="rules.html#rule2a-gross-size">Rule 2a Gross Size</a>
|
<a href="rules.html#rule2a-gross-size">Rule 2a - Gross Size</a>
|
||||||
<strong>AND</strong>
|
<strong>AND</strong>
|
||||||
<a href="rules.html#rule2b-net-size">Rule 2b Net Size</a> rules.</p>
|
<a href="rules.html#rule2b-net-size">Rule 2b - Net Size</a> rules.</p>
|
||||||
<p>To check your code against
|
<p>To check your code against
|
||||||
<a href="rules.html#rule2-size">Rule 2 - Size restrictions</a>, use the <code>iocccentry(1)</code> tool.
|
<a href="rules.html#rule2-size">Rule 2 - Size restrictions</a>, use the <code>iocccentry(1)</code> tool.
|
||||||
For example:</p>
|
For example:</p>
|
||||||
@@ -512,13 +512,6 @@ to get around the size limits of
|
|||||||
because of the <code>iocccsize(1)</code> algorithm.</p>
|
because of the <code>iocccsize(1)</code> algorithm.</p>
|
||||||
<p>Yes Virginia, <strong>the previous guideline sentence is an important hint</strong>!</p>
|
<p>Yes Virginia, <strong>the previous guideline sentence is an important hint</strong>!</p>
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
<p>Jump to: <a href="#">top</a></p>
|
||||||
<div id="guideline3">
|
|
||||||
<div id="guideline-3---register">
|
|
||||||
<h1 id="guidelines-for-rule-3---register-for-the-ioccc">Guidelines for <a href="rules.html#rule3-register">Rule 3 - Register for the IOCCC</a></h1>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<p>See FAQ on “<a href="../faq.html#author_handle_faq">What is an author handle?</a>”.</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
|
||||||
<div id="guideline7">
|
<div id="guideline7">
|
||||||
<div id="guideline-7---original-work">
|
<div id="guideline-7---original-work">
|
||||||
<h1 id="guidelines-for-rule-7---original-work">Guidelines for <a href="rules.html#rule7-original-work">Rule 7 - Original Work</a></h1>
|
<h1 id="guidelines-for-rule-7---original-work">Guidelines for <a href="rules.html#rule7-original-work">Rule 7 - Original Work</a></h1>
|
||||||
@@ -540,7 +533,8 @@ authors who skillfully employed various techniques to develop their code.
|
|||||||
If you do make use of such tools or services, then we <strong>ENCOURAGE you to
|
If you do make use of such tools or services, then we <strong>ENCOURAGE you to
|
||||||
describe how you used such tools</strong> in your <code>remarks.md</code> file.</p>
|
describe how you used such tools</strong> in your <code>remarks.md</code> file.</p>
|
||||||
<p>In short: You created it, you own it, its an original work, or you have explicit permission to the work.</p>
|
<p>In short: You created it, you own it, its an original work, or you have explicit permission to the work.</p>
|
||||||
<p>See FAQ on “<a href="../faq.html#ai">May I use AI, LLM, Virtual coding assistants, or similar tools to write my submission?</a>”.</p>
|
<p>See the
|
||||||
|
FAQ on “<a href="../faq.html#ai">May I use AI, LLM, Virtual coding assistants, or similar tools to write my submission?</a>”.</p>
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
<p>Jump to: <a href="#">top</a></p>
|
||||||
<div id="guideline11">
|
<div id="guideline11">
|
||||||
<div id="guideline-11---abuse">
|
<div id="guideline-11---abuse">
|
||||||
@@ -561,26 +555,24 @@ if not smaller.</p>
|
|||||||
technically allowed by the <a href="rules.html">IOCCC rules</a> and yet do not fit the spirit of what
|
technically allowed by the <a href="rules.html">IOCCC rules</a> and yet do not fit the spirit of what
|
||||||
we intended to be submitted.</p>
|
we intended to be submitted.</p>
|
||||||
<p>Legal abuse of the <a href="rules.html">IOCCC rules</a> is <strong>NOT</strong> an invitation to violate
|
<p>Legal abuse of the <a href="rules.html">IOCCC rules</a> is <strong>NOT</strong> an invitation to violate
|
||||||
the <a href="rules.html">IOCCC rules</a> (especailly <a href="./rules.html#rule-17---packaging">Rule 17 -
|
the <a href="rules.html">IOCCC rules</a> (especially <a href="./rules.html#rule17-mkiocccentry">Rule 17 -
|
||||||
Packaging</a> ). A submission that violates the
|
Use mkiocccentry</a>). A submission that violates the
|
||||||
<a href="rules.html">rules</a> in the opinion of the <a href="../judges.html">IOCCC judges</a>,
|
<a href="rules.html">rules</a> in the opinion of the <a href="../judges.html">IOCCC judges</a>,
|
||||||
<strong>WILL</strong> be disqualified. <strong><em>RULE ABUSE CARRIES A CERTAIN LEVEL OF RISK!</em></strong></p>
|
<strong>WILL</strong> be disqualified. <strong><em>RULE ABUSE CARRIES A CERTAIN LEVEL OF RISK!</em></strong></p>
|
||||||
<p>If you intend to abuse the <a href="rules.html">IOCCC rules</a>,
|
<p>If you intend to abuse the <a href="rules.html">IOCCC rules</a>,
|
||||||
indicate so in your <code>remarks.md</code> file. You <strong>MUST</strong> try to justify, plead, beg,
|
indicate so in your <code>remarks.md</code> file. You <strong>MUST</strong> try to justify, plead, beg,
|
||||||
why you consider your rule abuse to be allowed under the
|
why you consider your rule abuse to be allowed under the
|
||||||
<a href="rules.html">IOCCC rules</a>. Humor or creativity help plead a case.
|
<a href="rules.html">IOCCC rules</a>. Humor or creativity help plead a case.</p>
|
||||||
As there is no guarantee that you will succeed, you might consider
|
<p>As there is no guarantee that you will succeed, you might consider submitting an
|
||||||
submitting an alternate version that conforms to the
|
alternate version that conforms to the <a href="rules.html">IOCCC rules</a>, if it might
|
||||||
<a href="rules.html">IOCCC rules</a>.</p>
|
otherwise be interesting; one that does not abuse the <a href="rules.html">IOCCC rules</a>
|
||||||
<p>If you have a submission that might otherwise be interesting, you might want to
|
and one that does, making sure to note in the one that does not abuse the rules
|
||||||
submit two versions; one that does not abuse the <a href="rules.html">IOCCC rules</a> and
|
that this is another version, so that the judges do not assume you uploaded it
|
||||||
one that does, making sure to note in the one that does not abuse the rules that
|
by mistake.</p>
|
||||||
this is another version, so that the judges do not assume you uploaded it by
|
|
||||||
mistake.</p>
|
|
||||||
<p>If you do bypass the <code>mkiocccentry(1)</code> warnings about
|
<p>If you do bypass the <code>mkiocccentry(1)</code> warnings about
|
||||||
<a href="rules.html#rule-2a-gross-size">Rule 2a - Gross Size</a>
|
<a href="rules.html#rule2a-gross-size">Rule 2a - Gross Size</a>
|
||||||
and/or about
|
and/or about
|
||||||
<a href="rules.html#rule-2b-net-size">Rule 2b - Net Size</a>
|
<a href="rules.html#rule2b-net-size">Rule 2b - Net Size</a>
|
||||||
or any other
|
or any other
|
||||||
rule and submit a submission anyway, you <strong>MUST</strong> try to justify why the IOCCC
|
rule and submit a submission anyway, you <strong>MUST</strong> try to justify why the IOCCC
|
||||||
<a href="../judges.html">IOCCC judges</a> should not reject your submission due to a rule
|
<a href="../judges.html">IOCCC judges</a> should not reject your submission due to a rule
|
||||||
@@ -593,7 +585,7 @@ in many cases such problems, flaws or areas of confusion are deliberate.</p>
|
|||||||
<p>Changes to <a href="rules.html">IOCCC rules</a> and <a href="guidelines.html">IOCCC guidelines</a> in
|
<p>Changes to <a href="rules.html">IOCCC rules</a> and <a href="guidelines.html">IOCCC guidelines</a> in
|
||||||
response to rule abuses, are done in a minimal fashion. Often we will
|
response to rule abuses, are done in a minimal fashion. Often we will
|
||||||
deliberately leave behind holes (or introduce new ones) so that future rule
|
deliberately leave behind holes (or introduce new ones) so that future rule
|
||||||
abuse can continue. A clever author should be able to read them and “drive a
|
abuse can continue. A clever author should be able to read and “drive a
|
||||||
truck through the holes” in the <a href="rules.html">IOCCC rules</a> and <a href="guidelines.html">IOCCC
|
truck through the holes” in the <a href="rules.html">IOCCC rules</a> and <a href="guidelines.html">IOCCC
|
||||||
guidelines</a>.</p>
|
guidelines</a>.</p>
|
||||||
<p>At the risk of stating the obvious, this contest is a parody of the software
|
<p>At the risk of stating the obvious, this contest is a parody of the software
|
||||||
@@ -602,23 +594,22 @@ are only part of the overall contest. Even so, one might think the
|
|||||||
contest <a href="rules.html">IOCCC rules</a> and <a href="guidelines.html">IOCCC guidelines</a> process as a parody
|
contest <a href="rules.html">IOCCC rules</a> and <a href="guidelines.html">IOCCC guidelines</a> process as a parody
|
||||||
of the sometimes tragic mismatch between what a customer (or marketing) wants
|
of the sometimes tragic mismatch between what a customer (or marketing) wants
|
||||||
and what engineering delivers. Real programmers must face obfuscated and
|
and what engineering delivers. Real programmers must face obfuscated and
|
||||||
sometimes conflicting, balloning specifications, and requirements from marketing, sales,
|
sometimes conflicting, ballooning specifications, and requirements from marketing, sales,
|
||||||
product management and even from customers themselves on an all too regular basis.
|
product management and even from customers themselves on an all too regular basis.
|
||||||
This is one of the reasons why the <a href="rules.html">IOCCC rules</a> and
|
This is one of the reasons why the <a href="rules.html">IOCCC rules</a> and
|
||||||
<a href="guidelines.html">IOCCC guidelines</a> are written in obfuscated form.</p>
|
<a href="guidelines.html">IOCCC guidelines</a> are written in obfuscated form.</p>
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
<p>Jump to: <a href="#">top</a></p>
|
||||||
<div id="guideline15">
|
<div id="guideline15">
|
||||||
<div id="guideline-15---building">
|
<div id="guideline-15---building">
|
||||||
|
<div id="guideline15-gnu-makefile">
|
||||||
<h1 id="guidelines-for-rule-15---gnu-makefile">Guidelines for <a href="rules.html#rule15-gnu-makefile">Rule 15 - GNU Makefile</a></h1>
|
<h1 id="guidelines-for-rule-15---gnu-makefile">Guidelines for <a href="rules.html#rule15-gnu-makefile">Rule 15 - GNU Makefile</a></h1>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p>You may use <code>git,</code> or services such as <a href="https://www.github.com">GitHub</a>
|
</div>
|
||||||
to develop and maintain your submission. However, we <strong>DISLIKE</strong>
|
|
||||||
submissions that <strong>require</strong> such services in order to build/compile your submission.</p>
|
|
||||||
<p>Submissions will be judged in an environment that has no <strong>IDE</strong>.
|
<p>Submissions will be judged in an environment that has no <strong>IDE</strong>.
|
||||||
Any submission that fails to compile/build because it requires
|
Any submission that fails to compile/build because it requires
|
||||||
an <strong>IDE</strong> will be rejected.</p>
|
an <strong>IDE</strong> will be rejected.</p>
|
||||||
<p>We will use the <code>GNU make(1)</code> tool, your <code>Makefile</code>, as well as tools found in the
|
<p>We will use the GNU <code>make(1)</code> tool, your <code>Makefile</code>, as well as tools found in the
|
||||||
<a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX Specification</a>
|
<a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX Specification</a>
|
||||||
environments, and commonly found on systems that reasonably conform to the
|
environments, and commonly found on systems that reasonably conform to the
|
||||||
<a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX Specification</a>
|
<a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX Specification</a>
|
||||||
@@ -638,8 +629,8 @@ FAQ on “<a href="../faq.html#makefile_details">What are the detailed recommend
|
|||||||
</div>
|
</div>
|
||||||
<p>We <strong>STRONGLY</strong> recommend you <strong>do</strong> install the most recent release of
|
<p>We <strong>STRONGLY</strong> recommend you <strong>do</strong> install the most recent release of
|
||||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
||||||
As use of using older versions of the mkiocccentry toolkit to are <strong>HIGHLY LIKELY</strong> to be <strong>REJECTED</strong>!</p>
|
because use of older versions of the mkiocccentry toolkit are <strong>HIGHLY LIKELY</strong> to be <strong>REJECTED</strong>!</p>
|
||||||
<p>If you submit your own JSON files (other than <code>.auth.json</code> and
|
<p>If you submit your own JSON files (<strong>OTHER THAN</strong> <code>.auth.json</code> and
|
||||||
<code>.info.json</code>) then they do <strong>NOT</strong> have to be valid JSON.</p>
|
<code>.info.json</code>) then they do <strong>NOT</strong> have to be valid JSON.</p>
|
||||||
<p>However, if you do provide invalid JSON files, <strong>PLEASE</strong>
|
<p>However, if you do provide invalid JSON files, <strong>PLEASE</strong>
|
||||||
document and <strong>clearly explain</strong> this in your <code>remarks.md</code> file.</p>
|
document and <strong>clearly explain</strong> this in your <code>remarks.md</code> file.</p>
|
||||||
@@ -652,7 +643,7 @@ file</em>.
|
|||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The non-extra files (<code>prog.c</code>, <code>prog.alt.c</code>,
|
The non-extra files (<code>prog.c</code>, <code>prog.alt.c</code>,
|
||||||
<code>try.sh</code>, <code>try.alt.sh</code>, <code>remarks.md</code>, <code>Makefile</code>, <code>.auth.json</code> and <code>.info.json</code>)
|
<code>try.sh</code>, <code>try.alt.sh</code>, <code>remarks.md</code>, <code>Makefile</code>, <code>.auth.json</code> and <code>.info.json</code>)
|
||||||
are considered <em>free files</em>, and to not count towards the
|
are considered <em>free files</em>, and do not count towards the
|
||||||
<a href="rules.html#rule17-mkiocccentry">Rule 17 - Use mkiocccentry</a>
|
<a href="rules.html#rule17-mkiocccentry">Rule 17 - Use mkiocccentry</a>
|
||||||
limit of <strong>31</strong> <em>extra files</em>.
|
limit of <strong>31</strong> <em>extra files</em>.
|
||||||
</p>
|
</p>
|
||||||
@@ -663,12 +654,14 @@ reason, the tarball <strong>MUST</strong> be a <strong>v7 format</strong> tarbal
|
|||||||
<p>You should NOT use a tarball as an <em>extra file</em> for a test-suite unless you
|
<p>You should NOT use a tarball as an <em>extra file</em> for a test-suite unless you
|
||||||
have a very good reason for this: if you do include a tarball as an <em>extra file</em>,
|
have a very good reason for this: if you do include a tarball as an <em>extra file</em>,
|
||||||
then you <strong>MUST</strong> specify why in your <code>remarks.md</code> file.</p>
|
then you <strong>MUST</strong> specify why in your <code>remarks.md</code> file.</p>
|
||||||
<p>If you <strong>DO</strong> include a tarball an <em>extra file</em>, and the build process or the program extracts
|
<p>If you <strong>DO</strong> include a tarball as an <em>extra file</em>, and the build process or the
|
||||||
said tarball(s), the make <code>clobber</code> rule <strong>MUST</strong> remove the extracted files.</p>
|
program extracts said tarball(s), the make <code>clobber</code> rule <strong>MUST</strong> remove the
|
||||||
<p>Instead of including a large test-suite that requires a lot of files as part of your submission,
|
extracted files.</p>
|
||||||
and your submission doesn’t require the test-suite to be available to run,
|
<p>Instead of including a large test-suite that requires a lot of files as part of
|
||||||
then in your <code>remarks.md</code> a URL where such a test-suite may be downloaded from
|
your submission, if your submission doesn’t require the test-suite to be
|
||||||
and how to use the test-suite to test your submission.</p>
|
available to run, then in your <code>remarks.md</code> you could include URL where such a
|
||||||
|
test-suite may be downloaded from and how to use the test-suite to test your
|
||||||
|
submission, assuming it is not reveal who you are.</p>
|
||||||
<p>If you <strong>DO</strong> include a tarball then make sure it uses the v7 format. See the
|
<p>If you <strong>DO</strong> include a tarball then make sure it uses the v7 format. See the
|
||||||
FAQ on “<a href="../faq.html#extra-files">extra files</a>”
|
FAQ on “<a href="../faq.html#extra-files">extra files</a>”
|
||||||
for details on how to make a v7 tarball.</p>
|
for details on how to make a v7 tarball.</p>
|
||||||
@@ -700,9 +693,9 @@ use the <strong>most recent version</strong> of the
|
|||||||
submissions that package using older versions of the
|
submissions that package using older versions of the
|
||||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
||||||
are <strong>LIKELY</strong> to be <strong>REJECTED</strong>!</p>
|
are <strong>LIKELY</strong> to be <strong>REJECTED</strong>!</p>
|
||||||
<p>You <strong>REALLY SHOULD</strong> use the latest <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
<p>You <strong>REALLY SHOULD</strong> use the latest <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||||
are <strong>LIKELY</strong> to be <strong>REJECTED</strong>! So you <strong>REALLY SHOULD</strong> use the latest <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
toolkit</a> to package your submission
|
||||||
to package your own submission.</p>
|
as submissions that use an older version are <strong>LIKELY</strong> to be <strong>REJECTED</strong>!</p>
|
||||||
<p>The <code>mkiocccentry(1)</code> tool runs a number of checks by way of these
|
<p>The <code>mkiocccentry(1)</code> tool runs a number of checks by way of these
|
||||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a> tools:</p>
|
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a> tools:</p>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -716,8 +709,8 @@ to package your own submission.</p>
|
|||||||
“<strong>for TESTING purposes</strong>” in their respective man pages.</p>
|
“<strong>for TESTING purposes</strong>” in their respective man pages.</p>
|
||||||
<p>Do <strong>NOT</strong> use <code>fnamchk(1)</code> command line options that are labeled “<strong>for TESTING purposes</strong>”
|
<p>Do <strong>NOT</strong> use <code>fnamchk(1)</code> command line options that are labeled “<strong>for TESTING purposes</strong>”
|
||||||
in the <code>fnamchk(1)</code> man page.</p>
|
in the <code>fnamchk(1)</code> man page.</p>
|
||||||
<p>Do <strong>NOT</strong> use <code>chkentry(1)</code> command line options that are labeled “<strong>for the use by the IOCCC judges only</strong>”
|
<p>Do <strong>NOT</strong> use <code>chksubmit(1)</code> command line options that are labeled “<strong>for the use by the IOCCC judges only</strong>”
|
||||||
in the <code>chksubmit(1)</code> (or <code>chkentry(1)</code>) man page(s).
|
in the <code>chksubmit(1)</code> man page.
|
||||||
Similarly do <strong>NOT</strong> use <code>chkentry(1)</code> command line options marked “<strong>for the use
|
Similarly do <strong>NOT</strong> use <code>chkentry(1)</code> command line options marked “<strong>for the use
|
||||||
by the IOCCC judges only</strong>” in the <code>chkentry(1)</code> man page.</p>
|
by the IOCCC judges only</strong>” in the <code>chkentry(1)</code> man page.</p>
|
||||||
<p>To view <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a> man pages,
|
<p>To view <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a> man pages,
|
||||||
@@ -759,12 +752,15 @@ correct details as you go along.</p>
|
|||||||
to proceed with a default, however make sure the default is the <strong>CORRECT</strong>
|
to proceed with a default, however make sure the default is the <strong>CORRECT</strong>
|
||||||
answer.</p>
|
answer.</p>
|
||||||
<p>The <code>mkiocccentry(1)</code> tool will use code from <code>iocccsize(1)</code> which detects a number of
|
<p>The <code>mkiocccentry(1)</code> tool will use code from <code>iocccsize(1)</code> which detects a number of
|
||||||
issues (such as <a href="rules.html#rule2-size">Rule 2 - Size</a>) that you may ignore,
|
issues (such as <a href="rules.html#rule2-size">Rule 2 - Size restrictions</a>) that you may ignore,
|
||||||
however ignoring such issues <strong>comes with a significant level of risk!</strong></p>
|
however ignoring such issues <strong>comes with a SIGNIFICANT level of risk!</strong></p>
|
||||||
<p>Once the tarball is packaged it will
|
<p>Once the tarball is packaged it will
|
||||||
run <code>txzchk(1)</code>, which will also run <code>fnamchk(1)</code>, as part of its algorithm.</p>
|
run <code>txzchk(1)</code>, which will also run <code>fnamchk(1)</code>, as part of its algorithm.</p>
|
||||||
<p>The use of <code>mkiocccentry -W ....</code> is <strong>highly discouraged</strong> as this may ignore
|
<p>The use of <code>mkiocccentry -W ....</code> is <strong>highly discouraged</strong> as this may ignore
|
||||||
warnings about a problem that may cause your submission to be <strong>REJECTED!</strong>”</p>
|
warnings about a problem that may cause your submission to be <strong>REJECTED!</strong>”</p>
|
||||||
|
<p>The same can be said of the <code>-Y</code> option, and to a lesser extent <code>-y</code>: the <code>-y</code>
|
||||||
|
is mostly for the test script and the <code>-Y</code> is like <code>-y</code> but even more
|
||||||
|
aggressive.</p>
|
||||||
<p>If <code>mkiocccentry</code> encounters an <strong>error</strong>, the program will exit and the xz
|
<p>If <code>mkiocccentry</code> encounters an <strong>error</strong>, the program will exit and the xz
|
||||||
compressed tarball <strong>will NOT be generated</strong>: this is a <strong>feature, not a bug</strong>!</p>
|
compressed tarball <strong>will NOT be generated</strong>: this is a <strong>feature, not a bug</strong>!</p>
|
||||||
<p>If you encounter a <strong>bug</strong> with the
|
<p>If you encounter a <strong>bug</strong> with the
|
||||||
@@ -772,7 +768,7 @@ compressed tarball <strong>will NOT be generated</strong>: this is a <strong>fea
|
|||||||
<strong>PLEASE run the <code>bug_report.sh</code> script to help us out here!</strong></p>
|
<strong>PLEASE run the <code>bug_report.sh</code> script to help us out here!</strong></p>
|
||||||
<p>While you don’t have to install the
|
<p>While you don’t have to install the
|
||||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>,
|
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>,
|
||||||
then in order to run a tool outside the repo directory
|
if you don’t, in order to run a tool outside the repo directory
|
||||||
you will have to specify <code>mkiocccentry(1)</code> command line options to locate required tools
|
you will have to specify <code>mkiocccentry(1)</code> command line options to locate required tools
|
||||||
such as <code>chkentry(1)</code> (<code>mkiocccentry -C chkentry ..</code>), <code>txzchk(1)</code> (<code>mkiocccentry -T txzchk ..</code>),
|
such as <code>chkentry(1)</code> (<code>mkiocccentry -C chkentry ..</code>), <code>txzchk(1)</code> (<code>mkiocccentry -T txzchk ..</code>),
|
||||||
and <code>fnamchk(1)</code> (<code>mkiocccentry -F fnamchk ..</code>).</p>
|
and <code>fnamchk(1)</code> (<code>mkiocccentry -F fnamchk ..</code>).</p>
|
||||||
@@ -839,7 +835,7 @@ submissions that remain within the <a href="guidelines.html">IOCCC guidelines</a
|
|||||||
<ul>
|
<ul>
|
||||||
<li><p><a href="../quick-start.html#enter">How to enter the IOCCC</a></p></li>
|
<li><p><a href="../quick-start.html#enter">How to enter the IOCCC</a></p></li>
|
||||||
<li><p><a href="../faq.html#mkiocccentry">Obtaining and compiling the most recent mkiocccentry toolkit</a></p></li>
|
<li><p><a href="../faq.html#mkiocccentry">Obtaining and compiling the most recent mkiocccentry toolkit</a></p></li>
|
||||||
<li><p><a href="../next/submit.html">How to upload your submission</a></p></li>
|
<li><p><a href="./submit.html">How to upload your submission</a></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>While the contest is <strong><a href="../faq.html#open">open</a></strong>, you may modify your
|
<p>While the contest is <strong><a href="../faq.html#open">open</a></strong>, you may modify your
|
||||||
previously uploaded submission by rebuilding your submission with the
|
previously uploaded submission by rebuilding your submission with the
|
||||||
@@ -848,8 +844,8 @@ and then re-uploading it to <strong>the same slot number</strong> on the
|
|||||||
<a href="https://submit.ioccc.org">submit server</a>.</p>
|
<a href="https://submit.ioccc.org">submit server</a>.</p>
|
||||||
<p>The <strong>official locale</strong> of the <strong>IOCCC</strong> is <strong>C</strong>.</p>
|
<p>The <strong>official locale</strong> of the <strong>IOCCC</strong> is <strong>C</strong>.</p>
|
||||||
<p>You are <strong>encouraged</strong> to examine the <a href="../years.html">winners of previous contests</a>.</p>
|
<p>You are <strong>encouraged</strong> to examine the <a href="../years.html">winners of previous contests</a>.</p>
|
||||||
<p>Because <a href="rules.html">rules</a> change from year to year, some <a href="../years.html">winning entries</a>
|
<p>Because <a href="rules.html">rules</a> change from year to year, some <a href="../years.html">past winning entries</a>
|
||||||
of the past may be rejected this year.</p>
|
may be rejected this year.</p>
|
||||||
<p>What was <em>was</em> unique and novel one year <em>might be ‘old’ the next year</em>.</p>
|
<p>What was <em>was</em> unique and novel one year <em>might be ‘old’ the next year</em>.</p>
|
||||||
<p>A submission is usually examined in a number of ways. We typically apply
|
<p>A submission is usually examined in a number of ways. We typically apply
|
||||||
a number of tests to a submission:</p>
|
a number of tests to a submission:</p>
|
||||||
@@ -898,9 +894,8 @@ function or state machine to spell out something such as “<em>hello,
|
|||||||
world!</em>” <strong>really really, <em>and we do mean REALLY</em>, do need to be more creative</strong>.</p>
|
world!</em>” <strong>really really, <em>and we do mean REALLY</em>, do need to be more creative</strong>.</p>
|
||||||
<p>Consider using misleading or subtle tricks layered on top of or under
|
<p>Consider using misleading or subtle tricks layered on top of or under
|
||||||
an appropriate level of obfuscation.</p>
|
an appropriate level of obfuscation.</p>
|
||||||
<p>A clean looking program with
|
<p>A clean looking program with misleading comments and variable names might be a
|
||||||
misleading comments and variable names might be a <strong>VERY GOOD START</strong>
|
<strong>VERY GOOD START</strong> to a great submission!</p>
|
||||||
to a great submission!</p>
|
|
||||||
<p>Jump to: <a href="#">top</a></p>
|
<p>Jump to: <a href="#">top</a></p>
|
||||||
<div id="likes">
|
<div id="likes">
|
||||||
|
|
||||||
@@ -917,6 +912,11 @@ the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a>
|
|||||||
<p>We <strong>VERY MUCH LIKE</strong> submissions that have some educational value. This does <strong>NOT</strong> mean
|
<p>We <strong>VERY MUCH LIKE</strong> submissions that have some educational value. This does <strong>NOT</strong> mean
|
||||||
that your submission should not be obfuscated but rather that the IOCCC has moved away from
|
that your submission should not be obfuscated but rather that the IOCCC has moved away from
|
||||||
the idea of “spoilers”. You should not encrypt or rot13 content in your <code>remarks.md</code> file.</p>
|
the idea of “spoilers”. You should not encrypt or rot13 content in your <code>remarks.md</code> file.</p>
|
||||||
|
<p>The above statement does not mean encryption/decryption tools will not win, nor
|
||||||
|
does it mean that if you have such a submission that you could not encrypt some
|
||||||
|
remarks (such as obfuscation details), but if you do so please put them in a
|
||||||
|
separate file and indicate how to undo it. Please do <strong>NOT</strong> use any cipher to
|
||||||
|
encrypt your <code>remarks.md</code>.</p>
|
||||||
<p>It is <strong>VERY MUCH</strong> appreciated if your remarks have some educational
|
<p>It is <strong>VERY MUCH</strong> appreciated if your remarks have some educational
|
||||||
value. And although educational value is not required, it is an
|
value. And although educational value is not required, it is an
|
||||||
<strong>EXCELLENT</strong> bonus.</p>
|
<strong>EXCELLENT</strong> bonus.</p>
|
||||||
@@ -956,8 +956,9 @@ as a program that is more well rounded in confusion.</p>
|
|||||||
<p>In other words, it is a compilation error, and in order to get older
|
<p>In other words, it is a compilation error, and in order to get older
|
||||||
IOCCC winning entries that did this to compile, we had to update them to not do this.</p>
|
IOCCC winning entries that did this to compile, we had to update them to not do this.</p>
|
||||||
<p>When declaring local or global variables, you should declare the type:</p>
|
<p>When declaring local or global variables, you should declare the type:</p>
|
||||||
<pre><code> int this_is_fine;
|
<pre><code> int this_is_fine;</code></pre>
|
||||||
this_is_not; /* <-- Try to avoid implicit type declarations */</code></pre>
|
<p>and <strong>NOT</strong> like this:</p>
|
||||||
|
<pre><code> this_is_not; /* <-- Try to avoid implicit type declarations */</code></pre>
|
||||||
<p>We tend to <strong>like <em>less</em></strong> a submission that requires either
|
<p>We tend to <strong>like <em>less</em></strong> a submission that requires either
|
||||||
<code>gcc</code> <strong>OR</strong> <code>clang</code>. <strong>We <em>prefer</em> submissions</strong> that can compile
|
<code>gcc</code> <strong>OR</strong> <code>clang</code>. <strong>We <em>prefer</em> submissions</strong> that can compile
|
||||||
under <strong>BOTH</strong> <code>gcc</code> <strong>AND</strong> <code>clang</code>. <strong>Hint!</strong></p>
|
under <strong>BOTH</strong> <code>gcc</code> <strong>AND</strong> <code>clang</code>. <strong>Hint!</strong></p>
|
||||||
@@ -1067,7 +1068,7 @@ from the current directory. This restriction is not a hard and
|
|||||||
absolute one. The intent is to ensure that the building of your
|
absolute one. The intent is to ensure that the building of your
|
||||||
program is reasonably portable.</p>
|
program is reasonably portable.</p>
|
||||||
<p>We prefer programs that are portable across a wide variety of UNIX-like
|
<p>We prefer programs that are portable across a wide variety of UNIX-like
|
||||||
operating systems (e.g., Linux, GNU Hurd, BSD, UNIX, etc.).</p>
|
operating systems (e.g., Linux, GNU Hurd, BSD, UNIX, macOS, etc.).</p>
|
||||||
<p>Don’t forget that the building of your program should be done
|
<p>Don’t forget that the building of your program should be done
|
||||||
<strong>WITHOUT human intervention</strong>. So don’t do things such as:</p>
|
<strong>WITHOUT human intervention</strong>. So don’t do things such as:</p>
|
||||||
<pre><code> prog: prog.c
|
<pre><code> prog: prog.c
|
||||||
@@ -1085,10 +1086,11 @@ For example, one could put in their <code>Makefile</code>:</p>
|
|||||||
alternate / human intervention based building.</p>
|
alternate / human intervention based building.</p>
|
||||||
<p>We want to get away from source that is simply a compact blob of
|
<p>We want to get away from source that is simply a compact blob of
|
||||||
bytes. <strong>REALLY TRY</strong> to be more creative than blob coding. <strong>HINT!</strong></p>
|
bytes. <strong>REALLY TRY</strong> 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.
|
<p>Please do not use things like <code>gzip(1)</code> to get around the size limit. This was
|
||||||
Please try to be much more creative.</p>
|
done years ago; please try to be much more creative.</p>
|
||||||
<p>We really <strong>DISLIKE</strong> submissions that make blatant use of including
|
<p>We really <strong>DISLIKE</strong> submissions that make blatant use of <code>#include</code> of
|
||||||
large data files to get around the source code size limit.</p>
|
large data files to get around the source code size limit. This does not mean
|
||||||
|
<code>#include</code> of standard header files, just data files you provide.</p>
|
||||||
<p>Did we remember to indicate that programs that blatantly use
|
<p>Did we remember to indicate that programs that blatantly use
|
||||||
some complex state machine to do something simple, are boring?
|
some complex state machine to do something simple, are boring?
|
||||||
We think we did. :-)</p>
|
We think we did. :-)</p>
|
||||||
@@ -1218,7 +1220,7 @@ processor word size without specifying <code>-arch</code>. For example:</p>
|
|||||||
<pre><code> ARCH= -m64</code></pre>
|
<pre><code> ARCH= -m64</code></pre>
|
||||||
<p>Note, however, that some platforms will not necessarily support some
|
<p>Note, however, that some platforms will not necessarily support some
|
||||||
architectures. For instance, more recent versions of <code>macOS</code> do <strong>NOT</strong> support
|
architectures. For instance, more recent versions of <code>macOS</code> do <strong>NOT</strong> support
|
||||||
32-bit!</p>
|
32-bit, and more than zero judges use it!</p>
|
||||||
<p>If there are limitations in your submission, you are highly encouraged
|
<p>If there are limitations in your submission, you are highly encouraged
|
||||||
to note such limitations in your <code>remarks.md</code> file. For example if your
|
to note such limitations in your <code>remarks.md</code> file. For example if your
|
||||||
submission factors values up to a certain size, you might want to state:</p>
|
submission factors values up to a certain size, you might want to state:</p>
|
||||||
@@ -1302,7 +1304,7 @@ of the number of the kernel disk pack of one of the judge’s <a href="https://e
|
|||||||
<p>There may or may not be fewer than 2^7+1 reasons why these <a href="guidelines.html">IOCCC
|
<p>There may or may not be fewer than 2^7+1 reasons why these <a href="guidelines.html">IOCCC
|
||||||
guidelines</a> seem obfuscated.</p>
|
guidelines</a> seem obfuscated.</p>
|
||||||
<p>Excessively “<em>dotty”</em> use of the <code>chksubmit(1)</code> or <code>chkentry(1)</code> commands suggests that
|
<p>Excessively “<em>dotty”</em> use of the <code>chksubmit(1)</code> or <code>chkentry(1)</code> commands suggests that
|
||||||
either you like silly things, or that you ”<em>RTFS</em>” with some level of care.</p>
|
either you like silly things, or that you”<em>RTFS</em>” with some level of care.</p>
|
||||||
<p>Some people might question what actually constitutes a valid JSON file, given
|
<p>Some people might question what actually constitutes a valid JSON file, given
|
||||||
the state of the “<em>so-called</em>” JSON spec.. :-)</p>
|
the state of the “<em>so-called</em>” JSON spec.. :-)</p>
|
||||||
<p>We prefer programs that do not require a fish license: crayons and
|
<p>We prefer programs that do not require a fish license: crayons and
|
||||||
@@ -1381,11 +1383,16 @@ This isn’t to say that another highly compact and obfuscated
|
|||||||
replacement of <code>init(8)</code> would not be an interesting submission.
|
replacement of <code>init(8)</code> would not be an interesting submission.
|
||||||
</p>
|
</p>
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The
|
The IOCCC size tool
|
||||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c">iocccsize</a>
|
||||||
is not an original work, unless you one of the
|
is not an original work, unless you are <a href="../authors.html#Anthony_C_Howe">Anthony C
|
||||||
<a href="https://github.com/ioccc-src/mkiocccentry/graphs/contributors">several mkiocccentry toolkit contributors</a>.
|
Howe</a>, in which it is original! :-)
|
||||||
in which case it is original! :-)
|
</p>
|
||||||
|
<p class="leftbar">
|
||||||
|
The IOCCC tarball validator
|
||||||
|
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c">txzchk</a> is not
|
||||||
|
an original work, unless you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone
|
||||||
|
Ferguson</a>, in which case it is original! :-)
|
||||||
</p>
|
</p>
|
||||||
<p>If the <a href="../judges.html">IOCCC judges</a> are feeling ornery we
|
<p>If the <a href="../judges.html">IOCCC judges</a> are feeling ornery we
|
||||||
might choose to compile your program for running on an Arduino or
|
might choose to compile your program for running on an Arduino or
|
||||||
|
|||||||
+81
-72
@@ -13,7 +13,7 @@ writing by [contacting the judges](../contact.html).
|
|||||||
# Guidelines Version
|
# Guidelines Version
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
These IOCCC guidelines are version **29.01 2025-11-29**.
|
These IOCCC guidelines are version **29.02 2025-11-30**.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
@@ -41,9 +41,9 @@ You should pay attention to our observations on
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
Your submission must satisfy **BOTH** the
|
Your submission must satisfy **BOTH** the
|
||||||
[Rule 2a Gross Size](rules.html#rule2a-gross-size)
|
[Rule 2a - Gross Size](rules.html#rule2a-gross-size)
|
||||||
**AND**
|
**AND**
|
||||||
[Rule 2b Net Size](rules.html#rule2b-net-size) rules.
|
[Rule 2b - Net Size](rules.html#rule2b-net-size) rules.
|
||||||
|
|
||||||
To check your code against
|
To check your code against
|
||||||
[Rule 2 - Size restrictions](rules.html#rule2-size), use the `iocccentry(1)` tool.
|
[Rule 2 - Size restrictions](rules.html#rule2-size), use the `iocccentry(1)` tool.
|
||||||
@@ -84,17 +84,6 @@ Yes Virginia, **the previous guideline sentence is an important hint**!
|
|||||||
Jump to: [top](#)
|
Jump to: [top](#)
|
||||||
|
|
||||||
|
|
||||||
<div id="guideline3">
|
|
||||||
<div id="guideline-3---register">
|
|
||||||
# Guidelines for [Rule 3 - Register for the IOCCC](rules.html#rule3-register)
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
See FAQ on "[What is an author handle?](../faq.html#author_handle_faq)".
|
|
||||||
|
|
||||||
|
|
||||||
Jump to: [top](#)
|
|
||||||
|
|
||||||
|
|
||||||
<div id="guideline7">
|
<div id="guideline7">
|
||||||
<div id="guideline-7---original-work">
|
<div id="guideline-7---original-work">
|
||||||
@@ -120,7 +109,8 @@ describe how you used such tools** in your `remarks.md` file.
|
|||||||
|
|
||||||
In short: You created it, you own it, its an original work, or you have explicit permission to the work.
|
In short: You created it, you own it, its an original work, or you have explicit permission to the work.
|
||||||
|
|
||||||
See FAQ on "[May I use AI, LLM, Virtual coding assistants, or similar tools to write my submission?](../faq.html#ai)".
|
See the
|
||||||
|
FAQ on "[May I use AI, LLM, Virtual coding assistants, or similar tools to write my submission?](../faq.html#ai)".
|
||||||
|
|
||||||
|
|
||||||
Jump to: [top](#)
|
Jump to: [top](#)
|
||||||
@@ -151,8 +141,8 @@ technically allowed by the [IOCCC rules](rules.html) and yet do not fit the spir
|
|||||||
we intended to be submitted.
|
we intended to be submitted.
|
||||||
|
|
||||||
Legal abuse of the [IOCCC rules](rules.html) is **NOT** an invitation to violate
|
Legal abuse of the [IOCCC rules](rules.html) is **NOT** an invitation to violate
|
||||||
the [IOCCC rules](rules.html) (especailly [Rule 17 -
|
the [IOCCC rules](rules.html) (especially [Rule 17 -
|
||||||
Packaging](./rules.html#rule-17---packaging) ). A submission that violates the
|
Use mkiocccentry](./rules.html#rule17-mkiocccentry)). A submission that violates the
|
||||||
[rules](rules.html) in the opinion of the [IOCCC judges](../judges.html),
|
[rules](rules.html) in the opinion of the [IOCCC judges](../judges.html),
|
||||||
**WILL** be disqualified. **_RULE ABUSE CARRIES A CERTAIN LEVEL OF RISK!_**
|
**WILL** be disqualified. **_RULE ABUSE CARRIES A CERTAIN LEVEL OF RISK!_**
|
||||||
|
|
||||||
@@ -160,20 +150,18 @@ If you intend to abuse the [IOCCC rules](rules.html),
|
|||||||
indicate so in your `remarks.md` file. You **MUST** try to justify, plead, beg,
|
indicate so in your `remarks.md` file. You **MUST** try to justify, plead, beg,
|
||||||
why you consider your rule abuse to be allowed under the
|
why you consider your rule abuse to be allowed under the
|
||||||
[IOCCC rules](rules.html). Humor or creativity help plead a case.
|
[IOCCC rules](rules.html). Humor or creativity help plead a case.
|
||||||
As there is no guarantee that you will succeed, you might consider
|
|
||||||
submitting an alternate version that conforms to the
|
|
||||||
[IOCCC rules](rules.html).
|
|
||||||
|
|
||||||
If you have a submission that might otherwise be interesting, you might want to
|
As there is no guarantee that you will succeed, you might consider submitting an
|
||||||
submit two versions; one that does not abuse the [IOCCC rules](rules.html) and
|
alternate version that conforms to the [IOCCC rules](rules.html), if it might
|
||||||
one that does, making sure to note in the one that does not abuse the rules that
|
otherwise be interesting; one that does not abuse the [IOCCC rules](rules.html)
|
||||||
this is another version, so that the judges do not assume you uploaded it by
|
and one that does, making sure to note in the one that does not abuse the rules
|
||||||
mistake.
|
that this is another version, so that the judges do not assume you uploaded it
|
||||||
|
by mistake.
|
||||||
|
|
||||||
If you do bypass the `mkiocccentry(1)` warnings about
|
If you do bypass the `mkiocccentry(1)` warnings about
|
||||||
[Rule 2a - Gross Size](rules.html#rule-2a-gross-size)
|
[Rule 2a - Gross Size](rules.html#rule2a-gross-size)
|
||||||
and/or about
|
and/or about
|
||||||
[Rule 2b - Net Size](rules.html#rule-2b-net-size)
|
[Rule 2b - Net Size](rules.html#rule2b-net-size)
|
||||||
or any other
|
or any other
|
||||||
rule and submit a submission anyway, you **MUST** try to justify why the IOCCC
|
rule and submit a submission anyway, you **MUST** try to justify why the IOCCC
|
||||||
[IOCCC judges](../judges.html) should not reject your submission due to a rule
|
[IOCCC judges](../judges.html) should not reject your submission due to a rule
|
||||||
@@ -188,7 +176,7 @@ in many cases such problems, flaws or areas of confusion are deliberate.
|
|||||||
Changes to [IOCCC rules](rules.html) and [IOCCC guidelines](guidelines.html) in
|
Changes to [IOCCC rules](rules.html) and [IOCCC guidelines](guidelines.html) in
|
||||||
response to rule abuses, are done in a minimal fashion. Often we will
|
response to rule abuses, are done in a minimal fashion. Often we will
|
||||||
deliberately leave behind holes (or introduce new ones) so that future rule
|
deliberately leave behind holes (or introduce new ones) so that future rule
|
||||||
abuse can continue. A clever author should be able to read them and "drive a
|
abuse can continue. A clever author should be able to read and "drive a
|
||||||
truck through the holes" in the [IOCCC rules](rules.html) and [IOCCC
|
truck through the holes" in the [IOCCC rules](rules.html) and [IOCCC
|
||||||
guidelines](guidelines.html).
|
guidelines](guidelines.html).
|
||||||
|
|
||||||
@@ -197,8 +185,8 @@ development process. The [IOCCC rules](rules.html) and [IOCCC guidelines](guide
|
|||||||
are only part of the overall contest. Even so, one might think the
|
are only part of the overall contest. Even so, one might think the
|
||||||
contest [IOCCC rules](rules.html) and [IOCCC guidelines](guidelines.html) process as a parody
|
contest [IOCCC rules](rules.html) and [IOCCC guidelines](guidelines.html) process as a parody
|
||||||
of the sometimes tragic mismatch between what a customer (or marketing) wants
|
of the sometimes tragic mismatch between what a customer (or marketing) wants
|
||||||
and what engineering delivers. Real programmers must face obfuscated and
|
and what engineering delivers. Real programmers must face obfuscated and
|
||||||
sometimes conflicting, balloning specifications, and requirements from marketing, sales,
|
sometimes conflicting, ballooning specifications, and requirements from marketing, sales,
|
||||||
product management and even from customers themselves on an all too regular basis.
|
product management and even from customers themselves on an all too regular basis.
|
||||||
This is one of the reasons why the [IOCCC rules](rules.html) and
|
This is one of the reasons why the [IOCCC rules](rules.html) and
|
||||||
[IOCCC guidelines](guidelines.html) are written in obfuscated form.
|
[IOCCC guidelines](guidelines.html) are written in obfuscated form.
|
||||||
@@ -209,19 +197,17 @@ Jump to: [top](#)
|
|||||||
|
|
||||||
<div id="guideline15">
|
<div id="guideline15">
|
||||||
<div id="guideline-15---building">
|
<div id="guideline-15---building">
|
||||||
|
<div id="guideline15-gnu-makefile">
|
||||||
# Guidelines for [Rule 15 - GNU Makefile](rules.html#rule15-gnu-makefile)
|
# Guidelines for [Rule 15 - GNU Makefile](rules.html#rule15-gnu-makefile)
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
You may use `git,` or services such as [GitHub](https://www.github.com)
|
|
||||||
to develop and maintain your submission. However, we **DISLIKE**
|
|
||||||
submissions that **require** such services in order to build/compile your submission.
|
|
||||||
|
|
||||||
Submissions will be judged in an environment that has no **IDE**.
|
Submissions will be judged in an environment that has no **IDE**.
|
||||||
Any submission that fails to compile/build because it requires
|
Any submission that fails to compile/build because it requires
|
||||||
an **IDE** will be rejected.
|
an **IDE** will be rejected.
|
||||||
|
|
||||||
We will use the `GNU make(1)` tool, your `Makefile`, as well as tools found in the
|
We will use the GNU `make(1)` tool, your `Makefile`, as well as tools found in the
|
||||||
[Single UNIX Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification)
|
[Single UNIX Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification)
|
||||||
environments, and commonly found on systems that reasonably conform to the
|
environments, and commonly found on systems that reasonably conform to the
|
||||||
[Single UNIX Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification)
|
[Single UNIX Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification)
|
||||||
@@ -249,9 +235,9 @@ Jump to: [top](#)
|
|||||||
|
|
||||||
We **STRONGLY** recommend you **do** install the most recent release of
|
We **STRONGLY** recommend you **do** install the most recent release of
|
||||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
|
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
|
||||||
As use of using older versions of the mkiocccentry toolkit to are **HIGHLY LIKELY** to be **REJECTED**!
|
because use of older versions of the mkiocccentry toolkit are **HIGHLY LIKELY** to be **REJECTED**!
|
||||||
|
|
||||||
If you submit your own JSON files (other than `.auth.json` and
|
If you submit your own JSON files (**OTHER THAN** `.auth.json` and
|
||||||
`.info.json`) then they do **NOT** have to be valid JSON.
|
`.info.json`) then they do **NOT** have to be valid JSON.
|
||||||
|
|
||||||
However, if you do provide invalid JSON files, **PLEASE**
|
However, if you do provide invalid JSON files, **PLEASE**
|
||||||
@@ -267,7 +253,7 @@ file_.
|
|||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The non-extra files (`prog.c`, `prog.alt.c`,
|
The non-extra files (`prog.c`, `prog.alt.c`,
|
||||||
`try.sh`, `try.alt.sh`, `remarks.md`, `Makefile`, `.auth.json` and `.info.json`)
|
`try.sh`, `try.alt.sh`, `remarks.md`, `Makefile`, `.auth.json` and `.info.json`)
|
||||||
are considered _free files_, and to not count towards the
|
are considered _free files_, and do not count towards the
|
||||||
[Rule 17 - Use mkiocccentry](rules.html#rule17-mkiocccentry)
|
[Rule 17 - Use mkiocccentry](rules.html#rule17-mkiocccentry)
|
||||||
limit of **31** _extra files_.
|
limit of **31** _extra files_.
|
||||||
</p>
|
</p>
|
||||||
@@ -282,13 +268,15 @@ You should NOT use a tarball as an _extra file_ for a test-suite unless you
|
|||||||
have a very good reason for this: if you do include a tarball as an _extra file_,
|
have a very good reason for this: if you do include a tarball as an _extra file_,
|
||||||
then you **MUST** specify why in your `remarks.md` file.
|
then you **MUST** specify why in your `remarks.md` file.
|
||||||
|
|
||||||
If you **DO** include a tarball an _extra file_, and the build process or the program extracts
|
If you **DO** include a tarball as an _extra file_, and the build process or the
|
||||||
said tarball(s), the make `clobber` rule **MUST** remove the extracted files.
|
program extracts said tarball(s), the make `clobber` rule **MUST** remove the
|
||||||
|
extracted files.
|
||||||
|
|
||||||
Instead of including a large test-suite that requires a lot of files as part of your submission,
|
Instead of including a large test-suite that requires a lot of files as part of
|
||||||
and your submission doesn't require the test-suite to be available to run,
|
your submission, if your submission doesn't require the test-suite to be
|
||||||
then in your `remarks.md` a URL where such a test-suite may be downloaded from
|
available to run, then in your `remarks.md` you could include URL where such a
|
||||||
and how to use the test-suite to test your submission.
|
test-suite may be downloaded from and how to use the test-suite to test your
|
||||||
|
submission, assuming it is not reveal who you are.
|
||||||
|
|
||||||
If you **DO** include a tarball then make sure it uses the v7 format. See the
|
If you **DO** include a tarball then make sure it uses the v7 format. See the
|
||||||
FAQ on "[extra files](../faq.html#extra-files)"
|
FAQ on "[extra files](../faq.html#extra-files)"
|
||||||
@@ -331,9 +319,9 @@ submissions that package using older versions of the
|
|||||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
|
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
|
||||||
are **LIKELY** to be **REJECTED**!
|
are **LIKELY** to be **REJECTED**!
|
||||||
|
|
||||||
You **REALLY SHOULD** use the latest [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
|
You **REALLY SHOULD** use the latest [mkiocccentry
|
||||||
are **LIKELY** to be **REJECTED**! So you **REALLY SHOULD** use the latest [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
|
toolkit](https://github.com/ioccc-src/mkiocccentry) to package your submission
|
||||||
to package your own submission.
|
as submissions that use an older version are **LIKELY** to be **REJECTED**!
|
||||||
|
|
||||||
The `mkiocccentry(1)` tool runs a number of checks by way of these
|
The `mkiocccentry(1)` tool runs a number of checks by way of these
|
||||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) tools:
|
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) tools:
|
||||||
@@ -350,8 +338,8 @@ Do **NOT** use `txzchk(1)` or `fnamchk(1)` command line options that are labeled
|
|||||||
Do **NOT** use `fnamchk(1)` command line options that are labeled "**for TESTING purposes**"
|
Do **NOT** use `fnamchk(1)` command line options that are labeled "**for TESTING purposes**"
|
||||||
in the `fnamchk(1)` man page.
|
in the `fnamchk(1)` man page.
|
||||||
|
|
||||||
Do **NOT** use `chkentry(1)` command line options that are labeled "**for the use by the IOCCC judges only**"
|
Do **NOT** use `chksubmit(1)` command line options that are labeled "**for the use by the IOCCC judges only**"
|
||||||
in the `chksubmit(1)` (or `chkentry(1)`) man page(s).
|
in the `chksubmit(1)` man page.
|
||||||
Similarly do **NOT** use `chkentry(1)` command line options marked "**for the use
|
Similarly do **NOT** use `chkentry(1)` command line options marked "**for the use
|
||||||
by the IOCCC judges only**" in the `chkentry(1)` man page.
|
by the IOCCC judges only**" in the `chkentry(1)` man page.
|
||||||
|
|
||||||
@@ -415,8 +403,8 @@ to proceed with a default, however make sure the default is the **CORRECT**
|
|||||||
answer.
|
answer.
|
||||||
|
|
||||||
The `mkiocccentry(1)` tool will use code from `iocccsize(1)` which detects a number of
|
The `mkiocccentry(1)` tool will use code from `iocccsize(1)` which detects a number of
|
||||||
issues (such as [Rule 2 - Size](rules.html#rule2-size)) that you may ignore,
|
issues (such as [Rule 2 - Size restrictions](rules.html#rule2-size)) that you may ignore,
|
||||||
however ignoring such issues **comes with a significant level of risk!**
|
however ignoring such issues **comes with a SIGNIFICANT level of risk!**
|
||||||
|
|
||||||
Once the tarball is packaged it will
|
Once the tarball is packaged it will
|
||||||
run `txzchk(1)`, which will also run `fnamchk(1)`, as part of its algorithm.
|
run `txzchk(1)`, which will also run `fnamchk(1)`, as part of its algorithm.
|
||||||
@@ -424,6 +412,10 @@ run `txzchk(1)`, which will also run `fnamchk(1)`, as part of its algorithm.
|
|||||||
The use of `mkiocccentry -W ....` is **highly discouraged** as this may ignore
|
The use of `mkiocccentry -W ....` is **highly discouraged** as this may ignore
|
||||||
warnings about a problem that may cause your submission to be **REJECTED!**"
|
warnings about a problem that may cause your submission to be **REJECTED!**"
|
||||||
|
|
||||||
|
The same can be said of the `-Y` option, and to a lesser extent `-y`: the `-y`
|
||||||
|
is mostly for the test script and the `-Y` is like `-y` but even more
|
||||||
|
aggressive.
|
||||||
|
|
||||||
If `mkiocccentry` encounters an **error**, the program will exit and the xz
|
If `mkiocccentry` encounters an **error**, the program will exit and the xz
|
||||||
compressed tarball **will NOT be generated**: this is a **feature, not a bug**!
|
compressed tarball **will NOT be generated**: this is a **feature, not a bug**!
|
||||||
|
|
||||||
@@ -433,7 +425,7 @@ If you encounter a **bug** with the
|
|||||||
|
|
||||||
While you don't have to install the
|
While you don't have to install the
|
||||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry),
|
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry),
|
||||||
then in order to run a tool outside the repo directory
|
if you don't, in order to run a tool outside the repo directory
|
||||||
you will have to specify `mkiocccentry(1)` command line options to locate required tools
|
you will have to specify `mkiocccentry(1)` command line options to locate required tools
|
||||||
such as `chkentry(1)` (`mkiocccentry -C chkentry ..`), `txzchk(1)` (`mkiocccentry -T txzchk ..`),
|
such as `chkentry(1)` (`mkiocccentry -C chkentry ..`), `txzchk(1)` (`mkiocccentry -T txzchk ..`),
|
||||||
and `fnamchk(1)` (`mkiocccentry -F fnamchk ..`).
|
and `fnamchk(1)` (`mkiocccentry -F fnamchk ..`).
|
||||||
@@ -527,7 +519,7 @@ You are encouraged to review the following [FAQs](../faq.html):
|
|||||||
|
|
||||||
* [Obtaining and compiling the most recent mkiocccentry toolkit](../faq.html#mkiocccentry)
|
* [Obtaining and compiling the most recent mkiocccentry toolkit](../faq.html#mkiocccentry)
|
||||||
|
|
||||||
* [How to upload your submission](../next/submit.html)
|
* [How to upload your submission](./submit.html)
|
||||||
|
|
||||||
While the contest is **[open](../faq.html#open)**, you may modify your
|
While the contest is **[open](../faq.html#open)**, you may modify your
|
||||||
previously uploaded submission by rebuilding your submission with the
|
previously uploaded submission by rebuilding your submission with the
|
||||||
@@ -539,8 +531,8 @@ The **official locale** of the **IOCCC** is **C**.
|
|||||||
|
|
||||||
You are **encouraged** to examine the [winners of previous contests](../years.html).
|
You are **encouraged** to examine the [winners of previous contests](../years.html).
|
||||||
|
|
||||||
Because [rules](rules.html) change from year to year, some [winning entries](../years.html)
|
Because [rules](rules.html) change from year to year, some [past winning entries](../years.html)
|
||||||
of the past may be rejected this year.
|
may be rejected this year.
|
||||||
|
|
||||||
What was _was_ unique and novel one year _might be 'old' the next year_.
|
What was _was_ unique and novel one year _might be 'old' the next year_.
|
||||||
|
|
||||||
@@ -602,9 +594,8 @@ world!_" **really really, _and we do mean REALLY_, do need to be more creative**
|
|||||||
Consider using misleading or subtle tricks layered on top of or under
|
Consider using misleading or subtle tricks layered on top of or under
|
||||||
an appropriate level of obfuscation.
|
an appropriate level of obfuscation.
|
||||||
|
|
||||||
A clean looking program with
|
A clean looking program with misleading comments and variable names might be a
|
||||||
misleading comments and variable names might be a **VERY GOOD START**
|
**VERY GOOD START** to a great submission!
|
||||||
to a great submission!
|
|
||||||
|
|
||||||
|
|
||||||
Jump to: [top](#)
|
Jump to: [top](#)
|
||||||
@@ -625,6 +616,12 @@ We **VERY MUCH LIKE** submissions that have some educational value. This does **
|
|||||||
that your submission should not be obfuscated but rather that the IOCCC has moved away from
|
that your submission should not be obfuscated but rather that the IOCCC has moved away from
|
||||||
the idea of "spoilers". You should not encrypt or rot13 content in your `remarks.md` file.
|
the idea of "spoilers". You should not encrypt or rot13 content in your `remarks.md` file.
|
||||||
|
|
||||||
|
The above statement does not mean encryption/decryption tools will not win, nor
|
||||||
|
does it mean that if you have such a submission that you could not encrypt some
|
||||||
|
remarks (such as obfuscation details), but if you do so please put them in a
|
||||||
|
separate file and indicate how to undo it. Please do **NOT** use any cipher to
|
||||||
|
encrypt your `remarks.md`.
|
||||||
|
|
||||||
It is **VERY MUCH** appreciated if your remarks have some educational
|
It is **VERY MUCH** appreciated if your remarks have some educational
|
||||||
value. And although educational value is not required, it is an
|
value. And although educational value is not required, it is an
|
||||||
**EXCELLENT** bonus.
|
**EXCELLENT** bonus.
|
||||||
@@ -680,6 +677,11 @@ When declaring local or global variables, you should declare the type:
|
|||||||
|
|
||||||
``` <!---c-->
|
``` <!---c-->
|
||||||
int this_is_fine;
|
int this_is_fine;
|
||||||
|
```
|
||||||
|
|
||||||
|
and **NOT** like this:
|
||||||
|
|
||||||
|
``` <!---c-->
|
||||||
this_is_not; /* <-- Try to avoid implicit type declarations */
|
this_is_not; /* <-- Try to avoid implicit type declarations */
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -821,12 +823,12 @@ absolute one. The intent is to ensure that the building of your
|
|||||||
program is reasonably portable.
|
program is reasonably portable.
|
||||||
|
|
||||||
We prefer programs that are portable across a wide variety of UNIX-like
|
We prefer programs that are portable across a wide variety of UNIX-like
|
||||||
operating systems (e.g., Linux, GNU Hurd, BSD, UNIX, etc.).
|
operating systems (e.g., Linux, GNU Hurd, BSD, UNIX, macOS, etc.).
|
||||||
|
|
||||||
Don't forget that the building of your program should be done
|
Don't forget that the building of your program should be done
|
||||||
**WITHOUT human intervention**. So don't do things such as:
|
**WITHOUT human intervention**. So don't do things such as:
|
||||||
|
|
||||||
```
|
``` <!---makefile-->
|
||||||
prog: prog.c
|
prog: prog.c
|
||||||
#echo this next line requires data from standard input
|
#echo this next line requires data from standard input
|
||||||
cat > prog.c
|
cat > prog.c
|
||||||
@@ -838,7 +840,7 @@ do something dumb (or cute) when it is built 'automatically', and
|
|||||||
when it is run with a human involved, do something more clever.
|
when it is run with a human involved, do something more clever.
|
||||||
For example, one could put in their `Makefile`:
|
For example, one could put in their `Makefile`:
|
||||||
|
|
||||||
```
|
``` <!---makefile-->
|
||||||
prog: prog.c
|
prog: prog.c
|
||||||
${CC} prog.c -DNON_HUMAN_COMPILE -o prog
|
${CC} prog.c -DNON_HUMAN_COMPILE -o prog
|
||||||
@echo "See remarks section about alternate ways to compile"
|
@echo "See remarks section about alternate ways to compile"
|
||||||
@@ -850,11 +852,12 @@ alternate / human intervention based building.
|
|||||||
We want to get away from source that is simply a compact blob of
|
We want to get away from source that is simply a compact blob of
|
||||||
bytes. **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 do not use things like `gzip(1)` to get around the size limit. This was
|
||||||
Please try to be much more creative.
|
done years ago; please try to be much more creative.
|
||||||
|
|
||||||
We really **DISLIKE** submissions that make blatant use of including
|
We really **DISLIKE** submissions that make blatant use of `#include` of
|
||||||
large data files to get around the source code size limit.
|
large data files to get around the source code size limit. This does not mean
|
||||||
|
`#include` of standard header files, just data files you provide.
|
||||||
|
|
||||||
Did we remember to indicate that programs that blatantly use
|
Did we remember to indicate that programs that blatantly use
|
||||||
some complex state machine to do something simple, are boring?
|
some complex state machine to do something simple, are boring?
|
||||||
@@ -1027,7 +1030,7 @@ processor word size without specifying `-arch`. For example:
|
|||||||
|
|
||||||
Note, however, that some platforms will not necessarily support some
|
Note, however, that some platforms will not necessarily support some
|
||||||
architectures. For instance, more recent versions of `macOS` do **NOT** support
|
architectures. For instance, more recent versions of `macOS` do **NOT** support
|
||||||
32-bit!
|
32-bit, and more than zero judges use it!
|
||||||
|
|
||||||
If there are limitations in your submission, you are highly encouraged
|
If there are limitations in your submission, you are highly encouraged
|
||||||
to note such limitations in your `remarks.md` file. For example if your
|
to note such limitations in your `remarks.md` file. For example if your
|
||||||
@@ -1126,7 +1129,7 @@ There may or may not be fewer than 2^7+1 reasons why these [IOCCC
|
|||||||
guidelines](guidelines.html) seem obfuscated.
|
guidelines](guidelines.html) seem obfuscated.
|
||||||
|
|
||||||
Excessively "_dotty"_ use of the `chksubmit(1)` or `chkentry(1)` commands suggests that
|
Excessively "_dotty"_ use of the `chksubmit(1)` or `chkentry(1)` commands suggests that
|
||||||
either you like silly things, or that you\ "_RTFS_" with some level of care.
|
either you like silly things, or that you "_RTFS_" with some level of care.
|
||||||
|
|
||||||
Some people might question what actually constitutes a valid JSON file, given
|
Some people might question what actually constitutes a valid JSON file, given
|
||||||
the state of the "_so-called_" JSON spec.. :-)
|
the state of the "_so-called_" JSON spec.. :-)
|
||||||
@@ -1223,11 +1226,17 @@ replacement of `init(8)` would not be an interesting submission.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="leftbar">
|
<p class="leftbar">
|
||||||
The
|
The IOCCC size tool
|
||||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
|
[iocccsize](https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c)
|
||||||
is not an original work, unless you one of the
|
is not an original work, unless you are [Anthony C
|
||||||
[several mkiocccentry toolkit contributors](https://github.com/ioccc-src/mkiocccentry/graphs/contributors).
|
Howe](../authors.html#Anthony_C_Howe), in which it is original! :-)
|
||||||
in which case it is original! :-)
|
</p>
|
||||||
|
|
||||||
|
<p class="leftbar">
|
||||||
|
The IOCCC tarball validator
|
||||||
|
[txzchk](https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c) is not
|
||||||
|
an original work, unless you are [Cody Boone
|
||||||
|
Ferguson](../authors.html#Cody_Boone_Ferguson), in which case it is original! :-)
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
If the [IOCCC judges](../judges.html) are feeling ornery we
|
If the [IOCCC judges](../judges.html) are feeling ornery we
|
||||||
|
|||||||
Reference in new issue
Block a user