Part 1 Guidelines review.

This commit is contained in:
Anthony Howe committed 2025-11-29 04:09:15 -05:00
1 parent 698cd8f92b
commit 7c886e9f80
2 files changed
+92 -158

No files matched your search

+2 -2
View File
@@ -25,8 +25,8 @@ Nevertheless, the IOCCC does have certain practices that we ask authors to
follow. Some of these relate to use of markdown directly and others relate follow. Some of these relate to use of markdown directly and others relate
to injecting HTML into the markdown file. to injecting HTML into the markdown file.
In the sections below, examples will mark by &#x274c; for the incorrect method In the sections below, examples will mark by <span style="color:red">&#x274c;</span> for the incorrect method
and &#x2714; for preferred correct one. and <span style="color:green">&#x2714;</span> for preferred correct one.
<div id="sections"></div> <div id="sections"></div>
+90 -156
View File
@@ -1,31 +1,4 @@
<!-- START: this line starts content from: inc/guidelines.closed.hdr -->
# The IOCCC is closed
The IOCCC is **NOT** accepting new submissions at this time. See the
[IOCCC winning entries page](../years.html) for the entries that have won the
IOCCC in the past.
These guidelines are a **TENTATIVE proposal** for the next IOCCC
and are **likely be to be updated** before the next IOCCC.
See our
FAQ on "[rules, guidelines, tools feedback](../faq.html#feedback)"
as well as our
FAQ on "[about asking questions](../faq.html#question)"
about these guidelines. You might also find the FAQ in general useful, especially the
FAQ on "[how to enter the IOCCC](../quick-start.html#enter)".
Watch both [the IOCCC status page](../status.html) and the
[@IOCCC mastodon feed](https://fosstodon.org/@ioccc) for information about
future IOCCC openings.
**HINT to mastodon users**: You may wish to refresh the [@IOCCC
mastodon feed](https://fosstodon.org/@ioccc) page and/or mastodon
app from time to time to view IOCCC mastodon updates.
<!-- END: the next line ends content from: inc/guidelines.closed.hdr -->
<!-- This is the last line modified by the tool: bin/gen-status.sh -->
# 29th International Obfuscated C Code Contest Official Guidelines # 29th International Obfuscated C Code Contest Official Guidelines
<p class="leftbar"> <p class="leftbar">
@@ -33,12 +6,12 @@ Copyright &copy; 2025 Leonid A. Broukhis and Landon Curt Noll.
</p> </p>
All Rights Reserved. Permission for personal, education or non-profit use is All Rights Reserved. Permission for personal, education or non-profit use is
granted provided this this copyright and notice are included in its entirety granted provided this copyright and notice are included in its entirety
and remains unaltered. All other uses must receive prior permission in and remains unaltered. All other uses must receive prior permission in
writing by [contacting the judges](../contact.html). writing by [contacting the judges](../contact.html).
# IOCCC Guidelines version # Guidelines Version
<p class="leftbar"> <p class="leftbar">
These IOCCC guidelines are version **29.00 2025-11-28**. These IOCCC guidelines are version **29.00 2025-11-28**.
@@ -52,28 +25,23 @@ The <span style='font-size:28px;'><b>&verbar;</b></span> symbol indicates an **c
Because the **IOCCC29** guidelines was a substantial rewrite, only **important changes** from **IOCCC28** have been marked. Because the **IOCCC29** guidelines was a substantial rewrite, only **important changes** from **IOCCC28** have been marked.
</p> </p>
Be sure to read the [IOCCC rules](guidelines.html). Be sure to read the [IOCCC rules](rules.html).
<div id="guideline2"> <div id="guideline2"></div>
<div id="guideline-2---size"> <div id="guideline-2---size"></div>
# Guidelines for [Rule 2 - Size](rules.html#rule-2---size) # Guidelines for [Rule 2 - Size](rules.html#rule-2---size)
</div>
</div>
<p class="leftbar"> <p class="leftbar">
You should pay attention to our observations on You should pay attention to our observations on
[code size and Rule 2 remarks for IOCCC28](../2024/index.html#code-size-and-rule-2). [code size and Rule 2 remarks for IOCCC28](../2024/index.html#code-size-and-rule-2).
</p> </p>
Your submission must satisfy **BOTH** the maximum size Your submission must satisfy **BOTH** the maximum size [Rule 2a Gross Size](rules.html#rule-2a-gross-size)
[Rule 2a Gross Size](rules.html#rule-2a-gross-size) **AND** the [Rule 2b Net Size](rules.html#rule-2b-net-size).
**AND**
the IOCCC size
[Rule 2b Next Size](rules.html#rule-2b-net-size).
To check your code against To check your code against [Rule 2 - Size](rules.html#rule-2---size), use the `iocccentry(1)` tool.
[Rule 2 - Size](rules.html#rule-2---size), use the `iocccentry(1)` tool.
For example: For example:
``` <!---sh--> ``` <!---sh-->
@@ -96,13 +64,10 @@ counted by the IOCCC size tool.
In cases where the above summary and the algorithm implemented by In cases where the above summary and the algorithm implemented by
the IOCCC size tool `iocccsize(1)` conflict, the algorithm implemented the IOCCC size tool `iocccsize(1)` conflict, the algorithm implemented
by the current version of `iocccsize(1)` is preferred by the [IOCCC judges](../judges.html). by the current version of `iocccsize(1)` is preferred by the [IOCCC judges](../judges.html).
Make sure `iocccsize(1)` does not flag any issues with your `prog.c`.
Make sure `iocccsize` does not flag any issues with your `prog.c`. There a much less need to `#define` C reserved words in an effort to get
around the size limits of [Rule 2 - Size](rules.html#rule-2---size) because of the `iocccsize(1)` algorithm.
There a much less need to `#define` C reserved words in an effort
to get around the size limits of
[Rule 2 - Size](rules.html#rule-2---size)
because of the `iocccsize(1)` algorithm.
Yes Virginia, **the previous guideline sentence is an important hint**! Yes Virginia, **the previous guideline sentence is an important hint**!
@@ -110,11 +75,10 @@ Yes Virginia, **the previous guideline sentence is an important hint**!
Jump to: [top](#) Jump to: [top](#)
<div id="guideline3"> <div id="guideline3"></div>
<div id="guideline-3---register"> <div id="guideline-3---register"></div>
# Guidelines for [Rule 3 - Register](rules.html#rule-3---register) # Guidelines for [Rule 3 - Register](rules.html#rule-3---register)
</div>
</div>
See FAQ on "[What is an author handle?](../faq.html#author_handle_faq)". See FAQ on "[What is an author handle?](../faq.html#author_handle_faq)".
@@ -122,11 +86,10 @@ See FAQ on "[What is an author handle?](../faq.html#author_handle_faq)".
Jump to: [top](#) Jump to: [top](#)
<div id="guideline7"> <div id="guideline7"></div>
<div id="guideline-7---original-work"> <div id="guideline-7---original-work"></div>
# Guidelines for [Rule 7 - Original Work](rules.html#rule-7---original-work) # Guidelines for [Rule 7 - Original Work](rules.html#rule-7---original-work)
</div>
</div>
While it is **NOT** required, you are allowed to use tools or services such as: While it is **NOT** required, you are allowed to use tools or services such as:
@@ -141,11 +104,10 @@ While it is **NOT** required, you are allowed to use tools or services such as:
The IOCCC has a rich history of remarkable winning entries created by The IOCCC has a rich history of remarkable winning entries created by
authors who skillfully employed various techniques to develop their code. authors who skillfully employed various techniques to develop their code.
If you do make use of such tools or services, then we **ENCOURAGE you to
describe how you used such tools** in your `remarks.md` file.
If you do make use of such tools or services, then we **ENCOURAGE you to describe In short: You created it, you own it, its an original work, or you have explicit permission to the work.
how you used such tools** in your `remarks.md` file.
In short: You created it, you own it, and its an original work, or you have explicit permission.
See FAQ on "[May I use AI, LLM, Virtual coding assistants, or similar tools to write my submission?](../faq.html#ai)". See FAQ on "[May I use AI, LLM, Virtual coding assistants, or similar tools to write my submission?](../faq.html#ai)".
@@ -153,39 +115,31 @@ See FAQ on "[May I use AI, LLM, Virtual coding assistants, or similar tools to w
Jump to: [top](#) Jump to: [top](#)
<div id="guideline11"> <div id="guideline11"></div>
<div id="guideline-11---abuse"> <div id="guideline-11---abuse"></div>
# Guidelines for [Rule 11 - Abuse](rules.html#rule-11---abuse)
</div>
</div>
We try to avoid limiting creativity in our [IOCCC rules](rules.html) so # Guidelines for [Rule 11 - Abuse](rules.html#rule-11---abuse)
we leave the contest open for creative rule interpretation.
We do realize that there are holes in the [IOCCC rules](rules.html), and invite We do realize that there are holes in the [IOCCC rules](rules.html), and invite
submitters to attempt to exploit them. submitters to attempt to apply creative rule interpretation. A rule abuse though, even
if not rewarded, may result in a subsequent rule change for future contests.
We sometime award '**Best abuse of the rules**' or '**Worst abuse of the rules**', We sometimes award '**Best abuse of the rules**' or '**Worst abuse of the rules**',
or some variation to a submission that creatively attempts to exploit a holes in the or some variation to a submission that creatively attempts to exploit a holes in the
[IOCCC rules](rules.html). [IOCCC rules](rules.html).
When we do need to plug a hole in the [IOCCC rules](rules.html) or When we do need to plug a hole in the [IOCCC rules](rules.html)
[IOCCC guidelines](guidelines.html), we will attempt to use a very small plug, or [IOCCC guidelines](guidelines.html), we will attempt to use a very small plug,
if not smaller. if not smaller.
Or, maybe not. :-) Or, maybe not. :-)
Legal abuse of the [IOCCC rules](rules.html) is somewhat encouraged. Legal rule abuse Legal rule abuse may involve, but is not limited to, doing things that are
may involve, but is not limited to, doing things that are technically allowed by technically allowed by the [IOCCC rules](rules.html) and yet do not fit the spirit of what
the [IOCCC rules](rules.html) and yet do not fit the spirit of what we intended to be we intended to be submitted.
submitted.
Legal rule abuse is encouraged to help promote creativity. Rule abuse
submissions, regardless of if they receive an award, result in changes to
the next year's [IOCCC rules](rules.html) and [IOCCC guidelines](guidelines.html).
Legal abuse of the [IOCCC rules](rules.html) is **NOT** an invitation to violate the Legal abuse of the [IOCCC rules](rules.html) is **NOT** an invitation to violate the
[IOCCC rules](rules.html). A submission that violates the [rules](rules.html) in the [IOCCC rules](rules.html) (especailly [Rule 17 - Packaging](./rules.html#rule-17---packaging) ). A submission that violates the [rules](rules.html) in the
opinion of the [IOCCC judges](../judges.html), **WILL** be opinion of the [IOCCC judges](../judges.html), **WILL** be
disqualified. **_RULE ABUSE CARRIES A CERTAIN LEVEL OF RISK!_** If you disqualified. **_RULE ABUSE CARRIES A CERTAIN LEVEL OF RISK!_** If you
have a submission that might otherwise be interesting, you might want to have a submission that might otherwise be interesting, you might want to
@@ -193,32 +147,28 @@ submit two versions; one that does not abuse the [IOCCC rules](rules.html) and o
does. does.
If you intend to abuse the [IOCCC rules](rules.html), If you intend to abuse the [IOCCC rules](rules.html),
indicate so in your `remarks.md` file. You **MUST** try to justify indicate so in your `remarks.md` file. You **MUST** try to justify, plead, beg,
why you consider your rule abuse to be allowed under the why you consider your rule abuse to be allowed under the
[IOCCC rules](rules.html). That is, you must plead your case as to why [IOCCC rules](rules.html). Humor or creativity help plead a case.
your submission is valid. Humor and/or creativity help plead a case.
As there is no guarantee that you will succeed, you might consider As there is no guarantee that you will succeed, you might consider
submitting an alternate version that conforms to the submitting an alternate version that conforms to the
[IOCCC rules](rules.html). [IOCCC rules](rules.html).
If you do bypass the `mkiocccentry(1)` warnings about If you do bypass the `mkiocccentry(1)` warnings about
[Rule 2a Gross Size](rules.html#rule-2a-gross-size) [Rule 2a Gross Size](rules.html#rule-2a-gross-size)
and/or about or about
[Rule 2b Next Size](rules.html#rule-2b-net-size) [Rule 2b Net Size](rules.html#rule-2b-net-size)
or any other or any other
rule and submit a submission anyway, you **MUST** try to justify why the IOCCC rule and submit a submission anyway, you **MUST** try to justify why the IOCCC
[IOCCC judges](../judges.html) should not reject your submission due to a rule [IOCCC judges](../judges.html) should not reject your submission due to a rule
violation, and you would be wise to do this towards the top of your `remarks.md` violation, and you would be wise to do this towards the top of your `remarks.md`
file. file.
Abusing the web submission procedure tends to annoy us more
than amuse us. Spend your creative energy on content of your
submission rather than on the submission process itself.
We are often asked why the contest [IOCCC rules](rules.html) and [IOCCC We are often asked why the contest [IOCCC rules](rules.html) and [IOCCC
guidelines](guidelines.html) seem strange or contain mistakes, flaws or guidelines](guidelines.html) seem strange or contain mistakes, flaws, or
grammatical errors. One reason is that we sometimes make genuine mistakes. But grammatical errors. One reason is that we sometimes make genuine mistakes, but
in many cases such problems, flaws or areas of confusion are deliberate. in many cases such problems, flaws or areas of confusion are deliberate.
Changes to [IOCCC rules](rules.html) and [IOCCC guidelines](guidelines.html) in Changes to [IOCCC rules](rules.html) and [IOCCC guidelines](guidelines.html) in
response to rule abuses, are done in a minimal fashion. Often we will response to rule abuses, are done in a minimal fashion. Often we will
deliberately leave behind holes (or introduce new ones) so that future rule deliberately leave behind holes (or introduce new ones) so that future rule
@@ -232,7 +182,7 @@ are only part of the overall contest. Even so, one might think the
contest [IOCCC rules](rules.html) and [IOCCC guidelines](guidelines.html) process as a parody contest [IOCCC rules](rules.html) and [IOCCC guidelines](guidelines.html) process as a parody
of the sometimes tragic mismatch between what a customer (or marketing) wants of the sometimes tragic mismatch between what a customer (or marketing) wants
and what engineering delivers. Real programmers must face obfuscated and and what engineering delivers. Real programmers must face obfuscated and
sometimes conflicting specifications and requirements from marketing, sales, sometimes conflicting, balloning specifications, and requirements from marketing, sales,
product management and even from customers themselves on an all too regular basis. product management and even from customers themselves on an all too regular basis.
This is one of the reasons why the [IOCCC rules](rules.html) and This is one of the reasons why the [IOCCC rules](rules.html) and
[IOCCC guidelines](guidelines.html) are written in obfuscated form. [IOCCC guidelines](guidelines.html) are written in obfuscated form.
@@ -241,13 +191,12 @@ This is one of the reasons why the [IOCCC rules](rules.html) and
Jump to: [top](#) Jump to: [top](#)
<div id="guideline15"> <div id="guideline15"></div>
<div id="guideline-15---building"> <div id="guideline-15---building"></div>
# Guidelines for [Rule 15 - Building](rules.html#rule-15---building)
</div>
</div>
You may use git, or services such as [GitHub](https://www.github.com) # Guidelines for [Rule 15 - Building](rules.html#rule-15---building)
You may use `git,` or services such as [GitHub](https://www.github.com)
to develop and maintain your submission. However, we **DISLIKE** to develop and maintain your submission. However, we **DISLIKE**
submissions that **require** such services in order to build/compile your submission. submissions that **require** such services in order to build/compile your submission.
@@ -255,7 +204,7 @@ Submissions will be judged in an environment that has no **IDE**.
Any submission that fails to compile/build because it requires Any submission that fails to compile/build because it requires
an **IDE** will be rejected. an **IDE** will be rejected.
We will use the `make(1)` tool, your `Makefile`, as well as tools found in the We will use the `GNU make(1)` tool, your `Makefile`, as well as tools found in the
[Single UNIX Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification) [Single UNIX Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification)
environments, and commonly found on systems that reasonably conform to the environments, and commonly found on systems that reasonably conform to the
[Single UNIX Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification) [Single UNIX Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification)
@@ -265,15 +214,14 @@ in the building and compiling of your submission.
Jump to: [top](#) Jump to: [top](#)
<div id="guideline17"> <div id="guideline17"></div>
<div id="guideline-17---packaging"> <div id="guideline-17---packaging"></div>
# Guidelines for [Rule 17 - Packaging](rules.html#rule-17---packaging) # Guidelines for [Rule 17 - Packaging](rules.html#rule-17---packaging)
</div>
</div>
We **STRONGLY** recommend you **do** install the We **STRONGLY** recommend you **do** install the
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
as use of using older versions of the mkiocccentry toolkit to are **HIGHLY LIKELY** to be **REJECTED**! As use of using older versions of the mkiocccentry toolkit to are **HIGHLY LIKELY** to be **REJECTED**!
If you submit your own JSON files (other than `.auth.json` and If you submit your own JSON files (other than `.auth.json` and
`.info.json`) then they do **NOT** have to be valid JSON. `.info.json`) then they do **NOT** have to be valid JSON.
@@ -289,11 +237,9 @@ file_.
</p> </p>
<p class="leftbar"> <p class="leftbar">
The non-extra files (`prog.c`, `prog.alt.c`, These files (`prog.c`, `prog.alt.c`, `try.sh`, `try.alt.sh`, `remarks.md`,
`try.sh`, `try.alt.sh`, `remarks.md`, `Makefile`, `.auth.json` and `.info.json`) `Makefile`, `.auth.json` and `.info.json`) do _not_ count towards the
are considered _free files_, and to not count towards the [Rule 17 - Packaging](rules.html#rule-17---packaging) limit of **31** _extra files_.
[Rule 17 - Packaging](rules.html#rule-17---packaging)
limit of **31** _extra files_.
</p> </p>
If you use an optional filename for something other than their intended use If you use an optional filename for something other than their intended use
@@ -332,25 +278,21 @@ See FAQ on "[What are the details behind Rule 17 - Packaging?](../faq.html#rule1
Jump to: [top](#) Jump to: [top](#)
<div id="mkiocccentry"> <div id="mkiocccentry"></div>
<div id="mkiocccentry_toolkit"> <div id="mkiocccentry_toolkit"></div>
# Guidelines for the mkiocccentry toolkit # Guidelines for the mkiocccentry toolkit
</div>
</div>
The [IOCCC submit server](https://submit.ioccc.org), and related services The [IOCCC submit server](https://submit.ioccc.org), and related services
use the **most recent version** of the use the **most recent version** of the
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry): [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry):
submissions that package using older versions of the submissions that package using older versions of the
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
are **LIKELY** to be **REJECTED**! are **LIKELY** to be **REJECTED**! So you **REALLY SHOULD** use the latest [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
You **REALLY SHOULD** use latest [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
to package your own submission. to package your own submission.
The `mkiocccentry(1)` tool runs a number of checks by way of these The `mkiocccentry(1)` tool runs a number of checks by way of these
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) tools:
tools:
* iocccsize(1) * iocccsize(1)
* txzchk(1) * txzchk(1)
@@ -358,38 +300,34 @@ tools:
* chksubmit(1) * chksubmit(1)
* chkentry(1) * chkentry(1)
Do **NOT** use `txzchk(1)` command line options that are labeled "**for TESTING purposes**" Do **NOT** use `txzchk(1)` or `fnamchk(1)` command line options that are labeled
in the `txzchk(1)` man page. "**for TESTING purposes**" in their respective man pages.
Do **NOT** use `fnamchk(1)` command line options that are labeled "**for TESTING purposes**" Similarly do **NOT** use `chkentry(1)` command line options marked "**for the use
in the `fnamchk(1)` man page. by the IOCCC judges only**" in the `chkentry(1)` man page.
Do **NOT** use `chkentry(1)` command line options that are labeled "**for the use by the IOCCC judges only**"
in the `chkentry(1)` man page.
To view [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) man pages, To view [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) man pages,
while your current directory is the top of the source tree: while your current directory is the top of the source tree:
``` <!---sh--> ``` <!---sh-->
man soup/man/man1/mkiocccentry.1 man soup/man/man1/mkiocccentry.1
man soup/man/man1/iocccsize.1 man soup/man/man1/iocccsize.1
man soup/man/man1/txzchk.1 man soup/man/man1/txzchk.1
man test_ioccc/man/man1/fnamchk.1 man test_ioccc/man/man1/fnamchk.1
man soup/man/man1/chksubmit.1 man soup/man/man1/chksubmit.1
man soup/man/man1/chkentry.1 man soup/man/man1/chkentry.1
``` ```
The above `man(1)` commands will show the toolkit man pages without having to install them first. The above `man(1)` commands will show the toolkit man pages without having to install them first.
So that you do not have to repeatedly answer all the `mkiocccentry(1)` questions, So that you do not have to repeatedly answer all the `mkiocccentry(1)` questions,
use `mkiocccentry -a answers ...` to create a file containing the answers you first give, use `mkiocccentry -a answers ...` to create a file containing the answers you first give,
that will allow you to later use `mkiocccentry -i answers ...` to reuse those same answers. so later enter `mkiocccentry -i answers ...` to reuse those same answers.
The `mkiocccentry -A answers ..` does the same thing except that the **answers file will be overwritten**. The `mkiocccentry -A answers ..` does the same thing except that the **answers file will be overwritten**.
The `mkiocccentry -i answers ..` will still be required to confirm "_Yes/No_" questions. The `mkiocccentry -i answers ..` will still be required to confirm "_Yes/No_" questions.
While `mkiocccentry -Y -i answers ..` will force yes answers, use with **great caution**,
Use `mkiocccentry -Y -i answers ..` to force a yes answers with **great caution**
because it might force a yes answer to something you do **NOT** want. because it might force a yes answer to something you do **NOT** want.
To help with not having to repeatedly enter a UUID, put your UUID into a file and use To help with not having to repeatedly enter a UUID, put your UUID into a file and use
@@ -397,12 +335,12 @@ To help with not having to repeatedly enter a UUID, put your UUID into a file an
on the command line. on the command line.
If you wish to **test** that your submission passes the `mkiocccentry(1)` tests If you wish to **test** that your submission passes the `mkiocccentry(1)` tests
without having to type in in answers each time, you can use the `-d` or `-s seed` without having to type in answers each time, you can use the `-d` or `-s seed`
option to `mkiocccentry` for the tool to pseudo-randomly create answers for you. option to `mkiocccentry` for the tool to pseudo-randomly create answers for you.
For example: For example:
``` <!---sh--> ``` <!---sh-->
mkiocccentry -d workdir topdir mkiocccentry -d workdir topdir
``` ```
Do **NOT** submit a tarball formed by `mkiocccentry -d ..`, **NOR** by `mkiocccentry -s seed ..`! Do **NOT** submit a tarball formed by `mkiocccentry -d ..`, **NOR** by `mkiocccentry -s seed ..`!
@@ -411,7 +349,7 @@ The `mkiocccentry(1)` tool creates an `xz(1)` compressed **v7 format** tarball u
command of the form: command of the form:
``` <!---sh--> ``` <!---sh-->
cd workdir/UUID-slot_num && tar --format=v7 -cJf submit.UUID-slot_num.timestamp.txz UUID-slot_num cd workdir/UUID-slot_num && tar --format=v7 -cJf submit.UUID-slot_num.timestamp.txz UUID-slot_num
``` ```
In many places the `mkiocccentry(1)` tool will prompt you to verify what you input, allowing you to In many places the `mkiocccentry(1)` tool will prompt you to verify what you input, allowing you to
@@ -422,7 +360,7 @@ however make sure the default is the **CORRECT** answer.
The `mkiocccentry(1)` tool will use code from `iocccsize(1)` which detects a number of The `mkiocccentry(1)` tool will use code from `iocccsize(1)` which detects a number of
issues (such as [Rule 2 - Size](rules.html#rule-2---size)) that you may ignore, issues (such as [Rule 2 - Size](rules.html#rule-2---size)) that you may ignore,
however ignoring such issues **comes with a significant level of risk!** however ignoring such issues **comes with a significant level of risk** as noted else where.
Once the tarball is packaged it will Once the tarball is packaged it will
run `txzchk(1)`, which will also run `fnamchk(1)`, as part of its algorithm. run `txzchk(1)`, which will also run `fnamchk(1)`, as part of its algorithm.
@@ -431,7 +369,7 @@ The use of `mkiocccentry -W ...` is **highly discouraged** as this may ignore
warnings about a problem that may cause your submission to be **REJECTED!**" warnings about a problem that may cause your submission to be **REJECTED!**"
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**: this is a **feature, not a bug**! compressed tarball **will NOT be generated**: this is a **feature, not a bug**!
If you encounter a **bug** with the If you encounter a **bug** with the
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
@@ -444,11 +382,9 @@ you will have to specify `mkiocccentry(1)` command line options to locate requir
such as `chkentry(1)` (`mkiocccentry -C chkentry ..`), `txzchk(1)` (`mkiocccentry -T txzchk ..`), such as `chkentry(1)` (`mkiocccentry -C chkentry ..`), `txzchk(1)` (`mkiocccentry -T txzchk ..`),
and `fnamchk(1)` (`mkiocccentry -F fnamchk ..`). and `fnamchk(1)` (`mkiocccentry -F fnamchk ..`).
The `mkiocccentry(1)` tool will ignore any filename that begins with a "." (dot). The `mkiocccentry(1)` tool will ignore any filename or directory that begins with a period (`.`).
The `mkiocccentry(1)` tool will ignore any directory tree with a directory name that begins with a "." (dot). The `mkiocccentry(1)` tool will ignore all files that begin with `COPYING`, `COPYRIGHT`, and `LICENSE`, regardless
The `mkiocccentry(1)` tool will all files that begin with `COPYING`, `COPYRIGHT`, and `LICENSE`, regardless
of filename case. of filename case.
The `mkiocccentry(1)` tool will any of the following files if they are found directly under The `mkiocccentry(1)` tool will any of the following files if they are found directly under
@@ -506,9 +442,9 @@ See FAQ on "[What is the mkiocccentry tool, how do I obtain it and how do I use
Jump to: [top](#) Jump to: [top](#)
<div id="general"> <div id="general"></div>
# General Overall Guidelines # General Overall Guidelines
</div>
These [guideline](guidelines.html) are **hints** and **suggestions**, **NOT** [IOCCC rules](rules.html). These [guideline](guidelines.html) are **hints** and **suggestions**, **NOT** [IOCCC rules](rules.html).
@@ -604,11 +540,10 @@ to a great submission!
Jump to: [top](#) Jump to: [top](#)
<div id="likes"> <div id="likes"></div>
<div id="dislikes"> <div id="dislikes"></div>
# OUR LIKES AND DISLIKES: # OUR LIKES AND DISLIKES:
</div>
</div>
We **VERY MUCH LIKE** submissions that use an edited variant of the We **VERY MUCH LIKE** submissions that use an edited variant of the
example Makefile, as described and linked to in the [Makefile section](#makefile), example Makefile, as described and linked to in the [Makefile section](#makefile),
@@ -971,8 +906,8 @@ Users of such tools should strip off such control-M's before submitting
their submissions. In some cases tools have a "Save As" option that will their submissions. In some cases tools have a "Save As" option that will
prevent such trailing control-M's being added. prevent such trailing control-M's being added.
One should restrict libcurses to portable features found on BSD One should restrict libcurses to portable features found on both BSD
or Linux curses. and Linux curses.
<p class="leftbar"> <p class="leftbar">
If you do `#include <curses.h>` make **CERTAIN** you link in curses (i.e. If you do `#include <curses.h>` make **CERTAIN** you link in curses (i.e.
@@ -1101,9 +1036,9 @@ Try to be even more creative!
Jump to: [top](#) Jump to: [top](#)
<div id="fun"> <div id="fun"></div>
# Fun😄damental Guidelines # Fun😄damental Guidelines
</div>
The reason for the times of day are so that key IOCCC events are **calculated** The reason for the times of day are so that key IOCCC events are **calculated**
to be a **fun**ctional UTC time. :-) to be a **fun**ctional UTC time. :-)
@@ -1236,11 +1171,10 @@ it? :-)
Jump to: [top](#) Jump to: [top](#)
<div id="more-information"> <div id="more-information"></div>
<div id="information"> <div id="information"></div>
# FOR MORE INFORMATION: # FOR MORE INFORMATION:
</div>
</div>
For questions or comments about the contest, see [Contacting the IOCCC](../contact.html). For questions or comments about the contest, see [Contacting the IOCCC](../contact.html).