update rules & guidelines
Improved Rule 1. Added Guidelines for Rule 1. Improved Rule 3. Added missing Guidelines for Rule 3. Reordered guidelines sections under the "General Guidelines". Set level 2 for "General Guidelines" subsections. Changed IOCCC Rules to version **29.11 2025-11-30**. Changed IOCCC Guidelines to version **29.03 2025-11-30**. Ran `make quick_www` to perform the above.
This commit is contained in:
1 parent
e43fdbe9f3
commit
eda2531e4d
5 files changed
+559
-415
No files matched your search
+308
-209
@@ -13,7 +13,7 @@ writing by [contacting the judges](../contact.html).
|
||||
# Guidelines Version
|
||||
|
||||
<p class="leftbar">
|
||||
These IOCCC guidelines are version **29.02 2025-11-30**.
|
||||
These IOCCC guidelines are version **29.03 2025-11-30**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -27,6 +27,49 @@ Because the **IOCCC29** guidelines was a substantial rewrite, only **important c
|
||||
Be sure to read the [IOCCC rules](rules.html).
|
||||
|
||||
|
||||
<div id="guideline1">
|
||||
<div id="guideline1-c">
|
||||
# Guidelines for [Rule 1 - C program](rules.html#rule1-c)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="leftbar">
|
||||
While you submission **MUST** be a C program, there is nothing wrong if your `prog.c`
|
||||
file happens to also be a code for another language.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
We would prefer if you do not use `#include` statements,
|
||||
especially `#include` statements just to include lots of data,
|
||||
to get around the
|
||||
[Rule 2 - Size restrictions](rules.html#rule2-size-restrictions)
|
||||
in an excessive way.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
We would prefer if you do not require lots and lots of implicit defines on the C compiler command line
|
||||
(i.e., lots of `-Dfoo`, and `-Dcurds=whey` style command line args to the C compiler)
|
||||
to get around the
|
||||
[Rule 2 - Size restrictions](rules.html#rule2-size-restrictions)
|
||||
in an excessive way.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Some use of `#include` statements and/or implicit defines on the C compiler command line is perfectly reasonable.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
As a guide, consider the level of `#include` statements and/or implicit defines on the C compiler command line
|
||||
that are found in
|
||||
[winning IOCCC entries](https://www.ioccc.org/years.html), and try to **NOT** set a new record.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
If you believe you need to significantly abuse `#include` statements and/or implicit defines on the C compiler command line,
|
||||
then try to make a case for why in your submission's `remarks.md` file: maybe the judges won't reject your submission.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="guideline2">
|
||||
<div id="guideline-2---size">
|
||||
<div id="guideline2-size">
|
||||
@@ -73,6 +116,9 @@ judges](../judges.html).
|
||||
|
||||
Make sure `iocccsize` does not flag any issues with your `prog.c`.
|
||||
|
||||
**NOTE**: by default `iocccsize` will only report the rule 2b size, unless the
|
||||
code surpasses the limit.
|
||||
|
||||
There a much less need to `#define` C reserved words in an effort
|
||||
to get around the size limits of
|
||||
[Rule 2 - Size restrictions](rules.html#rule2-size)
|
||||
@@ -84,6 +130,40 @@ Yes Virginia, **the previous guideline sentence is an important hint**!
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
<div id="guideline3">
|
||||
<div id="guideline-3---register">
|
||||
# Guidelines for [Rule 3 - Register for the IOCCC](rules.html#rule3-register)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
If a group of people work on a submission, then they should
|
||||
[register for the IOCCC](../quick-start.html#enter)
|
||||
using either a group email address, or an email address for one of the authors.
|
||||
|
||||
Processing your registration is an activity overseen by an IOCCC judge.
|
||||
Please be **patient** while an IOCCC judge processes your registration.
|
||||
|
||||
It can take a few days to process your registration and for the server to
|
||||
email your details, therefore make sure to allow yourself ample time to
|
||||
register and submit your entries; **DO NOT WAIT UNTIL THE FINAL DAYS**
|
||||
to register! The judges are **NOT** responsible for delayed or lost
|
||||
email or for those who wait until the last minute to try to register!
|
||||
|
||||
If after a few days you believe your registration hasn't been process, then
|
||||
[contact the Judges](../contact.html).
|
||||
|
||||
After your UUID and initial password are emailed to you, you have
|
||||
up to fortnight (**14 days**) to login and change your temporary password.
|
||||
If you fail to change your temporary password by that deadline, then you'll need to
|
||||
[contact the Judges](../contact.html) by email to request a reset.
|
||||
|
||||
See [How to register for the IOCCC](register.html).
|
||||
|
||||
See [Entering the IOCCC: the bare minimum you need to know](../quick-start.html#enter).
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
<div id="guideline7">
|
||||
<div id="guideline-7---original-work">
|
||||
@@ -116,6 +196,18 @@ FAQ on "[May I use AI, LLM, Virtual coding assistants, or similar tools to write
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
<div id="guideline8">
|
||||
<div id="guideline-8---submitting-requirements">
|
||||
# Guidelines for [Rule 8 - Submitting requirements](rules.html#rule8-submitting-requirements)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Do **NOT** register more than one account just try and get around the limit on the number of submission slots.
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
<div id="guideline11">
|
||||
<div id="guideline-11---abuse">
|
||||
# Guidelines for [Rule 11 - Legal rule abuse](rules.html#rule11-legal-rule-abuse)
|
||||
@@ -307,206 +399,15 @@ FAQ on "[What are the details behind Rule 17 - Use mkiocccentry?](../faq.html#ru
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
<div id="mkiocccentry"></div>
|
||||
<div id="mkiocccentry_toolkit"></div>
|
||||
|
||||
# Guidelines for the mkiocccentry toolkit
|
||||
|
||||
The [IOCCC submit server](https://submit.ioccc.org), and related services
|
||||
use the **most recent version** of the
|
||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry):
|
||||
submissions that package using older versions of the
|
||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
|
||||
are **LIKELY** to be **REJECTED**!
|
||||
|
||||
You **REALLY SHOULD** use the latest [mkiocccentry
|
||||
toolkit](https://github.com/ioccc-src/mkiocccentry) to package your submission
|
||||
as submissions that use an older version are **LIKELY** to be **REJECTED**!
|
||||
|
||||
The `mkiocccentry(1)` tool runs a number of checks by way of these
|
||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) tools:
|
||||
|
||||
* iocccsize(1)
|
||||
* txzchk(1)
|
||||
* fnamchk(1)
|
||||
* chksubmit(1)
|
||||
* chkentry(1)
|
||||
|
||||
Do **NOT** use `txzchk(1)` or `fnamchk(1)` command line options that are labeled
|
||||
"**for TESTING purposes**" in their respective man pages.
|
||||
|
||||
Do **NOT** use `fnamchk(1)` command line options that are labeled "**for TESTING purposes**"
|
||||
in the `fnamchk(1)` man page.
|
||||
|
||||
Do **NOT** use `chksubmit(1)` command line options that are labeled "**for the use by the IOCCC judges only**"
|
||||
in the `chksubmit(1)` man page.
|
||||
Similarly do **NOT** use `chkentry(1)` command line options marked "**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,
|
||||
while your current directory is the top of the source tree:
|
||||
|
||||
``` <!---sh-->
|
||||
man soup/man/man1/mkiocccentry.1
|
||||
man soup/man/man1/iocccsize.1
|
||||
man soup/man/man1/txzchk.1
|
||||
man test_ioccc/man/man1/fnamchk.1
|
||||
man soup/man/man1/chksubmit.1
|
||||
man soup/man/man1/chkentry.1
|
||||
```
|
||||
|
||||
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,
|
||||
use `mkiocccentry -a answers ...` to create a file containing the answers you first give,
|
||||
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 -i answers ...` will still be required to confirm "_Yes/No_" questions.
|
||||
|
||||
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, such as a
|
||||
change in your code that violates a detected rule.
|
||||
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**,
|
||||
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
|
||||
`mkiocccentry -u uuidfile ...`, or use `mkiocccentry -U UUID ...` to give the `UUID`
|
||||
on the command line.
|
||||
|
||||
If you wish to **test** that your submission passes the `mkiocccentry(1)` tests
|
||||
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.
|
||||
For example:
|
||||
|
||||
``` <!---sh-->
|
||||
mkiocccentry -d workdir topdir
|
||||
```
|
||||
|
||||
Do **NOT** submit a tarball formed by `mkiocccentry -d ..` **OR** by
|
||||
`mkiocccentry -s seed ..` **OR** by using the `test` UUID!
|
||||
|
||||
The `mkiocccentry(1)` tool creates an `xz(1)` compressed **v7 format** tarball using a `tar(1)`
|
||||
command of the form:
|
||||
|
||||
``` <!---sh-->
|
||||
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
|
||||
correct details as you go along.
|
||||
|
||||
Pressing the "_enter key_" at the `mkiocccentry(1)` tool prompts will allow you
|
||||
to proceed with a default, however make sure the default is the **CORRECT**
|
||||
answer.
|
||||
|
||||
The `mkiocccentry(1)` tool will use code from `iocccsize(1)` which detects a number of
|
||||
issues (such as [Rule 2 - Size restrictions](rules.html#rule2-size)) that you may ignore,
|
||||
however ignoring such issues **comes with a SIGNIFICANT level of risk!**
|
||||
|
||||
Once the tarball is packaged it will
|
||||
run `txzchk(1)`, which will also run `fnamchk(1)`, as part of its algorithm.
|
||||
|
||||
The use of `mkiocccentry -W ....` is **highly discouraged** as this may ignore
|
||||
warnings about a problem that may cause your submission to be **REJECTED!**"
|
||||
|
||||
The same can be said of the `-Y` option, and to a lesser extent `-y`: the `-y`
|
||||
is mostly for the test script and the `-Y` is like `-y` but even more
|
||||
aggressive.
|
||||
|
||||
If `mkiocccentry` encounters an **error**, the program will exit and the xz
|
||||
compressed tarball **will NOT be generated**: this is a **feature, not a bug**!
|
||||
|
||||
If you encounter a **bug** with the
|
||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
|
||||
**PLEASE run the `bug_report.sh` script to help us out here!**
|
||||
|
||||
While you don't have to install the
|
||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry),
|
||||
if you don't, in order to run a tool outside the repo directory
|
||||
you will have to specify `mkiocccentry(1)` command line options to locate required tools
|
||||
such as `chkentry(1)` (`mkiocccentry -C chkentry ..`), `txzchk(1)` (`mkiocccentry -T txzchk ..`),
|
||||
and `fnamchk(1)` (`mkiocccentry -F fnamchk ..`).
|
||||
|
||||
The `mkiocccentry(1)` tool will ignore any filename or directory that begins with a period (`.`).
|
||||
|
||||
The `mkiocccentry(1)` tool will ignore all files that begin with `COPYING`, `COPYRIGHT`, and `LICENSE`, regardless
|
||||
of filename case.
|
||||
|
||||
The `mkiocccentry(1)` tool will reject any of the following files if they are found directly under
|
||||
the top level directory (`topdir`):
|
||||
|
||||
* README.md
|
||||
* index.html
|
||||
* prog
|
||||
* prog.alt
|
||||
* prog.alt.o
|
||||
* prog.orig.c
|
||||
* filenames matching the `[0-9][0-9][0-9][0-9]_*.tar.bz2` file glob
|
||||
|
||||
The files listed in the above list are allowed to exist in sub-directories: just **NOT** directly under
|
||||
the top level directory (`topdir`).
|
||||
|
||||
The `mkiocccentry(1)` tool evaluates all filenames and directory names in a case
|
||||
independent way: thus `FOO`, `Foo`, and `foo` are considered the **SAME** file
|
||||
even if your filesystem doesn't do the same.
|
||||
|
||||
Having two or more filenames that differ only by case **WILL** lead to problems
|
||||
because of the previous statement.
|
||||
|
||||
When the `mkiocccentry(1)` tool ignores a file, that file is **NOT** included as
|
||||
part of your submission.
|
||||
|
||||
When the `mkiocccentry(1)` tool ignores a directory, that directory,
|
||||
and everything under that directory is **NOT** included as part of
|
||||
your submission.
|
||||
|
||||
The `mkiocccentry(1)` tool will ignore all symlinks.
|
||||
|
||||
Creating a directory directly under the top level directory (`topdir`)
|
||||
that is normally considered to be a regular file, such as a directory
|
||||
named `Makefile`, `prog.alt.c`, `prog.c`, `remarks.md`, `try.alt.sh`,
|
||||
or `try.sh` is **NOT** a good idea and will likely cause the
|
||||
`mkiocccentry(1)` tool to abort with a **fatal error**.
|
||||
|
||||
The required `Makefile` and `remarks.md` files may **NOT** be empty. This
|
||||
does not mean just 0 bytes but also that it **MUST** have **content**, and
|
||||
content that is relevant (e.g. a Makefile with just comments is **NOT**
|
||||
allowed). However, with the exception of the `Makefile`, the `mkiocccentry(1)`
|
||||
tool will **ONLY** check file size.
|
||||
|
||||
If the optional file `try.alt.sh`, or `try.sh` exists and is an empty file,
|
||||
the `mkiocccentry(1)` tool will abort with a **fatal error**.
|
||||
|
||||
If the `mkiocccentry(1)` tool encounters anything that isn't a file, isn't a
|
||||
directory, and isn't a symlink (which the tool ignores), the `mkiocccentry(1)`
|
||||
tool to abort with a **fatal error**.
|
||||
|
||||
See
|
||||
FAQ on "[How do I report bugs in an `mkiocccentry` tool?](../faq.html#mkiocccentry_bugs)".
|
||||
|
||||
See [Rule 11 - Legal rule abuse](rules.html#rule11-legal-rulea-abuse) for warnings about ignoring `mkiocccentry(1)` tool warnings.
|
||||
|
||||
See
|
||||
FAQ on "[What is the `fnamchk` tool?](../faq.html#fnamchk)".
|
||||
|
||||
See
|
||||
FAQ on "[What is mkiocccentry in simple terms?](../faq.html#about_mkiocccentry)".
|
||||
|
||||
See
|
||||
FAQ on "[What is the mkiocccentry tool, how do I obtain it and how do I use it](../faq.html#mkiocccentry)".
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
<div id="general">
|
||||
# General Guidelines
|
||||
</div>
|
||||
|
||||
# General Overall Guidelines
|
||||
|
||||
<div id="general-overall-guidelines">
|
||||
## Overall Guidelines
|
||||
</div>
|
||||
|
||||
|
||||
These [guideline](guidelines.html) are **hints** and **suggestions**, **NOT** [IOCCC rules](rules.html).
|
||||
|
||||
@@ -601,10 +502,11 @@ A clean looking program with misleading comments and variable names might be a
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
<div id="likes"></div>
|
||||
<div id="dislikes"></div>
|
||||
|
||||
# OUR LIKES AND DISLIKES:
|
||||
<div id="likes">
|
||||
<div id="dislikes">
|
||||
## Our Likes and Dislikes:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
We **VERY MUCH LIKE** submissions that use an edited variant of the
|
||||
example Makefile, as described and linked to in the [Makefile section](#makefile),
|
||||
@@ -911,8 +813,7 @@ X client submissions should be as portable as possible. Submissions that
|
||||
adapt to a wide collection of environments will be favored. For
|
||||
example, don't depend on a particular type or size of display.
|
||||
Don't assume the use of a particular browser. Instead assume a
|
||||
generic browser that forms to a widely used [W3C
|
||||
standard](https://www.w3.org/standards/).
|
||||
generic browser that forms to a widely used [W3C standard](https://www.w3.org/standards/).
|
||||
Don't assume a particular sound sub-system or video driver is installed
|
||||
in the OS. Instead, make use of a well known and widely available open
|
||||
source program (one that actually works) to display audio/visual data.
|
||||
@@ -1111,9 +1012,206 @@ Try to be even more creative!
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
<div id="fun"></div>
|
||||
<div id="mkiocccentry">
|
||||
<div id="mkiocccentry_toolkit">
|
||||
## Guidelines for the mkiocccentry toolkit
|
||||
</div>
|
||||
</div>
|
||||
|
||||
# Fun😄damental Guidelines
|
||||
The [IOCCC submit server](https://submit.ioccc.org), and related services
|
||||
use the **most recent version** of the
|
||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry):
|
||||
submissions that package using older versions of the
|
||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
|
||||
are **LIKELY** to be **REJECTED**!
|
||||
|
||||
You **REALLY SHOULD** use the latest [mkiocccentry
|
||||
toolkit](https://github.com/ioccc-src/mkiocccentry) to package your submission
|
||||
as submissions that use an older version are **LIKELY** to be **REJECTED**!
|
||||
|
||||
The `mkiocccentry(1)` tool runs a number of checks by way of these
|
||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) tools:
|
||||
|
||||
* iocccsize(1)
|
||||
* txzchk(1)
|
||||
* fnamchk(1)
|
||||
* chksubmit(1)
|
||||
* chkentry(1)
|
||||
|
||||
Do **NOT** use `txzchk(1)` or `fnamchk(1)` command line options that are labeled
|
||||
"**for TESTING purposes**" in their respective man pages.
|
||||
|
||||
Do **NOT** use `fnamchk(1)` command line options that are labeled "**for TESTING purposes**"
|
||||
in the `fnamchk(1)` man page.
|
||||
|
||||
Do **NOT** use `chksubmit(1)` command line options that are labeled "**for the use by the IOCCC judges only**"
|
||||
in the `chksubmit(1)` man page.
|
||||
Similarly do **NOT** use `chkentry(1)` command line options marked "**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,
|
||||
while your current directory is the top of the source tree:
|
||||
|
||||
``` <!---sh-->
|
||||
man soup/man/man1/mkiocccentry.1
|
||||
man soup/man/man1/iocccsize.1
|
||||
man soup/man/man1/txzchk.1
|
||||
man test_ioccc/man/man1/fnamchk.1
|
||||
man soup/man/man1/chksubmit.1
|
||||
man soup/man/man1/chkentry.1
|
||||
```
|
||||
|
||||
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,
|
||||
use `mkiocccentry -a answers ...` to create a file containing the answers you first give,
|
||||
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 -i answers ...` will still be required to confirm "_Yes/No_" questions.
|
||||
|
||||
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, such as a
|
||||
change in your code that violates a detected rule.
|
||||
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**,
|
||||
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
|
||||
`mkiocccentry -u uuidfile ...`, or use `mkiocccentry -U UUID ...` to give the `UUID`
|
||||
on the command line.
|
||||
|
||||
If you wish to **test** that your submission passes the `mkiocccentry(1)` tests
|
||||
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.
|
||||
For example:
|
||||
|
||||
``` <!---sh-->
|
||||
mkiocccentry -d workdir topdir
|
||||
```
|
||||
|
||||
Do **NOT** submit a tarball formed by `mkiocccentry -d ..` **OR** by
|
||||
`mkiocccentry -s seed ..` **OR** by using the `test` UUID!
|
||||
|
||||
The `mkiocccentry(1)` tool creates an `xz(1)` compressed **v7 format** tarball using a `tar(1)`
|
||||
command of the form:
|
||||
|
||||
``` <!---sh-->
|
||||
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
|
||||
correct details as you go along.
|
||||
|
||||
Pressing the "_enter key_" at the `mkiocccentry(1)` tool prompts will allow you
|
||||
to proceed with a default, however make sure the default is the **CORRECT**
|
||||
answer.
|
||||
|
||||
The `mkiocccentry(1)` tool will use code from `iocccsize(1)` which detects a number of
|
||||
issues (such as [Rule 2 - Size restrictions](rules.html#rule2-size)) that you may ignore,
|
||||
however ignoring such issues **comes with a SIGNIFICANT level of risk!**
|
||||
|
||||
Once the tarball is packaged it will
|
||||
run `txzchk(1)`, which will also run `fnamchk(1)`, as part of its algorithm.
|
||||
|
||||
The use of `mkiocccentry -W ....` is **highly discouraged** as this may ignore
|
||||
warnings about a problem that may cause your submission to be **REJECTED!**"
|
||||
|
||||
The same can be said of the `-Y` option, and to a lesser extent `-y`: the `-y`
|
||||
is mostly for the test script and the `-Y` is like `-y` but even more
|
||||
aggressive.
|
||||
|
||||
If `mkiocccentry` encounters an **error**, the program will exit and the xz
|
||||
compressed tarball **will NOT be generated**: this is a **feature, not a bug**!
|
||||
|
||||
If you encounter a **bug** with the
|
||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
|
||||
**PLEASE run the `bug_report.sh` script to help us out here!**
|
||||
|
||||
While you don't have to install the
|
||||
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry),
|
||||
if you don't, in order to run a tool outside the repo directory
|
||||
you will have to specify `mkiocccentry(1)` command line options to locate required tools
|
||||
such as `chkentry(1)` (`mkiocccentry -C chkentry ..`), `txzchk(1)` (`mkiocccentry -T txzchk ..`),
|
||||
and `fnamchk(1)` (`mkiocccentry -F fnamchk ..`).
|
||||
|
||||
The `mkiocccentry(1)` tool will ignore any filename or directory that begins with a period (`.`).
|
||||
|
||||
The `mkiocccentry(1)` tool will ignore all files that begin with `COPYING`, `COPYRIGHT`, and `LICENSE`, regardless
|
||||
of filename case.
|
||||
|
||||
The `mkiocccentry(1)` tool will reject any of the following files if they are found directly under
|
||||
the top level directory (`topdir`):
|
||||
|
||||
* README.md
|
||||
* index.html
|
||||
* prog
|
||||
* prog.alt
|
||||
* prog.alt.o
|
||||
* prog.orig.c
|
||||
* filenames matching the `[0-9][0-9][0-9][0-9]_*.tar.bz2` file glob
|
||||
|
||||
The files listed in the above list are allowed to exist in sub-directories: just **NOT** directly under
|
||||
the top level directory (`topdir`).
|
||||
|
||||
The `mkiocccentry(1)` tool evaluates all filenames and directory names in a case
|
||||
independent way: thus `FOO`, `Foo`, and `foo` are considered the **SAME** file
|
||||
even if your filesystem doesn't do the same.
|
||||
|
||||
Having two or more filenames that differ only by case **WILL** lead to problems
|
||||
because of the previous statement.
|
||||
|
||||
When the `mkiocccentry(1)` tool ignores a file, that file is **NOT** included as
|
||||
part of your submission.
|
||||
|
||||
When the `mkiocccentry(1)` tool ignores a directory, that directory,
|
||||
and everything under that directory is **NOT** included as part of
|
||||
your submission.
|
||||
|
||||
The `mkiocccentry(1)` tool will ignore all symlinks.
|
||||
|
||||
Creating a directory directly under the top level directory (`topdir`)
|
||||
that is normally considered to be a regular file, such as a directory
|
||||
named `Makefile`, `prog.alt.c`, `prog.c`, `remarks.md`, `try.alt.sh`,
|
||||
or `try.sh` is **NOT** a good idea and will likely cause the
|
||||
`mkiocccentry(1)` tool to abort with a **fatal error**.
|
||||
|
||||
The required `Makefile` and `remarks.md` files may **NOT** be empty. This
|
||||
does not mean just 0 bytes but also that it **MUST** have **content**, and
|
||||
content that is relevant (e.g. a Makefile with just comments is **NOT**
|
||||
allowed). However, with the exception of the `Makefile`, the `mkiocccentry(1)`
|
||||
tool will **ONLY** check file size.
|
||||
|
||||
If the optional file `try.alt.sh`, or `try.sh` exists and is an empty file,
|
||||
the `mkiocccentry(1)` tool will abort with a **fatal error**.
|
||||
|
||||
If the `mkiocccentry(1)` tool encounters anything that isn't a file, isn't a
|
||||
directory, and isn't a symlink (which the tool ignores), the `mkiocccentry(1)`
|
||||
tool to abort with a **fatal error**.
|
||||
|
||||
See
|
||||
FAQ on "[How do I report bugs in an `mkiocccentry` tool?](../faq.html#mkiocccentry_bugs)".
|
||||
|
||||
See [Rule 11 - Legal rule abuse](rules.html#rule11-legal-rulea-abuse) for warnings about ignoring `mkiocccentry(1)` tool warnings.
|
||||
|
||||
See
|
||||
FAQ on "[What is the `fnamchk` tool?](../faq.html#fnamchk)".
|
||||
|
||||
See
|
||||
FAQ on "[What is mkiocccentry in simple terms?](../faq.html#about_mkiocccentry)".
|
||||
|
||||
See
|
||||
FAQ on "[What is the mkiocccentry tool, how do I obtain it and how do I use it](../faq.html#mkiocccentry)".
|
||||
|
||||
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
|
||||
<div id="fun">
|
||||
## Fun😄damental Guidelines
|
||||
</div>
|
||||
|
||||
The reason for the times of day are so that key IOCCC events are **calculated**
|
||||
to be a **fun**ctional UTC time. :-)
|
||||
@@ -1254,10 +1352,11 @@ With respect to [nested functions](#nested-functions), try `chkentry -b`.
|
||||
Jump to: [top](#)
|
||||
|
||||
|
||||
<div id="more-information"></div>
|
||||
<div id="information"></div>
|
||||
|
||||
# FOR MORE INFORMATION:
|
||||
<div id="more-information">
|
||||
<div id="information">
|
||||
# For more information
|
||||
</div>
|
||||
</div>
|
||||
|
||||
For questions or comments about the contest, see [Contacting the IOCCC](../contact.html).
|
||||
|
||||
|
||||
Reference in new issue
Block a user