Merge pull request #2647 from xexyl/guidelines-fixes

Various fixes in guidelines
This commit is contained in:
Landon Curt Noll authored and GitHub committed 2024-08-22 11:33:47 -07:00
commit 34fce9e725
2 files changed
+71 -24

No files matched your search

+34 -12
View File
@@ -424,7 +424,7 @@ writing by <a href="../contact.html">contacting the judges</a>.</p>
<h2 id="ioccc-guidelines-version">IOCCC Guidelines version</h2> <h2 id="ioccc-guidelines-version">IOCCC Guidelines version</h2>
</div> </div>
<p class="leftbar"> <p class="leftbar">
These <a href="guidelines.html">IOCCC guidelines</a> are version <strong>28.12 2024-08-21</strong>. These <a href="guidelines.html">IOCCC guidelines</a> are version <strong>28.13 2024-08-22</strong>.
</p> </p>
<p><strong>IMPORTANT</strong>: Be <strong>SURE</strong> to read the <a href="rules.html">IOCCC rules</a>.</p> <p><strong>IMPORTANT</strong>: Be <strong>SURE</strong> to read the <a href="rules.html">IOCCC rules</a>.</p>
<div id="change_marks"> <div id="change_marks">
@@ -671,7 +671,7 @@ If <code>mkiocccentry</code> encounters an <strong>error</strong> the program wi
compressed tarball <strong>will not be formed</strong>. For instance, if <code>chkentry(1)</code> (see compressed tarball <strong>will not be formed</strong>. For instance, if <code>chkentry(1)</code> (see
below) fails to validate the <code>.auth.json</code> or <code>.info.json</code> below) fails to validate the <code>.auth.json</code> or <code>.info.json</code>
<a href="https://www.json.org/json-en.html">JSON</a> files that <code>mkiocccentry(1)</code> creates, <a href="https://www.json.org/json-en.html">JSON</a> files that <code>mkiocccentry(1)</code> creates,
it is an error and possibly 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 it is an error 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 issues mkiocccentry issues
page</a>. page</a>.
<strong>PLEASE run the <code>bug_report.sh</code> script to help us out here!</strong> See the <strong>PLEASE run the <code>bug_report.sh</code> script to help us out here!</strong> See the
@@ -730,7 +730,7 @@ As we already discussed how to invoke this we will not include it here again.
submission. These files <strong>MUST</strong> pass the checks of <code>chkentry(1)</code>. submission. These files <strong>MUST</strong> pass the checks of <code>chkentry(1)</code>.
</p> </p>
<p class="leftbar"> <p class="leftbar">
If <code>chkentry</code> does not pass and you used <code>mkiocccentry(1)</code> it is very possibly a If <code>chkentry</code> does not pass and you used <code>mkiocccentry(1)</code> it is <strong>possibly</strong> a
bug and 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 it as a bug at the mkiocccentry issues bug and 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 it as a bug at the mkiocccentry issues
page</a>. page</a>.
See the FAQ on “<a href="../faq.html#mkiocccentry_bugs">report mkiocccentry bugs</a>”. See the FAQ on “<a href="../faq.html#mkiocccentry_bugs">report mkiocccentry bugs</a>”.
@@ -758,13 +758,21 @@ for much more information on these files.
<p class="leftbar"> <p class="leftbar">
<code>txzchk(1)</code> performs a wide number of sanity checks on the xz <code>txzchk(1)</code> performs a wide number of sanity checks on the xz
compressed tarball; if any issues are found (‘<code>feathers are stuck in the tarball</code>’ :-) ) <strong>AND if and <em>ONLY IF</em> you used compressed tarball; if any issues are found (‘<code>feathers are stuck in the tarball</code>’ :-) ) <strong>AND if and <em>ONLY IF</em> you used
<code>mkiocccentry(1)</code></strong>, then it is very possibly a bug in one of the tools and you <code>mkiocccentry(1)</code></strong>, then it is <strong>possibly</strong> a bug in one of the tools and 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 it as a bug at the mkiocccentry issues might want to <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 it as a bug at the mkiocccentry issues
page</a>. <strong>PLEASE run the page</a>. <strong>PLEASE run the
<code>bug_report.sh</code> script to help us out here!</strong> See the <code>bug_report.sh</code> script to help us out here!</strong> See the
FAQ on “<a href="../faq.html#mkiocccentry_bugs">report mkiocccentry bugs</a>”. FAQ on “<a href="../faq.html#mkiocccentry_bugs">report mkiocccentry bugs</a>”.
</p> </p>
<p class="leftbar"> <p class="leftbar">
Of course, it is also possible that <code>mkiocccentry(1)</code> or one or more of the
tools it calls (or another tool calls) to fail and it is <strong>NOT</strong> a bug. An
example problem is if there is not enough memory available or if some other
library or syscall fails. Nonetheless it might be worth reporting as a bug. It
is a judgement call; if it’s a bug it’ll be addressed and if it’s not that’s OK
too.
</p>
<p class="leftbar">
As part of its sanity checks, <code>txzchk(1)</code> will run <code>fnamchk(1)</code> on the As part of its sanity checks, <code>txzchk(1)</code> will run <code>fnamchk(1)</code> on the
<em>filename</em> to verify that the name is valid. See the <em>filename</em> to verify that the name is valid. See the
FAQ on “<a href="../faq.html#fnamchk">fnamchk</a>” FAQ on “<a href="../faq.html#fnamchk">fnamchk</a>”
@@ -1165,7 +1173,7 @@ replacement of <code>init</code> would not be an interesting submission.</p>
some complex state machine to do something simple are boring? some complex state machine to do something simple are boring?
We think we did. :-)</p> We think we did. :-)</p>
<blockquote> <blockquote>
<p>All generalizations are false, including this one. – Mark Twain</p> <p>All generalizations are false, including this one. – <strong>Mark Twain</strong></p>
</blockquote> </blockquote>
<p>Given two versions of the same program, one that is a compact blob <p>Given two versions of the same program, one that is a compact blob
of code, and the other that is formatted more like a typical C of code, and the other that is formatted more like a typical C
@@ -1370,12 +1378,26 @@ run the risk of violating <a href="rules.html#rule7">Rule 7</a>.
<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
obfuscated versions of these tools, unless of course you are <a href="http://www.isthe.com/chongo/index.html">Landon Curt obfuscated versions of these tools, unless of course you are <a href="http://www.isthe.com/chongo/index.html">Landon Curt
Noll</a>, in which case you <em>probably</em> won’t Noll</a>, in which case you <em>probably</em>
win since <a href="../judges.html">judges</a> are disqualified! :-) won’t win since <a href="../judges.html">judges</a> are disqualified! :-) However, <strong><em>if</em></strong>
However, <em><strong>if you do</strong> write your own version, <strong>you might wish</strong> to make it do something more you do write your own version, you <strong><em>might</em></strong> wish to make it do something
interesting</em> than simply implementing the <a href="../index.html">IOCCC</a> tools’ algorithms. On the other <strong><em>more</em> interesting</strong> than simply implementing the <a href="../index.html">IOCCC</a>
hand, writing an obfuscated version of a library runs the risk of violating tools’ algorithms, although if you do this you might want to keep in mind that
<a href="rules.html#rule1">Rule 1</a> as it is likely not a complete program. writing an obfuscated version of a library runs the risk of violating <a href="rules.html#rule1">Rule
1</a> as it is likely not a complete program.
</p>
<p class="leftbar">
On the other hand, 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>
and because you likely can’t beat <a href="https://github.com/westes/flex">flex</a> or
<a href="https://www.gnu.org/software/bison/">bison</a> in obfuscation. This isn’t to
say that <a href="https://www.json.org/json-en.html">the so-called JSON spec</a> is not
obfuscated, but unless you have some really clever way to compact and
obfuscate a JSON parser more than <a href="https://github.com/westes/flex">flex</a> and
<a href="https://www.gnu.org/software/bison/">bison</a> you will likely not win, either
because of the <a href="rules.html#rule2">source code size limit</a> or because it is not
as obfuscated as the lexer/parser part of
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/jparse">jparse</a>.
</p> </p>
<p>While programs that only run in a specific word size are OK, if you have <p>While programs that only run in a specific word size are OK, if you have
to pick, choose a 64-bit word size.</p> to pick, choose a 64-bit word size.</p>
+37 -12
View File
@@ -48,7 +48,7 @@ writing by [contacting the judges](../contact.html).
</div> </div>
<p class="leftbar"> <p class="leftbar">
These [IOCCC guidelines](guidelines.html) are version **28.12 2024-08-21**. These [IOCCC guidelines](guidelines.html) are version **28.13 2024-08-22**.
</p> </p>
**IMPORTANT**: Be **SURE** to read the [IOCCC rules](rules.html). **IMPORTANT**: Be **SURE** to read the [IOCCC rules](rules.html).
@@ -353,7 +353,7 @@ If `mkiocccentry` encounters an **error** the program will exit and the xz
compressed tarball **will not be formed**. For instance, if `chkentry(1)` (see compressed tarball **will not be formed**. For instance, if `chkentry(1)` (see
below) fails to validate the `.auth.json` or `.info.json` below) fails to validate the `.auth.json` or `.info.json`
[JSON](https://www.json.org/json-en.html) files that `mkiocccentry(1)` creates, [JSON](https://www.json.org/json-en.html) files that `mkiocccentry(1)` creates,
it is an error and possibly a bug that you should [report as a bug at the it is an error and **possibly** a bug that you should [report as a bug at the
mkiocccentry issues mkiocccentry issues
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).
**PLEASE run the `bug_report.sh` script to help us out here!** See the **PLEASE run the `bug_report.sh` script to help us out here!** See the
@@ -431,7 +431,7 @@ submission. These files **MUST** pass the checks of `chkentry(1)`.
</p> </p>
<p class="leftbar"> <p class="leftbar">
If `chkentry` does not pass and you used `mkiocccentry(1)` it is very possibly a If `chkentry` does not pass and you used `mkiocccentry(1)` it is **possibly** a
bug and you should [report it as a bug at the mkiocccentry issues bug and you should [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). page](https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E).
See the FAQ on "[report mkiocccentry bugs](../faq.html#mkiocccentry_bugs)". See the FAQ on "[report mkiocccentry bugs](../faq.html#mkiocccentry_bugs)".
@@ -467,13 +467,22 @@ for much more information on these files.
`txzchk(1)` performs a wide number of sanity checks on the xz `txzchk(1)` performs a wide number of sanity checks on the xz
compressed tarball; if any issues are found ('`feathers are stuck in the compressed tarball; if any issues are found ('`feathers are stuck in the
tarball`' :-) ) **AND if and _ONLY IF_ you used tarball`' :-) ) **AND if and _ONLY IF_ you used
`mkiocccentry(1)`**, then it is very possibly a bug in one of the tools and you `mkiocccentry(1)`**, then it is **possibly** a bug in one of the tools and you
should [report it as a bug at the mkiocccentry issues might want to [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). **PLEASE run the page](https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E). **PLEASE run the
`bug_report.sh` script to help us out here!** See the `bug_report.sh` script to help us out here!** See the
FAQ on "[report mkiocccentry bugs](../faq.html#mkiocccentry_bugs)". FAQ on "[report mkiocccentry bugs](../faq.html#mkiocccentry_bugs)".
</p> </p>
<p class="leftbar">
Of course, it is also possible that `mkiocccentry(1)` or one or more of the
tools it calls (or another tool calls) to fail and it is **NOT** a bug. An
example problem is if there is not enough memory available or if some other
library or syscall fails. Nonetheless it might be worth reporting as a bug. It
is a judgement call; if it's a bug it'll be addressed and if it's not that's OK
too.
</p>
<p class="leftbar"> <p class="leftbar">
As part of its sanity checks, `txzchk(1)` will run `fnamchk(1)` on the As part of its sanity checks, `txzchk(1)` will run `fnamchk(1)` on the
_filename_ to verify that the name is valid. See the _filename_ to verify that the name is valid. See the
@@ -981,7 +990,7 @@ Did we remember to indicate that programs that blatantly use
some complex state machine to do something simple are boring? some complex state machine to do something simple are boring?
We think we did. :-) We think we did. :-)
> All generalizations are false, including this one. -- Mark Twain > All generalizations are false, including this one. -- **Mark Twain**
Given two versions of the same program, one that is a compact blob Given two versions of the same program, one that is a compact blob
of code, and the other that is formatted more like a typical C of code, and the other that is formatted more like a typical C
@@ -1230,12 +1239,28 @@ run the risk of violating [Rule 7](rules.html#rule7).
<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
obfuscated versions of these tools, unless of course you are [Landon Curt obfuscated versions of these tools, unless of course you are [Landon Curt
Noll](http://www.isthe.com/chongo/index.html), in which case you _probably_ won't Noll](http://www.isthe.com/chongo/index.html), in which case you _probably_
win since [judges](../judges.html) are disqualified! :-) won't win since [judges](../judges.html) are disqualified! :-) However, **_if_**
However, _**if you do** write your own version, **you might wish** to make it do something more you do write your own version, you **_might_** wish to make it do something
interesting_ than simply implementing the [IOCCC](../index.html) tools' algorithms. On the other **_more_ interesting** than simply implementing the [IOCCC](../index.html)
hand, writing an obfuscated version of a library runs the risk of violating tools' algorithms, although if you do this you might want to keep in mind that
[Rule 1](rules.html#rule1) as it is likely not a complete program.</p> writing an obfuscated version of a library runs the risk of violating [Rule
1](rules.html#rule1) as it is likely not a complete program.
</p>
<p class="leftbar">
On the other hand, 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)
and because you likely can't beat [flex](https://github.com/westes/flex) or
[bison](https://www.gnu.org/software/bison/) in obfuscation. This isn't to
say that [the so-called JSON spec](https://www.json.org/json-en.html) is not
obfuscated, but unless you have some really clever way to compact and
obfuscate a JSON parser more than [flex](https://github.com/westes/flex) and
[bison](https://www.gnu.org/software/bison/) you will likely not win, either
because of the [source code size limit](rules.html#rule2) or because it is not
as obfuscated as the lexer/parser part of
[jparse](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse).
</p>
While programs that only run in a specific word size are OK, if you have While programs that only run in a specific word size are OK, if you have
to pick, choose a 64-bit word size. to pick, choose a 64-bit word size.