Update FAQ, guidelines and quick start

This addresses most (if not all) of the recent changes to chkentry(1)
though a more thorough check will be made later after the mkiocccentry
code freeze.
This commit is contained in:
Cody Boone Ferguson committed 2025-02-27 14:56:01 -08:00
1 parent c5adf3016b
commit 65cf447087
6 files changed
+324 -236

No files matched your search

+48 -25
View File
@@ -425,7 +425,7 @@
<!-- BEFORE: 1st line of markdown file: faq.md --> <!-- BEFORE: 1st line of markdown file: faq.md -->
<h1 id="ioccc-faq-table-of-contents">IOCCC FAQ Table of Contents</h1> <h1 id="ioccc-faq-table-of-contents">IOCCC FAQ Table of Contents</h1>
<p>This is FAQ version <strong>28.2.10 2025-02-26</strong>.</p> <p>This is FAQ version <strong>28.2.11 2025-02-27</strong>.</p>
<h2 id="entering-the-ioccc-the-bare-minimum-you-need-to-know">0. <a href="#enter_questions">Entering the IOCCC: the bare minimum you need to know</a></h2> <h2 id="entering-the-ioccc-the-bare-minimum-you-need-to-know">0. <a href="#enter_questions">Entering the IOCCC: the bare minimum you need to know</a></h2>
<ul> <ul>
<li><strong>Q 0.0</strong>: <a class="normal" href="#enter">How can I enter the IOCCC?</a></li> <li><strong>Q 0.0</strong>: <a class="normal" href="#enter">How can I enter the IOCCC?</a></li>
@@ -434,7 +434,8 @@
<li><strong>Q 0.1.1</strong>: <a class="normal" href="#about_mkiocccentry">What is <code>mkiocccentry(1)</code> in simple terms?</a></li> <li><strong>Q 0.1.1</strong>: <a class="normal" href="#about_mkiocccentry">What is <code>mkiocccentry(1)</code> in simple terms?</a></li>
<li><strong>Q 0.1.2</strong>: <a class="normal" href="#obtaining_mkiocccentry">How do I obtain the latest mkiocccentry toolkit?</a></li> <li><strong>Q 0.1.2</strong>: <a class="normal" href="#obtaining_mkiocccentry">How do I obtain the latest mkiocccentry toolkit?</a></li>
<li><strong>Q 0.1.3</strong>: <a class="normal" href="#compiling_mkiocccentry">How do I compile the mkiocccentry toolkit?</a></li> <li><strong>Q 0.1.3</strong>: <a class="normal" href="#compiling_mkiocccentry">How do I compile the mkiocccentry toolkit?</a></li>
<li><strong>Q 0.1.4</strong>: <a class="normal" href="#using_mkiocccentry">How do I use mkiocccentry?</a></li> <li><strong>Q 0.1.4</strong>: <a class="normal" href="#install">How do I install mkiocccentry(1) and related tools?</a></li>
<li><strong>Q 0.1.5</strong>: <a class="normal" href="#using_mkiocccentry">How do I use mkiocccentry?</a></li>
</ul></li> </ul></li>
<li><strong>Q 0.2</strong>: <a class="normal" href="#platform">What platform should I assume for my submission?</a></li> <li><strong>Q 0.2</strong>: <a class="normal" href="#platform">What platform should I assume for my submission?</a></li>
<li><strong>Q 0.3</strong>: <a class="normal" href="#makefile">What should I put in my submission Makefile?</a></li> <li><strong>Q 0.3</strong>: <a class="normal" href="#makefile">What should I put in my submission Makefile?</a></li>
@@ -480,6 +481,7 @@
<li><strong>Q 3.9</strong>: <a class="normal" href="#entry_id_faq">What is an <code>entry_id</code>?</a></li> <li><strong>Q 3.9</strong>: <a class="normal" href="#entry_id_faq">What is an <code>entry_id</code>?</a></li>
<li><strong>Q 3.10</strong>: <a class="normal" href="#entry_json">What is a <code>.entry.json</code> file and how is it used?</a></li> <li><strong>Q 3.10</strong>: <a class="normal" href="#entry_json">What is a <code>.entry.json</code> file and how is it used?</a></li>
<li><strong>Q 3.11</strong>: <a class="normal" href="#jparse">How can I validate any JSON document?</a></li> <li><strong>Q 3.11</strong>: <a class="normal" href="#jparse">How can I validate any JSON document?</a></li>
<li><strong>Q 3.12</strong>: <a class="normal" href="#install">How can I install the <code>mkiocccentry(1)</code> and related tools?</a></li>
</ul> </ul>
<h2 id="compiling-ioccc-entries">4. <a href="#compiling">Compiling IOCCC entries</a></h2> <h2 id="compiling-ioccc-entries">4. <a href="#compiling">Compiling IOCCC entries</a></h2>
<ul> <ul>
@@ -680,17 +682,43 @@ have an mkiocccentry tool directory:</p>
<p>Once you’ve obtained the <strong>LATEST</strong> version (see the <p>Once you’ve obtained the <strong>LATEST</strong> version (see the
FAQ on “<a href="#obtaining_mkiocccentry">obtaining the latest mkiocccentry toolkit</a>” FAQ on “<a href="#obtaining_mkiocccentry">obtaining the latest mkiocccentry toolkit</a>”
to make sure of this), change to the <code>mkiocccentry</code> directory and then run:</p> to make sure of this), change to the <code>mkiocccentry</code> directory and then run:</p>
<pre><code> make clobber all test</code></pre>
<p>to compile all the tools and run the test-suite.</p>
<p>You do not have to run the test-suite but if you wish to make sure all is in
order you may. If you wish to skip that:</p>
<pre><code> make clobber all</code></pre> <pre><code> make clobber all</code></pre>
<p>to compile all the tools.</p> <p>Jump to: <a href="#">top</a></p>
<div id="install">
<h3 id="q-0.1.4-how-do-i-install-mkiocccentry1-and-related-tools">Q 0.1.4: How do I install mkiocccentry(1) and related tools?</h3>
</div>
<p>After obtaining the toolkit (see the
FAQ on “<a href="#obtaining_mkiocccentry">obtaining the latest mkiocccentry toolkit</a>”)
and compiling the tools (see the
FAQ on “<a href="#compiling_mkiocccentry">compiling mkiocccentry</a>”
above) run as either <code>sudo(8)</code> or root <code>make install</code>:</p>
<pre><code> # if you use sudo(8):
sudo make install
# as root:
make install</code></pre>
<p>If everything goes well you should be able to run <code>mkiocccentry(1)</code>,
<code>txzchk(1)</code>, <code>chkentry(1)</code> and all the other installed tools from any directory,
and the tools that rely on other tools will be able to find those required tools
from any directory too.</p>
<p>Some tools like <code>bug_report.sh</code> and <code>hostchk.sh</code> are not meant to be installed
and will not work from any directory, however.</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="using_mkiocccentry"> <div id="using_mkiocccentry">
<h4 id="q-0.1.4-how-do-i-use-mkiocccentry">Q 0.1.4: How do I use mkiocccentry?</h4> <h4 id="q-0.1.5-how-do-i-use-mkiocccentry">Q 0.1.5: How do I use mkiocccentry?</h4>
</div> </div>
<p>Once you have registered, you will need to package your entry with the <p>Once you have registered, you will need to package your entry with the
<code>mkiocccentry</code> tool. If you have not already obtained the toolkit, see the <code>mkiocccentry</code> tool. If you have not already obtained the toolkit, see the
FAQ on “<a href="#obtaining_mkiocccentry">obtaining the mkiocccentry toolkit</a>” FAQ on “<a href="#obtaining_mkiocccentry">obtaining the most recent mkiocccentry
and the toolkit</a>”,
the
FAQ on “<a href="#compiling_mkiocccentry">compiling mkiocccentry</a>” FAQ on “<a href="#compiling_mkiocccentry">compiling mkiocccentry</a>”
and the
FAQ on “<a href="#installing">installing the mkiocccentry tools</a>”
if you have not already done so.</p> if you have not already done so.</p>
<p>The below details discuss this very important tool. As it is complicated we will <p>The below details discuss this very important tool. As it is complicated we will
explain how to use this tool. If you want to know what it is in simpler terms, explain how to use this tool. If you want to know what it is in simpler terms,
@@ -709,15 +737,10 @@ the timestamp; see the <a href="next/rules.html">rules</a> for more details on t
particular <a href="next/rules.html#rule17">Rule 17</a>.</p> particular <a href="next/rules.html#rule17">Rule 17</a>.</p>
<p><strong>IMPORTANT NOTE</strong>: if you run the program outside the repo directory <p><strong>IMPORTANT NOTE</strong>: if you run the program outside the repo directory
(specifying the absolute or relative path to the tool) and you have not (specifying the absolute or relative path to the tool) and you have not
installed the tools then you will have to specify the options for the tools that installed the tools (and we <strong>STRONGLY</strong> recommend you <strong>do</strong> install them),
are required like <code>chkentry(1)</code>, <code>txzchk(1)</code> and <code>fnamchk(1)</code>. But even if you then you will have to specify the options for the tools that are required like
have installed them but some tools are out of date (in the install path) it will <code>chkentry(1)</code>, <code>txzchk(1)</code> and <code>fnamchk(1)</code>. And remember to make sure you have
cause problems. Additionally, if you do not have the most recent version when the latest version so you do not violate <a href="next/rules.html#rule17">Rule 17</a>.</p>
submitting a tarball it will be rejected for not having the right versions of
the tools. This is why you <strong>MUST</strong> make sure you have the most recent version
of all the tools and you either run it from the repo directory itself OR you
install them (<code>make install</code> as via <code>sudo</code> or as root). We recommend you install
the tools but if you wish to run it from the repo directory you may.</p>
<p>If the <strong><em>subdirectory</em> in the <em>work directory</em></strong> (based on your submit ID and <p>If the <strong><em>subdirectory</em> in the <em>work directory</em></strong> (based on your submit ID and
slot number) already exists, you will have to move it, remove it or otherwise slot number) already exists, you will have to move it, remove it or otherwise
specify a different work directory (<strong>NOT</strong> the subdirectory), as it needs to be specify a different work directory (<strong>NOT</strong> the subdirectory), as it needs to be
@@ -1741,16 +1764,14 @@ you can do so. For instance:</p>
FAQ on “<a href="#txzchk">validating your submission tarball</a>” FAQ on “<a href="#txzchk">validating your submission tarball</a>”
for more information.</p> for more information.</p>
<p>Jump to: <a href="#">top</a></p> <p>Jump to: <a href="#">top</a></p>
<div id="validating_auth_info_json">
<div id="chkentry"> <div id="chkentry">
<h3 id="q-3.3-how-can-i-validate-my-submission-directory">Q 3.3: How can I validate my submission directory?</h3> <h3 id="q-3.3-how-can-i-validate-my-submission-directory">Q 3.3: How can I validate my submission directory?</h3>
</div> </div>
</div>
<p>If you want to validate your submission directory manually, including but not <p>If you want to validate your submission directory manually, including but not
limited to the <code>.auth.json</code> or <code>.info.json</code> files, you should use <code>chkentry(1)</code> limited to the <code>.auth.json</code> and <code>.info.json</code> files, you should use <code>chkentry(1)</code>
from the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>.</p> from the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>.</p>
<p>The <code>chkentry(1)</code> tool runs a variety of checks on your submission directory, <p>The <code>chkentry(1)</code> tool runs a variety of checks on your submission directory,
including but not limited to, using the <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/man/man3/jparse.3">jparse including, but not limited to, using the <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/man/man3/jparse.3">jparse
API</a> API</a>
to validate the two IOCCC specific JSON files (as valid JSON) and additional to validate the two IOCCC specific JSON files (as valid JSON) and additional
checks on those files as well. An important thing that it does is verify that checks on those files as well. An important thing that it does is verify that
@@ -1768,12 +1789,14 @@ and
FAQ on “<a href="#info_json">.info.json</a>” FAQ on “<a href="#info_json">.info.json</a>”
for more details on the two required and very important JSON files.</p> for more details on the two required and very important JSON files.</p>
<p>The <code>chkentry(1)</code> tool accepts a single arg, a directory that <strong>MUST</strong> have the <p>The <code>chkentry(1)</code> tool accepts a single arg, a directory that <strong>MUST</strong> have the
two JSON files, <code>.auth.json</code> and <code>.info.json</code>. (Okay there is an option to skip two JSON files, <code>.auth.json</code> and <code>.info.json</code> as well as the <code>prog.c</code>,
files but this is for the judges <strong>ONLY</strong>; use of this option to validate your <code>Makefile</code> and <code>remarks.md</code> files along with all the other files listed in the
submission puts you at a great risk of violating <a href="next/rules.html#rule17">Rule <code>.info.json</code> manifest. (Okay there is an option to skip files but this is for
17</a>!).</p> the judges <strong>ONLY</strong>; use of this option to validate your submission puts you at
<p>As an example, if your submission directory is <code>12345678-1234-4321-abcd-1234567890ab-0/</code> then you should run the a great risk of violating <a href="next/rules.html#rule17">Rule 17</a>!).</p>
following command:</p> <p>As an example, if your submission directory is
<code>12345678-1234-4321-abcd-1234567890ab-0/</code> then you should run the following
command:</p>
<pre><code> chkentry 12345678-1234-4321-abcd-1234567890ab-0</code></pre> <pre><code> chkentry 12345678-1234-4321-abcd-1234567890ab-0</code></pre>
<p>If there is a <a href="https://www.json.org/json-en.html">JSON</a> issue detected by the <p>If there is a <a href="https://www.json.org/json-en.html">JSON</a> issue detected by the
<code>jparse(3)</code> API (i.e. it is not valid JSON) it is an error and <code>chkentry(1)</code> <code>jparse(3)</code> API (i.e. it is not valid JSON) it is an error and <code>chkentry(1)</code>
+67 -25
View File
@@ -1,6 +1,6 @@
# IOCCC FAQ Table of Contents # IOCCC FAQ Table of Contents
This is FAQ version **28.2.10 2025-02-26**. This is FAQ version **28.2.11 2025-02-27**.
## 0. [Entering the IOCCC: the bare minimum you need to know](#enter_questions) ## 0. [Entering the IOCCC: the bare minimum you need to know](#enter_questions)
@@ -9,7 +9,8 @@ This is FAQ version **28.2.10 2025-02-26**.
- **Q 0.1.1**: <a class="normal" href="#about_mkiocccentry">What is `mkiocccentry(1)` in simple terms?</a> - **Q 0.1.1**: <a class="normal" href="#about_mkiocccentry">What is `mkiocccentry(1)` in simple terms?</a>
- **Q 0.1.2**: <a class="normal" href="#obtaining_mkiocccentry">How do I obtain the latest mkiocccentry toolkit?</a> - **Q 0.1.2**: <a class="normal" href="#obtaining_mkiocccentry">How do I obtain the latest mkiocccentry toolkit?</a>
- **Q 0.1.3**: <a class="normal" href="#compiling_mkiocccentry">How do I compile the mkiocccentry toolkit?</a> - **Q 0.1.3**: <a class="normal" href="#compiling_mkiocccentry">How do I compile the mkiocccentry toolkit?</a>
- **Q 0.1.4**: <a class="normal" href="#using_mkiocccentry">How do I use mkiocccentry?</a> - **Q 0.1.4**: <a class="normal" href="#install">How do I install mkiocccentry(1) and related tools?</a>
- **Q 0.1.5**: <a class="normal" href="#using_mkiocccentry">How do I use mkiocccentry?</a>
- **Q 0.2**: <a class="normal" href="#platform">What platform should I assume for my submission?</a> - **Q 0.2**: <a class="normal" href="#platform">What platform should I assume for my submission?</a>
- **Q 0.3**: <a class="normal" href="#makefile">What should I put in my submission Makefile?</a> - **Q 0.3**: <a class="normal" href="#makefile">What should I put in my submission Makefile?</a>
- **Q 0.4**: <a class="normal" href="#remarks">What should I put in the remarks.md file of my submission?</a> - **Q 0.4**: <a class="normal" href="#remarks">What should I put in the remarks.md file of my submission?</a>
@@ -54,6 +55,7 @@ This is FAQ version **28.2.10 2025-02-26**.
- **Q 3.9**: <a class="normal" href="#entry_id_faq">What is an `entry_id`?</a> - **Q 3.9**: <a class="normal" href="#entry_id_faq">What is an `entry_id`?</a>
- **Q 3.10**: <a class="normal" href="#entry_json">What is a `.entry.json` file and how is it used?</a> - **Q 3.10**: <a class="normal" href="#entry_json">What is a `.entry.json` file and how is it used?</a>
- **Q 3.11**: <a class="normal" href="#jparse">How can I validate any JSON document?</a> - **Q 3.11**: <a class="normal" href="#jparse">How can I validate any JSON document?</a>
- **Q 3.12**: <a class="normal" href="#install">How can I install the `mkiocccentry(1)` and related tools?</a>
## 4. [Compiling IOCCC entries](#compiling) ## 4. [Compiling IOCCC entries](#compiling)
@@ -289,23 +291,66 @@ Once you've obtained the **LATEST** version (see the
FAQ on "[obtaining the latest mkiocccentry toolkit](#obtaining_mkiocccentry)" FAQ on "[obtaining the latest mkiocccentry toolkit](#obtaining_mkiocccentry)"
to make sure of this), change to the `mkiocccentry` directory and then run: to make sure of this), change to the `mkiocccentry` directory and then run:
``` <!---sh-->
make clobber all test
```
to compile all the tools and run the test-suite.
You do not have to run the test-suite but if you wish to make sure all is in
order you may. If you wish to skip that:
``` <!---sh--> ``` <!---sh-->
make clobber all make clobber all
``` ```
to compile all the tools.
Jump to: [top](#) Jump to: [top](#)
<div id="install">
### Q 0.1.4: How do I install mkiocccentry(1) and related tools?
</div>
After obtaining the toolkit (see the
FAQ on "[obtaining the latest mkiocccentry toolkit](#obtaining_mkiocccentry)")
and compiling the tools (see the
FAQ on "[compiling mkiocccentry](#compiling_mkiocccentry)"
above) run as either `sudo(8)` or root `make install`:
``` <!---sh-->
# if you use sudo(8):
sudo make install
# as root:
make install
```
If everything goes well you should be able to run `mkiocccentry(1)`,
`txzchk(1)`, `chkentry(1)` and all the other installed tools from any directory,
and the tools that rely on other tools will be able to find those required tools
from any directory too.
Some tools like `bug_report.sh` and `hostchk.sh` are not meant to be installed
and will not work from any directory, however.
Jump to: [top](#)
<div id="using_mkiocccentry"> <div id="using_mkiocccentry">
#### Q 0.1.4: How do I use mkiocccentry? #### Q 0.1.5: How do I use mkiocccentry?
</div> </div>
Once you have registered, you will need to package your entry with the Once you have registered, you will need to package your entry with the
`mkiocccentry` tool. If you have not already obtained the toolkit, see the `mkiocccentry` tool. If you have not already obtained the toolkit, see the
FAQ on "[obtaining the mkiocccentry toolkit](#obtaining_mkiocccentry)" FAQ on "[obtaining the most recent mkiocccentry
and the toolkit](#obtaining_mkiocccentry)",
the
FAQ on "[compiling mkiocccentry](#compiling_mkiocccentry)" FAQ on "[compiling mkiocccentry](#compiling_mkiocccentry)"
and the
FAQ on "[installing the mkiocccentry tools](#installing)"
if you have not already done so. if you have not already done so.
The below details discuss this very important tool. As it is complicated we will The below details discuss this very important tool. As it is complicated we will
@@ -332,15 +377,10 @@ particular [Rule 17](next/rules.html#rule17).
**IMPORTANT NOTE**: if you run the program outside the repo directory **IMPORTANT NOTE**: if you run the program outside the repo directory
(specifying the absolute or relative path to the tool) and you have not (specifying the absolute or relative path to the tool) and you have not
installed the tools then you will have to specify the options for the tools that installed the tools (and we **STRONGLY** recommend you **do** install them),
are required like `chkentry(1)`, `txzchk(1)` and `fnamchk(1)`. But even if you then you will have to specify the options for the tools that are required like
have installed them but some tools are out of date (in the install path) it will `chkentry(1)`, `txzchk(1)` and `fnamchk(1)`. And remember to make sure you have
cause problems. Additionally, if you do not have the most recent version when the latest version so you do not violate [Rule 17](next/rules.html#rule17).
submitting a tarball it will be rejected for not having the right versions of
the tools. This is why you **MUST** make sure you have the most recent version
of all the tools and you either run it from the repo directory itself OR you
install them (`make install` as via `sudo` or as root). We recommend you install
the tools but if you wish to run it from the repo directory you may.
If the **_subdirectory_ in the _work directory_** (based on your submit ID and If the **_subdirectory_ in the _work directory_** (based on your submit ID and
slot number) already exists, you will have to move it, remove it or otherwise slot number) already exists, you will have to move it, remove it or otherwise
@@ -1584,18 +1624,16 @@ for more information.
Jump to: [top](#) Jump to: [top](#)
<div id="validating_auth_info_json">
<div id="chkentry"> <div id="chkentry">
### Q 3.3: How can I validate my submission directory? ### Q 3.3: How can I validate my submission directory?
</div> </div>
</div>
If you want to validate your submission directory manually, including but not If you want to validate your submission directory manually, including but not
limited to the `.auth.json` or `.info.json` files, you should use `chkentry(1)` limited to the `.auth.json` and `.info.json` files, you should use `chkentry(1)`
from the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry). from the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry).
The `chkentry(1)` tool runs a variety of checks on your submission directory, The `chkentry(1)` tool runs a variety of checks on your submission directory,
including but not limited to, using the [jparse including, but not limited to, using the [jparse
API](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/man/man3/jparse.3) API](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/man/man3/jparse.3)
to validate the two IOCCC specific JSON files (as valid JSON) and additional to validate the two IOCCC specific JSON files (as valid JSON) and additional
checks on those files as well. An important thing that it does is verify that checks on those files as well. An important thing that it does is verify that
@@ -1616,13 +1654,15 @@ FAQ on "[.info.json](#info_json)"
for more details on the two required and very important JSON files. for more details on the two required and very important JSON files.
The `chkentry(1)` tool accepts a single arg, a directory that **MUST** have the The `chkentry(1)` tool accepts a single arg, a directory that **MUST** have the
two JSON files, `.auth.json` and `.info.json`. (Okay there is an option to skip two JSON files, `.auth.json` and `.info.json` as well as the `prog.c`,
files but this is for the judges **ONLY**; use of this option to validate your `Makefile` and `remarks.md` files along with all the other files listed in the
submission puts you at a great risk of violating [Rule `.info.json` manifest. (Okay there is an option to skip files but this is for
17](next/rules.html#rule17)!). the judges **ONLY**; use of this option to validate your submission puts you at
a great risk of violating [Rule 17](next/rules.html#rule17)!).
As an example, if your submission directory is `12345678-1234-4321-abcd-1234567890ab-0/` then you should run the As an example, if your submission directory is
following command: `12345678-1234-4321-abcd-1234567890ab-0/` then you should run the following
command:
``` <!---sh--> ``` <!---sh-->
@@ -3557,6 +3597,7 @@ something along those lines.
Jump to: [top](#) Jump to: [top](#)
<div id="validating_json"> <div id="validating_json">
<div id="jparse"> <div id="jparse">
### Q 3.11: How can I validate any JSON document? ### Q 3.11: How can I validate any JSON document?
@@ -3612,6 +3653,7 @@ as the two can be different at times.
Jump to: [top](#) Jump to: [top](#)
<hr style="width:50%;text-align:left;margin-left:0"> <hr style="width:50%;text-align:left;margin-left:0">
<hr style="width:50%;text-align:left;margin-left:0"> <hr style="width:50%;text-align:left;margin-left:0">
+74 -62
View File
@@ -462,7 +462,7 @@ writing by <a href="../contact.html">contacting the judges</a>.</p>
</div> </div>
</div> </div>
<p class="leftbar"> <p class="leftbar">
These <a href="guidelines.html">IOCCC guidelines</a> are version <strong>28.39 2025-02-26</strong>. These <a href="guidelines.html">IOCCC guidelines</a> are version <strong>28.40 2025-02-27</strong>.
</p> </p>
<p class="leftbar"> <p class="leftbar">
The markdown form of these guidelines <a href="guidelines.md" The markdown form of these guidelines <a href="guidelines.md"
@@ -613,15 +613,19 @@ normal mode.
<p class="leftbar"> <p class="leftbar">
<strong>IMPORTANT NOTE</strong>: if you run the program outside the repo directory <strong>IMPORTANT NOTE</strong>: if you run the program outside the repo directory
(specifying the absolute or relative path to the tool) and you have not (specifying the absolute or relative path to the tool) and you have not
installed the tools then you will have to specify the options for the tools that installed the tools (and we <strong>STRONGLY</strong> recommend you <strong>do</strong> install them),
are required like <code>chkentry(1)</code>, <code>txzchk(1)</code> and <code>fnamchk(1)</code>. But even if you then you will have to specify the options for the tools that are required like
have installed them but some tools are out of date (in the install path) it will <code>chkentry(1)</code>, <code>txzchk(1)</code> and <code>fnamchk(1)</code>. And remember to make sure you have
cause problems. Additionally, if you do not have the most recent version when the latest version so you do not violate <a href="rules.html#rule17">Rule 17</a>.
submitting a tarball it will be rejected for not having the right versions of See the
the tools. This is why you <strong>MUST</strong> make sure you have the most recent version FAQ on “<a href="../faq.html#obtaining_mkiocccentry">obtaining the latest mkiocccentry tools</a>”,
of all the tools and you either run it from the repo directory itself OR you the
install them (<code>make install</code> as via <code>sudo</code> or as root). We recommend you install FAQ on “<a href="../faq.html#compiling_mkiocccentry">compiling the mkiocccentry tools</a>”,
the tools but if you wish to run it from the repo directory you may. the
FAQ on “<a href="../faq.html#installing">installing the mkiocccentry tools</a>”
and the
FAQ on “<a href="../faq.html#using_mkiocccentry">using the mkiocccentry tools</a>”
for more help.
</p> </p>
<p class="leftbar"> <p class="leftbar">
<a href="rules.html#rule17">Rule 17</a> has been <strong>significantly modified</strong> <a href="rules.html#rule17">Rule 17</a> has been <strong>significantly modified</strong>
@@ -858,9 +862,10 @@ its algorithm.
<p class="leftbar"> <p class="leftbar">
If <code>mkiocccentry</code> encounters an <strong>error</strong> the program will exit and the xz If <code>mkiocccentry</code> encounters an <strong>error</strong> the program will exit and the xz
compressed tarball <strong>will not be formed</strong>. For instance, if compressed tarball <strong>will not be formed</strong>. For instance, if
<a href="#chkentry">chkentry</a> fails to validate the <code>.auth.json</code> or <code>.info.json</code> <a href="#chkentry">chkentry</a> fails to validate the submission directory, either because
<a href="https://www.json.org/json-en.html">JSON</a> files (see below) that of a validation error in the <code>.auth.json</code> or <code>.info.json</code>
<code>mkiocccentry(1)</code> creates, or anything else <code>mkiocccentry(1)</code> does, it is an <a href="https://www.json.org/json-en.html">JSON</a> files or because of
something else that <code>mkiocccentry(1)</code> creates or does, it is an
<strong>error</strong> and <strong>possibly</strong> a bug that you should <a href="https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&amp;labels=bug&amp;projects=&amp;template=bug_report.yml&amp;title=%5BBug%5D+%3Ctitle%3E">report as a bug at the <strong>error</strong> and <strong>possibly</strong> a bug that you should <a href="https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&amp;labels=bug&amp;projects=&amp;template=bug_report.yml&amp;title=%5BBug%5D+%3Ctitle%3E">report as a bug at the
mkiocccentry bug report mkiocccentry bug report
page</a>. page</a>.
@@ -931,7 +936,17 @@ checks described above are still made but through <code>mkiocccentry</code> itse
<p class="leftbar"> <p class="leftbar">
<code>mkiocccentry(1)</code> will write two JSON files: <code>.auth.json</code> and <code>mkiocccentry(1)</code> will write two JSON files: <code>.auth.json</code> and
<code>.info.json</code>. These files contain information about the author(s) and about the <code>.info.json</code>. These files contain information about the author(s) and about the
submission. These files <strong>MUST</strong> pass the checks of <code>chkentry(1)</code>! submission. After these files are formed, the <code>chkentry(1)</code> tool will be run on
the submission directory; this tool not only validates the two JSON files
(running specific checks on them after validating the JSON), but it also
verifies that what is in the manifest in <code>.info.json</code> matches the contents of
the directory, in addition to other checks. If <code>chkentry(1)</code> fails to validate
anything at all, your submission <strong>WILL BE</strong> rejected!
</p>
<p class="leftbar">
<strong>IMPORTANT</strong>: although <code>chkentry(1)</code> validates the files in the directory, it
only inspects the contents of the two JSON files; it performs other checks on
the other files, and those checks are run on the two JSON files as well.
</p> </p>
<p class="leftbar"> <p class="leftbar">
If <code>chkentry</code> does not pass and you used <code>mkiocccentry(1)</code> it is <strong>very likely</strong> a If <code>chkentry</code> does not pass and you used <code>mkiocccentry(1)</code> it is <strong>very likely</strong> a
@@ -941,26 +956,21 @@ page</a>.
</p> </p>
<pre><code> make bug_report</code></pre> <pre><code> make bug_report</code></pre>
<p class="leftbar"> <p class="leftbar">
from the top level repo directory itself. from the top level repo directory itself and attach the bug report file (it will
See also the tell you the name of the file). See also the
FAQ on “<a href="../faq.html#mkiocccentry_bugs">reporting mkiocccentry bugs</a>”. FAQ on “<a href="../faq.html#mkiocccentry_bugs">reporting mkiocccentry bugs</a>”.
</p> </p>
<p class="leftbar"> <p class="leftbar">
Assuming that <code>chkentry(1)</code> successfully validates both <code>.auth.json</code> and Assuming that <code>chkentry(1)</code> successfully validates your submission directory,
<code>.info.json</code>, then the tarball will be formed and then <code>txzchk(1)</code> will be the tarball will be formed and then <code>txzchk(1)</code> will be executed on it. In this
executed on it. In this case, there should be no problems, as <code>mkiocccentry(1)</code> should case, there should be no problems, as <code>mkiocccentry(1)</code> should <strong>NOT</strong> form a
<strong>NOT</strong> form a tarball if there are any issues. tarball if there are any issues.
</p>
<p class="leftbar">
<strong>NOTE</strong>: <code>chkentry(1)</code> also validates other things in your submission
directory.
</p> </p>
<p class="leftbar"> <p class="leftbar">
If <code>mkiocccentry(1)</code> is used and <code>chkentry(1)</code> fails to validate your submission If <code>mkiocccentry(1)</code> is used and <code>chkentry(1)</code> fails to validate your submission
directory, then unless it is a system specific problem, it could be a bug in directory, then unless it is a system specific problem, it could be a bug in
<code>mkiocccentry(1)</code>, <code>chkentry(1)</code> or possibly <code>jparse</code>, though this is quite <code>mkiocccentry(1)</code>, <code>chkentry(1)</code> or possibly <code>jparse</code>, although this is unlikely.
unlikely. Nonetheless, if you believe there is a bug, you may report it as Nonetheless, if you believe there is a bug, you may report it as explained above.
explained above.
</p> </p>
<p class="leftbar"> <p class="leftbar">
If you want to know what <code>.auth.json</code> is, see the If you want to know what <code>.auth.json</code> is, see the
@@ -983,13 +993,12 @@ jparse</a>, for more
details. details.
</p> </p>
<p class="leftbar"> <p class="leftbar">
The <code>jparse</code> parser, library and tools were co-developed by The <code>jparse</code> parser, library and tools were co-developed by <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone
<a href="../authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a> and Ferguson</a> and <a href="http://www.isthe.com/chongo/index.html">Landon Curt
<a href="http://www.isthe.com/chongo/index.html">Landon Curt Noll</a> in 2022 and come Noll</a> in 2022-2025 and come from the
from the <a href="https://github.com/xexyl/jparse">jparse repo</a>. However, the <a href="https://github.com/xexyl/jparse">jparse repo</a>. However, the <strong>mkiocccentry
<strong>mkiocccentry tools use a <em>clone</em></strong> of the <a href="https://github.com/xexyl/jparse">jparse tools use a <em>clone</em></strong> of the <a href="https://github.com/xexyl/jparse">jparse repo</a> <strong>at
repo</a> <strong>at a <em>specific</em> release</strong>. a <em>specific</em> release</strong>. Thus the <code>mkiocccentry</code> will at times be behind the
Thus the <code>mkiocccentry</code> will at times be behind the
<a href="https://github.com/xexyl/jparse">jparse repo</a>! <a href="https://github.com/xexyl/jparse">jparse repo</a>!
</p> </p>
<p class="leftbar"> <p class="leftbar">
@@ -1017,10 +1026,8 @@ make sure that you’re using the correct versions, which is also verified by
</p> </p>
<p class="leftbar"> <p class="leftbar">
Please see the Please see the
FAQ on “<a href="../faq.html#chkentry">validating .auth.json and/or .info.json files</a> FAQ on “<a href="../faq.html#chkentry">validating your submission directory</a>
for more details on <code>chkentry</code> and how you can use it to validate your for more details on <code>chkentry</code>.
<code>.auth.json</code> and <code>.info.json</code> files (and your submission directory in general)
manually, without having to repackage your submission.
</p> </p>
<p class="leftbar"> <p class="leftbar">
You might also wish to see the You might also wish to see the
@@ -1944,46 +1951,51 @@ some Intel-like x86 architecture**.
The IOCCC size tool source is not an original work, unless you are <a href="../authors.html#Anthony_C_Howe">Anthony C The IOCCC size tool source is not an original work, unless you are <a href="../authors.html#Anthony_C_Howe">Anthony C
Howe</a>, in which case it is original! :-) Howe</a>, in which case it is original! :-)
Submitting source code that uses the content of Submitting source code that uses the content of
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c">iocccsize.c</a>, unless you are <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c">iocccsize.c</a>,
<a href="../authors.html#Anthony_C_Howe">Anthony C Howe</a>, might run the risk of <em>unless</em> you are <a href="../authors.html#Anthony_C_Howe">Anthony C Howe</a>, might run the
violating <a href="rules.html#rule7">Rule 7</a>. risk of violating <a href="rules.html#rule7">Rule 7</a>.
</p> </p>
<p class="leftbar"> <p class="leftbar">
The <code>txzchk(1)</code> tool source is not an original work, The IOCCC submission tarball validator source is not an original work,
unless you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a>, in unless you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a>, in
which case it is original! :-) Submitting source code that uses the contents of which case it is original! :-) Submitting source code that uses the contents of
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c">txzchk.c</a>, <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c">txzchk.c</a>,
unless you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a>, might <em>unless</em> you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a>, might
run the risk of violating <a href="rules.html#rule7">Rule 7</a>. run the risk of violating <a href="rules.html#rule7">Rule 7</a>.
</p> </p>
<p class="leftbar"> <p class="leftbar">
Neither the <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/chkentry.c">chkentry tool In addition to the above tools, none of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
source</a> nor tools</a>, <em>including, <strong>but not
the <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/README.md">JSON parser and limited</strong></em> to
library</a> <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/mkiocccentry.c">mkiocccentry</a>,
nor <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/chkentry.c">chkentry</a>,
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/jstrencode.c">jstrencode</a> <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/test_ioccc/fnamchk.c">fnamchk</a>
nor and
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/location_main.c">location</a>,
nor the <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/README.md">JSON parser and
library</a>,
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/jstrencode.c">jstrencode</a>,
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/jstrdecode.c">jstrdecode</a> <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/jstrdecode.c">jstrdecode</a>
nor any of the other <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/jparse">jparse or any of the other <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/jparse">jparse
tools</a> tools</a>
(see the <a href="https://github.com/xexyl/jparse/">jparse repo</a>), nor the <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/test_ioccc/fnamchk.c">fnamchk tool (see the <a href="https://github.com/xexyl/jparse/">jparse repo</a>), are original works,
source</a>,
are original works,
unless you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a> or unless you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a> or
<a href="http://www.isthe.com/chongo/index.html">Landon Curt Noll</a>, in which case they <a href="http://www.isthe.com/chongo/index.html">Landon Curt Noll</a>, in which case they
are original! :-) Submitting source code that uses the code of any of these tools or are original! :-) Submitting source code that uses the content of any of these tools or
library, unless you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone library, <em>unless</em> you are <a href="../authors.html#Cody_Boone_Ferguson">Cody Boone
Ferguson</a> or <a href="http://www.isthe.com/chongo/index.html">Landon Curt Ferguson</a> or <a href="http://www.isthe.com/chongo/index.html">Landon Curt
Noll</a>, might run the risk of violating Noll</a>, might run the risk of violating
<a href="rules.html#rule7">Rule 7</a>. <a href="rules.html#rule7">Rule 7</a>.
</p> </p>
<p class="leftbar"> <p class="leftbar">
Unless you are <a href="http://www.isthe.com/chongo/index.html">Landon Curt Noll</a>, the And unless you are <a href="http://www.isthe.com/chongo/index.html">Landon Curt Noll</a>,
remaining tools in the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a> the code in
are <strong>NOT</strong> original works. Submitting source code that uses the content of those tools, <a href="https://github.com/ioccc-src/mkiocccentry/tree/master/dbg">dbg</a> and
unless you are <a href="http://www.isthe.com/chongo/index.html">Landon Curt Noll</a>, might <a href="https://github.com/ioccc-src/mkiocccentry/tree/master/dyn_array">dyn_array</a> are
run the risk of violating <a href="rules.html#rule7">Rule 7</a>. not original works. Submitting source code that uses the content of those
libraries, <em>unless</em> you <a href="http://www.isthe.com/chongo/index.html">Landon Curt
Noll</a>, might run the risk of violating
<a href="rules.html#rule7">Rule 7</a>.
</p> </p>
<p class="leftbar"> <p class="leftbar">
<a href="rules.html#rule7">Rule 7</a> does not prohibit you from writing your own <a href="rules.html#rule7">Rule 7</a> does not prohibit you from writing your own
@@ -1999,7 +2011,7 @@ mind that writing an obfuscated version of a library runs the risk of violating
<p class="leftbar"> <p class="leftbar">
Even so, we do not recommend you try and submit a JSON parser due to Even so, we do not recommend you try and submit a JSON parser due to
the fact it will likely exceed <a href="rules.html#rule2">the source code size limit</a> the fact it will likely exceed <a href="rules.html#rule2">the source code size limit</a>
and because you likely can’t beat <a href="https://github.com/westes/flex">flex</a> or and because you likely can’t beat <a href="https://github.com/westes/flex">flex</a> and
<a href="https://www.gnu.org/software/bison/">bison</a> in obfuscation. This isn’t to <a href="https://www.gnu.org/software/bison/">bison</a> in obfuscation. This isn’t to
say that <a href="https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec">the so-called JSON spec</a> is not say that <a href="https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec">the so-called JSON spec</a> is not
obfuscated, but unless you have some really clever way to compact and obfuscated, but unless you have some really clever way to compact and
+75 -64
View File
@@ -50,7 +50,7 @@ Jump to: [top](#)
</div> </div>
<p class="leftbar"> <p class="leftbar">
These [IOCCC guidelines](guidelines.html) are version **28.39 2025-02-26**. These [IOCCC guidelines](guidelines.html) are version **28.40 2025-02-27**.
</p> </p>
<p class="leftbar"> <p class="leftbar">
@@ -238,15 +238,19 @@ normal mode.
<p class="leftbar"> <p class="leftbar">
**IMPORTANT NOTE**: if you run the program outside the repo directory **IMPORTANT NOTE**: if you run the program outside the repo directory
(specifying the absolute or relative path to the tool) and you have not (specifying the absolute or relative path to the tool) and you have not
installed the tools then you will have to specify the options for the tools that installed the tools (and we **STRONGLY** recommend you **do** install them),
are required like `chkentry(1)`, `txzchk(1)` and `fnamchk(1)`. But even if you then you will have to specify the options for the tools that are required like
have installed them but some tools are out of date (in the install path) it will `chkentry(1)`, `txzchk(1)` and `fnamchk(1)`. And remember to make sure you have
cause problems. Additionally, if you do not have the most recent version when the latest version so you do not violate [Rule 17](rules.html#rule17).
submitting a tarball it will be rejected for not having the right versions of See the
the tools. This is why you **MUST** make sure you have the most recent version FAQ on "[obtaining the latest mkiocccentry tools](../faq.html#obtaining_mkiocccentry)",
of all the tools and you either run it from the repo directory itself OR you the
install them (`make install` as via `sudo` or as root). We recommend you install FAQ on "[compiling the mkiocccentry tools](../faq.html#compiling_mkiocccentry)",
the tools but if you wish to run it from the repo directory you may. the
FAQ on "[installing the mkiocccentry tools](../faq.html#installing)"
and the
FAQ on "[using the mkiocccentry tools](../faq.html#using_mkiocccentry)"
for more help.
</p> </p>
<p class="leftbar"> <p class="leftbar">
@@ -535,9 +539,10 @@ its algorithm.
<p class="leftbar"> <p class="leftbar">
If `mkiocccentry` encounters an **error** the program will exit and the xz If `mkiocccentry` encounters an **error** the program will exit and the xz
compressed tarball **will not be formed**. For instance, if compressed tarball **will not be formed**. For instance, if
[chkentry](#chkentry) fails to validate the `.auth.json` or `.info.json` [chkentry](#chkentry) fails to validate the submission directory, either because
[JSON](https://www.json.org/json-en.html) files (see below) that of a validation error in the `.auth.json` or `.info.json`
`mkiocccentry(1)` creates, or anything else `mkiocccentry(1)` does, it is an [JSON](https://www.json.org/json-en.html) files or because of
something else that `mkiocccentry(1)` creates or does, it is an
**error** and **possibly** a bug that you should [report as a bug at the **error** and **possibly** a bug that you should [report as a bug at the
mkiocccentry bug report mkiocccentry bug report
page](https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E). page](https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E).
@@ -632,7 +637,18 @@ Jump to: [top](#)
<p class="leftbar">`mkiocccentry(1)` will write two JSON files: `.auth.json` and <p class="leftbar">`mkiocccentry(1)` will write two JSON files: `.auth.json` and
`.info.json`. These files contain information about the author(s) and about the `.info.json`. These files contain information about the author(s) and about the
submission. These files **MUST** pass the checks of `chkentry(1)`! submission. After these files are formed, the `chkentry(1)` tool will be run on
the submission directory; this tool not only validates the two JSON files
(running specific checks on them after validating the JSON), but it also
verifies that what is in the manifest in `.info.json` matches the contents of
the directory, in addition to other checks. If `chkentry(1)` fails to validate
anything at all, your submission **WILL BE** rejected!
</p>
<p class="leftbar">
**IMPORTANT**: although `chkentry(1)` validates the files in the directory, it
only inspects the contents of the two JSON files; it performs other checks on
the other files, and those checks are run on the two JSON files as well.
</p> </p>
<p class="leftbar"> <p class="leftbar">
@@ -647,29 +663,23 @@ page](https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug
``` ```
<p class="leftbar"> <p class="leftbar">
from the top level repo directory itself. from the top level repo directory itself and attach the bug report file (it will
See also the tell you the name of the file). See also the
FAQ on "[reporting mkiocccentry bugs](../faq.html#mkiocccentry_bugs)". FAQ on "[reporting mkiocccentry bugs](../faq.html#mkiocccentry_bugs)".
</p> </p>
<p class="leftbar"> <p class="leftbar">
Assuming that `chkentry(1)` successfully validates both `.auth.json` and Assuming that `chkentry(1)` successfully validates your submission directory,
`.info.json`, then the tarball will be formed and then `txzchk(1)` will be the tarball will be formed and then `txzchk(1)` will be executed on it. In this
executed on it. In this case, there should be no problems, as `mkiocccentry(1)` should case, there should be no problems, as `mkiocccentry(1)` should **NOT** form a
**NOT** form a tarball if there are any issues. tarball if there are any issues.
</p>
<p class="leftbar">
**NOTE**: `chkentry(1)` also validates other things in your submission
directory.
</p> </p>
<p class="leftbar"> <p class="leftbar">
If `mkiocccentry(1)` is used and `chkentry(1)` fails to validate your submission If `mkiocccentry(1)` is used and `chkentry(1)` fails to validate your submission
directory, then unless it is a system specific problem, it could be a bug in directory, then unless it is a system specific problem, it could be a bug in
`mkiocccentry(1)`, `chkentry(1)` or possibly `jparse`, though this is quite `mkiocccentry(1)`, `chkentry(1)` or possibly `jparse`, although this is unlikely.
unlikely. Nonetheless, if you believe there is a bug, you may report it as Nonetheless, if you believe there is a bug, you may report it as explained above.
explained above.
</p> </p>
<p class="leftbar"> <p class="leftbar">
@@ -695,13 +705,12 @@ details.
</p> </p>
<p class="leftbar"> <p class="leftbar">
The `jparse` parser, library and tools were co-developed by The `jparse` parser, library and tools were co-developed by [Cody Boone
[Cody Boone Ferguson](../authors.html#Cody_Boone_Ferguson) and Ferguson](../authors.html#Cody_Boone_Ferguson) and [Landon Curt
[Landon Curt Noll](http://www.isthe.com/chongo/index.html) in 2022 and come Noll](http://www.isthe.com/chongo/index.html) in 2022-2025 and come from the
from the [jparse repo](https://github.com/xexyl/jparse). However, the [jparse repo](https://github.com/xexyl/jparse). However, the **mkiocccentry
**mkiocccentry tools use a _clone_** of the [jparse tools use a _clone_** of the [jparse repo](https://github.com/xexyl/jparse) **at
repo](https://github.com/xexyl/jparse) **at a _specific_ release**. a _specific_ release**. Thus the `mkiocccentry` will at times be behind the
Thus the `mkiocccentry` will at times be behind the
[jparse repo](https://github.com/xexyl/jparse)! [jparse repo](https://github.com/xexyl/jparse)!
</p> </p>
@@ -733,10 +742,8 @@ make sure that you're using the correct versions, which is also verified by
<p class="leftbar"> <p class="leftbar">
Please see the Please see the
FAQ on "[validating .auth.json and/or .info.json files](../faq.html#chkentry) FAQ on "[validating your submission directory](../faq.html#chkentry)
for more details on `chkentry` and how you can use it to validate your for more details on `chkentry`.
`.auth.json` and `.info.json` files (and your submission directory in general)
manually, without having to repackage your submission.
</p> </p>
<p class="leftbar"> <p class="leftbar">
@@ -1883,47 +1890,51 @@ We believe that Mark Twain's quote:
The IOCCC size tool source is not an original work, unless you are [Anthony C The IOCCC size tool source is not an original work, unless you are [Anthony C
Howe](../authors.html#Anthony_C_Howe), in which case it is original! :-) Howe](../authors.html#Anthony_C_Howe), in which case it is original! :-)
Submitting source code that uses the content of Submitting source code that uses the content of
[iocccsize.c](https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c), unless you are [iocccsize.c](https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c),
[Anthony C Howe](../authors.html#Anthony_C_Howe), might run the risk of _unless_ you are [Anthony C Howe](../authors.html#Anthony_C_Howe), might run the
violating [Rule 7](rules.html#rule7). risk of violating [Rule 7](rules.html#rule7).
</p> </p>
<p class="leftbar"> The `txzchk(1)` tool source is not an original work, <p class="leftbar"> The IOCCC submission tarball validator source is not an original work,
unless you are [Cody Boone Ferguson](../authors.html#Cody_Boone_Ferguson), in unless you are [Cody Boone Ferguson](../authors.html#Cody_Boone_Ferguson), in
which case it is original! :-) Submitting source code that uses the contents of which case it is original! :-) Submitting source code that uses the contents of
[txzchk.c](https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c), [txzchk.c](https://github.com/ioccc-src/mkiocccentry/blob/master/txzchk.c),
unless you are [Cody Boone Ferguson](../authors.html#Cody_Boone_Ferguson), might _unless_ you are [Cody Boone Ferguson](../authors.html#Cody_Boone_Ferguson), might
run the risk of violating [Rule 7](rules.html#rule7).</p> run the risk of violating [Rule 7](rules.html#rule7).</p>
<p class="leftbar"> <p class="leftbar">
Neither the [chkentry tool In addition to the above tools, none of the [mkiocccentry
source](https://github.com/ioccc-src/mkiocccentry/blob/master/chkentry.c) nor tools](https://github.com/ioccc-src/mkiocccentry), _including, **but not
the [JSON parser and limited**_ to
library](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/README.md) [mkiocccentry](https://github.com/ioccc-src/mkiocccentry/blob/master/mkiocccentry.c),
nor [chkentry](https://github.com/ioccc-src/mkiocccentry/blob/master/chkentry.c),
[jstrencode](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/jstrencode.c) [fnamchk](https://github.com/ioccc-src/mkiocccentry/blob/master/test_ioccc/fnamchk.c)
nor and
[location](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/location_main.c),
nor the [JSON parser and
library](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/README.md),
[jstrencode](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/jstrencode.c),
[jstrdecode](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/jstrdecode.c) [jstrdecode](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/jstrdecode.c)
nor any of the other [jparse or any of the other [jparse
tools](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse) tools](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse)
(see the [jparse repo](https://github.com/xexyl/jparse/)), nor the [fnamchk tool (see the [jparse repo](https://github.com/xexyl/jparse/)), are original works,
source](https://github.com/ioccc-src/mkiocccentry/blob/master/test_ioccc/fnamchk.c),
are original works,
unless you are [Cody Boone Ferguson](../authors.html#Cody_Boone_Ferguson) or unless you are [Cody Boone Ferguson](../authors.html#Cody_Boone_Ferguson) or
[Landon Curt Noll](http://www.isthe.com/chongo/index.html), in which case they [Landon Curt Noll](http://www.isthe.com/chongo/index.html), in which case they
are original! :-) Submitting source code that uses the code of any of these tools or are original! :-) Submitting source code that uses the content of any of these tools or
library, unless you are [Cody Boone library, _unless_ you are [Cody Boone
Ferguson](../authors.html#Cody_Boone_Ferguson) or [Landon Curt Ferguson](../authors.html#Cody_Boone_Ferguson) or [Landon Curt
Noll](http://www.isthe.com/chongo/index.html), might run the risk of violating Noll](http://www.isthe.com/chongo/index.html), might run the risk of violating
[Rule 7](rules.html#rule7).</p> [Rule 7](rules.html#rule7).</p>
<p class="leftbar"> <p class="leftbar">
Unless you are [Landon Curt Noll](http://www.isthe.com/chongo/index.html), the And unless you are [Landon Curt Noll](http://www.isthe.com/chongo/index.html),
remaining tools in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry) the code in
are **NOT** original works. Submitting source code that uses the content of those tools, [dbg](https://github.com/ioccc-src/mkiocccentry/tree/master/dbg) and
unless you are [Landon Curt Noll](http://www.isthe.com/chongo/index.html), might [dyn_array](https://github.com/ioccc-src/mkiocccentry/tree/master/dyn_array) are
run the risk of violating [Rule 7](rules.html#rule7). not original works. Submitting source code that uses the content of those
</p> libraries, _unless_ you [Landon Curt
Noll](http://www.isthe.com/chongo/index.html), might run the risk of violating
[Rule 7](rules.html#rule7).</p>
<p class="leftbar"> <p class="leftbar">
[Rule 7](rules.html#rule7) does not prohibit you from writing your own [Rule 7](rules.html#rule7) does not prohibit you from writing your own
@@ -1940,7 +1951,7 @@ mind that writing an obfuscated version of a library runs the risk of violating
<p class="leftbar"> <p class="leftbar">
Even so, we do not recommend you try and submit a JSON parser due to Even so, we do not recommend you try and submit a JSON parser due to
the fact it will likely exceed [the source code size limit](rules.html#rule2) the fact it will likely exceed [the source code size limit](rules.html#rule2)
and because you likely can't beat [flex](https://github.com/westes/flex) or and because you likely can't beat [flex](https://github.com/westes/flex) and
[bison](https://www.gnu.org/software/bison/) in obfuscation. This isn't to [bison](https://www.gnu.org/software/bison/) in obfuscation. This isn't to
say that [the so-called JSON spec](https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec) is not say that [the so-called JSON spec](https://github.com/xexyl/jparse/blob/master/json_README.md#so-called-json-spec) is not
obfuscated, but unless you have some really clever way to compact and obfuscated, but unless you have some really clever way to compact and
+29 -29
View File
@@ -424,6 +424,7 @@
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh --> <!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- BEFORE: 1st line of markdown file: quick-start.md --> <!-- BEFORE: 1st line of markdown file: quick-start.md -->
<p>This is quick start guide is version <strong>28.0.0 2025-02-27</strong>.</p>
<div id="enter_questions"> <div id="enter_questions">
<div id="enter"> <div id="enter">
<h1 id="entering-the-ioccc-the-bare-minimum-you-need-to-know">Entering the IOCCC: the bare minimum you need to know</h1> <h1 id="entering-the-ioccc-the-bare-minimum-you-need-to-know">Entering the IOCCC: the bare minimum you need to know</h1>
@@ -431,7 +432,7 @@
</div> </div>
<p>To submit your code to the IOCCC, you <strong>MUST</strong> follow these steps:</p> <p>To submit your code to the IOCCC, you <strong>MUST</strong> follow these steps:</p>
<div id="step_0"> <div id="step_0">
<h4 id="verify-that-the-ioccc-is-pending-or-open-for-submissions">0. Verify that the IOCCC is pending or open for submissions</h4> <h2 id="verify-that-the-ioccc-is-pending-or-open-for-submissions">0. Verify that the IOCCC is pending or open for submissions</h2>
</div> </div>
<p>First, check the “<strong><a href="status.html">current status of the IOCCC</a></strong>” page to see current contest status. <p>First, check the “<strong><a href="status.html">current status of the IOCCC</a></strong>” page to see current contest status.
You may <strong>only register for the IOCCC when the IOCCC is either <a href="status.html#pending">pending</a> You may <strong>only register for the IOCCC when the IOCCC is either <a href="status.html#pending">pending</a>
@@ -439,7 +440,7 @@ or <a href="status.html#open">open</a></strong>.</p>
<p>You may <strong>only submit your entries to the IOCCC when the IOCCC is <a href="status.html#open">open</a></strong>.</p> <p>You may <strong>only submit your entries to the IOCCC when the IOCCC is <a href="status.html#open">open</a></strong>.</p>
<p>See also the <a href="news.html#news">IOCCC news</a> for more information.</p> <p>See also the <a href="news.html#news">IOCCC news</a> for more information.</p>
<div id="step_1"> <div id="step_1">
<h4 id="read-the-latest-ioccc-rules-and-review-the-ioccc-guidelines">1. Read the latest IOCCC rules and review the IOCCC guidelines</h4> <h2 id="read-the-latest-ioccc-rules-and-review-the-ioccc-guidelines">1. Read the latest IOCCC rules and review the IOCCC guidelines</h2>
</div> </div>
<p>Please pay close attention to the <a href="next/rules.html">official IOCCC rules</a>.</p> <p>Please pay close attention to the <a href="next/rules.html">official IOCCC rules</a>.</p>
<p>You are also <strong>highly encouraged</strong> to review the <p>You are also <strong>highly encouraged</strong> to review the
@@ -447,7 +448,7 @@ or <a href="status.html#open">open</a></strong>.</p>
suggestions, useful hints, and IOCCC humor. :-)</p> suggestions, useful hints, and IOCCC humor. :-)</p>
<div id="step_2"> <div id="step_2">
<div id="register"> <div id="register">
<h4 id="register-for-the-ioccc">2. Register for the IOCCC</h4> <h2 id="register-for-the-ioccc">2. Register for the IOCCC</h2>
</div> </div>
</div> </div>
<p><strong>IMPORTANT</strong>: You may <strong>only register for the IOCCC when the IOCCC is either <a href="status.html#pending">pending</a> <p><strong>IMPORTANT</strong>: You may <strong>only register for the IOCCC when the IOCCC is either <a href="status.html#pending">pending</a>
@@ -455,7 +456,7 @@ or <a href="status.html#open">open</a></strong>. See “<strong><a href="status.
<p>If the contest is <a href="status.html#pending">pending</a> or <a href="status.html#open">open</a>, <p>If the contest is <a href="status.html#pending">pending</a> or <a href="status.html#open">open</a>,
then follow the directions on “<strong><a href="next/register.html">how to register for the IOCCC</a></strong>”.</p> then follow the directions on “<strong><a href="next/register.html">how to register for the IOCCC</a></strong>”.</p>
<div id="step_3"> <div id="step_3">
<h4 id="wait-for-your-submit-server-username-and-initial-password">3. Wait for your submit server username and initial password</h4> <h2 id="wait-for-your-submit-server-username-and-initial-password">3. Wait for your submit server username and initial password</h2>
</div> </div>
<p>Once you have <a href="next/register.html">registered for the IOCCC</a>, <p>Once you have <a href="next/register.html">registered for the IOCCC</a>,
and once the contest is <strong><a href="status.html#open">OPEN</a></strong>, one of the and once the contest is <strong><a href="status.html#open">OPEN</a></strong>, one of the
@@ -477,7 +478,7 @@ password</strong>, and the <strong>CONTEST IS <a href="status.html#open">OPEN</a
have you checked your spam folder, <a href="contact.html">Contact the IOCCC</a> have you checked your spam folder, <a href="contact.html">Contact the IOCCC</a>
for assistance.</p> for assistance.</p>
<div id="step_4"> <div id="step_4">
<h4 id="login-to-the-submit-server-and-change-your-password">4. Login to the submit server and change your password</h4> <h2 id="login-to-the-submit-server-and-change-your-password">4. Login to the submit server and change your password</h2>
</div> </div>
<p>Using the <strong>Username</strong> and <strong>Initial password</strong> you receive via email in <p>Using the <strong>Username</strong> and <strong>Initial password</strong> you receive via email in
<a href="#step_3">step 3</a>, you need to login to the <a href="https://submit.ioccc.org">IOCCC submit server</a>.</p> <a href="#step_3">step 3</a>, you need to login to the <a href="https://submit.ioccc.org">IOCCC submit server</a>.</p>
@@ -487,7 +488,7 @@ from when one of the <a href="judges.html">IOCCC judges</a> sent that email.</p>
is only ready for submissions <strong>ONLY WHEN THE CONTEST IS <a href="status.html#open">open</a></strong>.</p> is only ready for submissions <strong>ONLY WHEN THE CONTEST IS <a href="status.html#open">open</a></strong>.</p>
<p>Please visit the “<strong><a href="next/pw-change.html">change your submit server initial password</a></strong>” page for detailed instructions.</p> <p>Please visit the “<strong><a href="next/pw-change.html">change your submit server initial password</a></strong>” page for detailed instructions.</p>
<div id="step_5"> <div id="step_5">
<h4 id="obtain-and-compile-the-latest-mkiocccentry-toolkit">5. Obtain and compile the latest mkiocccentry toolkit</h4> <h2 id="obtain-and-compile-the-latest-mkiocccentry-toolkit">5. Obtain and compile the latest mkiocccentry toolkit</h2>
</div> </div>
<p>Once the contest is <a href="status.html#open">open</a>, download the most recent <p>Once the contest is <a href="status.html#open">open</a>, download the most recent
version of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>.</p> version of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>.</p>
@@ -496,12 +497,14 @@ the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
could change. Once the content is <a href="status.html#open">open</a>, be sure could change. Once the content is <a href="status.html#open">open</a>, be sure
you <strong>have the latest</strong> version installed.</p> you <strong>have the latest</strong> version installed.</p>
<p>To help you, please see the <p>To help you, please see the
FAQ on “<a href="#obtaining_mkiocccentry">how to obtain the most recent mkiocccentry</a>” FAQ on “<a href="faq.html#obtaining_mkiocccentry">how to obtain the most recent mkiocccentry</a>”,
the
FAQ on “<a href="faq.html#compiling_mkiocccentry">compiling mkiocccentry toolkit</a>”
and the and the
FAQ on “<a href="#compiling_mkiocccentry">compiling mkiocccentry toolkit</a>”, FAQ on “<a href="faq.html#install">installing the mkiocccentry tools</a>”
for more details.</p> for more details.</p>
<div id="step_6"> <div id="step_6">
<h4 id="run-the-mkiocccentry-tool-to-form-your-submission-tarball">6. Run the mkiocccentry tool to form your submission tarball</h4> <h2 id="run-the-mkiocccentry-tool-to-form-your-submission-tarball">6. Run the mkiocccentry tool to form your submission tarball</h2>
</div> </div>
<p>For more details on <code>mkiocccentry</code>, what it is, how to obtain it and how to use <p>For more details on <code>mkiocccentry</code>, what it is, how to obtain it and how to use
it, see the it, see the
@@ -525,7 +528,7 @@ guidelines</a>.</p>
<li><p><code>prog.c</code></p> <li><p><code>prog.c</code></p>
<p>path to the C source for your submission</p></li> <p>path to the C source for your submission</p></li>
<li><p><code>Makefile</code></p> <li><p><code>Makefile</code></p>
<p>Makefile to build (make all) and cleanup (make clean &amp; make clobber) as well <p>Makefile to build (make all) and clean up (make clean &amp; make clobber) as well
as the other required rules</p></li> as the other required rules</p></li>
<li><p><code>remarks.md</code></p> <li><p><code>remarks.md</code></p>
<p>Remarks about your entry in markdown format: see the <p>Remarks about your entry in markdown format: see the
@@ -533,24 +536,6 @@ FAQ on “<a href="faq.html#remarks_md">remarks.md</a>”
for more info.</p></li> for more info.</p></li>
</ul> </ul>
<p><strong>NOTE</strong>: Please see our <a href="markdown.html">IOCCC markdown guide</a> for <strong>important information</strong> on using markdown in the IOCCC.</p> <p><strong>NOTE</strong>: Please see our <a href="markdown.html">IOCCC markdown guide</a> for <strong>important information</strong> on using markdown in the IOCCC.</p>
<p><strong>NOTE</strong>: It is <em>NOT</em> necessary to install the tools to use them as you can run
the tools from the top of the <code>mkiocccentry</code> repo directory just fine, though
you’ll have to use the form of <code>./mkiocccentry</code> instead of just <code>mkiocccentry</code>.
However, installing it will make it easier for you as you can run it from your
submission’s directory. See the
FAQ on “<strong><a href="https://github.com/ioccc-src/mkiocccentry/blob/master/FAQ.md#install">installing mkiocccentry</a></strong>”
at the mkiocccentry repo.</p>
<p><strong>IMPORTANT NOTE</strong>: if you run the program outside the repo directory
(specifying the absolute or relative path to the tool) and you have not
installed the tools then you will have to specify the options for the tools that
are required like <code>chkentry(1)</code>, <code>txzchk(1)</code> and <code>fnamchk(1)</code>. But even if you
have installed them but some tools are out of date (in the install path) it will
cause problems. Additionally, if you do not have the most recent version when
submitting a tarball it will be rejected for not having the right versions of
the tools. This is why you <strong>MUST</strong> make sure you have the most recent version
of all the tools and you either run it from the repo directory itself OR you
install them (<code>make install</code> as via <code>sudo</code> or as root). We recommend you install
the tools but if you wish to run it from the repo directory you may.</p>
<p>If the <code>mkiocccentry</code> tool indicates that there is a problem with your <p>If the <code>mkiocccentry</code> tool indicates that there is a problem with your
submission, especially if it identifies a <a href="next/rules.html#rule2">Rule 2</a>, or submission, especially if it identifies a <a href="next/rules.html#rule2">Rule 2</a>, or
any other rule, related problem, you are <strong>strongly</strong> encouraged to revise and any other rule, related problem, you are <strong>strongly</strong> encouraged to revise and
@@ -558,9 +543,24 @@ correct your entry and then re-run the <code>mkiocccentry</code> tool.</p>
<p>If you choose to risk violating rules, be sure and explain your reason <p>If you choose to risk violating rules, be sure and explain your reason
for doing so in your <code>remarks.md</code> file.</p> for doing so in your <code>remarks.md</code> file.</p>
<p>See also <a href="next/rules.html#rule17">Rule 17</a>!</p> <p>See also <a href="next/rules.html#rule17">Rule 17</a>!</p>
<p><strong>IMPORTANT NOTE</strong>: if you run the program outside the repo directory
(specifying the absolute or relative path to the tool) and you have not
installed the tools (and we <strong>STRONGLY</strong> recommend you <strong>do</strong> install them),
then you will have to specify the options for the tools that are required like
<code>chkentry(1)</code>, <code>txzchk(1)</code> and <code>fnamchk(1)</code>. And remember to make sure you have
the latest version so you do not violate <a href="rules.html#rule17">Rule 17</a>.
See the
FAQ on “<a href="faq.html#obtaining_mkiocccentry">obtaining the latest mkiocccentry tools</a>”,
the
FAQ on “<a href="faq.html#compiling_mkiocccentry">compiling the mkiocccentry tools</a>”,
the
FAQ on “<a href="faq.html#installing">installing the mkiocccentry tools</a>”
and the
FAQ on “<a href="faq.html#using_mkiocccentry">using the mkiocccentry tools</a>”
for more help.</p>
<div id="step_7"> <div id="step_7">
<div id="submit"> <div id="submit">
<h4 id="upload-your-submission-to-the-ioccc-submit-server">7. Upload your submission to the IOCCC submit server</h4> <h2 id="upload-your-submission-to-the-ioccc-submit-server">7. Upload your submission to the IOCCC submit server</h2>
</div> </div>
</div> </div>
<p>The screenshots on the “<strong><a href="next/submit.html">how to upload your submission to the IOCCC</a></strong>” page <p>The screenshots on the “<strong><a href="next/submit.html">how to upload your submission to the IOCCC</a></strong>” page
+31 -31
View File
@@ -1,3 +1,5 @@
This is quick start guide is version **28.0.0 2025-02-27**.
<div id="enter_questions"> <div id="enter_questions">
<div id="enter"> <div id="enter">
# Entering the IOCCC: the bare minimum you need to know # Entering the IOCCC: the bare minimum you need to know
@@ -8,7 +10,7 @@ To submit your code to the IOCCC, you **MUST** follow these steps:
<div id="step_0"> <div id="step_0">
#### 0. Verify that the IOCCC is pending or open for submissions ## 0. Verify that the IOCCC is pending or open for submissions
</div> </div>
First, check the "**[current status of the IOCCC](status.html)**" page to see current contest status. First, check the "**[current status of the IOCCC](status.html)**" page to see current contest status.
@@ -21,7 +23,7 @@ See also the [IOCCC news](news.html#news) for more information.
<div id="step_1"> <div id="step_1">
#### 1. Read the latest IOCCC rules and review the IOCCC guidelines ## 1. Read the latest IOCCC rules and review the IOCCC guidelines
</div> </div>
Please pay close attention to the [official IOCCC rules](next/rules.html). Please pay close attention to the [official IOCCC rules](next/rules.html).
@@ -33,7 +35,7 @@ suggestions, useful hints, and IOCCC humor. :-)
<div id="step_2"> <div id="step_2">
<div id="register"> <div id="register">
#### 2. Register for the IOCCC ## 2. Register for the IOCCC
</div> </div>
</div> </div>
@@ -45,7 +47,7 @@ then follow the directions on "**[how to register for the IOCCC](next/register.h
<div id="step_3"> <div id="step_3">
#### 3. Wait for your submit server username and initial password ## 3. Wait for your submit server username and initial password
</div> </div>
Once you have [registered for the IOCCC](next/register.html), Once you have [registered for the IOCCC](next/register.html),
@@ -74,7 +76,7 @@ for assistance.
<div id="step_4"> <div id="step_4">
#### 4. Login to the submit server and change your password ## 4. Login to the submit server and change your password
</div> </div>
Using the **Username** and **Initial password** you receive via email in Using the **Username** and **Initial password** you receive via email in
@@ -90,7 +92,7 @@ Please visit the "**[change your submit server initial password](next/pw-change.
<div id="step_5"> <div id="step_5">
#### 5. Obtain and compile the latest mkiocccentry toolkit ## 5. Obtain and compile the latest mkiocccentry toolkit
</div> </div>
Once the contest is [open](status.html#open), download the most recent Once the contest is [open](status.html#open), download the most recent
@@ -102,14 +104,16 @@ could change. Once the content is [open](status.html#open), be sure
you **have the latest** version installed. you **have the latest** version installed.
To help you, please see the To help you, please see the
FAQ on "[how to obtain the most recent mkiocccentry](#obtaining_mkiocccentry)" FAQ on "[how to obtain the most recent mkiocccentry](faq.html#obtaining_mkiocccentry)",
the
FAQ on "[compiling mkiocccentry toolkit](faq.html#compiling_mkiocccentry)"
and the and the
FAQ on "[compiling mkiocccentry toolkit](#compiling_mkiocccentry)", FAQ on "[installing the mkiocccentry tools](faq.html#install)"
for more details. for more details.
<div id="step_6"> <div id="step_6">
#### 6. Run the mkiocccentry tool to form your submission tarball ## 6. Run the mkiocccentry tool to form your submission tarball
</div> </div>
For more details on `mkiocccentry`, what it is, how to obtain it and how to use For more details on `mkiocccentry`, what it is, how to obtain it and how to use
@@ -145,7 +149,7 @@ Three files are required to exist in `topdir`:
* `Makefile` * `Makefile`
Makefile to build (make all) and cleanup (make clean & make clobber) as well Makefile to build (make all) and clean up (make clean & make clobber) as well
as the other required rules as the other required rules
* `remarks.md` * `remarks.md`
@@ -156,26 +160,6 @@ Three files are required to exist in `topdir`:
**NOTE**: Please see our [IOCCC markdown guide](markdown.html) for **important information** on using markdown in the IOCCC. **NOTE**: Please see our [IOCCC markdown guide](markdown.html) for **important information** on using markdown in the IOCCC.
**NOTE**: It is *NOT* necessary to install the tools to use them as you can run
the tools from the top of the `mkiocccentry` repo directory just fine, though
you'll have to use the form of `./mkiocccentry` instead of just `mkiocccentry`.
However, installing it will make it easier for you as you can run it from your
submission's directory. See the
FAQ on "**[installing mkiocccentry](https://github.com/ioccc-src/mkiocccentry/blob/master/FAQ.md#install)**"
at the mkiocccentry repo.
**IMPORTANT NOTE**: if you run the program outside the repo directory
(specifying the absolute or relative path to the tool) and you have not
installed the tools then you will have to specify the options for the tools that
are required like `chkentry(1)`, `txzchk(1)` and `fnamchk(1)`. But even if you
have installed them but some tools are out of date (in the install path) it will
cause problems. Additionally, if you do not have the most recent version when
submitting a tarball it will be rejected for not having the right versions of
the tools. This is why you **MUST** make sure you have the most recent version
of all the tools and you either run it from the repo directory itself OR you
install them (`make install` as via `sudo` or as root). We recommend you install
the tools but if you wish to run it from the repo directory you may.
If the `mkiocccentry` tool indicates that there is a problem with your If the `mkiocccentry` tool indicates that there is a problem with your
submission, especially if it identifies a [Rule 2](next/rules.html#rule2), or submission, especially if it identifies a [Rule 2](next/rules.html#rule2), or
any other rule, related problem, you are **strongly** encouraged to revise and any other rule, related problem, you are **strongly** encouraged to revise and
@@ -186,10 +170,26 @@ for doing so in your `remarks.md` file.
See also [Rule 17](next/rules.html#rule17)! See also [Rule 17](next/rules.html#rule17)!
**IMPORTANT NOTE**: if you run the program outside the repo directory
(specifying the absolute or relative path to the tool) and you have not
installed the tools (and we **STRONGLY** recommend you **do** install them),
then you will have to specify the options for the tools that are required like
`chkentry(1)`, `txzchk(1)` and `fnamchk(1)`. And remember to make sure you have
the latest version so you do not violate [Rule 17](rules.html#rule17).
See the
FAQ on "[obtaining the latest mkiocccentry tools](faq.html#obtaining_mkiocccentry)",
the
FAQ on "[compiling the mkiocccentry tools](faq.html#compiling_mkiocccentry)",
the
FAQ on "[installing the mkiocccentry tools](faq.html#installing)"
and the
FAQ on "[using the mkiocccentry tools](faq.html#using_mkiocccentry)"
for more help.
<div id="step_7"> <div id="step_7">
<div id="submit"> <div id="submit">
#### 7. Upload your submission to the IOCCC submit server ## 7. Upload your submission to the IOCCC submit server
</div> </div>
</div> </div>