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:
Landon Curt Noll committed 2025-11-20 16:16:50 -08:00
1 parent 5021fa611b
commit ee2f499839
15 files changed
+305 -326

No files matched your search

+29 -29
View File
@@ -159,12 +159,12 @@ See FAQs regarding:
Uploading a tarball not formed by `mkiocccentry(1)` puts you at a very big risk of
violating
[Rule 17 Packaging](rules.html#rule-17-packaging),
[Rule 17 - Packaging](rules.html#rule-17---packaging),
especially as `mkiocccentry(1)` 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
[Rule 17 Packaging](rules.html#rule-17-packaging).
[Rule 17 - Packaging](rules.html#rule-17---packaging).
We **STRONGLY** recommend you **do** install the
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry).
@@ -225,7 +225,7 @@ index.html](../2024/index.html):
<p class="leftbar">
> **IMPORTANT HINT**: Only 3 of the 23 **IOCCC28 winners** came close to the
[Rule 2 Size](rules.html#rule-2-size) limit.
[Rule 2 - Size](rules.html#rule-2---size) limit.
Large code size isn't
everything. :-) Those submitting to future contents should **take a careful
note** of that fact.
@@ -239,7 +239,7 @@ the IOCCC size
[Rule 2b Next Size](rules.html#rule-2b-net-size).
To check your code against
[Rule 2 Size](rules.html#rule-2-size), use the `iocccentry(1)` tool.
[Rule 2 - Size](rules.html#rule-2---size), use the `iocccentry(1)` tool.
For example:
``` <!---sh-->
@@ -276,7 +276,7 @@ BESM-6, and 2503 is a decimal anagram of 2053.
Take note that this secondary limit imposed by the IOCCC size tool
obviates some of the need to `#define` C reserved words in an effort
to get around the size limits of
[Rule 2 Size](rules.html#rule-2-size).
[Rule 2 - Size](rules.html#rule-2---size).
Yes Virginia, **that is a hint**!
@@ -417,7 +417,7 @@ Jump to: [top](#)
# `mkiocccentry`
</div>
[Rule 17 Packaging](rules.html#rule-17-packaging)
[Rule 17 - Packaging](rules.html#rule-17---packaging)
(the `mkiocccentry(1)` rule) states that
you **REALLY SHOULD** use the `mkiocccentry(1)` tool to package your submission tarball.
@@ -482,7 +482,7 @@ then you will have to specify the options (such as paths) for the tools that are
Make sure you have
the latest version of of the [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
so that you do not violate
[Rule 17 Packaging](rules.html#rule-17-packaging)
[Rule 17 - Packaging](rules.html#rule-17---packaging)
by mistake.
@@ -527,7 +527,7 @@ execute one or more additional tools.
</div>
`mkiocccentry(1)` will use code from `iocccsize(1)` which detects a number of
issues (such as [Rule 2 Size](rules.html#rule-2-size)) that you may ignore, if you wish, as
issues (such as [Rule 2 - Size](rules.html#rule-2---size)) that you may ignore, if you wish, as
noted above.
In other words, you no longer need to run `iocccsize` manually. However, the
@@ -631,7 +631,7 @@ do install_ the libraries from their respective repos, it/they will **not be
used** when compiling the `mkiocccentry` tools. This is important to
make sure that you're using the correct versions, which is also verified by
`chksubmit` (in the JSON files created by `mkiocccentry(1)`). See
[Rule 17 Packaging](rules.html#rule-17-packaging)!
[Rule 17 - Packaging](rules.html#rule-17---packaging)!
<p class="leftbar">
We **HIGHLY** recommend you install the `mkiocccentry` toolkit, however.
@@ -678,7 +678,7 @@ page. You might just find a fun option if you do either of these!
Of course, as `txzchk` 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
[Rule 17 Packaging](rules.html#rule-17-packaging).
[Rule 17 - Packaging](rules.html#rule-17---packaging).
<div id="extra-files">
## Including optional and extra files
@@ -698,7 +698,7 @@ file_. The non-extra files are considered _free files_.
<p class="leftbar">
Of course any dot file that is not `.auth.json` and `.info.json` will result in
a violation of
[Rule 17 Packaging](rules.html#rule-17-packaging),
[Rule 17 - Packaging](rules.html#rule-17---packaging),
regardless of its depth.
</p>
@@ -741,13 +741,13 @@ do the same like:
```
See
[Rule 17 Packaging](rules.html#rule-17-packaging)
[Rule 17 - Packaging](rules.html#rule-17---packaging)
and also the
FAQ on "[maximum number of files](../faq.html#max-files)".
If you do not follow these points, you
are at a great risk of violating
[Rule 17 Packaging](rules.html#rule-17-packaging)!
[Rule 17 - Packaging](rules.html#rule-17---packaging)!
**NOTE**: if you want to include a test-suite that requires a lot of files,
please suggest this in your `remarks.md` and if your submission wins it can
@@ -768,7 +768,7 @@ Jump to: [top](#)
As an important part of its algorithm, [txzchk&lpar;1&rpar;](#txzchk) directly executes
`fnamchk(1)`. If the filename is invalid (or the filename does not match the
directory name of the tarball) then it is an **error** and you risk violating
[Rule 17 Packaging](rules.html#rule-17-packaging).
[Rule 17 - Packaging](rules.html#rule-17---packaging).
Nevertheless, you can run the tool manually,
should you wish to.
@@ -778,7 +778,7 @@ FAQ on "[fnamchk](../faq.html#fnamchk)".
It is extremely unlikely that `fnamchk(1)` reporting an invalid filename is a
bug in `fnamchk(1)` and as such, ignoring such an issue risks violating
[Rule 17 Packaging](rules.html#rule-17-packaging)
[Rule 17 - Packaging](rules.html#rule-17---packaging)
which is a big risk. Of course, using `mkiocccentry(1)`
would prevent this from happening as it would not create such a file anyway. If
`mkiocccentry(1)` was used it would rather suggest a bug in one of the tools and
@@ -793,7 +793,7 @@ your submission rejected if you package your own tarball, and there are **ANY
problems**. For instance, if `chksubmit(1)` found a problem in your `.info.json`
file, the `mkiocccentry(1)` tool would not package it. But if you were to package
it manually, you would be violating
[Rule 17 Packaging](rules.html#rule-17-packaging).
[Rule 17 - Packaging](rules.html#rule-17---packaging).
But even if
everything checks out OK you should **NOT** assume that everything **IS** OK.
@@ -1099,7 +1099,7 @@ somehow, `txzchk(1)` will flag it as an error. When the judges run `txzchk(1)`
on the uploaded submission compressed tarball, if anything is wrong, for
instance if you "sneak in" any dot files or dot directories, the submission
**WILL BE REJECTED** for violating
[Rule 17 Packaging](rules.html#rule-17-packaging)!
[Rule 17 - Packaging](rules.html#rule-17---packaging)!
You may use whatever tools you need to develop your submission, including the
use of `git(1)` or `gh(1)`, just be sure that your submission code and your
@@ -1436,7 +1436,7 @@ large data files to get around the source code size limit.
<p class="leftbar">
We do not recommend submitting [systemd](https://systemd.io) source code to the IOCCC,
if nothing else because that code is likely to exceed
[Rule 2 Size](rules.html#rule-2-size).
[Rule 2 - Size](rules.html#rule-2---size).
This isn't to say that another highly compact and obfuscated
replacement of `init(8)` would not be an interesting submission.
</p>
@@ -1455,7 +1455,7 @@ and/or obfuscated way, would definitely win over the first two!
Remember, you can submit more than one submission. See the
[IOCCC rules](rules.html)
for details (in particular,
[Rule 8 Submission](rules.html#rule-8-submission)).
[Rule 8 - Submission](rules.html#rule-8---submission)).
We suggest that you avoid trying for the '**smallest self-replicating**'
source. The smallest, a [zero byte entry](../1994/smr/index.html), won in
@@ -1600,7 +1600,7 @@ If you do `#include <curses.h>` make **CERTAIN** you link in curses (i.e.
`-lcurses`) and not ncurses (i.e. `-lncurses`).
</p>
[Rule 13 Newlines](rules.html#rule-13-newlines)
[Rule 13 - Newlines](rules.html#rule-13---newlines)
no longer discourages the use of UTF-8
characters in C code.
@@ -1638,7 +1638,7 @@ Submitting source code that uses the contents of
[iocccsize.c](https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c),
_unless_ you are [Anthony C Howe](../authors.html#Anthony_C_Howe), might run the
risk of violating
[Rule 7 Original Work](rules.html#rule-7-original-work).
[Rule 7 - Original Work](rules.html#rule-7---original-work).
The IOCCC submission tarball validator source is not an original work,
unless you are [Cody Boone Ferguson](../authors.html#Cody_Boone_Ferguson), in
@@ -1646,7 +1646,7 @@ which case it is original! :-) Submitting source code that uses the contents of
[txzchk.c](https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c),
_unless_ you are [Cody Boone Ferguson](../authors.html#Cody_Boone_Ferguson), might
run the risk of violating
[Rule 7 Original Work](rules.html#rule-7-original-work).
[Rule 7 - Original Work](rules.html#rule-7---original-work).
In addition to the above tools, none of the [mkiocccentry
tools](https://github.com/ioccc-src/mkiocccentry), _including, **but not
@@ -1670,7 +1670,7 @@ are original! :-) Submitting source code that uses the content of any of these
library, _unless_ you are [Cody Boone
Ferguson](../authors.html#Cody_Boone_Ferguson) or [Landon Curt
Noll](http://www.isthe.com/chongo/index.html), might run the risk of violating
[Rule 7 Original Work](rules.html#rule-7-original-work).
[Rule 7 - Original Work](rules.html#rule-7---original-work).
And unless you are [Landon Curt Noll](https://en.wikipedia.org/wiki/Landon_Curt_Noll),
the code in
@@ -1679,9 +1679,9 @@ the code in
not original works. Submitting source code that uses the contents of those
libraries, _unless_ you [Landon Curt Noll](https://en.wikipedia.org/wiki/Landon_Curt_Noll),
might run the risk of violating
[Rule 7 Original Work](rules.html#rule-7-original-work).
[Rule 7 - Original Work](rules.html#rule-7---original-work).
[Rule 7 Original Work](rules.html#rule-7-original-work)
[Rule 7 - Original Work](rules.html#rule-7---original-work)
does not prohibit you from writing your own
obfuscated versions of these tools, unless of course you are [Landon Curt
Noll](http://www.isthe.com/chongo/index.html), in which case you _probably_
@@ -1692,7 +1692,7 @@ tools' algorithms.
Even so, we do not recommend you try and submit a JSON parser due to
the fact it will likely exceed
[Rule 2 Size](rules.html#rule-2-size)
[Rule 2 - Size](rules.html#rule-2---size)
and because you likely can't beat [flex](https://github.com/westes/flex) and
[bison](https://www.gnu.org/software/bison/) in obfuscation. This isn't to
say that [the so-called JSON spec](https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec) is not
@@ -1700,7 +1700,7 @@ obfuscated, but unless you have some really clever way to compact and
obfuscate a JSON parser more than [flex](https://github.com/westes/flex) and
[bison](https://www.gnu.org/software/bison/) you will likely not win, either
because of the
[Rule 2 Size](rules.html#rule-2-size)
[Rule 2 - Size](rules.html#rule-2---size)
or because it is not
as obfuscated as the [flex](https://github.com/westes/flex) and [bison](https://www.gnu.org/software/bison/)
generated code of
@@ -1794,7 +1794,7 @@ character tab stop.
when forming your submission's `remarks.md` file. And if your submission
contains additional markdown files, please follow those same guidelines for
those files. See also
[Rule 4 Files](rules.html#rule-4-files),
[Rule 4 - Files](rules.html#rule-4---files),
and the
FAQ on "[markdown](../faq.html#markdown)".
@@ -2071,7 +2071,7 @@ or that stretches the contest [rules](rules.html) that while legal, it
nevertheless goes against the **intent** of the [rules](rules.html).
Nevertheless, see
[Rule 10 Privileges](rules.html#rule-10-privileges).
[Rule 10 - Privileges](rules.html#rule-10---privileges).
In the end, we traditionally pick one submission as '**best**'. Sometimes such