Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 72 additions & 53 deletions next/rules.html
Original file line number Diff line number Diff line change
Expand Up @@ -594,52 +594,69 @@ <h2 id="rule-4---required-files">Rule 4 - Required files</h2>
requirements may be imposed by <code>mkiocccentry(1)</code> updates that have yet
to be listed below:
</p>
<p><span style="font-size:28px;"><b>|</b></span>  
* <code>.info.json</code> and <code>.auth.json</code> <strong>MUST</strong> be generated by
<code>mkiocccenty(1)</code> when packing a submission. When <code>chksubmit(1)</code> is run
on the submission directory <strong>ALL</strong> tests must pass and if there is
<strong>ANY</strong> problem with these JSON files or if either is missing it will
fail. See <a href="#rule17-mkiocccentry">Rule 17 - use mkiocccentry</a>.</p>
<p><span style="font-size:28px;"><b>|</b></span>  
* The <code>Makefile</code>, <code>remarks.md</code>,<code>.info.json</code>, and <code>.auth.json</code> <strong>MUST</strong>
have a file size <strong>greater than 0</strong> and <strong>MUST</strong> have content. Note
that <code>mkiocccentry(1)</code> will check for file <strong>size</strong> but will <strong>NOT</strong>
check for content.</p>
<p><span style="font-size:28px;"><b>|</b></span>  
* Your submitted source code <strong>MUST</strong> be called <code>prog.c</code>. When the
<ul>
<li><p class="leftbar">
<code>.info.json</code> and <code>.auth.json</code> <strong>MUST</strong> be generated by
<code>mkiocccenty(1)</code> when packing a submission.
</p></li>
<li><p class="leftbar">
Before forming the tarball, <code>mkiocccentry(1)</code> will run <code>chksubmit(1)</code> on your
submission directory and if <strong>ANY</strong> problems are found (with <code>.auth.json</code>,
<code>.info.json</code> or <strong>ANYTHING</strong> else), your tarball will <strong>NOT</strong> be formed.
</p></li>
<li><p class="leftbar">
The <code>Makefile</code>, <code>remarks.md</code>,<code>.info.json</code>, and <code>.auth.json</code>
<strong>MUST</strong> have a file size <strong>greater than 0</strong> and <strong>MUST</strong> have content. Note
that <code>mkiocccentry(1)</code> will check for file <strong>size</strong> but will <strong>NOT</strong> check for
content. On the other hand <code>chksubmit(1)</code> will check that the <code>.auth.json</code> and
<code>.info.json</code> are both valid JSON and are valid according to the IOCCC
requirements.
</p></li>
<li><p class="leftbar">
Your submitted source code <strong>MUST</strong> be called <code>prog.c</code>. When the
<code>Makefile</code> compiles your code, the executable (if applicable) <strong>MUST</strong>
be called <code>prog</code>. The <code>Makefile</code> may compile your source code into
other filenames as well, if you want.</p>
<p><span style="font-size:28px;"><b>|</b></span>  
* As <code>prog</code>, <code>prog.alt</code>, <code>prog.alt.o</code>, <code>prog.o</code> may be created by your
other filenames as well, if you want.
</p></li>
<li><p class="leftbar">
As <code>prog</code>, <code>prog.alt</code>, <code>prog.alt.o</code>, <code>prog.o</code> may be created by your
<code>Makefile</code>, your submission <strong>MUST NOT</strong> include those files in your
<strong>top</strong> directory.</p>
<p><span style="font-size:28px;"><b>|</b></span>  
* Your submission may <strong>NOT</strong> have any file that starts with <code>COPYING</code>,
<code>COPYRIGHT</code>, or <code>LICENSE</code> as those files are reserved by IOCCC.</p>
<p><span style="font-size:28px;"><b>|</b></span>  
* Your submission may <strong>NOT</strong> have in the <strong>top</strong> directory:
<strong>top</strong> directory.
</p></li>
<li><p class="leftbar">
Your submission may <strong>NOT</strong> have any file that starts with <code>COPYING</code>,
<code>COPYRIGHT</code>, or <code>LICENSE</code> as those files are reserved by IOCCC.
</p></li>
<li><p class="leftbar">
Your submission may <strong>NOT</strong> have in the <strong>top</strong> directory:
<code>prog.orig.c</code>, <code>README.md</code> or <code>index.html</code> as those files are reserved
by the IOCCC.</p>
<p><span style="font-size:28px;"><b>|</b></span>  
* Your submission may <strong>NOT</strong> have in the <strong>top</strong> directory any file
that matches a file glob pattern form <code>[0-9][0-9][0-9][0-9]_*.tar.bz2</code>
as those files are reserved by IOCCC.</p>
<p><span style="font-size:28px;"><b>|</b></span>  
* Your submission may <strong>ONLY</strong> contain files and directories. Other
file types such as symlinks, sockets etc. are <strong>NOT</strong> allowed.</p>
<p><span style="font-size:28px;"><b>|</b></span>  
* <strong>All</strong> directories <strong>MUST</strong> have permission mode of <strong>0755</strong>. All
files <strong>MUST</strong> have the file mode of <strong>0444</strong>, EXCEPT for files that
end in <code>.sh</code> which must have a mode of <strong>0555</strong>.</p>
<p><span style="font-size:28px;"><b>|</b></span>  
* All files that end in <code>.md</code> <strong>MUST</strong> be in markdown format.</p>
<p><span style="font-size:28px;"><b>|</b></span>  
* All filenames are treated as case insensitive. For example,
by the IOCCC.
</p></li>
<li><p class="leftbar">
Your submission may <strong>NOT</strong> have in the <strong>top</strong> directory any file that matches
a file glob pattern form <code>[0-9][0-9][0-9][0-9]_*.tar.bz2</code> as those files are
reserved by IOCCC.
</p></li>
<li><p class="leftbar">
Your submission may <strong>ONLY</strong> contain <strong>regular</strong> files and directories. Other
file types such as symlinks, sockets etc. are <strong>NOT</strong> allowed.
</p></li>
<li><p class="leftbar">
<strong>All</strong> directories <strong>MUST</strong> have permission mode of <code>0755</code>. All
files <strong>MUST</strong> have the file mode of <code>0444</code>, <strong>EXCEPT</strong> for files that
end in <code>.sh</code> which must have a mode of <code>0555</code>.
</p></li>
<li><p class="leftbar">
All files that end in <code>.md</code> <strong>MUST</strong> be in markdown format.
</p></li>
<li><p class="leftbar">
All filenames are treated as case insensitive. For example,
<code>REMARKS.MD</code>, and <code>Remarks.md</code>, and <code>remarks.md</code> are considered by
<code>mkiocccenty(1)</code> to be the <strong>SAME</strong> file. When preparing a submission
on a case sensitive filesystem, ensure that the submission will work on
a case insensitive filesystem.</p>
a case insensitive filesystem.
</p></li>
</ul>
<p class="leftbar">
<strong>NOTE</strong>: by ‘top directory’ we mean the directory with <code>prog.c</code>,
<code>Makefile</code>, <code>remarks.md</code> and the <code>mkiocccentry(1)</code> generated files
Expand Down Expand Up @@ -676,7 +693,7 @@ <h2 id="rule-5---do-not-modify-submitted-files-filenames-or-parent-directories">
<p>With the exception of the <code>/tmp</code> and the <code>/var/tmp</code> directories,
assuming the directory name or filename does <strong>NOT</strong> start with a <code>.</code>
(dot), your submission <strong>MUST NOT</strong> create or modify directories and
files ABOVE the current directory.</p>
files <strong>ABOVE</strong> the current directory.</p>
<p>The <code>Makefile</code> <code>clobber</code> target <strong>MUST</strong> restore your submission to its
original form, including the removal of any created files and
directories.</p>
Expand All @@ -700,12 +717,11 @@ <h2 id="rule-7---original-work">Rule 7 - Original Work</h2>
</div>
</div>
<p class="leftbar">
You, the author(s), <strong>MUST</strong> own the contents of your submission,
<strong>OR</strong>, IF you do <strong>NOT</strong> own the work, then you <strong>MUST</strong> have
permission from the original owner(s) to its use. If you submit
<strong>ANY</strong> 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.
You, the author(s), <strong>MUST</strong> own the contents of your submission, <strong>OR</strong>, IF you
do <strong>NOT</strong> own the work, then you <strong>MUST</strong> have permission from the original
owner(s) to its use. If you submit <strong>ANY</strong> content that is owned by others, you
<strong>MUST</strong> detail that ownership, i.e., who owns what, and document in your
<code>remarks.md</code> the permission you obtained from them.
</p>
<p class="leftbar">
You are permitted to use tools to write your code.
Expand Down Expand Up @@ -818,7 +834,7 @@ <h2 id="rule-11---legal-rule-abuse">Rule 11 - Legal rule abuse</h2>
<h2 id="rule-12---utf-8">Rule 12 - UTF-8</h2>
</div>
</div>
<p>Use of UTF-8 is supported by <code>C89</code> standard and its updates and so too
<p>Use of UTF-8 is supported by <code>C11</code> standard and its updates and so too
by the IOCCC.</p>
<p>See <a href="guidelines.html#guideline12-utf8">Guidelines for Rule 12 - UTF-8</a>.</p>
<div id="rule13">
Expand Down Expand Up @@ -914,22 +930,25 @@ <h2 id="rule-16---anonymous-judging">Rule 16 - Anonymous judging</h2>
<h2 id="rule-17---use-mkiocccentry">Rule 17 - Use <code>mkiocccentry</code></h2>
</div>
</div>
<p>TL;DR: use <code>mkiocccentry(1)</code> to package your submission.</p>
<p><strong>TL;DR</strong>: use <code>mkiocccentry(1)</code> to package your submission.</p>
<p>The files, directories, and paths <strong>MUST</strong> conform to the limits
imposed by <code>mkiocccentry(1)</code>, including but <strong>NOT</strong> limited, to their
imposed by <code>mkiocccentry(1)</code>, including but <strong>NOT</strong> limited to, their
names, count, path length, directory tree depth, and permissions.</p>
<p class="leftbar">
The submission tree may have at most <strong>13</strong> directories and maximum
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>.
<code>try.alt.sh</code>, <code>.info.json</code> and <code>.auth.json</code> is <strong>31</strong>.
</p>
<p class="leftbar">
The maximum file-path component is <strong>38</strong> and the maximum
path length is <strong>60</strong>.
</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
compressed by <code>xz(1)</code>) <strong>as constructed by</strong> <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, and any supplementary
tarballs you provide <strong>MUST</strong> also be <strong>v7 format</strong>.</p>
tarballs you provide <strong>MUST ALSO</strong> be <strong>v7 format</strong>.</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 class="leftbar">
Expand Down
115 changes: 61 additions & 54 deletions next/rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,62 +199,67 @@ requirements may be imposed by `mkiocccentry(1)` updates that have yet
to be listed below:
</p>

