Entering the IOCCC: the bare minimum you need to know
To submit your code to the IOCCC, you MUST follow these steps:
0. Verify that the IOCCC is pending or open for submissions
First, check the “current status of the IOCCC” page to see current contest status. You may only register for the IOCCC when the IOCCC is either pending or open.
You may only submit your entries to the IOCCC when the IOCCC is open.
See also the IOCCC news for more information.
1. Read the latest IOCCC rules and review the IOCCC guidelines
Please pay close attention to the official IOCCC rules.
You are also highly encouraged to review the official IOCCC guidelines as they contain important suggestions, useful hints, and IOCCC humor. :-)
2. Register for the IOCCC
IMPORTANT: You may only register for the IOCCC when the IOCCC is either pending or open. See “current status of the IOCCC” page for details.
If the contest is pending or open, then follow the directions on “how to register for the IOCCC”.
3. Wait for your submit server username and initial password
Once you have registered for the IOCCC, and once the contest is OPEN, one of the IOCCC judges will send via email within a few days, your IOCCC submit server Username and Initial password.
PLEASE NOTE: After registering, it could take up to a few days before an IOCCC judge sends the that email, so PLEASE be patient. This means that you should GIVE YOURSELF TIME before the contest closes!
IMPORTANT NOTE: Unless the contest is open, then you will NOT receive your Username and Initial password by email. For example, if the contest is pending, you will have to WAIT UNTIL THE CONTEST IS OPEN.
Please check the “current status of the IOCCC” page and visit the “how to register for the IOCCC” page for detailed instructions.
NOTE: If are having trouble receiving your Username and Initial password, and the CONTEST IS OPEN, and have you checked your spam folder, Contact the IOCCC for assistance.
4. Login to the submit server and change your password
Using the Username and Initial password you receive via email in step 3, you need to login to the IOCCC submit server.
IMPORTANT NOTE: You must change your password WITHIN 72 HOURS from when one of the IOCCC judges sent that email.
NOTE: The IOCCC submit server is only ready for submissions ONLY WHEN THE CONTEST IS open.
Please visit the “change your submit server initial password” page for detailed instructions.
5. Obtain and compile the latest mkiocccentry toolkit
Once the contest is open, download the most recent version of the mkiocccentry toolkit.
IMPORTANT NOTE: While the contest is pending, the mkiocccentry toolkit could change. Once the content is open, be sure you have the latest version installed.
To help you, please see the FAQ on “how to obtain the most recent mkiocccentry” and the FAQ on “compiling mkiocccentry toolkit”, for more details.
6. Run the mkiocccentry tool to form your submission tarball
For more details on mkiocccentry
, what it is, how to obtain it and how to use
it, see the
FAQ on “mkiocccentry”
(especially the
FAQ on “what mkiocccentry is in simple terms,
the
FAQ on”how to use mkiocccentry“)
and the mkiocccentry section in the
guidelines.
mkiocccentry [options] workdir topdir
where:
workdir
directory where the submission directory and tarball are formed
topdir
directory where your files to be packaged are in
Three files are required to exist in topdir
:
prog.c
path to the C source for your submission
Makefile
Makefile to build (make all) and cleanup (make clean & make clobber) as well as the other required rules
remarks.md
Remarks about your entry in markdown format: see the FAQ on “remarks.md” for more info.
NOTE: Please see our IOCCC markdown guide for important information on using markdown in the IOCCC.
NOTE: It is NOT necessary to install the tools to use them as you can run
the tools from the top of the mkiocccentry
repo directory just fine, though
you’ll have to use the form of ./mkiocccentry
instead of just mkiocccentry
.
However, installing it will make it easier for you as you can run it from your
submission’s directory. See the
FAQ on “installing mkiocccentry”
at the mkiocccentry repo.
However, an IMPORTANT NOTE: if you run the program outside the repo
directory (specifying the absolute or relative path to the tool) and you
have not installed the tools then you will have to specify the options for the
tools that are required like chkentry(1)
, txzchk(1)
and fnamchk(1)
. But
even if you have installed them but some tools are out of date (in the install
path) it will cause problems. Additionally, if you do not have the most recent
version when submitting a tarball it will be rejected for not having the right
versions of the tools. This is why you MUST make sure you have the most
recent version of all the tools and you either run it from the repo directory
itself OR you install them (make install
as via sudo
or as root).
If the mkiocccentry
tool indicates that there is a problem with your
submission, especially if it identifies a Rule 2, or
any other rule, related problem, you are strongly encouraged to revise and
correct your entry and then re-run the mkiocccentry
tool.
If you choose to risk violating rules, be sure and explain your reason
for doing so in your remarks.md
file.
See also Rule 17!
7. Upload your submission to the IOCCC submit server
The screenshots on the “how to upload your submission to the IOCCC” page might be a helpful guide when using the IOCCC submit server.
NOTE: You may modify a previous uploaded submission, if the contest is open, by replacing the file in a slot. Please use the mkiocccentry tool to rebuild the compressed tarball as this will update the timestamps and the filename generated, as well as packaging any changes: making it clear to the IOCCC judges that you intend to replace the older upload.
IMPORTANT NOTE: The IOCCC submit server is only ready for submissions ONLY WHEN THE CONTEST IS open.
See the “current status of the IOCCC” page for details on the contest status.
IMPORTANT NOTE: When the contest is closed, the IOCCC submit server might be offline and unreachable as a website.
NOTE: if you do need to update a submission, you might find the FAQ on “how to not have to re-enter information more than once” useful.