4 files changed
+335
-246
No files matched your search
@@ -922,7 +922,7 @@ FAQ on “<a href="#makefile">submission Makefiles</a>.</p>
|
||||
<div id="file_perms">
|
||||
<h3 id="q-0.6-what-permissions-may-my-files-be-and-what-if-i-need-different-permissions">Q 0.6: What permissions may my files be and what if I need different permissions?</h3>
|
||||
</div>
|
||||
<p>As <a href="next/rules.html#rule17">Rule 17</a> states, files in your submission tarball <strong>MUST</strong> be
|
||||
<p>Files in your submission tarball <strong>MUST</strong> be
|
||||
specific permissions. In particular: directories <strong>MUST</strong> be <code>drwxr-xr-x</code> (i.e.
|
||||
<code>0755</code>), the optional files, <code>try.sh</code> or <code>try.alt.sh</code>, if provided, <strong>MUST</strong> be
|
||||
<code>-r-xr-xr-x</code> (i.e. <code>0555</code>) and all other files <strong>MUST</strong> be <code>-r--r--r--</code> (i.e.
|
||||
@@ -931,6 +931,9 @@ specific permissions. In particular: directories <strong>MUST</strong> be <code>
|
||||
the appropriate place in your Makefile. See the
|
||||
FAQ on “<a href="#makefile">submission Makefile</a>”
|
||||
for more details.</p>
|
||||
<p>See the
|
||||
FAQ on “<a href="#rule17">Rule 17</a>”
|
||||
and <a href="next/rules.html#rule17">Rule 17</a> itself.</p>
|
||||
<p>Do remember that if your submission requires different filenames, then you
|
||||
<strong>MUST</strong> make a <strong>COPY</strong> of them in your <code>Makefile</code>. See also <a href="next/rules.html#rule11">Rule
|
||||
11</a>.</p>
|
||||
@@ -1114,10 +1117,11 @@ as how you them to help write you submission in your <code>remarks.md</code> fil
|
||||
<p>The following are the details behind <a href="next/rules.html#rule17">Rule 17</a>.</p>
|
||||
<h3 id="tldr-rule-17---use-mkiocccentry1">TL;DR Rule 17 - Use <code>mkiocccentry(1)</code></h3>
|
||||
<p class="leftbar">
|
||||
This is a <strong>COMPLEX</strong> rule. <strong>Violating this rule will cause your submission to REJECTED!</strong>
|
||||
To help you avoid such a rejection, you are <strong>HIGHLY ENCOURAGED</strong> to use the <code>mkiocccentry(1)</code> tool,
|
||||
based on the latest release of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>,
|
||||
to form your submission’s xz compressed tarball.
|
||||
This is a <strong>COMPLEX</strong> rule. <strong>Violating this rule will cause your submission to
|
||||
be REJECTED!</strong> To help you avoid such a rejection, you are <strong>HIGHLY ENCOURAGED</strong>
|
||||
to use the <code>mkiocccentry(1)</code> tool, based on the latest release of the
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>, to form your
|
||||
submission’s xz compressed tarball.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>
|
||||
@@ -1153,17 +1157,6 @@ additional details of each tool, see its man page, and in some cases, the <a hre
|
||||
guidelines</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
There is no need to use <code>jparse(1)</code> but the <code>jparse(3)</code> library
|
||||
library will be linked when compiling the tools as they use various functions
|
||||
provided by it, and <code>chkentry</code> uses the JSON parser API as well.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Of course you <strong>may</strong> invoke <code>jparse(1)</code> if you wish to validate a JSON file but
|
||||
the only JSON files you might want to validate for the IOCCC are validated
|
||||
by <code>chkentry(1)</code>, and that is what you should use to make sure you conform to
|
||||
this rule.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The maximum number of <strong>extra files</strong> is 31. See the <a href="#max-files">maximum number of extra
|
||||
files section</a> below for finer details and the
|
||||
FAQ on “<a href="#extra-files">including additional files</a>”
|
||||
@@ -1175,6 +1168,10 @@ Extra files are defined as files that are not the required files (<code>prog.c</
|
||||
and <code>.auth.json</code>) and files that are also not the optional files (<code>try.sh</code>,
|
||||
<code>prog.alt.c</code> and <code>try.alt.sh</code>).
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
<strong>NOTE</strong>: optional filenames are only optional if they are in the submission top
|
||||
level directory.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<h3 id="rule-17---the-complex-details">Rule 17 - The COMPLEX details</h3>
|
||||
<p class="leftbar">
|
||||
@@ -1186,7 +1183,7 @@ The xz compressed tarball filename must be of the form:
|
||||
<a href="https://en.wikipedia.org/wiki/Universally_unique_identifier">UUID</a></strong> (see
|
||||
<a href="https://datatracker.ietf.org/doc/html/rfc9562">RFC 9562</a> for
|
||||
details), and where <em><code>slot_num</code></em> is a single decimal digit integer
|
||||
(i.e., >= <code>0</code> and < <code>9</code>).
|
||||
(i.e., >= <code>0</code> and <= <code>9</code>).
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
In particular, <code>username</code> is in the form of:
|
||||
@@ -1245,12 +1242,13 @@ and the <a href="https://spec.commonmark.org/current/">CommonMark Spec</a>.
|
||||
<p class="leftbar">
|
||||
The <code>.auth.json</code> file is created by <code>mkiocccentry(1)</code> and it holds information
|
||||
about the author(s) of the submission. It will <strong>ONLY</strong> be looked at if your
|
||||
submission wins but it <strong>MUST</strong> still be valid according to <code>chkentry(1)</code>.
|
||||
submission wins but it <strong>MUST</strong> still be valid according to <code>jparse(3)</code> <strong>AND</strong>
|
||||
<code>chkentry(1)</code>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <code>.info.json</code> file is created by <code>mkiocccentry(1)</code> and it holds information
|
||||
about the submission itself. It also <strong>MUST</strong> be valid according to
|
||||
<code>chkentry(1)</code>.
|
||||
about the submission itself. It also <strong>MUST</strong> be valid according to <strong>BOTH</strong>
|
||||
<code>jparse(3)</code> <strong>AND</strong> <code>chkentry(1)</code>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
For the complete <code>mkiocccentry(1)</code> process, see the
|
||||
@@ -1262,6 +1260,9 @@ any other tool detects <strong>ANY</strong> problem, you are <strong>HIGHLY</str
|
||||
and try again.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
On the other hand, some issues are errors and you <strong>MUST</strong> fix those).
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do use <code>mkiocccentry(1)</code> and you run into a problem, you might see the
|
||||
FAQ on “<a href="#questions">how to ask a question about the IOCCC rules, guidelines and
|
||||
tools</a>”.
|
||||
@@ -1273,10 +1274,15 @@ page</a>.
|
||||
The xz compressed tarball file <strong>MUST</strong> be <= <strong>3999971</strong> octets in size.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
When your submission’s xz compressed tarball is uncompressed,
|
||||
the total size of your submission (the sum of the size of the program,
|
||||
hints, comments, build and info files) <strong>MUST</strong> be <=
|
||||
<strong>28314624</strong> octets (<strong>27651K</strong>) in size.
|
||||
When your submission’s xz compressed tarball is uncompressed, the total size of
|
||||
your submission (the sum of the size of the program source code,
|
||||
remarks/comments, Makefile and all other files) <strong>MUST</strong> be <= <strong>28314624</strong>
|
||||
octets (<strong>27651K</strong>) in size.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
One of the many checks <code>txzchk(1)</code> performs is summing up the total size. Of
|
||||
course if you manipulate the tarball to get past this you risk violating this
|
||||
rule.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Your submission’s xz compressed tarball <strong>MUST</strong> pass the <code>txzchk(1)</code> test. See
|
||||
@@ -1296,13 +1302,14 @@ more details on this tool and the <a href="https://github.com/ioccc-src/mkioccce
|
||||
repo</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Your entry may have subdirectories, depending on the depth and total length of
|
||||
the filenames. Certain directories like <code>.git</code>, <code>RCCS</code>, <code>CVS</code> and <code>.svn</code> are
|
||||
skipped. For more information, see the <a href="next/guidelines.html">guidelines</a>.
|
||||
Your entry <strong>MAY</strong> have subdirectories, depending on the depth and total length of
|
||||
the filenames. Certain directories like <code>.git</code>, <code>RCCS</code>, <code>CVS</code> and <code>.svn</code>
|
||||
(amongst others) are skipped. For more information, see the
|
||||
<a href="next/guidelines.html">guidelines</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Filenames in your entry (that is, not including the files generated by the
|
||||
<code>mkiocccentry(1)</code> tool or the tools it or any other tool invokes) <strong>MUST</strong>:
|
||||
With the exception of those generated by the <code>mkiocccentry(1)</code> tool or the tools
|
||||
it or any other tool invokes, files in your submission <strong>MUST</strong>:
|
||||
</p>
|
||||
<ul>
|
||||
<li><p class="leftbar">
|
||||
@@ -1314,7 +1321,7 @@ Be <= <strong>38</strong> characters in length.
|
||||
<li><p class="leftbar">
|
||||
<strong>NOT</strong> contain a path component of: <strong><code>.</code></strong> (that is, with
|
||||
the exception of files generated by <code>mkiocccentry(1)</code> itself, it must have
|
||||
<strong>NO</strong> <strong><code>.</code></strong> an <strong>NO</strong> dot file).
|
||||
<strong>NO</strong> dot file including <code>.</code> itself).
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<strong>NOT</strong> contain a path component of: <strong><code>..</code></strong> (that is,
|
||||
@@ -1326,7 +1333,7 @@ Match the regular expression
|
||||
<code>mkiocccentry(1)</code>).
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<strong>NOT</strong> be a directory depth > 4.
|
||||
<strong>NOT</strong> have a directory depth > 4.
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<strong>NOT</strong> have a total <strong>path</strong> length > 99 characters.
|
||||
@@ -1343,23 +1350,25 @@ authors (that will only be looked at if the submission wins).
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<code>.info.json</code> which contains information about the
|
||||
entry.
|
||||
submission.
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
The <code>chkentry(1)</code> tool will validate these two JSON files, and do other checks
|
||||
on your submission directory as well, <em>prior to</em> forming the tarball.
|
||||
on your submission directory as well, <em>prior to</em> <code>mkiocccentry(1)</code> forming the
|
||||
tarball.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Files and directories in your submission tarball <strong>MUST</strong> be specific
|
||||
permissions and <code>mkiocccentry(1)</code> does this for you. In particular: directories
|
||||
<strong>MUST</strong> be <code>drwxr-xr-x</code> (i.e. <code>0755</code>), the optional files, <code>try.sh</code> or
|
||||
<code>try.alt.sh</code>, if provided, <strong>MUST</strong> be <code>-r-xr-xr-x</code> (i.e. <code>0555</code>) and all other
|
||||
files <strong>MUST</strong> be <code>-r--r--r--</code> (i.e. <code>0444</code>). If the files do not have these
|
||||
permissions, your submission <strong>WILL</strong> be rejected for violating <a href="next/rules.html#rule17">Rule
|
||||
17</a>! In addition to <code>mkiocccentry(1)</code> creating and copying the
|
||||
directories and files with these modes, it also verifies them after the fact and
|
||||
if they are not correct it is an <strong>error</strong>.
|
||||
<strong>MUST</strong> be <code>drwxr-xr-x</code> (i.e. <code>0755</code>), the optional files, not counting
|
||||
<code>prog.alt.c</code> (i.e. <code>try.sh</code> and <code>try.alt.sh</code>), if provided, <strong>MUST</strong> be
|
||||
<code>-r-xr-xr-x</code> (i.e. <code>0555</code>) and all other files <strong>MUST</strong> be <code>-r--r--r--</code> (i.e.
|
||||
<code>0444</code>). If the files do not have these permissions, your submission <strong>WILL</strong>
|
||||
be rejected for violating <a href="next/rules.html#rule17">Rule 17</a>! In addition to
|
||||
<code>mkiocccentry(1)</code> creating and copying the directories and files with these
|
||||
modes, it also verifies them after the fact and if they are not correct it is an
|
||||
<strong>error</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do need different permissions, then see the
|
||||
@@ -1368,9 +1377,10 @@ FAQ on “<a href="#file_perms">file permissions</a>”. Also keep in mind
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <code>txzchk(1)</code> tool will also verify file/directory permissions (and many other
|
||||
things) for you and so will <code>chkentry(1)</code> (along with validating the JSON files
|
||||
and running semantics checks on them). If these checks fail it is an <strong>error</strong>
|
||||
and <code>mkiocccentry(1)</code> will fail. In this case (it fails and you used
|
||||
things) for you, and so will <code>chkentry(1)</code> (along with other checks on files and
|
||||
directories in your submission directory, including the two required JSON files,
|
||||
<code>.auth.json</code> and <code>.info.json</code>). If these checks fail it is an <strong>error</strong>
|
||||
and <code>mkiocccentry(1)</code> will abort. In this case (it fails and you used
|
||||
<code>mkiocccentry(1)</code>) it is very <strong>possibly</strong> a bug; please <a href="https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E">report it as a bug at
|
||||
the mkiocccentry issues
|
||||
page</a>.
|
||||
@@ -1422,7 +1432,7 @@ created!
|
||||
<p class="leftbar">
|
||||
Tarballs <strong>MUST</strong> only create files and directories <em>under</em> the submission
|
||||
directory. They may <strong>NOT</strong> contain absolute paths (paths that start with <code>/</code>)!
|
||||
<code>txzchk</code> only checks the submission tarball so you must verify these details
|
||||
<code>txzchk</code> does <strong>NOT</strong> check other tarballs so <strong>YOU MUST</strong> verify these details
|
||||
yourself.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
@@ -1449,23 +1459,23 @@ submission will result in violating this rule.
|
||||
<strong>MAKE SURE</strong> you use the correct release of the repository; you should do this
|
||||
<strong>AFTER</strong> the contest opens (pull any changes or if you prefer download the
|
||||
repository via the download option at GitHub). See the
|
||||
FAQ on “<a href="#obtaining_mkiocccentry">obtaining mkiocccentry</a>”
|
||||
FAQ on “<a href="#obtaining_mkiocccentry">obtaining the latest release of mkiocccentry</a>”
|
||||
for more help on ensuring you do have the most up to date release.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
We recommend that you run <code>make</code> and then install the tools (and man pages) via
|
||||
<code>make install</code> (as root or using <code>sudo(1)</code>) to help you run these tools from
|
||||
<code>make install</code> (as root or using <code>sudo(8)</code>) to help you run these tools from
|
||||
your submission’s directory (or any other directory). The <code>make install</code> will
|
||||
install in <code>/usr/local</code>. However, <strong>you do not have</strong> to install them, but in
|
||||
that case you’ll have to run it from the toolkit’s directory or use the correct
|
||||
options to specify the path to the necessary tools, and also specify the path to
|
||||
your files.
|
||||
your files, which can be problematic.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
These tools will link in the <code>jparse(3)</code> library and the <code>dbg</code> library and the
|
||||
<code>dyn_array</code> library; <code>chkentry(1)</code> uses the JSON parser (<code>jparse</code>) to validate
|
||||
and parse the <a href="https://www.json.org/json-en.html">JSON</a> but the other tools use
|
||||
parts of the <code>jparse</code> utility functions as well.
|
||||
These tools will link in the <code>jparse(3)</code> library, the <code>dbg</code> library and the
|
||||
<code>dyn_array</code> library; <code>chkentry(1)</code> uses the JSON parser (<code>jparse(3)</code>) to
|
||||
validate and parse the <a href="https://www.json.org/json-en.html">JSON</a> files but the
|
||||
other tools use parts of the <code>jparse</code> utility functions as well.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you run into a problem with one or more of these tools, <strong>PLEASE</strong> <a href="https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E">report it
|
||||
@@ -1476,7 +1486,7 @@ for help here and also read our
|
||||
FAQ on “<a href="#mkiocccentry_bugs">mkiocccentry repo bugs</a>”.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
At the risk of stating the obvious: submissions that violate <a href="#rule17">Rule
|
||||
At the risk of stating the obvious: submissions that violate <a href="next/rules.html#rule17">Rule
|
||||
17</a> <strong>WILL BE REJECTED</strong>, so <strong>BE SURE</strong> to use the latest release of the
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>, to form and test
|
||||
your submission’s xz compressed tarball. Do <strong>NOT</strong> assume you have the most
|
||||
|
||||
@@ -596,7 +596,7 @@ Jump to: [top](#)
|
||||
### Q 0.6: What permissions may my files be and what if I need different permissions?
|
||||
</div>
|
||||
|
||||
As [Rule 17](next/rules.html#rule17) states, files in your submission tarball **MUST** be
|
||||
Files in your submission tarball **MUST** be
|
||||
specific permissions. In particular: directories **MUST** be `drwxr-xr-x` (i.e.
|
||||
`0755`), the optional files, `try.sh` or `try.alt.sh`, if provided, **MUST** be
|
||||
`-r-xr-xr-x` (i.e. `0555`) and all other files **MUST** be `-r--r--r--` (i.e.
|
||||
@@ -607,6 +607,10 @@ the appropriate place in your Makefile. See the
|
||||
FAQ on "[submission Makefile](#makefile)"
|
||||
for more details.
|
||||
|
||||
See the
|
||||
FAQ on "[Rule 17](#rule17)"
|
||||
and [Rule 17](next/rules.html#rule17) itself.
|
||||
|
||||
Do remember that if your submission requires different filenames, then you
|
||||
**MUST** make a **COPY** of them in your `Makefile`. See also [Rule
|
||||
11](next/rules.html#rule11).
|
||||
@@ -867,10 +871,11 @@ The following are the details behind [Rule 17](next/rules.html#rule17).
|
||||
### TL;DR Rule 17 - Use `mkiocccentry(1)`
|
||||
|
||||
<p class="leftbar">
|
||||
This is a **COMPLEX** rule. **Violating this rule will cause your submission to REJECTED!**
|
||||
To help you avoid such a rejection, you are **HIGHLY ENCOURAGED** to use the `mkiocccentry(1)` tool,
|
||||
based on the latest release of the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry),
|
||||
to form your submission's xz compressed tarball.
|
||||
This is a **COMPLEX** rule. **Violating this rule will cause your submission to
|
||||
be REJECTED!** To help you avoid such a rejection, you are **HIGHLY ENCOURAGED**
|
||||
to use the `mkiocccentry(1)` tool, based on the latest release of the
|
||||
[mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry), to form your
|
||||
submission's xz compressed tarball.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -896,19 +901,6 @@ additional details of each tool, see its man page, and in some cases, the [IOCCC
|
||||
guidelines](next/guidelines.html).
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
There is no need to use `jparse(1)` but the `jparse(3)` library
|
||||
library will be linked when compiling the tools as they use various functions
|
||||
provided by it, and `chkentry` uses the JSON parser API as well.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Of course you **may** invoke `jparse(1)` if you wish to validate a JSON file but
|
||||
the only JSON files you might want to validate for the IOCCC are validated
|
||||
by `chkentry(1)`, and that is what you should use to make sure you conform to
|
||||
this rule.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The maximum number of **extra files** is 31. See the [maximum number of extra
|
||||
files section](#max-files) below for finer details and the
|
||||
@@ -923,6 +915,11 @@ and `.auth.json`) and files that are also not the optional files (`try.sh`,
|
||||
`prog.alt.c` and `try.alt.sh`).
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
**NOTE**: optional filenames are only optional if they are in the submission top
|
||||
level directory.
|
||||
</p>
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
@@ -938,7 +935,7 @@ The xz compressed tarball filename must be of the form:
|
||||
[UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier)** (see
|
||||
[RFC 9562](https://datatracker.ietf.org/doc/html/rfc9562) for
|
||||
details), and where _`slot_num`_ is a single decimal digit integer
|
||||
(i.e., >= `0` and < `9`).
|
||||
(i.e., >= `0` and <= `9`).
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -993,13 +990,14 @@ and the [CommonMark Spec](https://spec.commonmark.org/current/).
|
||||
<p class="leftbar">
|
||||
The `.auth.json` file is created by `mkiocccentry(1)` and it holds information
|
||||
about the author(s) of the submission. It will **ONLY** be looked at if your
|
||||
submission wins but it **MUST** still be valid according to `chkentry(1)`.
|
||||
submission wins but it **MUST** still be valid according to `jparse(3)` **AND**
|
||||
`chkentry(1)`.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `.info.json` file is created by `mkiocccentry(1)` and it holds information
|
||||
about the submission itself. It also **MUST** be valid according to
|
||||
`chkentry(1)`.
|
||||
about the submission itself. It also **MUST** be valid according to **BOTH**
|
||||
`jparse(3)` **AND** `chkentry(1)`.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -1014,6 +1012,10 @@ any other tool detects **ANY** problem, you are **HIGHLY** encouraged to fix it
|
||||
and try again.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
On the other hand, some issues are errors and you **MUST** fix those).
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you do use `mkiocccentry(1)` and you run into a problem, you might see the
|
||||
FAQ on "[how to ask a question about the IOCCC rules, guidelines and
|
||||
@@ -1028,10 +1030,16 @@ The xz compressed tarball file **MUST** be <= **3999971** octets in size.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
When your submission's xz compressed tarball is uncompressed,
|
||||
the total size of your submission (the sum of the size of the program,
|
||||
hints, comments, build and info files) **MUST** be <=
|
||||
**28314624** octets (**27651K**) in size.
|
||||
When your submission's xz compressed tarball is uncompressed, the total size of
|
||||
your submission (the sum of the size of the program source code,
|
||||
remarks/comments, Makefile and all other files) **MUST** be <= **28314624**
|
||||
octets (**27651K**) in size.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
One of the many checks `txzchk(1)` performs is summing up the total size. Of
|
||||
course if you manipulate the tarball to get past this you risk violating this
|
||||
rule.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -1056,27 +1064,28 @@ repo](https://github.com/ioccc-src/mkiocccentry).
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Your entry may have subdirectories, depending on the depth and total length of
|
||||
the filenames. Certain directories like `.git`, `RCCS`, `CVS` and `.svn` are
|
||||
skipped. For more information, see the [guidelines](next/guidelines.html).
|
||||
Your entry **MAY** have subdirectories, depending on the depth and total length of
|
||||
the filenames. Certain directories like `.git`, `RCCS`, `CVS` and `.svn`
|
||||
(amongst others) are skipped. For more information, see the
|
||||
[guidelines](next/guidelines.html).
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Filenames in your entry (that is, not including the files generated by the
|
||||
`mkiocccentry(1)` tool or the tools it or any other tool invokes) **MUST**:
|
||||
With the exception of those generated by the `mkiocccentry(1)` tool or the tools
|
||||
it or any other tool invokes, files in your submission **MUST**:
|
||||
</p>
|
||||
|
||||
* <p class="leftbar">Be <= **38** characters in length.</p>
|
||||
* <p class="leftbar">**NOT** have a leading **`/`**.</p>
|
||||
* <p class="leftbar">**NOT** contain a path component of: **`.`** (that is, with
|
||||
the exception of files generated by `mkiocccentry(1)` itself, it must have
|
||||
**NO** **`.`** an **NO** dot file).</p>
|
||||
**NO** dot file including `.` itself).</p>
|
||||
* <p class="leftbar">**NOT** contain a path component of: **`..`** (that is,
|
||||
**NO** **`..`**).</p>
|
||||
* <p class="leftbar">Match the regular expression
|
||||
`^[0-9A-Za-z]+[0-9A-Za-z_+.-]*$` (again, excluding files generated by
|
||||
`mkiocccentry(1)`).</p>
|
||||
* <p class="leftbar">**NOT** be a directory depth > 4.</p>
|
||||
* <p class="leftbar">**NOT** have a directory depth > 4.</p>
|
||||
* <p class="leftbar">**NOT** have a total **path** length > 99 characters.</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -1087,23 +1096,25 @@ the additional files that are generated by the `mkiocccentry(1)` tool:
|
||||
* <p class="leftbar">`.auth.json` which contains information about the author or
|
||||
authors (that will only be looked at if the submission wins).</p>
|
||||
* <p class="leftbar">`.info.json` which contains information about the
|
||||
entry.</p>
|
||||
submission.</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `chkentry(1)` tool will validate these two JSON files, and do other checks
|
||||
on your submission directory as well, _prior to_ forming the tarball.
|
||||
on your submission directory as well, _prior to_ `mkiocccentry(1)` forming the
|
||||
tarball.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Files and directories in your submission tarball **MUST** be specific
|
||||
permissions and `mkiocccentry(1)` does this for you. In particular: directories
|
||||
**MUST** be `drwxr-xr-x` (i.e. `0755`), the optional files, `try.sh` or
|
||||
`try.alt.sh`, if provided, **MUST** be `-r-xr-xr-x` (i.e. `0555`) and all other
|
||||
files **MUST** be `-r--r--r--` (i.e. `0444`). If the files do not have these
|
||||
permissions, your submission **WILL** be rejected for violating [Rule
|
||||
17](next/rules.html#rule17)! In addition to `mkiocccentry(1)` creating and copying the
|
||||
directories and files with these modes, it also verifies them after the fact and
|
||||
if they are not correct it is an **error**.
|
||||
**MUST** be `drwxr-xr-x` (i.e. `0755`), the optional files, not counting
|
||||
`prog.alt.c` (i.e. `try.sh` and `try.alt.sh`), if provided, **MUST** be
|
||||
`-r-xr-xr-x` (i.e. `0555`) and all other files **MUST** be `-r--r--r--` (i.e.
|
||||
`0444`). If the files do not have these permissions, your submission **WILL**
|
||||
be rejected for violating [Rule 17](next/rules.html#rule17)! In addition to
|
||||
`mkiocccentry(1)` creating and copying the directories and files with these
|
||||
modes, it also verifies them after the fact and if they are not correct it is an
|
||||
**error**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -1114,9 +1125,10 @@ FAQ on "[file permissions](#file_perms)". Also keep in mind
|
||||
|
||||
<p class="leftbar">
|
||||
The `txzchk(1)` tool will also verify file/directory permissions (and many other
|
||||
things) for you and so will `chkentry(1)` (along with validating the JSON files
|
||||
and running semantics checks on them). If these checks fail it is an **error**
|
||||
and `mkiocccentry(1)` will fail. In this case (it fails and you used
|
||||
things) for you, and so will `chkentry(1)` (along with other checks on files and
|
||||
directories in your submission directory, including the two required JSON files,
|
||||
`.auth.json` and `.info.json`). If these checks fail it is an **error**
|
||||
and `mkiocccentry(1)` will abort. In this case (it fails and you used
|
||||
`mkiocccentry(1)`) it is very **possibly** a bug; please [report it as a bug at
|
||||
the mkiocccentry issues
|
||||
page](https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E).
|
||||
@@ -1176,7 +1188,7 @@ created!
|
||||
<p class="leftbar">
|
||||
Tarballs **MUST** only create files and directories _under_ the submission
|
||||
directory. They may **NOT** contain absolute paths (paths that start with `/`)!
|
||||
`txzchk` only checks the submission tarball so you must verify these details
|
||||
`txzchk` does **NOT** check other tarballs so **YOU MUST** verify these details
|
||||
yourself.
|
||||
</p>
|
||||
|
||||
@@ -1212,25 +1224,25 @@ submission will result in violating this rule.
|
||||
**MAKE SURE** you use the correct release of the repository; you should do this
|
||||
**AFTER** the contest opens (pull any changes or if you prefer download the
|
||||
repository via the download option at GitHub). See the
|
||||
FAQ on "[obtaining mkiocccentry](#obtaining_mkiocccentry)"
|
||||
FAQ on "[obtaining the latest release of mkiocccentry](#obtaining_mkiocccentry)"
|
||||
for more help on ensuring you do have the most up to date release.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
We recommend that you run `make` and then install the tools (and man pages) via
|
||||
`make install` (as root or using `sudo(1)`) to help you run these tools from
|
||||
`make install` (as root or using `sudo(8)`) to help you run these tools from
|
||||
your submission's directory (or any other directory). The `make install` will
|
||||
install in `/usr/local`. However, **you do not have** to install them, but in
|
||||
that case you'll have to run it from the toolkit's directory or use the correct
|
||||
options to specify the path to the necessary tools, and also specify the path to
|
||||
your files.
|
||||
your files, which can be problematic.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
These tools will link in the `jparse(3)` library and the `dbg` library and the
|
||||
`dyn_array` library; `chkentry(1)` uses the JSON parser (`jparse`) to validate
|
||||
and parse the [JSON](https://www.json.org/json-en.html) but the other tools use
|
||||
parts of the `jparse` utility functions as well.
|
||||
These tools will link in the `jparse(3)` library, the `dbg` library and the
|
||||
`dyn_array` library; `chkentry(1)` uses the JSON parser (`jparse(3)`) to
|
||||
validate and parse the [JSON](https://www.json.org/json-en.html) files but the
|
||||
other tools use parts of the `jparse` utility functions as well.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -1243,7 +1255,7 @@ FAQ on "[mkiocccentry repo bugs](#mkiocccentry_bugs)".
|
||||
</p>
|
||||
|
||||
<p class="leftbar">At the risk of stating the obvious: submissions that violate [Rule
|
||||
17](#rule17) **WILL BE REJECTED**, so **BE SURE** to use the latest release of the
|
||||
17](next/rules.html#rule17) **WILL BE REJECTED**, so **BE SURE** to use the latest release of the
|
||||
[mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry), to form and test
|
||||
your submission's xz compressed tarball. Do **NOT** assume you have the most
|
||||
recent release without pulling or downloading via GitHub and do **MAKE SURE** you
|
||||
|
||||
+101
-69
@@ -566,7 +566,7 @@ as well as
|
||||
<h2 id="rule-0">Rule 0</h2>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
Just as C starts at 0, so the IOCCC starts at <a href="#rule0">rule 0</a>. :-)
|
||||
Just as C starts at 0, so the IOCCC starts at <a href="#rule0">Rule 0</a>. :-)
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The “<a href="#dates">Important IOCCC dates</a>” section above is part of this rule.
|
||||
@@ -578,57 +578,63 @@ The “<a href="#dates">Important IOCCC dates</a>” section above is part of th
|
||||
<p class="leftbar">
|
||||
Your submission must be a C program.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
You see, the contest is not called the <strong>International Obfuscated JSON Contest</strong>
|
||||
(<strong>IOJSONC</strong>), even if the <a href="https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec">so-called JSON
|
||||
spec</a> might be called obfuscated. :-)
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule2">
|
||||
<h2 id="rule-2">Rule 2</h2>
|
||||
</div>
|
||||
<p>The size rule requires your submission to satisfy <strong>BOTH</strong> <a href="#rule2a">Rule 2a</a> and <a href="#rule2b">Rule 2b</a>:</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule2a">
|
||||
<h2 id="rule-2a">Rule 2a</h2>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
The size of your program source <strong>should not exceed 4993 bytes</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you use the most recently released official IOCCC submission
|
||||
packaging tool (hereby referred to as <code>mkiocccentry(1)</code>), which we <strong>STRONGLY
|
||||
recommend you do</strong> (see also <a href="#rule17">Rule 17</a>), then the <code>mkiocccentry(1)</code>
|
||||
tool will warn you if there appears to be a <a href="#rule2a">Rule 2a</a> violation.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule2a">
|
||||
<h2 id="rule-2a">Rule 2a</h2>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
The <code>mkiocccentry(1)</code> tool will give you the option of overriding the <a href="#rule2a">Rule 2a</a> warning.
|
||||
Overriding a <a href="#rule2a">Rule 2a</a> warning carries a <strong>fair amount of risk that your submission
|
||||
will be rejected</strong>. Be sure to consult the <a href="guidelines.html">IOCCC guidelines</a>
|
||||
ahead of time if you plan to override the <a href="#rule2a">Rule 2a</a> warning.
|
||||
The size of your program source <strong>should NOT exceed 4993 bytes</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do override the <a href="#rule2a">Rule 2a</a> warning from the
|
||||
<code>mkiocccentry(1)</code> tool, or otherwise plan to violate <a href="#rule2a">Rule 2a</a>, then
|
||||
you <strong>MUST CLEARLY EXPLAIN THE RATIONALE</strong> of why you are doing so in your
|
||||
<code>remarks.md</code> file. <strong><em>Even if you do</em> explain this in your <code>remarks.md</code> file your
|
||||
submission may still be rejected</strong>.
|
||||
The <code>mkiocccentry(1)</code> tool will give you the option of overriding the <a href="#rule2a">Rule
|
||||
2a</a> warning. Overriding the <a href="#rule2a">Rule 2a</a> warning carries a
|
||||
<strong>fair amount of risk that your submission will be rejected</strong>. Be sure to
|
||||
consult the <a href="guidelines.html">IOCCC guidelines</a> ahead of time if you plan to
|
||||
override the <a href="#rule2a">Rule 2a</a> warning.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do override the <a href="#rule2a">Rule 2a</a> warning from the <code>mkiocccentry(1)</code>
|
||||
tool, or otherwise plan to violate <a href="#rule2a">Rule 2a</a>, then you <strong>MUST CLEARLY
|
||||
EXPLAIN THE RATIONALE</strong> of why you are doing so in your <code>remarks.md</code> file.
|
||||
<strong><em>Even if you do</em> explain this in your <code>remarks.md</code> file you submission may
|
||||
still be rejected</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
You may check your code prior to submission by giving the filename
|
||||
as a command like argument to the <code>iocccsize(1)</code> tool. For example:
|
||||
</p>
|
||||
<pre><code> ./iocccsize prog.c</code></pre>
|
||||
<pre><code> iocccsize prog.c</code></pre>
|
||||
<p class="leftbar">
|
||||
Alternatively, you may use the <code>mkiocccentry(1)</code> option <code>-d</code> to verify that
|
||||
things check out without having to answer all the questions. See the
|
||||
FAQ on “<a href="../faq.html#mkiocccentry_test">how to test your submission without having to answer
|
||||
questions</a>”
|
||||
for more details.
|
||||
things check out okay (i.e. no problems are detected) without having to answer
|
||||
all the questions. See the
|
||||
FAQ on “<a href="../faq.html#mkiocccentry_test">how to test your submission without having
|
||||
to answer questions</a>” for more details.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule2b">
|
||||
<h2 id="rule-2b">Rule 2b</h2>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
When the filename of your program source is given as a command line argument to the latest version
|
||||
of the official IOCCC size tool (hereby referred to as <code>iocccsize(1)</code>), the
|
||||
value printed <strong>should NOT exceed <em>2503</em></strong>.
|
||||
When the filename of your program source is given as a command line argument to
|
||||
the latest version of the official IOCCC size tool (hereby referred to as
|
||||
<code>iocccsize(1)</code>), the value printed <strong>should NOT exceed <em>2503</em></strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The source to <code>iocccsize(1)</code> may be found in the
|
||||
@@ -637,25 +643,28 @@ The source to <code>iocccsize(1)</code> may be found in the
|
||||
<p class="leftbar">
|
||||
If you use the <code>mkiocccentry(1)</code> tool, which we <strong>STRONGLY recommend
|
||||
you do</strong> (again, see also <a href="#rule17">Rule 17</a>),
|
||||
then <code>mkiocccentry(1)</code> will invoke <code>iocccsize(1)</code> before packaging your submission.
|
||||
then <code>mkiocccentry(1)</code> will invoke the <code>iocccsize(1)</code> checks before packaging
|
||||
your submission.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <code>mkiocccentry(1)</code> tool will give you the option of overriding the <a href="#rule2b">Rule 2b</a> warning.
|
||||
Overriding a <a href="#rule2b">Rule 2b</a> warning carries a <strong>fair amount of risk that your submission
|
||||
will be rejected</strong>. Be sure to consult the <a href="guidelines.html">IOCCC guidelines</a>
|
||||
ahead of time if you plan to override the <a href="#rule2b">Rule 2b</a> warning.
|
||||
The <code>mkiocccentry(1)</code> tool will give you the option of overriding the <a href="#rule2b">Rule
|
||||
2b</a> warning. Overriding the <a href="#rule2b">Rule 2b</a> warning carries a <strong>fair
|
||||
amount of risk that your submission will be rejected</strong>. Be sure to consult the
|
||||
<a href="guidelines.html">IOCCC guidelines</a> ahead of time if you plan to override the
|
||||
<a href="#rule2b">Rule 2b</a> warning.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do override the <a href="#rule2b">Rule 2b</a> warning from the <code>mkiocccentry(1)</code> tool,
|
||||
or otherwise plan to violate <a href="#rule2b">Rule 2a</a>, then you <strong>MUST CLEARLY EXPLAIN THE RATIONALE</strong>
|
||||
of why you are doing so in your <code>remarks.md</code> file. <strong><em>Even if you do</em> explain this in your <code>remarks.md</code> file
|
||||
your submission may still be rejected</strong>.
|
||||
If you do override the <a href="#rule2b">Rule 2b</a> warning from the <code>mkiocccentry(1)</code>
|
||||
tool, or otherwise plan to violate <a href="#rule2b">Rule 2b</a>, then you <strong>MUST CLEARLY
|
||||
EXPLAIN THE RATIONALE</strong> of why you are doing so in your <code>remarks.md</code> file.
|
||||
<strong><em>Even if you do</em> explain this in your <code>remarks.md</code> file your submission may
|
||||
still be rejected</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
You may check your code prior to submission by giving the filename
|
||||
as a command like argument to the <code>iocccsize(1)</code> tool. For example:
|
||||
</p>
|
||||
<pre><code> ./iocccsize prog.c</code></pre>
|
||||
<pre><code> iocccsize prog.c</code></pre>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule3">
|
||||
<h2 id="rule-3">Rule 3</h2>
|
||||
@@ -673,7 +682,7 @@ for instructions on registering and participating in the IOCCC, as the process h
|
||||
<p class="leftbar">
|
||||
When the contest is <strong><a href="../faq.html#open">open</a></strong>, an
|
||||
<a href="../judges.html">IOCCC judge</a> will email you your <a href="https://submit.ioccc.org">submit server</a>
|
||||
<strong>Username</strong> and <strong>Initial password</strong>. This takes some time (maybe even a few days) for an
|
||||
<strong>Username</strong> and <strong>Initial password</strong>. It takes some time (maybe even a few days) for an
|
||||
<a href="../judges.html">IOCCC judge</a> to process your registration and email you your
|
||||
initial login and password.
|
||||
</p>
|
||||
@@ -696,10 +705,10 @@ The <a href="../judges.html">IOCCC judges</a> are <strong>NOT</strong> responsib
|
||||
or for those who wait until the last minute to try to register!
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you have <a href="register.html">registered</a> and received by email their
|
||||
If you have <a href="register.html">registered</a> and received by email your
|
||||
<a href="https://submit.ioccc.org">submit server</a> <strong>Username</strong> and <strong>Initial password</strong>
|
||||
from an <a href="../judges.html">IOCCC judge</a>, you may upload your submission to
|
||||
the <a href="https://submit.ioccc.org">submit server</a> only while the
|
||||
the <a href="https://submit.ioccc.org">submit server</a> <strong>ONLY</strong> while the
|
||||
contest is <strong><a href="../faq.html#open">open</a></strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
@@ -755,8 +764,8 @@ will become a <code>README.md</code> which will be used to generate an <code>ind
|
||||
<p class="leftbar">
|
||||
Your source code will be the file <code>prog.c</code>. The compiled binary
|
||||
will be called <code>prog</code>. If you submission requires different filenames,
|
||||
then modify your submission’s <code>Makefile</code> to <strong>COPY</strong> (<strong>NOT</strong> move!)
|
||||
the files accordingly.
|
||||
then modify your submission’s <code>Makefile</code> to <strong>COPY</strong> (<strong>NOT</strong> move!) the files
|
||||
accordingly.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See also <a href="#rule5">Rule 5</a>, <a href="#rule18">Rule 18</a> and <a href="#rule21">Rule 21</a>.
|
||||
@@ -765,19 +774,19 @@ See also <a href="#rule5">Rule 5</a>, <a href="#rule18">Rule 18</a> and <a href=
|
||||
<div id="rule5">
|
||||
<h2 id="rule-5">Rule 5</h2>
|
||||
</div>
|
||||
<p>Your submission <strong>MUST</strong> not modify the content or filename of any part of your
|
||||
<p>Your submission must <strong>NOT</strong> modify the content or filename of any part of your
|
||||
original submission including, but not limited to <code>prog.c</code>, the <code>Makefile</code>
|
||||
(that we create from your how to build instructions), as well as any data
|
||||
files you submit.</p>
|
||||
<p>If you submission needs (or wishes :-) ) to modify such content, it <strong>MUST</strong> first copy the
|
||||
file to a new filename and then modify that copy.</p>
|
||||
as well as any data files you submit.</p>
|
||||
<p>If you submission needs (or wishes :-) ) to modify such content, it <strong>MUST</strong>
|
||||
first copy the file to a new filename and then modify that copy.</p>
|
||||
<p class="leftbar">
|
||||
You may use your submission to form a copy, or you can make use of your <code>Makefile</code> to form that copy.
|
||||
You may use your submission (program) to form a copy, or you can make use of
|
||||
your <code>Makefile</code> to form that copy.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do make a copy and then modify that copy, please be sure that
|
||||
If you do make a copy and then modify that copy, <strong>PLEASE</strong> be sure that
|
||||
the <code>clobber</code> rule of your <code>Makefile</code> removes that copy in order to
|
||||
restore the contents if your submission to its original submission.
|
||||
restore the contents of your submission to its original submission.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule6">
|
||||
@@ -813,7 +822,11 @@ permission you obtained</strong>.</p>
|
||||
Please note that the IOCCC size tool, the tools in the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
repo</a> and the tools and library in
|
||||
the <a href="https://github.com/xexyl/jparse/issues">jparse repo</a> (that the
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a> clones) are
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a> clones) or the
|
||||
<a href="https://github.com/lcn2/dbg">dbg repo</a> (that the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
repo</a> clones) or the <a href="https://github.com/lcn2/dyn_array">dyn_array
|
||||
repo</a> (that the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
repo</a> clones) are
|
||||
<strong>NOT</strong> original works, unless of course you’re the respective authors, in
|
||||
which case they are. Of course, neither are any of the previous
|
||||
winning entries, unless of course you’re the winner! :-)
|
||||
@@ -830,14 +843,14 @@ Submissions may only be uploaded to the <a href="https://submit.ioccc.org">IOCCC
|
||||
while the contest is <strong><a href="../faq.html#open">open</a></strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Once the contest is in the <strong><a href="../faq.html#judging">judging</a></strong> state (or <strong><a href="../faq.html#closed">closed</a></strong>),
|
||||
you may <strong>NOT</strong> upload submissions.
|
||||
Once the contest is in the <strong><a href="../faq.html#judging">judging</a></strong> state (or
|
||||
<strong><a href="../faq.html#closed">closed</a></strong>), you may <strong>NOT</strong> upload submissions.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
While the contest is <strong><a href="../faq.html#open">open</a></strong> or in the <strong><a href="../faq.html#judging">judging</a></strong> state,
|
||||
the <a href="../judges.html">IOCCC judges</a> may (but are not required to) modify the slot comment of your submission to indicate
|
||||
the <a href="../judges.html">IOCCC judges</a> <strong>MAY</strong> (but are not required to) modify the slot comment of your submission to indicate
|
||||
that they have received it. If uploaded submission is malformed, the <a href="../judges.html">IOCCC judges</a>
|
||||
may (but are not required to) modify the slot comment accordingly.
|
||||
<strong>MAY</strong> (but are not required to) modify the slot comment accordingly.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
See the “<a href="#dates">Important IOCCC dates</a>” section above for when these contest states are scheduled.
|
||||
@@ -850,8 +863,8 @@ See also <a href="#rule17">Rule 17</a>.
|
||||
<h2 id="rule-9">Rule 9</h2>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
Each person may register <strong>ONLY</strong> one account and each account may submit up to
|
||||
and including <strong>10.000000</strong> (ten in base 10) entries per contest.
|
||||
Each <strong>PERSON</strong> may register <strong>ONLY ONE</strong> account and each account may submit up to
|
||||
and including <strong>10.000000</strong> (ten in base 10) submissions <strong>PER</strong> contest.
|
||||
</p>
|
||||
<p><strong>Each submission <em>must be submitted separately</em></strong>.</p>
|
||||
<p class="leftbar">
|
||||
@@ -885,7 +898,7 @@ it is needed in your submission’s <code>remarks.md</code> file.</p>
|
||||
<h2 id="rule-12">Rule 12</h2>
|
||||
</div>
|
||||
<p><strong>Legal</strong> abuse of the rules is somewhat encouraged. <strong>A submission that, in
|
||||
the opinion of the <a href="../judges.html">judges</a>, violates the rules will be disqualified</strong>.
|
||||
the opinion of the <a href="../judges.html">judges</a>, violates the rules WILL BE DISQUALIFIED</strong>.
|
||||
Submissions that attempt to abuse the rules <strong>MUST</strong> try to justify why
|
||||
their rule abuse is legal, in the <code>remarks.md</code> file.</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
@@ -893,7 +906,11 @@ their rule abuse is legal, in the <code>remarks.md</code> file.</p>
|
||||
<h2 id="rule-13">Rule 13</h2>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
7 out of 13 UTF-8 characters in C code agree that this rule number is lucky enough to be a prime number.
|
||||
7 out of 13 UTF-8 characters in C code agree that this rule number is lucky
|
||||
enough to be a prime number.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Fun fact: the fear of the number 13 is called <em>triskaidekaphobia</em>.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule14">
|
||||
@@ -901,7 +918,7 @@ their rule abuse is legal, in the <code>remarks.md</code> file.</p>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
Any C source that fails to compile because of lines with trailing
|
||||
control-M’s (i.e., lines with a tailing octet <code>015</code>) <strong><em>might</em></strong> be rejected.
|
||||
control-M’s (i.e., lines with a trailing octet <code>015</code>) <strong><em>might</em></strong> be rejected.
|
||||
</p>
|
||||
<p>Please do <strong>NOT</strong> put trailing control-M’s on remarks file lines.
|
||||
Please check to be sure, before submitting, that you have removed
|
||||
@@ -913,7 +930,7 @@ any control-M at the end of remark file lines.</p>
|
||||
<p class="leftbar">
|
||||
In order to register for the IOCCC, you <strong>MUST</strong> have a valid email address.
|
||||
</p>
|
||||
<p>The <a href="../judges.html">judges</a> <strong>are not responsible for delays in email</strong>, please plan
|
||||
<p>The <a href="../judges.html">judges</a> <strong>are NOT responsible for delays in email</strong>, please plan
|
||||
enough time for the exchange of emails so you can upload your submission.</p>
|
||||
<p class="leftbar">
|
||||
See the
|
||||
@@ -935,8 +952,8 @@ been published may be disqualified.</p>
|
||||
<p class="leftbar">
|
||||
Your submission must be in the form of <strong>xz compressed tarball</strong>
|
||||
that <code>mkiocccentry(1)</code> tool would generate. The files, directories,
|
||||
and paths must conform to the limits imposed by <code>mkiocccentry(1)</code>
|
||||
including but not limited to their names, count, path length
|
||||
and paths <strong>MUST</strong> conform to the limits imposed by <code>mkiocccentry(1)</code>
|
||||
including but <strong>NOT LIMITED</strong> to their names, count, path length
|
||||
and directory tree depth.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
@@ -948,7 +965,7 @@ Your <strong>xz compressed tarball</strong> submission file must pass the tests
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
Your <strong>xz compressed tarball</strong> submission file must pass the tests performed by:
|
||||
Your <strong>xz compressed tarball</strong> submission filename must pass the tests performed by:
|
||||
</p>
|
||||
<ul>
|
||||
<li><p class="leftbar">
|
||||
@@ -965,6 +982,10 @@ must pass the checks performed by:
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
<code>txzchk(1)</code> uses the <code>fnamchk(1)</code> tool on your tarball to obtain the proper
|
||||
directory name. If either name is wrong, it will be flagged as an error.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The resulting <code>prog.c</code> file must pass the <a href="#rule2">Rule 2</a> size checked performed by:
|
||||
</p>
|
||||
<ul>
|
||||
@@ -984,10 +1005,16 @@ would produce as well as pass the tests performed by:
|
||||
<code>chkentry(1)</code>
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
The <code>Makefile</code> must <strong>NOT</strong> be empty.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <code>remarks.md</code> must <strong>NOT</strong> be empty.
|
||||
</p>
|
||||
<h3 id="tldr-rule-17---use-mkiocccentry1-to-form-your-submission">TL;DR Rule 17 - Use <code>mkiocccentry(1)</code> to form your submission</h3>
|
||||
<p>Let the <code>mkiocccentry(1)</code> tool form your <strong>xz compressed tarball</strong>
|
||||
submission file and don’t try to override override its checks and
|
||||
limits in order to be sure you submission conforms to this rule.</p>
|
||||
<p>Let the <code>mkiocccentry(1)</code> tool form your <strong>xz compressed tarball</strong> submission
|
||||
file and don’t try to override its checks and limits, in order to be sure you
|
||||
submission conforms to this rule.</p>
|
||||
<h3 id="warning">Warning</h3>
|
||||
<p>Using command line flags or input prompts to override checks and
|
||||
limits made by the above mentioned tools is <strong>NOT</strong> recommended
|
||||
@@ -1001,7 +1028,7 @@ for how to obtain and use the above mentioned tools.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
<strong>IMPORTANT</strong>: See the
|
||||
FAQ on “<a href="../faq.html#rule17">Rule17</a>”
|
||||
FAQ on “<a href="../faq.html#rule17">Rule 17</a>”
|
||||
for very important details behind this rule.
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
@@ -1044,13 +1071,13 @@ Makefile example, renamed as <code>Makefile</code> of course, for help in constr
|
||||
<code>Makefile</code>. See the <a href="guidelines.html#makefile">Makefile section</a> in the
|
||||
guidelines for more details.
|
||||
</p>
|
||||
<p>The target of the Makefile must be called <code>prog</code>. The original
|
||||
<p>The target of the <code>Makefile</code> must be called <code>prog</code>. The original
|
||||
C source file must be called <code>prog.c</code>.</p>
|
||||
<p>To invoke the C compiler, use <code>${CC}</code>. To invoke the C preprocessor use
|
||||
<code>${CPP}</code>.</p>
|
||||
<p>Do <strong>NOT</strong> assume that <code>.</code> (the current directory) is in the <code>$PATH</code>.</p>
|
||||
<p class="leftbar">
|
||||
When <code>make clobber</code> is invoked, we request that submission be restored
|
||||
When <code>make clobber</code> is invoked, we request that submission directory be restored
|
||||
to its original submission state. For example, any temporary files
|
||||
created during the build process, or during execution should be
|
||||
removed by the <code>clobber</code> rule.
|
||||
@@ -1071,7 +1098,7 @@ available in the <code>$PATH</code> search path.
|
||||
<div id="rule21">
|
||||
<h2 id="rule-21">Rule 21</h2>
|
||||
</div>
|
||||
<p>Your submission <strong>MUST NOT</strong> create or modify files above the current directory
|
||||
<p>Your submission <strong>MUST NOT</strong> create or modify files <strong>ABOVE</strong> the current directory
|
||||
<em>with the exception of</em> the <code>/tmp</code> and the <code>/var/tmp</code> directories. Your submission
|
||||
<strong>MAY</strong> create subdirectories below the current directory, or in <code>/tmp</code>,
|
||||
or in <code>/var/tmp</code> provided that <code>.</code> is <strong>NOT</strong> the first octet in any
|
||||
@@ -1092,6 +1119,11 @@ identify the authors of your code. The <a href="../judges.html">judges</a> <stro
|
||||
within your code, data, remarks or program output (unless you are
|
||||
<strong>Peter Honeyman</strong> or pretending to be <strong>Peter Honeyman</strong>) will be grounds
|
||||
for disqualification of your submission.</p>
|
||||
<p class="leftbar">
|
||||
And don’t assume that we won’t be able to determine your name even if it’s not
|
||||
obvious, because you stand a significant chance of violating this rule if you
|
||||
do.
|
||||
</p>
|
||||
<p>Yes, Virginia, <strong>WE REALLY MEAN IT!</strong></p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<div id="rule23">
|
||||
|
||||
+106
-71
@@ -196,7 +196,7 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
Just as C starts at 0, so the IOCCC starts at [rule 0](#rule0). :-)
|
||||
Just as C starts at 0, so the IOCCC starts at [Rule 0](#rule0). :-)
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -215,6 +215,12 @@ Jump to: [top](#)
|
||||
Your submission must be a C program.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
You see, the contest is not called the **International Obfuscated JSON Contest**
|
||||
(**IOJSONC**), even if the [so-called JSON
|
||||
spec](https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec) might be called obfuscated. :-)
|
||||
</p>
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
@@ -225,6 +231,12 @@ Jump to: [top](#)
|
||||
|
||||
The size rule requires your submission to satisfy **BOTH** [Rule 2a](#rule2a) and [Rule 2b](#rule2b):
|
||||
|
||||
<p class="leftbar">
|
||||
If you use the most recently released official IOCCC submission
|
||||
packaging tool (hereby referred to as `mkiocccentry(1)`), which we **STRONGLY
|
||||
recommend you do** (see also [Rule 17](#rule17)), then the `mkiocccentry(1)`
|
||||
tool will warn you if there appears to be a [Rule 2a](#rule2a) violation.
|
||||
</p>
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
@@ -234,29 +246,23 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
The size of your program source **should not exceed 4993 bytes**.
|
||||
The size of your program source **should NOT exceed 4993 bytes**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you use the most recently released official IOCCC submission
|
||||
packaging tool (hereby referred to as `mkiocccentry(1)`), which we **STRONGLY
|
||||
recommend you do** (see also [Rule 17](#rule17)), then the `mkiocccentry(1)`
|
||||
tool will warn you if there appears to be a [Rule 2a](#rule2a) violation.
|
||||
The `mkiocccentry(1)` tool will give you the option of overriding the [Rule
|
||||
2a](#rule2a) warning. Overriding the [Rule 2a](#rule2a) warning carries a
|
||||
**fair amount of risk that your submission will be rejected**. Be sure to
|
||||
consult the [IOCCC guidelines](guidelines.html) ahead of time if you plan to
|
||||
override the [Rule 2a](#rule2a) warning.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `mkiocccentry(1)` tool will give you the option of overriding the [Rule 2a](#rule2a) warning.
|
||||
Overriding a [Rule 2a](#rule2a) warning carries a **fair amount of risk that your submission
|
||||
will be rejected**. Be sure to consult the [IOCCC guidelines](guidelines.html)
|
||||
ahead of time if you plan to override the [Rule 2a](#rule2a) warning.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you do override the [Rule 2a](#rule2a) warning from the
|
||||
`mkiocccentry(1)` tool, or otherwise plan to violate [Rule 2a](#rule2a), then
|
||||
you **MUST CLEARLY EXPLAIN THE RATIONALE** of why you are doing so in your
|
||||
`remarks.md` file. **_Even if you do_ explain this in your `remarks.md` file your
|
||||
submission may still be rejected**.
|
||||
If you do override the [Rule 2a](#rule2a) warning from the `mkiocccentry(1)`
|
||||
tool, or otherwise plan to violate [Rule 2a](#rule2a), then you **MUST CLEARLY
|
||||
EXPLAIN THE RATIONALE** of why you are doing so in your `remarks.md` file.
|
||||
**_Even if you do_ explain this in your `remarks.md` file you submission may
|
||||
still be rejected**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -265,18 +271,17 @@ as a command like argument to the `iocccsize(1)` tool. For example:
|
||||
</p>
|
||||
|
||||
``` <!---sh-->
|
||||
./iocccsize prog.c
|
||||
iocccsize prog.c
|
||||
```
|
||||
|
||||
<p class="leftbar">
|
||||
Alternatively, you may use the `mkiocccentry(1)` option `-d` to verify that
|
||||
things check out without having to answer all the questions. See the
|
||||
FAQ on "[how to test your submission without having to answer
|
||||
questions](../faq.html#mkiocccentry_test)"
|
||||
for more details.
|
||||
things check out okay (i.e. no problems are detected) without having to answer
|
||||
all the questions. See the
|
||||
FAQ on "[how to test your submission without having
|
||||
to answer questions](../faq.html#mkiocccentry_test)" for more details.
|
||||
</p>
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
@@ -285,9 +290,9 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
When the filename of your program source is given as a command line argument to the latest version
|
||||
of the official IOCCC size tool (hereby referred to as `iocccsize(1)`), the
|
||||
value printed **should NOT exceed _2503_**.
|
||||
When the filename of your program source is given as a command line argument to
|
||||
the latest version of the official IOCCC size tool (hereby referred to as
|
||||
`iocccsize(1)`), the value printed **should NOT exceed _2503_**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -298,21 +303,24 @@ The source to `iocccsize(1)` may be found in the
|
||||
<p class="leftbar">
|
||||
If you use the `mkiocccentry(1)` tool, which we **STRONGLY recommend
|
||||
you do** (again, see also [Rule 17](#rule17)),
|
||||
then `mkiocccentry(1)` will invoke `iocccsize(1)` before packaging your submission.
|
||||
then `mkiocccentry(1)` will invoke the `iocccsize(1)` checks before packaging
|
||||
your submission.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `mkiocccentry(1)` tool will give you the option of overriding the [Rule 2b](#rule2b) warning.
|
||||
Overriding a [Rule 2b](#rule2b) warning carries a **fair amount of risk that your submission
|
||||
will be rejected**. Be sure to consult the [IOCCC guidelines](guidelines.html)
|
||||
ahead of time if you plan to override the [Rule 2b](#rule2b) warning.
|
||||
The `mkiocccentry(1)` tool will give you the option of overriding the [Rule
|
||||
2b](#rule2b) warning. Overriding the [Rule 2b](#rule2b) warning carries a **fair
|
||||
amount of risk that your submission will be rejected**. Be sure to consult the
|
||||
[IOCCC guidelines](guidelines.html) ahead of time if you plan to override the
|
||||
[Rule 2b](#rule2b) warning.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you do override the [Rule 2b](#rule2b) warning from the `mkiocccentry(1)` tool,
|
||||
or otherwise plan to violate [Rule 2a](#rule2b), then you **MUST CLEARLY EXPLAIN THE RATIONALE**
|
||||
of why you are doing so in your `remarks.md` file. **_Even if you do_ explain this in your `remarks.md` file
|
||||
your submission may still be rejected**.
|
||||
If you do override the [Rule 2b](#rule2b) warning from the `mkiocccentry(1)`
|
||||
tool, or otherwise plan to violate [Rule 2b](#rule2b), then you **MUST CLEARLY
|
||||
EXPLAIN THE RATIONALE** of why you are doing so in your `remarks.md` file.
|
||||
**_Even if you do_ explain this in your `remarks.md` file your submission may
|
||||
still be rejected**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -321,7 +329,7 @@ as a command like argument to the `iocccsize(1)` tool. For example:
|
||||
</p>
|
||||
|
||||
``` <!---sh-->
|
||||
./iocccsize prog.c
|
||||
iocccsize prog.c
|
||||
```
|
||||
|
||||
|
||||
@@ -347,7 +355,7 @@ for instructions on registering and participating in the IOCCC, as the process h
|
||||
<p class="leftbar">
|
||||
When the contest is **[open](../faq.html#open)**, an
|
||||
[IOCCC judge](../judges.html) will email you your [submit server](https://submit.ioccc.org)
|
||||
**Username** and **Initial password**. This takes some time (maybe even a few days) for an
|
||||
**Username** and **Initial password**. It takes some time (maybe even a few days) for an
|
||||
[IOCCC judge](../judges.html) to process your registration and email you your
|
||||
initial login and password.
|
||||
</p>
|
||||
@@ -374,10 +382,10 @@ or for those who wait until the last minute to try to register!
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you have [registered](register.html) and received by email their
|
||||
If you have [registered](register.html) and received by email your
|
||||
[submit server](https://submit.ioccc.org) **Username** and **Initial password**
|
||||
from an [IOCCC judge](../judges.html), you may upload your submission to
|
||||
the [submit server](https://submit.ioccc.org) only while the
|
||||
the [submit server](https://submit.ioccc.org) **ONLY** while the
|
||||
contest is **[open](../faq.html#open)**.
|
||||
</p>
|
||||
|
||||
@@ -447,8 +455,8 @@ will become a `README.md` which will be used to generate an `index.html` file.
|
||||
<p class="leftbar">
|
||||
Your source code will be the file `prog.c`. The compiled binary
|
||||
will be called `prog`. If you submission requires different filenames,
|
||||
then modify your submission's `Makefile` to **COPY** (**NOT** move!)
|
||||
the files accordingly.
|
||||
then modify your submission's `Makefile` to **COPY** (**NOT** move!) the files
|
||||
accordingly.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -463,22 +471,22 @@ Jump to: [top](#)
|
||||
## Rule 5
|
||||
</div>
|
||||
|
||||
Your submission **MUST** not modify the content or filename of any part of your
|
||||
Your submission must **NOT** modify the content or filename of any part of your
|
||||
original submission including, but not limited to `prog.c`, the `Makefile`
|
||||
(that we create from your how to build instructions), as well as any data
|
||||
files you submit.
|
||||
as well as any data files you submit.
|
||||
|
||||
If you submission needs (or wishes :-) ) to modify such content, it **MUST** first copy the
|
||||
file to a new filename and then modify that copy.
|
||||
If you submission needs (or wishes :-) ) to modify such content, it **MUST**
|
||||
first copy the file to a new filename and then modify that copy.
|
||||
|
||||
<p class="leftbar">
|
||||
You may use your submission to form a copy, or you can make use of your `Makefile` to form that copy.
|
||||
You may use your submission (program) to form a copy, or you can make use of
|
||||
your `Makefile` to form that copy.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you do make a copy and then modify that copy, please be sure that
|
||||
If you do make a copy and then modify that copy, **PLEASE** be sure that
|
||||
the `clobber` rule of your `Makefile` removes that copy in order to
|
||||
restore the contents if your submission to its original submission.
|
||||
restore the contents of your submission to its original submission.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -529,7 +537,11 @@ permission you obtained**.
|
||||
Please note that the IOCCC size tool, the tools in the [mkiocccentry
|
||||
repo](https://github.com/ioccc-src/mkiocccentry) and the tools and library in
|
||||
the [jparse repo](https://github.com/xexyl/jparse/issues) (that the
|
||||
[mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry) clones) are
|
||||
[mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry) clones) or the
|
||||
[dbg repo](https://github.com/lcn2/dbg) (that the [mkiocccentry
|
||||
repo](https://github.com/ioccc-src/mkiocccentry) clones) or the [dyn_array
|
||||
repo](https://github.com/lcn2/dyn_array) (that the [mkiocccentry
|
||||
repo](https://github.com/ioccc-src/mkiocccentry) clones) are
|
||||
**NOT** original works, unless of course you're the respective authors, in
|
||||
which case they are. Of course, neither are any of the previous
|
||||
winning entries, unless of course you're the winner! :-)
|
||||
@@ -553,15 +565,15 @@ while the contest is **[open](../faq.html#open)**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Once the contest is in the **[judging](../faq.html#judging)** state (or **[closed](../faq.html#closed)**),
|
||||
you may **NOT** upload submissions.
|
||||
Once the contest is in the **[judging](../faq.html#judging)** state (or
|
||||
**[closed](../faq.html#closed)**), you may **NOT** upload submissions.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
While the contest is **[open](../faq.html#open)** or in the **[judging](../faq.html#judging)** state,
|
||||
the [IOCCC judges](../judges.html) may (but are not required to) modify the slot comment of your submission to indicate
|
||||
the [IOCCC judges](../judges.html) **MAY** (but are not required to) modify the slot comment of your submission to indicate
|
||||
that they have received it. If uploaded submission is malformed, the [IOCCC judges](../judges.html)
|
||||
may (but are not required to) modify the slot comment accordingly.
|
||||
**MAY** (but are not required to) modify the slot comment accordingly.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -581,8 +593,8 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
Each person may register **ONLY** one account and each account may submit up to
|
||||
and including **10.000000** (ten in base 10) entries per contest.
|
||||
Each **PERSON** may register **ONLY ONE** account and each account may submit up to
|
||||
and including **10.000000** (ten in base 10) submissions **PER** contest.
|
||||
</p>
|
||||
|
||||
**Each submission _must be submitted separately_**.
|
||||
@@ -632,7 +644,7 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
**Legal** abuse of the rules is somewhat encouraged. **A submission that, in
|
||||
the opinion of the [judges](../judges.html), violates the rules will be disqualified**.
|
||||
the opinion of the [judges](../judges.html), violates the rules WILL BE DISQUALIFIED**.
|
||||
Submissions that attempt to abuse the rules **MUST** try to justify why
|
||||
their rule abuse is legal, in the `remarks.md` file.
|
||||
|
||||
@@ -645,9 +657,13 @@ Jump to: [top](#)
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
7 out of 13 UTF-8 characters in C code agree that this rule number is lucky enough to be a prime number.
|
||||
7 out of 13 UTF-8 characters in C code agree that this rule number is lucky
|
||||
enough to be a prime number.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Fun fact: the fear of the number 13 is called _triskaidekaphobia_.
|
||||
</p>
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
@@ -658,7 +674,7 @@ Jump to: [top](#)
|
||||
|
||||
<p class="leftbar">
|
||||
Any C source that fails to compile because of lines with trailing
|
||||
control-M's (i.e., lines with a tailing octet `015`) **_might_** be rejected.
|
||||
control-M's (i.e., lines with a trailing octet `015`) **_might_** be rejected.
|
||||
</p>
|
||||
|
||||
Please do **NOT** put trailing control-M's on remarks file lines.
|
||||
@@ -677,7 +693,7 @@ Jump to: [top](#)
|
||||
In order to register for the IOCCC, you **MUST** have a valid email address.
|
||||
</p>
|
||||
|
||||
The [judges](../judges.html) **are not responsible for delays in email**, please plan
|
||||
The [judges](../judges.html) **are NOT responsible for delays in email**, please plan
|
||||
enough time for the exchange of emails so you can upload your submission.
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -710,8 +726,8 @@ Jump to: [top](#)
|
||||
<p class="leftbar">
|
||||
Your submission must be in the form of **xz compressed tarball**
|
||||
that `mkiocccentry(1)` tool would generate. The files, directories,
|
||||
and paths must conform to the limits imposed by `mkiocccentry(1)`
|
||||
including but not limited to their names, count, path length
|
||||
and paths **MUST** conform to the limits imposed by `mkiocccentry(1)`
|
||||
including but **NOT LIMITED** to their names, count, path length
|
||||
and directory tree depth.
|
||||
</p>
|
||||
|
||||
@@ -722,7 +738,7 @@ Your **xz compressed tarball** submission file must pass the tests performed by:
|
||||
* <p class="leftbar">`txzchk(1)`</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Your **xz compressed tarball** submission file must pass the tests performed by:
|
||||
Your **xz compressed tarball** submission filename must pass the tests performed by:
|
||||
</p>
|
||||
|
||||
* <p class="leftbar">`fnamchk(1)`</p>
|
||||
@@ -734,6 +750,11 @@ must pass the checks performed by:
|
||||
|
||||
* <p class="leftbar">`chkentry(1)`</p>
|
||||
|
||||
<p class="leftbar">
|
||||
`txzchk(1)` uses the `fnamchk(1)` tool on your tarball to obtain the proper
|
||||
directory name. If either name is wrong, it will be flagged as an error.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The resulting `prog.c` file must pass the [Rule 2](#rule2) size checked performed by:
|
||||
</p>
|
||||
@@ -748,12 +769,20 @@ would produce as well as pass the tests performed by:
|
||||
* <p class="leftbar">`jparse(3)`</p>
|
||||
* <p class="leftbar">`chkentry(1)`</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `Makefile` must **NOT** be empty.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `remarks.md` must **NOT** be empty.
|
||||
</p>
|
||||
|
||||
|
||||
### TL;DR Rule 17 - Use `mkiocccentry(1)` to form your submission
|
||||
|
||||
Let the `mkiocccentry(1)` tool form your **xz compressed tarball**
|
||||
submission file and don't try to override override its checks and
|
||||
limits in order to be sure you submission conforms to this rule.
|
||||
Let the `mkiocccentry(1)` tool form your **xz compressed tarball** submission
|
||||
file and don't try to override its checks and limits, in order to be sure you
|
||||
submission conforms to this rule.
|
||||
|
||||
### Warning
|
||||
|
||||
@@ -771,7 +800,7 @@ for how to obtain and use the above mentioned tools.
|
||||
|
||||
<p class="leftbar">
|
||||
**IMPORTANT**: See the
|
||||
FAQ on "[Rule17](../faq.html#rule17)"
|
||||
FAQ on "[Rule 17](../faq.html#rule17)"
|
||||
for very important details behind this rule.
|
||||
</p>
|
||||
|
||||
@@ -836,7 +865,7 @@ Makefile example, renamed as `Makefile` of course, for help in constructing your
|
||||
guidelines for more details.
|
||||
</p>
|
||||
|
||||
The target of the Makefile must be called `prog`. The original
|
||||
The target of the `Makefile` must be called `prog`. The original
|
||||
C source file must be called `prog.c`.
|
||||
|
||||
To invoke the C compiler, use `${CC}`. To invoke the C preprocessor use
|
||||
@@ -845,7 +874,7 @@ To invoke the C compiler, use `${CC}`. To invoke the C preprocessor use
|
||||
Do **NOT** assume that `.` (the current directory) is in the `$PATH`.
|
||||
|
||||
<p class="leftbar">
|
||||
When `make clobber` is invoked, we request that submission be restored
|
||||
When `make clobber` is invoked, we request that submission directory be restored
|
||||
to its original submission state. For example, any temporary files
|
||||
created during the build process, or during execution should be
|
||||
removed by the `clobber` rule.
|
||||
@@ -873,7 +902,7 @@ Jump to: [top](#)
|
||||
## Rule 21
|
||||
</div>
|
||||
|
||||
Your submission **MUST NOT** create or modify files above the current directory
|
||||
Your submission **MUST NOT** create or modify files **ABOVE** the current directory
|
||||
_with the exception of_ the `/tmp` and the `/var/tmp` directories. Your submission
|
||||
**MAY** create subdirectories below the current directory, or in `/tmp`,
|
||||
or in `/var/tmp` provided that `.` is **NOT** the first octet in any
|
||||
@@ -904,6 +933,12 @@ within your code, data, remarks or program output (unless you are
|
||||
**Peter Honeyman** or pretending to be **Peter Honeyman**) will be grounds
|
||||
for disqualification of your submission.
|
||||
|
||||
<p class="leftbar">
|
||||
And don't assume that we won't be able to determine your name even if it's not
|
||||
obvious, because you stand a significant chance of violating this rule if you
|
||||
do.
|
||||
</p>
|
||||
|
||||
Yes, Virginia, **WE REALLY MEAN IT!**
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user