checkpoint rules version 29.04 2025-11-20
Switched to "#" (hash) for headings in `rules.md`. Added "-" (dash) after the rule number and before the rule keyword. Adjusted links rules elsewhere according to the above. Ran `make quick_www` to perform the above.
This commit is contained in:
1 parent
5021fa611b
commit
ee2f499839
15 files changed
+305
-326
No files matched your search
+29
-29
@@ -570,12 +570,12 @@ may change from contest to contest.</p>
|
||||
</ul>
|
||||
<p>Uploading a tarball not formed by <code>mkiocccentry(1)</code> puts you at a very big risk of
|
||||
violating
|
||||
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>,
|
||||
<a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>,
|
||||
especially as <code>mkiocccentry(1)</code> does a
|
||||
great number of things that are required, and it also runs many checks, and if
|
||||
any of those checks fail, you are at a very great risk of having your submission
|
||||
rejected for violating
|
||||
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p>
|
||||
<a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p>
|
||||
<p>We <strong>STRONGLY</strong> recommend you <strong>do</strong> install the
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>.</p>
|
||||
<p><strong>IMPORTANT NOTE</strong>: the tools that require other tools, <code>mkiocccentry(1)</code> and
|
||||
@@ -626,7 +626,7 @@ index.html</a>:
|
||||
<p class="leftbar">
|
||||
<blockquote>
|
||||
<p><strong>IMPORTANT HINT</strong>: Only 3 of the 23 <strong>IOCCC28 winners</strong> came close to the
|
||||
<a href="rules.html#rule-2-size">Rule 2 Size</a> limit.
|
||||
<a href="rules.html#rule-2---size">Rule 2 - Size</a> limit.
|
||||
Large code size isn’t
|
||||
everything. :-) Those submitting to future contents should <strong>take a careful
|
||||
note</strong> of that fact.</p>
|
||||
@@ -638,7 +638,7 @@ note</strong> of that fact.</p>
|
||||
the IOCCC size
|
||||
<a href="rules.html#rule-2b-net-size">Rule 2b Next Size</a>.</p>
|
||||
<p>To check your code against
|
||||
<a href="rules.html#rule-2-size">Rule 2 Size</a>, use the <code>iocccentry(1)</code> tool.
|
||||
<a href="rules.html#rule-2---size">Rule 2 - Size</a>, use the <code>iocccentry(1)</code> tool.
|
||||
For example:</p>
|
||||
<pre><code> iocccsize prog.c</code></pre>
|
||||
<p>The IOCCC size tool algorithm can be summarized as follows:</p>
|
||||
@@ -666,7 +666,7 @@ BESM-6, and 2503 is a decimal anagram of 2053.</p>
|
||||
<p>Take note that this secondary limit imposed by the IOCCC size tool
|
||||
obviates some of the need to <code>#define</code> C reserved words in an effort
|
||||
to get around the size limits of
|
||||
<a href="rules.html#rule-2-size">Rule 2 Size</a>.</p>
|
||||
<a href="rules.html#rule-2---size">Rule 2 - Size</a>.</p>
|
||||
<p>Yes Virginia, <strong>that is a hint</strong>!</p>
|
||||
<p>The <strong>official locale</strong> of the <strong>IOCCC</strong> is <strong>C</strong>.</p>
|
||||
<p class="leftbar">
|
||||
@@ -774,7 +774,7 @@ misleading comments and variable names might be a <strong>VERY GOOD START</stron
|
||||
to a great submission!</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<h1 id="mkiocccentry"><code>mkiocccentry</code></h1>
|
||||
<p><a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>
|
||||
<p><a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>
|
||||
(the <code>mkiocccentry(1)</code> rule) states that
|
||||
you <strong>REALLY SHOULD</strong> use the <code>mkiocccentry(1)</code> tool to package your submission tarball.</p>
|
||||
<p>See the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>
|
||||
@@ -825,7 +825,7 @@ then you will have to specify the options (such as paths) for the tools that are
|
||||
<p>Make sure you have
|
||||
the latest version of of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
||||
so that you do not violate
|
||||
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>
|
||||
<a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>
|
||||
by mistake.</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="mkiocccentry-synopsis">
|
||||
@@ -853,7 +853,7 @@ for even more information.</p>
|
||||
execute one or more additional tools.</p>
|
||||
<h2 id="iocccsize"><code>iocccsize</code></h2>
|
||||
<p><code>mkiocccentry(1)</code> will use code from <code>iocccsize(1)</code> which detects a number of
|
||||
issues (such as <a href="rules.html#rule-2-size">Rule 2 Size</a>) that you may ignore, if you wish, as
|
||||
issues (such as <a href="rules.html#rule-2---size">Rule 2 - Size</a>) that you may ignore, if you wish, as
|
||||
noted above.</p>
|
||||
<p>In other words, you no longer need to run <code>iocccsize</code> manually. However, the
|
||||
checks described above are still made but through the <code>mkiocccentry(1)</code> tool itself.</p>
|
||||
@@ -934,7 +934,7 @@ do install</em> the libraries from their respective repos, it/they will <strong>
|
||||
used</strong> when compiling the <code>mkiocccentry</code> tools. This is important to
|
||||
make sure that you’re using the correct versions, which is also verified by
|
||||
<code>chksubmit</code> (in the JSON files created by <code>mkiocccentry(1)</code>). See
|
||||
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p>
|
||||
<a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
|
||||
<p class="leftbar">
|
||||
We <strong>HIGHLY</strong> recommend you install the <code>mkiocccentry</code> toolkit, however.
|
||||
</p>
|
||||
@@ -968,7 +968,7 @@ page. You might just find a fun option if you do either of these!</p>
|
||||
<p>Of course, as <code>txzchk</code> does not extract the tarball, it is possible that if you
|
||||
manually package your submission tarball and/or find and exploit a missing
|
||||
check, you could still be violating
|
||||
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>.</p>
|
||||
<a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>.</p>
|
||||
<div id="extra-files">
|
||||
<h2 id="including-optional-and-extra-files">Including optional and extra files</h2>
|
||||
</div>
|
||||
@@ -984,7 +984,7 @@ file</em>. The non-extra files are considered <em>free files</em>.
|
||||
<p class="leftbar">
|
||||
Of course any dot file that is not <code>.auth.json</code> and <code>.info.json</code> will result in
|
||||
a violation of
|
||||
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>,
|
||||
<a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>,
|
||||
regardless of its depth.
|
||||
</p>
|
||||
<p>If you use an optional filename for something other than their intended use
|
||||
@@ -1016,12 +1016,12 @@ The <code>mkiocccentry(1)</code> tool creates a v7 format tarball to prevent thi
|
||||
do the same like:</p>
|
||||
<pre><code> tar --format=v7 -cJf foo.txz directory</code></pre>
|
||||
<p>See
|
||||
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>
|
||||
<a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>
|
||||
and also the
|
||||
FAQ on “<a href="../faq.html#max-files">maximum number of files</a>”.</p>
|
||||
<p>If you do not follow these points, you
|
||||
are at a great risk of violating
|
||||
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p>
|
||||
<a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
|
||||
<p><strong>NOTE</strong>: if you want to include a test-suite that requires a lot of files,
|
||||
please suggest this in your <code>remarks.md</code> and if your submission wins it can
|
||||
be done. In other words you should NOT use a tarball for a test-suite unless you
|
||||
@@ -1036,7 +1036,7 @@ FAQ on “<a href="../faq.html#txzchk">txzchk</a>”.</p>
|
||||
<p>As an important part of its algorithm, <a href="#txzchk">txzchk(1)</a> directly executes
|
||||
<code>fnamchk(1)</code>. If the filename is invalid (or the filename does not match the
|
||||
directory name of the tarball) then it is an <strong>error</strong> and you risk violating
|
||||
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>.
|
||||
<a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>.
|
||||
Nevertheless, you can run the tool manually,
|
||||
should you wish to.</p>
|
||||
<p>For more information on <code>fnamchk</code> and how to manually validate your submission
|
||||
@@ -1044,7 +1044,7 @@ tarball filename, see the
|
||||
FAQ on “<a href="../faq.html#fnamchk">fnamchk</a>”.</p>
|
||||
<p>It is extremely unlikely that <code>fnamchk(1)</code> reporting an invalid filename is a
|
||||
bug in <code>fnamchk(1)</code> and as such, ignoring such an issue risks violating
|
||||
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>
|
||||
<a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>
|
||||
which is a big risk. Of course, using <code>mkiocccentry(1)</code>
|
||||
would prevent this from happening as it would not create such a file anyway. If
|
||||
<code>mkiocccentry(1)</code> was used it would rather suggest a bug in one of the tools and
|
||||
@@ -1058,7 +1058,7 @@ your submission rejected if you package your own tarball, and there are <strong>
|
||||
problems</strong>. For instance, if <code>chksubmit(1)</code> found a problem in your <code>.info.json</code>
|
||||
file, the <code>mkiocccentry(1)</code> tool would not package it. But if you were to package
|
||||
it manually, you would be violating
|
||||
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>.
|
||||
<a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>.
|
||||
But even if
|
||||
everything checks out OK you should <strong>NOT</strong> assume that everything <strong>IS</strong> OK.</p>
|
||||
<div id="bugs">
|
||||
@@ -1275,7 +1275,7 @@ somehow, <code>txzchk(1)</code> will flag it as an error. When the judges run <c
|
||||
on the uploaded submission compressed tarball, if anything is wrong, for
|
||||
instance if you “sneak in” any dot files or dot directories, the submission
|
||||
<strong>WILL BE REJECTED</strong> for violating
|
||||
<a href="rules.html#rule-17-packaging">Rule 17 Packaging</a>!</p>
|
||||
<a href="rules.html#rule-17---packaging">Rule 17 - Packaging</a>!</p>
|
||||
<p>You may use whatever tools you need to develop your submission, including the
|
||||
use of <code>git(1)</code> or <code>gh(1)</code>, just be sure that your submission code and your
|
||||
submission Makefile don’t depend on such tools.</p>
|
||||
@@ -1523,7 +1523,7 @@ large data files to get around the source code size limit.</p>
|
||||
<p class="leftbar">
|
||||
We do not recommend submitting <a href="https://systemd.io">systemd</a> source code to the IOCCC,
|
||||
if nothing else because that code is likely to exceed
|
||||
<a href="rules.html#rule-2-size">Rule 2 Size</a>.
|
||||
<a href="rules.html#rule-2---size">Rule 2 - Size</a>.
|
||||
This isn’t to say that another highly compact and obfuscated
|
||||
replacement of <code>init(8)</code> would not be an interesting submission.
|
||||
</p>
|
||||
@@ -1541,7 +1541,7 @@ and/or obfuscated way, would definitely win over the first two!
|
||||
Remember, you can submit more than one submission. See the
|
||||
<a href="rules.html">IOCCC rules</a>
|
||||
for details (in particular,
|
||||
<a href="rules.html#rule-8-submission">Rule 8 Submission</a>).</p>
|
||||
<a href="rules.html#rule-8---submission">Rule 8 - Submission</a>).</p>
|
||||
<p>We suggest that you avoid trying for the ‘<strong>smallest self-replicating</strong>’
|
||||
source. The smallest, a <a href="../1994/smr/index.html">zero byte entry</a>, won in
|
||||
<a href="../years.html#1994">1994</a>.</p>
|
||||
@@ -1649,7 +1649,7 @@ or Linux curses.</p>
|
||||
If you do <code>#include <curses.h></code> make <strong>CERTAIN</strong> you link in curses (i.e.
|
||||
<code>-lcurses</code>) and not ncurses (i.e. <code>-lncurses</code>).
|
||||
</p>
|
||||
<p><a href="rules.html#rule-13-newlines">Rule 13 Newlines</a>
|
||||
<p><a href="rules.html#rule-13---newlines">Rule 13 - Newlines</a>
|
||||
no longer discourages the use of UTF-8
|
||||
characters in C code.</p>
|
||||
<p>It is a very good idea to, in your <code>remarks.md</code> file, tell us why you
|
||||
@@ -1681,14 +1681,14 @@ Submitting source code that uses the contents of
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c">iocccsize.c</a>,
|
||||
<em>unless</em> you are <a href="../authors.html#Anthony_C_Howe">Anthony C Howe</a>, might run the
|
||||
risk of violating
|
||||
<a href="rules.html#rule-7-original-work">Rule 7 Original Work</a>.</p>
|
||||
<a href="rules.html#rule-7---original-work">Rule 7 - Original Work</a>.</p>
|
||||
<p>The IOCCC submission tarball validator source 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! :-) Submitting source code that uses the contents of
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c">txzchk.c</a>,
|
||||
<em>unless</em> you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a>, might
|
||||
run the risk of violating
|
||||
<a href="rules.html#rule-7-original-work">Rule 7 Original Work</a>.</p>
|
||||
<a href="rules.html#rule-7---original-work">Rule 7 - Original Work</a>.</p>
|
||||
<p>In addition to the above tools, none of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
tools</a>, <em>including, <strong>but not
|
||||
limited</strong></em> to
|
||||
@@ -1711,7 +1711,7 @@ are original! :-) Submitting source code that uses the content of any of these t
|
||||
library, <em>unless</em> you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone
|
||||
Ferguson</a> or <a href="http://www.isthe.com/chongo/index.html">Landon Curt
|
||||
Noll</a>, might run the risk of violating
|
||||
<a href="rules.html#rule-7-original-work">Rule 7 Original Work</a>.</p>
|
||||
<a href="rules.html#rule-7---original-work">Rule 7 - Original Work</a>.</p>
|
||||
<p>And unless you are <a href="https://en.wikipedia.org/wiki/Landon_Curt_Noll">Landon Curt Noll</a>,
|
||||
the code in
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry/tree/master/dbg">dbg</a> and
|
||||
@@ -1719,8 +1719,8 @@ the code in
|
||||
not original works. Submitting source code that uses the contents of those
|
||||
libraries, <em>unless</em> you <a href="https://en.wikipedia.org/wiki/Landon_Curt_Noll">Landon Curt Noll</a>,
|
||||
might run the risk of violating
|
||||
<a href="rules.html#rule-7-original-work">Rule 7 Original Work</a>.</p>
|
||||
<p><a href="rules.html#rule-7-original-work">Rule 7 Original Work</a>
|
||||
<a href="rules.html#rule-7---original-work">Rule 7 - Original Work</a>.</p>
|
||||
<p><a href="rules.html#rule-7---original-work">Rule 7 - Original Work</a>
|
||||
does not prohibit you from writing your own
|
||||
obfuscated versions of these tools, unless of course you are <a href="http://www.isthe.com/chongo/index.html">Landon Curt
|
||||
Noll</a>, in which case you <em>probably</em>
|
||||
@@ -1730,7 +1730,7 @@ However, <strong><em>if</em></strong> you do write your own version, you <strong
|
||||
tools’ algorithms.</p>
|
||||
<p>Even so, we do not recommend you try and submit a JSON parser due to
|
||||
the fact it will likely exceed
|
||||
<a href="rules.html#rule-2-size">Rule 2 Size</a>
|
||||
<a href="rules.html#rule-2---size">Rule 2 - Size</a>
|
||||
and because you likely can’t beat <a href="https://github.com/westes/flex">flex</a> and
|
||||
<a href="https://www.gnu.org/software/bison/">bison</a> in obfuscation. This isn’t to
|
||||
say that <a href="https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec">the so-called JSON spec</a> is not
|
||||
@@ -1738,7 +1738,7 @@ obfuscated, but unless you have some really clever way to compact and
|
||||
obfuscate a JSON parser more than <a href="https://github.com/westes/flex">flex</a> and
|
||||
<a href="https://www.gnu.org/software/bison/">bison</a> you will likely not win, either
|
||||
because of the
|
||||
<a href="rules.html#rule-2-size">Rule 2 Size</a>
|
||||
<a href="rules.html#rule-2---size">Rule 2 - Size</a>
|
||||
or because it is not
|
||||
as obfuscated as the <a href="https://github.com/westes/flex">flex</a> and <a href="https://www.gnu.org/software/bison/">bison</a>
|
||||
generated code of
|
||||
@@ -1820,7 +1820,7 @@ character tab stop.</p>
|
||||
when forming your submission’s <code>remarks.md</code> file. And if your submission
|
||||
contains additional markdown files, please follow those same guidelines for
|
||||
those files. See also
|
||||
<a href="rules.html#rule-4-files">Rule 4 Files</a>,
|
||||
<a href="rules.html#rule-4---files">Rule 4 - Files</a>,
|
||||
and the
|
||||
FAQ on “<a href="../faq.html#markdown">markdown</a>”.</p>
|
||||
<p>We <strong>LIKE</strong> reading <code>remarks.md</code> files, especially if they contain
|
||||
@@ -2041,7 +2041,7 @@ submission that abuses the <a href="guidelines.html">IOCCC guidelines</a> in an
|
||||
or that stretches the contest <a href="rules.html">rules</a> that while legal, it
|
||||
nevertheless goes against the <strong>intent</strong> of the <a href="rules.html">rules</a>.</p>
|
||||
<p>Nevertheless, see
|
||||
<a href="rules.html#rule-10-privileges">Rule 10 Privileges</a>.</p>
|
||||
<a href="rules.html#rule-10---privileges">Rule 10 - Privileges</a>.</p>
|
||||
<p>In the end, we traditionally pick one submission as ‘<strong>best</strong>’. Sometimes such
|
||||
a submission simply far exceeds any of the other submissions. More often, the
|
||||
‘<strong>best</strong>’ is picked because it does well in a number of categories.</p>
|
||||
|
||||
Reference in new issue
Block a user