<span style='font-size:28px;'><b>&verbar;</b></span>&nbsp;&nbsp;
* `.info.json` and `.auth.json` **MUST** be generated by
`mkiocccenty(1)` when packing a submission. When `chksubmit(1)` is run
on the submission directory **ALL** tests must pass and if there is
**ANY** problem with these JSON files or if either is missing it will
fail. See [Rule 17 - use mkiocccentry](#rule17-mkiocccentry).

<span style='font-size:28px;'><b>&verbar;</b></span>&nbsp;&nbsp;
* The `Makefile`, `remarks.md`,`.info.json`, and `.auth.json` **MUST**
have a file size **greater than 0** and **MUST** have content. Note
that `mkiocccentry(1)` will check for file **size** but will **NOT**
check for content.

<span style='font-size:28px;'><b>&verbar;</b></span>&nbsp;&nbsp;
* Your submitted source code **MUST** be called `prog.c`. When the
* <p class="leftbar">`.info.json` and `.auth.json` **MUST** be generated by
`mkiocccenty(1)` when packing a submission.</p>

* <p class="leftbar">
Before forming the tarball, `mkiocccentry(1)` will run `chksubmit(1)` on your
submission directory and if **ANY** problems are found (with `.auth.json`,
`.info.json` or **ANYTHING** else), your tarball will **NOT** be formed.
</p>

* <p class="leftbar">The `Makefile`, `remarks.md`,`.info.json`, and `.auth.json`
**MUST** have a file size **greater than 0** and **MUST** have content. Note
that `mkiocccentry(1)` will check for file **size** but will **NOT** check for
content. On the other hand `chksubmit(1)` will check that the `.auth.json` and
`.info.json` are both valid JSON and are valid according to the IOCCC
requirements.</p>

* <p class="leftbar">
Your submitted source code **MUST** be called `prog.c`. When the
`Makefile` compiles your code, the executable (if applicable) **MUST**
be called `prog`. The `Makefile` may compile your source code into
other filenames as well, if you want.
other filenames as well, if you want.</p>

<span style='font-size:28px;'><b>&verbar;</b></span>&nbsp;&nbsp;
* As `prog`, `prog.alt`, `prog.alt.o`, `prog.o` may be created by your
* <p class="leftbar">
As `prog`, `prog.alt`, `prog.alt.o`, `prog.o` may be created by your
`Makefile`, your submission **MUST NOT** include those files in your
**top** directory.
**top** directory.</p>

<span style='font-size:28px;'><b>&verbar;</b></span>&nbsp;&nbsp;
* Your submission may **NOT** have any file that starts with `COPYING`,
`COPYRIGHT`, or `LICENSE` as those files are reserved by IOCCC.
* <p class="leftbar">
Your submission may **NOT** have any file that starts with `COPYING`,
`COPYRIGHT`, or `LICENSE` as those files are reserved by IOCCC.</p>

<span style='font-size:28px;'><b>&verbar;</b></span>&nbsp;&nbsp;
* Your submission may **NOT** have in the **top** directory:
* <p class="leftbar">
Your submission may **NOT** have in the **top** directory:
`prog.orig.c`, `README.md` or `index.html` as those files are reserved
by the IOCCC.
by the IOCCC.</p>

<span style='font-size:28px;'><b>&verbar;</b></span>&nbsp;&nbsp;
* Your submission may **NOT** have in the **top** directory any file
that matches a file glob pattern form `[0-9][0-9][0-9][0-9]_*.tar.bz2`
as those files are reserved by IOCCC.
* <p class="leftbar">
Your submission may **NOT** have in the **top** directory any file that matches
a file glob pattern form `[0-9][0-9][0-9][0-9]_*.tar.bz2` as those files are
reserved by IOCCC.</p>

<span style='font-size:28px;'><b>&verbar;</b></span>&nbsp;&nbsp;
* Your submission may **ONLY** contain files and directories. Other
file types such as symlinks, sockets etc. are **NOT** allowed.
* <p class="leftbar">
Your submission may **ONLY** contain **regular** files and directories. Other
file types such as symlinks, sockets etc. are **NOT** allowed.</p>

<span style='font-size:28px;'><b>&verbar;</b></span>&nbsp;&nbsp;
* **All** directories **MUST** have permission mode of **0755**. All
files **MUST** have the file mode of **0444**, EXCEPT for files that
end in `.sh` which must have a mode of **0555**.
* <p class="leftbar">
**All** directories **MUST** have permission mode of `0755`. All
files **MUST** have the file mode of `0444`, **EXCEPT** for files that
end in `.sh` which must have a mode of `0555`.</p>

<span style='font-size:28px;'><b>&verbar;</b></span>&nbsp;&nbsp;
* All files that end in `.md` **MUST** be in markdown format.
* <p class="leftbar">
All files that end in `.md` **MUST** be in markdown format.
</p>

<span style='font-size:28px;'><b>&verbar;</b></span>&nbsp;&nbsp;
* All filenames are treated as case insensitive. For example,
* <p class="leftbar">
All filenames are treated as case insensitive. For example,
`REMARKS.MD`, and `Remarks.md`, and `remarks.md` are considered by
`mkiocccenty(1)` to be the **SAME** file. When preparing a submission
on a case sensitive filesystem, ensure that the submission will work on
a case insensitive filesystem.
</p>

<p class="leftbar">
**NOTE**: by 'top directory' we mean the directory with `prog.c`,
Expand Down Expand Up @@ -303,7 +308,7 @@ restore the directory to its original state.
With the exception of the `/tmp` and the `/var/tmp` directories,
assuming the directory name or filename does **NOT** start with a `.`
(dot), your submission **MUST NOT** create or modify directories and
files ABOVE the current directory.
files **ABOVE** the current directory.

The `Makefile` `clobber` target **MUST** restore your submission to its
original form, including the removal of any created files and
Expand Down Expand Up @@ -338,12 +343,11 @@ See [Rule 19 - Prime](rules.html#rule19-prime).
</div>

<p class="leftbar">
You, the author(s), **MUST** own the contents of your submission,
**OR**, IF you do **NOT** own the work, then you **MUST** have
permission from the original owner(s) to its use. If you submit
**ANY** content that is owned by others, you **MUST** detail that
ownership, i.e., who owns what, and document the permission you
obtained from them in your `remarks.md` file.
You, the author(s), **MUST** own the contents of your submission, **OR**, IF you
do **NOT** own the work, then you **MUST** have permission from the original
owner(s) to its use. If you submit **ANY** content that is owned by others, you
**MUST** detail that ownership, i.e., who owns what, and document in your
`remarks.md` the permission you obtained from them.
</p>

<p class="leftbar">
Expand Down Expand Up @@ -493,7 +497,7 @@ abuse](guidelines.html#guideline11-abuse).
</div>
</div>

Use of UTF-8 is supported by `C89` standard and its updates and so too
Use of UTF-8 is supported by `C11` standard and its updates and so too
by the IOCCC.

See [Guidelines for Rule 12 - UTF-8](guidelines.html#guideline12-utf8).
Expand Down Expand Up @@ -620,26 +624,29 @@ comply may result in the submission being disqualified_**.
</div>
</div>

TL;DR: use `mkiocccentry(1)` to package your submission.
**TL;DR**: use `mkiocccentry(1)` to package your submission.

The files, directories, and paths **MUST** conform to the limits
imposed by `mkiocccentry(1)`, including but **NOT** limited, to their
imposed by `mkiocccentry(1)`, including but **NOT** limited to, their
names, count, path length, directory tree depth, and permissions.

<p class="leftbar">
The submission tree may have at most **13** directories and maximum
directory depths of **4**. The maximum number of files, excluding
`prog.c`, `remarks.md`, `Makefile`, `prog.alt.c`, `try.sh`,
`try.alt.sh`, `.info.json` and `.auth.json` is **31**. And the maximum
file-path component is **38** and maximum path length is **60**.
`try.alt.sh`, `.info.json` and `.auth.json` is **31**.
</p>

<p class="leftbar">The maximum file-path component is **38** and the maximum
path length is **60**.
</p>

The submission **MUST** be a `.txz` compressed tarball (i.e., tarball
compressed by `xz(1)`) as constructed by `mkiocccentry(1)`, which
compressed by `xz(1)`) **as constructed by** `mkiocccentry(1)`, which
**MUST** be within **[1..3999971]** bytes in size.

The tarball **MUST** be a **v7 format** tarball, and any supplementary
tarballs you provide **MUST** also be **v7 format**.
tarballs you provide **MUST ALSO** be **v7 format**.

The sum of all file lengths, after unpacking from the tarball, **MUST**
be less than `27651*1024` (**28314624**) bytes.
Expand Down