Part 1 Guidelines review.
This commit is contained in:
1 parent
698cd8f92b
commit
7c886e9f80
2 files changed
+92
-158
No files matched your search
+2
-2
@@ -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 ❌ for the incorrect method
|
In the sections below, examples will mark by <span style="color:red">❌</span> for the incorrect method
|
||||||
and ✔ for preferred correct one.
|
and <span style="color:green">✔</span> for preferred correct one.
|
||||||
|
|
||||||
|
|
||||||
<div id="sections"></div>
|
<div id="sections"></div>
|
||||||
|
|||||||
+90
-156
@@ -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 © 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>|</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).
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user