checkpoint rules & guidelines, FAQ update, draft IOCCC29 dates
This is a draft edit of the revised IOCCC guidelines for **IOCCC29**. Due the above, `next/guidelines.md` has undergone a significant update. The `next/rules.md` and `faq.md` files have been modified accordingly. The `faq.md` version is now **29.01 2025-11-28**. The `next/guidelines.md` version is now **29.00 2025-11-28**. The `next/rules.md` version is now *29.08 2025-11-28**. Draft **IOCCC29** dates have been added to `rules.md`. Ran `make quick_www` to perform the above. TODO: Continue to revise and improve the IOCCC guidelines. TODO: Fix typos and minor nits in the `next/guidelines.md`. TODO: Fix typos and minor nits in the `next/rules.md`.
This commit is contained in:
1 parent
bf93637eae
commit
698cd8f92b
7 files changed
+2510
-3572
No files matched your search
+49
-35
@@ -480,16 +480,22 @@ granted provided this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses <strong>MUST</strong> receive prior permission in
|
||||
writing by <a href="../contact.html">contacting the judges</a>.</p>
|
||||
<h2 id="rules-version">Rules Version</h2>
|
||||
<p>These IOCCC Rules are version <strong>29.05 2025-11-21</strong>.</p>
|
||||
<p>These IOCCC Rules are version <strong>29.08 2025-11-28</strong>.</p>
|
||||
<p>Be sure to read the <a href="guidelines.html">IOCCC guidelines</a>.</p>
|
||||
<div id="rule0">
|
||||
<h2 id="rule-0---dates">Rule 0 - Dates</h2>
|
||||
</div>
|
||||
<p>This IOCCC runs from ${START_DATE_TIME} UTC to ${CLOSE_DATE_TIME} UTC.</p>
|
||||
<p>This contest will enter the open state on ${OPEN_DATE_TIME} UTC.</p>
|
||||
<p>This contest will enter the judging state on ${JUDGMENT_DATE_TIME} UTC.</p>
|
||||
<p>The above dates are subject to change until the contest is officially open.</p>
|
||||
<p><strong>NOTE</strong>: As of this draft, the above dates are TBD (to be determined).</p>
|
||||
<p>This IOCCC runs from <strong>2025-12-03 20:25:12.045045 UTC</strong> to <strong>2026-03-13 17:19:23.293137 UTC</strong>.</p>
|
||||
<p>This contest will enter the <strong>pending state</strong> on <strong>2025-12-03 20:25:12.045045 UTC</strong>,
|
||||
allowing people to register for the IOCCC.</p>
|
||||
<p>This contest will enter the <strong>open state</strong> on <strong>2025-12-15 18:21:24.273033 UTC</strong>,
|
||||
allowing people to upload submissions to the <a href="https://submit.ioccc.org">IOCCC submit server</a>.</p>
|
||||
<p>This contest will enter the <strong>judging state</strong> on <strong>2026-03-13 17:19:23.293137 UTC</strong>,
|
||||
when people will no longer be allowed to upload submissions.</p>
|
||||
<p>Until the contest enters the <strong>open</strong> state, any or all
|
||||
of the above <strong>dates and times may change <em>AT ANY TIME</em></strong>!</p>
|
||||
<p>The above timestamps are in “<em>YYYY-MM-DD HH:MM:SS.micros UTC</em>” format.</p>
|
||||
<p>See <a href="../status.html">Current status of the IOCCC</a>.</p>
|
||||
<div id="rule1">
|
||||
<h2 id="rule-1---program">Rule 1 - Program</h2>
|
||||
</div>
|
||||
@@ -503,11 +509,13 @@ and
|
||||
<a href="rules.html#rule-2b-net-size">Rule 2b Next Size</a>.
|
||||
During development this can be checked using <code>iocccsize(1)</code>:</p>
|
||||
<p>iocccsize prog.c</p>
|
||||
<p>See <a href="guidelines.html#guideline-2---size">Guidelines for Rule 2 - Size</a>.</p>
|
||||
<div id="rule2a">
|
||||
<h3 id="rule-2a---gross-size">Rule 2a - Gross Size</h3>
|
||||
</div>
|
||||
<p>The overall maximum size of your <code>prog.c</code> program source <strong>MUST NOT</strong>
|
||||
exceed <strong>4993</strong> bytes.</p>
|
||||
<p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to know</a>.</p>
|
||||
<div id="rule2b">
|
||||
<h3 id="rule-2b---net-size">Rule 2b - Net Size</h3>
|
||||
</div>
|
||||
@@ -531,6 +539,7 @@ to register! The judges are <strong>NOT</strong> responsible for delayed or lost
|
||||
email or for those who wait until the last minute to try to register!</p>
|
||||
<p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to know</a>.</p>
|
||||
<p>See <a href="rules.html#rule-8---submission">Rule 8 - Submission</a>.</p>
|
||||
<p>See <a href="guidelines.html#guideline-3---register">Guidelines for Rule 3 - Register</a>.</p>
|
||||
<div id="rule4">
|
||||
<h2 id="rule-4---files">Rule 4 - Files</h2>
|
||||
</div>
|
||||
@@ -574,6 +583,9 @@ a case insensitive filesystem.</p></li>
|
||||
<p>The <code>remarks.md</code> and <code>Makefile</code> are explained in more detail in the Guidelines.</p>
|
||||
<p>See <a href="../markdown.html">IOCCC markdown guidelines</a>.</p>
|
||||
<p>See <a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p>
|
||||
<p>See FAQ on “<a href="../faq.html#file_perms">What permissions may my files be and what if I need different permissions?</a>”.</p>
|
||||
<p>See <a href="guidelines.html#mkiocccentry_toolkit">Guidelines for the mkiocccentry toolkit</a>.</p>
|
||||
<p>See <a href="guidelines.html#makefile">Guidelines for the Makefile</a>.</p>
|
||||
<div id="rule5">
|
||||
<h2 id="rule-5---integrity">Rule 5 - Integrity</h2>
|
||||
</div>
|
||||
@@ -602,22 +614,14 @@ original form, including the removal of any created files and directories.</p>
|
||||
<div id="rule7">
|
||||
<h2 id="rule-7---original-work">Rule 7 - Original Work</h2>
|
||||
</div>
|
||||
<p>In short: You wrote it, you own it, and its an original work.</p>
|
||||
<p>You, the author(s), <strong>MUST</strong> own the contents of your submission, or you <strong>MUST</strong>
|
||||
have permission from the original owner(s) to its use. If you submit
|
||||
any content that is owned by others, you <strong>MUST</strong> detail that ownership,
|
||||
i.e., who owns what, and document the permission you obtained from them
|
||||
in your <code>remarks.md</code> file.</p>
|
||||
<p>The IOCCC has a rich history of remarkable winning entries created by
|
||||
authors who skilfully employed various techniques to develop their code.
|
||||
While it isn’t required, you are allowed to use tools to develop and
|
||||
test your submission. These tools may include, but aren’t 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 (LLMs), etc.
|
||||
If you do make use of such tools or services, then we encourage you to
|
||||
describe what tools and how you used those tools, in your <code>remarks.md</code> file.</p>
|
||||
<p>You are permitted to use tools to write your code.</p>
|
||||
<p>See <a href="rules.html#rule-16---anonymous">Rule 16 - Anonymous</a>.</p>
|
||||
<p>See <a href="guidelines.html#guideline-7---original-work">Guidelines for Rule 7 - Original Work</a>.</p>
|
||||
<div id="rule8">
|
||||
<h2 id="rule-8---submission">Rule 8 - Submission</h2>
|
||||
</div>
|
||||
@@ -641,12 +645,12 @@ and
|
||||
permitted. However, see the guidelines. Each entry <strong>MUST</strong> automate the
|
||||
build process using <code>bash</code>, <code>gmake</code>, <code>gcc</code>, <code>clang</code>, under a
|
||||
<a href="https://pubs.opengroup.org/onlinepubs/9799919799/">SUS environment</a>.</p>
|
||||
<p>Note references to <code>gmake</code> can be any GNU Make compatible tool.</p>
|
||||
<p><strong>NOTE</strong>: The references to <code>gmake(1)</code> can be any GNU Make compatible tool.</p>
|
||||
<p>See <a href="rules.html#rule-15---building">Rule 15 - Building</a>.</p>
|
||||
<div id="rule10">
|
||||
<h2 id="rule-10---privileges">Rule 10 - Privileges</h2>
|
||||
</div>
|
||||
<p>Programs that require special privileges (setuid(2), setgid(2),
|
||||
<p>Programs that require special privileges (<code>setuid(2)</code>, <code>setgid(2)</code>,
|
||||
super-user, special owner, special group, etc.) are <strong>HIGHLY DISCOURAGED</strong>.
|
||||
We do <strong>NOT</strong> guarantee these functions will behave as you expect on our
|
||||
test platforms. If your program needs special permissions you <strong>MUST</strong>
|
||||
@@ -679,6 +683,7 @@ is rejected.</p>
|
||||
version, please indicate that in your <code>remarks.md</code> file of your non-rule
|
||||
abusing version so that the Judges don’t think you uploaded a duplicate
|
||||
into a wrong slot by mistake.</p>
|
||||
<p>See <a href="guidelines.html#guideline-11---abuse">Guidelines for Rule 11 - Abuse</a>.</p>
|
||||
<div id="rule12">
|
||||
<h2 id="rule-12---utf-8">Rule 12 - UTF-8</h2>
|
||||
</div>
|
||||
@@ -732,6 +737,8 @@ environments and systems are available in the search
|
||||
GNU long name options <code>--example</code> or extensions like <code>grep -P</code>.</p>
|
||||
<p>Do <strong>NOT</strong> assume that <code>.</code> (current directory) is in the <code>$PATH</code> environment variable.</p>
|
||||
<p>See <a href="rules.html#rule-4---files">Rule 4 - Files</a>.</p>
|
||||
<p>See FAQ on “<a href="../faq.html#makefile_details">What are the detailed recommendations for a submission Makefile?</a>”.</p>
|
||||
<p>See <a href="guidelines.html#guideline-15---building">Guidelines for Rule 15 - Building</a>.</p>
|
||||
<div id="rule16">
|
||||
<h2 id="rule-16---anonymous">Rule 16 - Anonymous</h2>
|
||||
</div>
|
||||
@@ -754,27 +761,33 @@ directory depths of <strong>4</strong>. The maximum number of files, excluding
|
||||
<code>prog.c</code>, <code>remarks.md</code>, <code>Makefile</code>, <code>prog.alt.c</code>, <code>try.sh</code>, <code>try.alt.sh</code>,
|
||||
<code>.info.json</code> and <code>.auth.json</code> is <strong>31</strong>. And the maximum file-path
|
||||
component is <strong>38</strong> and maximum path length is <strong>60</strong>.</p>
|
||||
<p>The submission <strong>MUST</strong> be a <code>.txz</code> compressed tarball as constructed by
|
||||
<code>mkiocccentry(1)</code>, which <strong>MUST</strong> be within <strong>[1..3999971]</strong> bytes in size.
|
||||
The sum of all file lengths, after unpacking from the tarball, <strong>MUST</strong> be
|
||||
less than <code>27651*1024</code> bytes.</p>
|
||||
<p>The tarball file <strong>MUST</strong> pass all <code>txzchk(1)</code> checks and the tarball
|
||||
filename <strong>MUST</strong> pass all <code>fnamchk(1)</code> checks. You may <strong>NOT</strong> submit a tarball
|
||||
created by the <code>-d</code> or <code>-s</code> seed options of <code>mkiocccentry(1)</code>.</p>
|
||||
<p>The submission <strong>MUST</strong> be a <code>.txz</code> compressed tarball (i.e., tarball compressed by <code>xz(1)</code>)
|
||||
as constructed by <code>mkiocccentry(1)</code>, which <strong>MUST</strong> be within <strong>[1..3999971]</strong> bytes in size.</p>
|
||||
<p>The tarball <strong>MUST</strong> be a <strong>v7 format</strong> tarball.</p>
|
||||
<p>The sum of all file lengths, after unpacking from the tarball, <strong>MUST</strong> be
|
||||
less than <code>27651*1024</code> (<strong>28314624</strong>) bytes.</p>
|
||||
<p>The submission <strong>MUST</strong> be a tarball file that <strong>MUST</strong> pass all <code>txzchk(1)</code> checks, and the tarball
|
||||
filename <strong>MUST</strong> pass all <code>fnamchk(1)</code> checks.</p>
|
||||
<p>You may <strong>NOT</strong> submit a tarball created by the <code>-d</code>, <code>-e</code>, <strong>NOR</strong> by the <code>-s seed</code> options of <code>mkiocccentry(1)</code>.</p>
|
||||
<p>The unpacked submission directory <strong>MUST</strong> pass the checks performed by the
|
||||
current version of <code>chksubmit(1)</code>.</p>
|
||||
<p>Submissions may <strong>NOT</strong> use a
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
||||
command line options that labeled as “<strong>for TESTING purposes</strong>”,
|
||||
<strong>NOR</strong> labeled as “<strong>for the use by the IOCCC judges only</strong>”,
|
||||
in their respective man pages.</p>
|
||||
<p>Submissions may <strong>ONLY</strong> use
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
||||
command lines that confirm to the command’s <code>-h</code> “<em>print help message</em>”.</p>
|
||||
<p>The <code>prog.c</code> file <strong>MUST</strong> pass the <a href="rules.html#rule-2---size">Rule 2 - Size</a>
|
||||
size checks performed by <code>iocccsize(1)</code>.</p>
|
||||
<p>The <code>.auth.json</code> and <code>.info.json</code> files <strong>MUST</strong> be compatible with what
|
||||
<code>mkiocccentry(1)</code> generates.</p>
|
||||
<p>Submissions that package using older versions of the mkiocccentry
|
||||
toolkit to are <strong>HIGHLY LIKELY</strong> to be <strong>REJECTED</strong>! Be sure
|
||||
that you are using the latest tools from the
|
||||
<p>The <code>.auth.json</code> and <code>.info.json</code> files <strong>MUST</strong> be compatible with what <code>chksubmit(1)</code> generates.</p>
|
||||
<p>Any submission that fails to pass the checks performed by the most recent version of the
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
||||
GitHub repo.</p>
|
||||
<p>In summary: it is best to use <code>mkioccentry(1)</code> to package your submission,
|
||||
rather than roll-it-by-hand.</p>
|
||||
<strong>WILL be rejected</strong>!</p>
|
||||
<p>See <a href="rules.html#rule-4---files">Rule 4 - Files</a>.</p>
|
||||
<p>See FAQ on “<a href="../faq.html#mkiocccentry">What is the mkiocccentry tool, how do I obtain it and how do I use it?</a>”.</p>
|
||||
<p>See <a href="guidelines.html#guideline-17---packaging">Guidelines for Rule 17 - Packaging</a>.</p>
|
||||
<div id="rule18">
|
||||
<h2 id="rule-18---license">Rule 18 - License</h2>
|
||||
</div>
|
||||
@@ -789,14 +802,15 @@ Additional rules, both humorous and otherwise, may be added
|
||||
below this rule in future contests.</p>
|
||||
<p>See <a href="rules.html#rule-6---free">Rule 6 - Free</a>.</p>
|
||||
<h2 id="further-reading">Further Reading</h2>
|
||||
<p>Please read the <a href="guidelines.html">Guidelines</a> next for further commentary on these rules.</p>
|
||||
<p>Read the
|
||||
<a href="https://www.ioccc.org/quick-start.html#enter">Entering the IOCCC: the bare minimum you need to know</a>
|
||||
for an overview of how to enter the contest.</p>
|
||||
<p>Please read the <a href="guidelines.html">Guidelines</a> next for further commentary on The Rules.</p>
|
||||
<p>See also the <a href="../faq.html">FAQ</a>.</p>
|
||||
<p>And now <a href="guidelines.html#fun">for something completely different</a></p>
|
||||
<p>Consider joining the <a href="https://discord.com/invite/Wa42Qujwnw">IOCCC Discord Server</a>
|
||||
for discussions about The Rules, questions for the Judges, and <code>C</code> in general.</p>
|
||||
<p>Leonid A. Broukhis<br />
|
||||
<p>Leonid A. Broukhis
|
||||
chongo (Landon Curt Noll) /\cc/\
|
||||
<!-- AFTER: last line of markdown file: next/rules.md --></p>
|
||||
|
||||
|
||||
Reference in new issue
Block a user