From d91f0d62a4e5eb56bb4516113de686c34cb5b98e Mon Sep 17 00:00:00 2001
From: Landon Curt Noll 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
to injecting HTML into the markdown file. In the sections below, examples will mark by ❌ for the incorrect method
-and ✔ for preferred correct one. In the sections below, examples will mark by ❌ for the incorrect method
+and ✔ for preferred correct one. The IOCCC is NOT accepting new submissions at this time. See the
-IOCCC winning entries page 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”
-as well as our
-FAQ on “about asking questions”
-about these guidelines. You might also find the FAQ in general useful, especially the
-FAQ on “how to enter the IOCCC”. Watch both the IOCCC status page and the
-@IOCCC mastodon feed for information about
-future IOCCC openings. HINT to mastodon users: You may wish to refresh the @IOCCC
-mastodon feed page and/or mastodon
-app from time to time to view IOCCC mastodon updates. 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
writing by contacting the judges. Be sure to read the IOCCC rules. Be sure to read the IOCCC rules. Your submission must satisfy BOTH the maximum size
-Rule 2a Gross Size
-AND
-the IOCCC size
-Rule 2b Next Size. To check your code against
-Rule 2 - Size, use the Your submission must satisfy BOTH the maximum size Rule 2a Gross Size
+AND the Rule 2b Net Size. To check your code against Rule 2 - Size, use the The IOCCC size tool algorithm can be summarized as follows:The IOCCC is closed
-29th International Obfuscated C Code Contest Official Guidelines
IOCCC Guidelines version
+Guidelines Version
@@ -491,23 +470,21 @@ The | symbol indicates an ch
-Guidelines for Rule 2 - Size
-
-
-iocccentry(1) tool.
+iocccentry(1) tool.
For example: iocccsize prog.c
In cases where the above summary and the algorithm implemented by
the IOCCC size tool iocccsize(1) conflict, the algorithm implemented
-by the current version of iocccsize(1) is preferred by the IOCCC judges.
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
-because of the iocccsize(1) algorithm.
iocccsize(1) is preferred by the IOCCC judges.
+Make sure iocccsize(1) 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 because of the iocccsize(1) algorithm.
Yes Virginia, the previous guideline sentence is an important hint!
Jump to: top
See FAQ on “What is an author handle?”.
Jump to: top
While it is NOT required, you are allowed to use tools or services such as:
iocccsize(1) algorithm.
The IOCCC has a rich history of remarkable winning entries created by -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.
In short: You created it, you own it, and its an original work, or you have explicit permission.
+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 yourremarks.md file.
+In short: You created it, you own it, its an original work, or you have explicit permission to the work.
See FAQ on “May I use AI, LLM, Virtual coding assistants, or similar tools to write my submission?”.
Jump to: top
We try to avoid limiting creativity in our IOCCC rules so -we leave the contest open for creative rule interpretation.
We do realize that there are holes in the IOCCC rules, and invite -submitters to attempt to exploit them.
-We sometime award ‘Best abuse of the rules’ or ‘Worst abuse of the rules’, +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 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 IOCCC rules.
-When we do need to plug a hole in the IOCCC rules or -IOCCC guidelines, we will attempt to use a very small plug, +
When we do need to plug a hole in the IOCCC rules +or IOCCC guidelines, we will attempt to use a very small plug, if not smaller.
Or, maybe not. :-)
-Legal abuse of the IOCCC rules is somewhat encouraged. Legal rule abuse -may involve, but is not limited to, doing things that are technically allowed by -the IOCCC rules and yet do not fit the spirit of what we intended to be -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 and IOCCC guidelines.
+Legal rule abuse may involve, but is not limited to, doing things that are +technically allowed by the IOCCC rules and yet do not fit the spirit of what +we intended to be submitted.
Legal abuse of the IOCCC rules is NOT an invitation to violate the -IOCCC rules. A submission that violates the rules in the +IOCCC rules (especailly Rule 17 - Packaging ). A submission that violates the rules in the opinion of the IOCCC judges, WILL be disqualified. RULE ABUSE CARRIES A CERTAIN LEVEL OF RISK! If you have a submission that might otherwise be interesting, you might want to submit two versions; one that does not abuse the IOCCC rules and one that does.
If you intend to abuse the IOCCC rules,
-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
-IOCCC rules. That is, you must plead your case as to why
-your submission is valid. Humor and/or creativity help plead a case.
+IOCCC rules. Humor or creativity help plead a case.
As there is no guarantee that you will succeed, you might consider
submitting an alternate version that conforms to the
IOCCC rules.
If you do bypass the mkiocccentry(1) warnings about
Rule 2a Gross Size
-and/or about
-Rule 2b Next Size
+or about
+Rule 2b Net Size
or any other
rule and submit a submission anyway, you MUST try to justify why the IOCCC
IOCCC judges 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
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 and IOCCC -guidelines seem strange or contain mistakes, flaws or -grammatical errors. One reason is that we sometimes make genuine mistakes. But -in many cases such problems, flaws or areas of confusion are deliberate. -Changes to IOCCC rules and IOCCC guidelines in +guidelines seem strange or contain mistakes, flaws, or +grammatical errors. One reason is that we sometimes make genuine mistakes, but +in many cases such problems, flaws or areas of confusion are deliberate.
+Changes to IOCCC rules and IOCCC guidelines in 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 abuse can continue. A clever author should be able to read them and “drive a @@ -627,36 +599,40 @@ are only part of the overall contest. Even so, one might think the contest IOCCC rules and IOCCC guidelines process as a parody of the sometimes tragic mismatch between what a customer (or marketing) wants 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. This is one of the reasons why the IOCCC rules and IOCCC guidelines are written in obfuscated form.
Jump to: top
You may use git, or services such as GitHub +
You may use git, or services such as GitHub
to develop and maintain your submission. However, we DISLIKE
submissions that require such services in order to build/compile your submission.
Submissions will be judged in an environment that has no IDE. Any submission that fails to compile/build because it requires 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
environments, and commonly found on systems that reasonably conform to the
Single UNIX Specification
in the building and compiling of your submission.
Jump to: top
We STRONGLY recommend you do install the mkiocccentry toolkit -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
.info.json) then they do NOT have to be valid JSON.
However, if you do provide invalid JSON files, PLEASE @@ -668,11 +644,9 @@ unless it’s not in the top level directory, in which case it IS.
If you use an optional filename for something other than their intended use in order to get past the file limit, we will consider that an abuse of rules.
@@ -696,21 +670,21 @@ and how to use the test-suite to test your submission.See FAQ on “What are the details behind Rule 17 - Packaging?”.
Jump to: top
The IOCCC submit server, and related services use the most recent version of the mkiocccentry toolkit: submissions that package using older versions of the mkiocccentry toolkit -are LIKELY to be REJECTED!
-You REALLY SHOULD use latest mkiocccentry toolkit +are LIKELY to be REJECTED! So you REALLY SHOULD use the latest mkiocccentry toolkit to package your own submission.
The mkiocccentry(1) tool runs a number of checks by way of these
-mkiocccentry toolkit
-tools:
Do NOT use txzchk(1) command line options that are labeled “for TESTING purposes”
-in the txzchk(1) man page.
Do NOT use fnamchk(1) command line options that are labeled “for TESTING purposes”
-in the fnamchk(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.
Do NOT use txzchk(1) or fnamchk(1) command line options that are labeled
+“for TESTING purposes” in their respective man pages.
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 man pages, while your current directory is the top of the source tree:
- 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
+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,
-that will allow you to later use mkiocccentry -i answers ... to reuse those same answers.
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
+
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 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.
For example:
mkiocccentry -d workdir topdir
+mkiocccentry -d workdir topdir
Do NOT submit a tarball formed by mkiocccentry -d .., NOR by mkiocccentry -s seed ..!
The mkiocccentry(1) tool creates an xz(1) compressed v7 format tarball using a tar(1)
command of the form:
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
correct details as you go along.
Pressing the “enter key” 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) 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!”
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!
If you encounter a bug with the
mkiocccentry toolkit
PLEASE run the bug_report.sh script to help us out here!
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 that begins with a “.” (dot).
The mkiocccentry(1) tool will ignore any directory tree with a directory name that begins with a “.” (dot).
The mkiocccentry(1) tool will all files that begin with COPYING, COPYRIGHT, and LICENSE, regardless
+
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 any of the following files if they are found directly under
the top level directory (topdir):
mkiocccentry(1)
See FAQ on “What is the mkiocccentry tool, how do I obtain it and how do I use it”.
Jump to: top
These guideline are hints and suggestions, NOT IOCCC rules.
While submissions that violate guideline are allowed, submissions that remain within the IOCCC guidelines are preferred.
@@ -889,10 +861,12 @@ misleading comments and variable names might be a VERY GOOD STARTJump to: top
We VERY MUCH LIKE submissions that use an edited variant of the
example Makefile, as described and linked to in the Makefile section,
renamed as Makefile of course. This makes it easier for the IOCCC judges
@@ -1163,8 +1137,8 @@ MS Visual C and MS Visual C++ leave trailing control-M’s on lines.
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
prevent such trailing control-M’s being added.
One should restrict libcurses to portable features found on BSD -or Linux curses.
+One should restrict libcurses to portable features found on both BSD +and Linux curses.
Try to be even more creative!
Jump to: top
The reason for the times of day are so that key IOCCC events are calculated to be a functional UTC time. :-)
At least 2 of several reasons for selecting the prime, 2503, for @@ -1379,10 +1354,12 @@ CPU, we might just try your submission on that emulator as well :-)
it? :-)Jump to: top
For questions or comments about the contest, see Contacting the IOCCC.
Be SURE to review the IOCCC Rules and Guidelines as they may (and often do) change from year to year.
diff --git a/sitemap.xml b/sitemap.xml index ac85cfafb..2823095bb 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -16810,11 +16810,11 @@