improve references to IOCCC rules and IOCCC guidelines
Each individual IOCCC rule has its own div tag. References to a specific IOCCC rule is now a link. We now use the term **IOCCC rules** more consistency when referring to the rules. We now use the term **IOCCC guidelines** more consistency when referring to the guidelines. In the **IOCCC guidelines**, we use _guideline_ when referring to a general guideline. Updated **IOCCC rules** and **IOCCC guidelines** to 2024-06-23-v28. Added guidelines about the recent Rule 2a changes. Improved to order of the guidelines related to Rule 2. Added a ">" formatted quote about the iocccsize summary to the IOCCC guidelines. Perform `make www` to perform the above and test under macOS.
This commit is contained in:
1 parent
02c0cd30af
commit
20d0b2a8d4
4 files changed
+290
-156
No files matched your search
+65
-60
@@ -403,8 +403,8 @@ future IOCCC openings.</p>
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in
|
||||
writing by <a href="../contact.html">contacting the judges</a>.</p>
|
||||
<h2 id="guidelines-version">Guidelines version</h2>
|
||||
<p><strong><code>|</code></strong> This guidelines file is version <strong>2024-06-15-v28</strong>.</p>
|
||||
<h2 id="ioccc-guidelines-version">IOCCC Guidelines version</h2>
|
||||
<p><strong><code>|</code></strong> These <a href="guidelines.html">IOCCC guidelines</a> are version <strong>2024-06-25-v28</strong>.</p>
|
||||
<p><strong>IMPORTANT</strong>: Be <strong>SURE</strong> to read the <a href="rules.html">IOCCC rules</a>.</p>
|
||||
<h3 id="change-marks">Change marks</h3>
|
||||
<p><strong><code>|</code></strong> <strong>← Lines that start with this symbol indicate a change from the previous IOCCC</strong></p>
|
||||
@@ -415,17 +415,17 @@ IOCCC start with the <strong><code>|</code></strong> symbol.</p>
|
||||
submit entries to the <a href="https://www.ioccc.org">International Obfuscated C Code Contest
|
||||
(IOCCC)</a>.</p>
|
||||
<p>These are not the IOCCC rules, though it does contain comments about
|
||||
them. The guidelines should be viewed as <em>hints</em> and <em>suggestions</em>.
|
||||
Entries that violate the guidelines but remain within the rules <em>are
|
||||
allowed</em>. Even so, you are safer if you remain within the guidelines.</p>
|
||||
them. The <a href="guidelines.html">IOCCC guidelines</a> should be viewed as <em>hints</em> and <em>suggestions</em>.
|
||||
Entries that violate the <em>guidelines</em> but remain within the rules <em>are
|
||||
allowed</em>. Even so, you are safer if you remain within the <a href="guidelines.html">IOCCC guidelines</a>.</p>
|
||||
<p>You should read the current <a href="rules.html">IOCCC rules</a>, prior to submitting entries.
|
||||
The rules are typically published along with these guidelines.</p>
|
||||
The rules are typically published along with the <a href="guidelines.html">IOCCC guidelines</a>.</p>
|
||||
<h1 id="whats-new-this-ioccc">WHAT’S NEW THIS IOCCC</h1>
|
||||
<p><strong><code>|</code></strong> This IOCCC runs from <strong>2024-MMM-DD HH:MM:SS UTC</strong> to <strong>YYYY-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||||
<strong><code>|</code></strong> <strong>XXX - date/time is TBD - XXX</strong></p>
|
||||
<p><strong><code>|</code></strong> The reason for the times of day are so that key IOCCC events are <strong>calculated</strong>
|
||||
for be a <strong>fun</strong>ctional UTC time. :-)</p>
|
||||
<p>Until the start of this IOCCC, these rules, guidelines and iocccsize.c
|
||||
<p>Until the start of this IOCCC, the <a href="rules.html">IOCCC rules</a>, <a href="guidelines.html">IOCCC guidelines</a> and <code>iocccsize.c</code>
|
||||
(contained in the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
toolkit</a>)
|
||||
tool should be considered provisional <strong>BETA</strong> versions and <strong>may be
|
||||
@@ -434,7 +434,7 @@ adjusted <em>AT ANY TIME</em></strong>.</p>
|
||||
<p><strong><code>|</code></strong> The submit URL should be active on or slightly before <strong>2024-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||||
<strong><code>|</code></strong> <strong>XXX - date/time is TBD - XXX</strong></p>
|
||||
<p>Please wait to submit your entries until after that time.</p>
|
||||
<p>The official rules, guidelines and iocccsize.c (invoked by the mkiocccentry)
|
||||
<p>The <a href="rules.html">IOCCC rules</a>, <a href="guidelines.html">IOCCC guidelines</a> and iocccsize.c (invoked by the mkiocccentry)
|
||||
tool will be available on the official IOCCC website on or slightly before start
|
||||
of this IOCCC. Please check the IOCCC <a href="../faq.html#submit">FAQ about how to submit</a>
|
||||
to see how to submit entries, on or after the start of this IOCCC, to be sure
|
||||
@@ -478,7 +478,7 @@ in an ironic way.</p>
|
||||
to attempt to exploit them. We will award ‘<em>Worst abuse of the rules</em>’ or
|
||||
‘<em>Best abuse of the rules</em>’ and then plug the hole next year.</p>
|
||||
<p><strong><code>|</code></strong> Even so, we will attempt to use the smallest plug needed, if not smaller. Or, maybe not. :-)</p>
|
||||
<p><strong><code>|</code></strong> There may be less than 2^7+1 reasons why these guidelines seem obfuscated.</p>
|
||||
<p><strong><code>|</code></strong> There may be less than 2^7+1 reasons why these <a href="guidelines.html">IOCCC guidelines</a> seem obfuscated.</p>
|
||||
<p>Check out your program and be sure that it works. We sometimes make
|
||||
the effort to debug an entry that has a slight problem, particularly
|
||||
in or near the final round. On the other hand, we have seen some
|
||||
@@ -503,21 +503,24 @@ misleading comments and variable names might be a good start.</p>
|
||||
<p>When programs use VTxxx/ANSI sequences, they should NOT be limited to a
|
||||
specific terminal brand. Those programs that work in a standard xterm
|
||||
are considered more portable.</p>
|
||||
<p><strong><code>|</code></strong> Rule 2 (the size rule) refers to the use of the IOCCC size tool called <code>iocccsize</code>.</p>
|
||||
<p><strong><code>|</code></strong> See the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a> for how to compile <code>iocccsize.c</code>.</p>
|
||||
<p><strong><code>|</code></strong> To further clarify rule 2, we subdivided it into two parts, 2a and 2b.</p>
|
||||
<p><strong><code>|</code></strong> Your entry must satisfy BOTH the maximum size rule 2a AND your entry
|
||||
must satisfy the IOCCC size tool rule 2b.</p>
|
||||
<p>This tool imposes a 2nd limit on C code size (rule 2b). To check your
|
||||
code against the 2nd limit of rule 2, use the -i command line option.
|
||||
<p><strong><code>|</code></strong> <a href="rules.html#rule2">Rule 2</a> (the size rule) refers to the use of the IOCCC size tool called <code>iocccsize</code>.</p>
|
||||
<p><strong><code>|</code></strong> See the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a> for the <code>iocccsize</code> tool.</p>
|
||||
<p><strong><code>|</code></strong> To further clarify <a href="rules.html#rule2">Rule 2</a>, we subdivided it into two parts, 2a and 2b.</p>
|
||||
<p><strong><code>|</code></strong> The overall size limit (see <a href="rules.html#rule2a">Rule 2a</a>) on <code>prog.c</code> is now 4993 bytes</p>
|
||||
<p><strong><code>|</code></strong> Your entry must satisfy BOTH the maximum size <a href="rules.html#rule2a">Rule 2a</a> AND your entry
|
||||
must satisfy the IOCCC size tool <a href="rules.html#rule2b">Rule 2b</a>.</p>
|
||||
<p>This tool imposes a 2nd limit on C code size (see <a href="rules.html#rule2a">Rule 2a</a>. To check your
|
||||
code against the 2nd limit of <a href="rules.html#rule2">Rule 2</a>, use the -i command line option.
|
||||
For example:</p>
|
||||
<pre><code> ./iocccsize -i < prog.c</code></pre>
|
||||
<p>The IOCCC size tool, when using the -i option, may be summarized as:</p>
|
||||
<pre><code> The size tool counts most C reserved words (keyword, secondary,
|
||||
and selected preprocessor keywords) as 1. The size tool counts all
|
||||
other octets as 1 excluding ASCII whitespace, and excluding any
|
||||
';', '{' or '}' followed by ASCII whitespace, and excluding any
|
||||
';', '{' or '}' octet immediately before the end of file.</code></pre>
|
||||
<blockquote>
|
||||
<p>The size tool counts most C reserved words (keyword, secondary,<br>
|
||||
and selected preprocessor keywords) as 1. The size tool counts all<br>
|
||||
other octets as 1 excluding ASCII whitespace, and excluding any<br>
|
||||
‘;’, ‘{’ or ‘}’ followed by ASCII whitespace, and excluding any<br>
|
||||
‘;’, ‘{’ or ‘}’ octet immediately before the end of file.</p>
|
||||
</blockquote>
|
||||
<p>ASCII whitespace includes ASCII tab, ASCII space, ASCII newline,
|
||||
ASCII formfeed, and ASCII carriage return.</p>
|
||||
<p><strong><code>|</code></strong> When ‘;’, ‘{’ or ‘}’ are within a C string, they may still not be
|
||||
@@ -532,8 +535,9 @@ by the IOCCC size tool source code is preferred by the judges.</p>
|
||||
<p><strong><code>|</code></strong> judge’s BESM-6, and 2503 is a decimal anagram of 2053.</p>
|
||||
<p>Take note that this secondary limit imposed by the IOCCC size tool
|
||||
obviates some of the need to <code>#define</code> C reserved words in an effort
|
||||
to get around the size limits of rule 2.</p>
|
||||
to get around the size limits of <a href="rules.html#rule2">Rule 2</a>.</p>
|
||||
<p>Yes Virginia, <strong>that is a hint</strong>!</p>
|
||||
<p><strong><code>|</code></strong> The <a href="rules.html#rule2a">Rule 2a</a> size was changed from 4096 to 4993: a change that keeps the “2b to 2a” size ratio to a value similar to the <a href="../faq.html#size_rule">2001-2020 IOCCC era</a>.</p>
|
||||
<p>We applaud programs that do not issue warnings when compiled.
|
||||
To avoid warnings, you might be tempted to add various <code>-Wno-foobar</code>
|
||||
flags. Unfortunately such flags are NOT portable. Moreover,
|
||||
@@ -633,7 +637,7 @@ not portable and must not be used:</p>
|
||||
<code>#</code> in a C preprocessor directive must be the 1st non-whitespace octet.</p>
|
||||
<p>The <code>exit(3)</code> function returns <code>void</code>. Some broken systems have <code>exit(3)</code>
|
||||
return <code>int</code>, your entry should assume that <code>exit(3)</code> returns a <code>void</code>.</p>
|
||||
<p><strong><code>|</code></strong> This guideline has a change mark at the very start of this line.</p>
|
||||
<p><strong><code>|</code></strong> This <em>guideline</em> has a change mark at the very start of this line.</p>
|
||||
<p>Small programs are best when they are short, obscure and concise.
|
||||
While such programs are not as complex as other winners, they do
|
||||
serve a useful purpose. They are often the only program that people
|
||||
@@ -703,7 +707,7 @@ absolute one. The intent is to ensure that the building if your
|
||||
program is reasonably portable.</p>
|
||||
<p>We prefer programs that are portable across a wide variety of Unix-like
|
||||
operating systems (i.e., Linux, GNU Hurd, BSD, Unix, etc.).</p>
|
||||
<p>You are in a maze of twisty guidelines, all different.</p>
|
||||
<p>You are in a maze of twisty <em>guidelines</em>, all different.</p>
|
||||
<p>There are at least zero judges who think that Fideism has little
|
||||
or nothing to do with the IOCCC judging process.</p>
|
||||
<p>Don’t forget that the building of your program should be done
|
||||
@@ -740,7 +744,7 @@ of code, and the other that is formatted more like a typical C
|
||||
program, we tend to favor the second version. Of course, a third
|
||||
version of the same program that is formatted in an interesting
|
||||
and/or obfuscated way, would definitely win over the first two!
|
||||
Remember, you can submit more than one entry. See the rules for details.</p>
|
||||
Remember, you can submit more than one entry. See the <a href="rules.html">IOCCC rules</a> for details.</p>
|
||||
<p>We suggest that you avoid trying for the ‘smallest self-replicating’
|
||||
source. The smallest, a zero byte entry, <a href="../1994/smr/index.html">won in 1994</a>.</p>
|
||||
<p>Programs that claim to be the smallest C source that does something, really
|
||||
@@ -768,13 +772,14 @@ 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.</p>
|
||||
<p>X client entries should avoid using X related libraries and
|
||||
software that is not in wide spread use.</p>
|
||||
<p>This is the only guideline that contains the word fizzbin.
|
||||
<strong><code>|</code></strong> However, do you know how to play <a href="https://en.wikipedia.org/wiki/List_of_games_in_Star_Trek#Fizzbin">fizzbin</a>?
|
||||
You do?!? (Except on Tuesday)</p>
|
||||
<p>This is the only <em>guideline</em> that contains the word fizzbin.</p>
|
||||
<p><strong><code>|</code></strong> However, do you know how to play <a href="https://en.wikipedia.org/wiki/List_of_games_in_Star_Trek#Fizzbin">fizzbin</a>?
|
||||
You do?!? (Except on Tuesday?)</p>
|
||||
<p><strong><code>|</code></strong> OK, there are actually 3 <em>guidelines</em> that contain the word fizzbin.</p>
|
||||
<p>We don’t like entries that use proprietary toolkits such as the <code>M*tif</code>,
|
||||
<code>Xv*ew</code>, or <code>OpenL*ok</code> toolkits, since not everyone has them. Use an
|
||||
open source toolkit that is widely and freely available instead.</p>
|
||||
<p><strong>NOTE</strong>: The previous guideline in this spot has been replaced by this guideline:</p>
|
||||
<p><strong>NOTE</strong>: The previous <em>guideline</em> in this spot has been replaced by this <em>guideline</em>:</p>
|
||||
<p>X client entries should not to depend on particular items on
|
||||
<code>.Xdefaults</code>. If you must do so, be sure to note the required lines
|
||||
in the program “remarks”. They should also not depend on any
|
||||
@@ -789,12 +794,12 @@ the scope of the contest, we phrase our bias to favor:</p>
|
||||
<p><strong><code>|</code></strong> <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX Specification</a>.</p>
|
||||
<p><strong><code>|</code></strong> You are <strong>well advised</strong> to submit entries that conform to the <a href="https://unix.org/version4/overview.html">Single UNIX Specification Version 4</a>.</p>
|
||||
<p><strong><code>|</code></strong> You very well might not be completely be prohibited from failing to not
|
||||
<strong><code>|</code></strong> partly misunderstand this particular guideline, but of course, we could
|
||||
<strong><code>|</code></strong> partly misunderstand this particular <em>guideline</em>, but of course, we could
|
||||
<strong><code>|</code></strong> not possibly comment! :-) Nevertheless, you are neither prohibited, nor are
|
||||
<strong><code>|</code></strong> you fully required to determine that this or the previous sentence is either false
|
||||
<strong><code>|</code></strong> and/or perhaps misleading. Therefore, it might be wise for you to not fail to consider
|
||||
<strong><code>|</code></strong> to do so, accordingly. Thank you very much.</p>
|
||||
<p>Any complaints about the above guideline could be addressed to the
|
||||
<p>Any complaints about the above <em>guideline</em> could be addressed to the
|
||||
Speaker of the House of Commons, or to the speaker of your national
|
||||
parliament should you have one.</p>
|
||||
<p>We like programs that:</p>
|
||||
@@ -813,7 +818,7 @@ areas really does help.</p>
|
||||
<p>You are better off explaining what your entry does in the program
|
||||
“remarks” section rather than leaving it obscure for the judges
|
||||
as we might miss something and/or be too tired to notice.</p>
|
||||
<p><strong><code>|</code></strong> Please avoid this specific individual guideline, if it at all possible.</p>
|
||||
<p><strong><code>|</code></strong> Please avoid this specific individual <em>guideline</em>, if it at all possible.</p>
|
||||
<p>We freely admit that interesting, creative or humorous comments in
|
||||
the program “remarks” help your chances of winning. If you had to
|
||||
read so many twisted entries, you too would enjoy a good laugh or two.
|
||||
@@ -828,7 +833,7 @@ their entries. In some cases tools have a “Save As” option that will
|
||||
prevent such trailing control-M’s being added.</p>
|
||||
<p>One should restrict libcurses to portable features found on BSD
|
||||
or Linux curses.</p>
|
||||
<p>Rule 13 states any C source that fails to compile because of unescaped
|
||||
<p><a href="rules.html#rule13">Rule 13</a> states any C source that fails to compile because of unescaped
|
||||
octets with the high bit set (octet value >= 128) will be rejected.
|
||||
Instead of unescaped octets, you should use or escapes:</p>
|
||||
<pre><code>
|
||||
@@ -856,13 +861,13 @@ into creating a dense blob. Such are the trade-offs that obfuscators face!</p>
|
||||
However, it is unwise to assume it will run on an i386 or x86 architecture.</p>
|
||||
<p>We believe that Mark Twain’s remark:</p>
|
||||
<pre><code> Get your facts first, then you can distort them as you please.</code></pre>
|
||||
<p>is a good guideline for those writing code for the IOCCC.</p>
|
||||
<p>is a good motto for those writing code for the IOCCC.</p>
|
||||
<p><strong><code>|</code></strong> The <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c">IOCCC size tool source</a>
|
||||
is not an original work,
|
||||
unless you are Anthony C Howe, in which case it is original!
|
||||
Submitting source that uses the content of iocccsize.c, unless you are
|
||||
Anthony C Howe, might run the risk of violating rule 7.</p>
|
||||
<p>Rule 7 does not prohibit you from writing your own obfuscated IOCCC size tool.
|
||||
Anthony C Howe, might run the risk of violating <a href="rules.html#rule7">Rule 7</a>.</p>
|
||||
<p><a href="rules.html#rule7">Rule 7</a> does not prohibit you from writing your own obfuscated IOCCC size tool.
|
||||
However if you do, you might wish to make your tool do something more
|
||||
interesting than simply implementing the IOCCC size tool algorithm.</p>
|
||||
<p>While programs that only run in a specific word size are OK. If you have
|
||||
@@ -909,47 +914,47 @@ and state:</p>
|
||||
is given enough time and memory. If the value is not a proper integer, the
|
||||
program will insult a fish named Eric, even if such a fish does not exist.</code></pre>
|
||||
<h1 id="abusing-the-rules">ABUSING THE RULES:</h1>
|
||||
<p>Legal abuse of the <a href="rules.html">rules</a> is somewhat encouraged. Legal rule abuse
|
||||
<p>Legal abuse of the <a href="rules.html">IOCCC rules</a> is somewhat encouraged. Legal rule abuse
|
||||
may involve, but is not limited to, doing things that are technically allowed by
|
||||
the <a href="rules.html">rules</a> and yet do not fit the spirit of what we intended to be
|
||||
the <a href="rules.html">IOCCC rules</a> and yet do not fit the spirit of what we intended to be
|
||||
submitted.</p>
|
||||
<p>Legal rule abuse is encouraged to help promote creativity. Rule abuse
|
||||
entries, regardless of if they receive an award, result in changes to
|
||||
the next year’s <a href="rules.html">rules</a> and <a href="guidelines.html">guidelines</a>.</p>
|
||||
<p>Legal abuse of the <a href="rules.html">rules</a> is NOT an invitation to violate the
|
||||
<a href="rules.html">rules</a>. An entry that violates the <a href="rules.html">rules</a> in the
|
||||
the next year’s <a href="rules.html">IOCCC rules</a> and <a href="guidelines.html">IOCCC guidelines</a>.</p>
|
||||
<p>Legal abuse of the <a href="rules.html">IOCCC rules</a> is NOT an invitation to violate the
|
||||
<a href="rules.html">IOCCC rules</a>. An entry that violates the <a href="rules.html">rules</a> in the
|
||||
opinion of the judges, <strong>WILL</strong> be
|
||||
disqualified. <strong><em>RULE ABUSE CARRIES A CERTAIN LEVEL OF RISK!</em></strong> If you
|
||||
have an entry that might otherwise be interesting, you might want to
|
||||
submit two versions; one that does not abuse the <a href="rules.html">rules</a> and one that
|
||||
submit two versions; one that does not abuse the <a href="rules.html">IOCCC rules</a> and one that
|
||||
does.</p>
|
||||
<p>If you intend to abuse the <a href="rules.html">rules</a>, indicate so in the program
|
||||
<p>If you intend to abuse the <a href="rules.html">IOCCC rules</a>, indicate so in the program
|
||||
“remarks”. You must try to justify why you consider your rule abuse to be
|
||||
allowed under the <a href="rules.html">rules</a>. That is, you must plead your case as to
|
||||
allowed under the <a href="rules.html">IOCCC rules</a>. That is, you must plead your case as to
|
||||
why your entry is valid. Humor and/or creativity help plead a case.</p>
|
||||
<p>Abusing the web submission procedure tends to annoy us more
|
||||
than amuse us. Spend your creative energy on content of your
|
||||
entry rather than on the submission process itself.</p>
|
||||
<p>We are often asked why the contest <a href="rules.html">rules</a> and
|
||||
<a href="guidelines.html">guidelines</a> seem too
|
||||
<p>We are often asked why the contest <a href="rules.html">IOCCC rules</a> and
|
||||
<a href="guidelines.html">IOCCC guidelines</a> seem too
|
||||
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
|
||||
<a href="rules.html">rules</a> and <a href="guidelines.html">guidelines</a> in response to rule abuses, are done in a minimal
|
||||
<a href="rules.html">IOCCC rules</a> and <a href="guidelines.html">IOCCC guidelines</a> 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 may continue. A cleaver author
|
||||
should be able to read them and “drive a truck through the holes” in
|
||||
the <a href="rules.html">rules</a> and <a href="guidelines.html">guidelines</a>.</p>
|
||||
the <a href="rules.html">IOCCC rules</a> and <a href="guidelines.html">IOCCC guidelines</a>.</p>
|
||||
<p>At the risk of stating the obvious, this contest is a parody of the software
|
||||
development process. The <a href="rules.html">rules</a> and <a href="guidelines.html">guidelines</a>
|
||||
development process. The <a href="rules.html">IOCCC rules</a> and <a href="guidelines.html">IOCCC guidelines</a>
|
||||
are only a small part of the overall contest. Even so, one may think the
|
||||
contest <a href="rules.html">rules</a> and <a href="guidelines.html">guideline</a> process as a parody
|
||||
contest <a href="rules.html">IOCCC rules</a> and <a href="guidelines.html">IOCCC guidelines</a> 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,
|
||||
product management an even from customers themselves on a all too regular basis.
|
||||
This is one of the reasons why the <a href="rules.html">rules</a> and
|
||||
<a href="guidelines.html">guidelines</a> are written in obfuscated form.</p>
|
||||
This is one of the reasons why the <a href="rules.html">IOCCC rules</a> and
|
||||
<a href="guidelines.html">IOCCC guidelines</a> are written in obfuscated form.</p>
|
||||
<h1 id="judging-process">JUDGING PROCESS:</h1>
|
||||
<p>Entries are judged by Leonid A. Broukhis and Landon Curt Noll.</p>
|
||||
<p>Each entry submitted is given a random id number and subdirectory. The
|
||||
@@ -974,8 +979,8 @@ and therefore consider any obfuscated source or data file claiming to be from
|
||||
Honeyman to not be form Honeyman. This of course creates an interesting paradox
|
||||
known as the “obfuscated Peter Honeyman paradox”. Should Peter Honeyman
|
||||
actually submit an obfuscated entry, he alone is excluded from the above, as we
|
||||
will likely believe it just another attempt at confusion. This guideline is
|
||||
known as the “Peter Honeyman is exempt” guideline.</p>
|
||||
will likely believe it just another attempt at confusion. This <em>guideline</em> is
|
||||
known as the “Peter Honeyman is exempt” <em>guideline</em>.</p>
|
||||
<p>BTW: None of the entries claiming to be from Peter Honeyman have ever
|
||||
won an award. So it is theoretically possible that Peter Honeyman
|
||||
did submit an entry in the past. In the past, Peter had denied
|
||||
@@ -1019,7 +1024,7 @@ skipping over any #include files</li>
|
||||
</ul>
|
||||
<p>In later rounds, other actions are performed including performing
|
||||
miscellaneous tests on the source and binary.</p>
|
||||
<p><strong><code>|</code></strong> This is the very guideline that goes, BING!</p>
|
||||
<p><strong><code>|</code></strong> This is the very <em>guideline</em> that goes, BING!</p>
|
||||
<p>Until we reduce the stack of entries down to about 25 entries, entries
|
||||
are judged on an individual basis. An entry is set aside because it
|
||||
does not, in our opinion, meet the standard established by the round.
|
||||
@@ -1062,7 +1067,7 @@ into voting for a winning entry by offering a bit high quality chocolate.
|
||||
This technique is highly discouraged for use by non-IOCCC judges.</p>
|
||||
<p>More often than not, we select a small entry (usually one line), a
|
||||
strange/creative layout entry. We sometimes also select an
|
||||
entry that abuses the contest guidelines in an interesting way,
|
||||
entry that abuses the <a href="guidelines.html">IOCCC guidelines</a> in an interesting way,
|
||||
or that stretches the content rules that while legal, is
|
||||
nevertheless goes against the intent of the rules.</p>
|
||||
<p>In the end, we traditionally pick one entry as ‘best’. Sometimes such
|
||||
@@ -1102,10 +1107,10 @@ and on T-Shirts. More than one winner has been turned in a tattoo!</p>
|
||||
<p>Last, but not least, winners receive international fame and flames! :-)</p>
|
||||
<h1 id="for-more-information">FOR MORE INFORMATION:</h1>
|
||||
<p><strong><code>|</code></strong> For questions or comments about the contest, see <a href="../contact.html">Contacting the IOCCC</a>.</p>
|
||||
<p><strong><code>|</code></strong> Be sure to review the <a href="index.html">IOCCC Rules and Guidelines</a> as
|
||||
<a href="rules.html">rules</a> and the <a href="guidelines.html">guidelines</a> may (and often do) change from year to year.</p>
|
||||
<p><strong><code>|</code></strong> You should be sure you have the current <a href="rules.html">rules</a> and
|
||||
<a href="guidelines.html">guidelines</a> prior to submitting entries.</p>
|
||||
<p><strong><code>|</code></strong> Be sure to review the <a href="index.html">IOCCC Rules and Guidelines</a> as the
|
||||
<a href="rules.html">IOCCC rules</a> and the <a href="guidelines.html">IOCCC guidelines</a> may (and often do) change from year to year.</p>
|
||||
<p><strong><code>|</code></strong> You should be sure you have the current <a href="rules.html">IOCCC rules</a> and
|
||||
<a href="guidelines.html">IOCCC guidelines</a> prior to submitting entries.</p>
|
||||
<p><strong><code>|</code></strong> See the <a href="../news.html">Official IOCCC website news</a> for additional information.</p>
|
||||
<p><strong><code>|</code></strong> For the updates and breaking IOCCC news, you are encouraged to follow
|
||||
the <a href="https://fosstodon.org/@ioccc">IOCCC on Mastodon</a> account. See our
|
||||
|
||||
+66
-61
@@ -30,9 +30,9 @@ and remains unaltered. All other uses must receive prior permission in
|
||||
writing by [contacting the judges](../contact.html).
|
||||
|
||||
|
||||
## Guidelines version
|
||||
## IOCCC Guidelines version
|
||||
|
||||
**`|`** This guidelines file is version **2024-06-15-v28**.
|
||||
**`|`** These [IOCCC guidelines](guidelines.html) are version **2024-06-25-v28**.
|
||||
|
||||
**IMPORTANT**: Be **SURE** to read the [IOCCC rules](rules.html).
|
||||
|
||||
@@ -52,12 +52,12 @@ submit entries to the [International Obfuscated C Code Contest
|
||||
(IOCCC)](https://www.ioccc.org).
|
||||
|
||||
These are not the IOCCC rules, though it does contain comments about
|
||||
them. The guidelines should be viewed as _hints_ and _suggestions_.
|
||||
Entries that violate the guidelines but remain within the rules _are
|
||||
allowed_. Even so, you are safer if you remain within the guidelines.
|
||||
them. The [IOCCC guidelines](guidelines.html) should be viewed as _hints_ and _suggestions_.
|
||||
Entries that violate the _guidelines_ but remain within the rules _are
|
||||
allowed_. Even so, you are safer if you remain within the [IOCCC guidelines](guidelines.html).
|
||||
|
||||
You should read the current [IOCCC rules](rules.html), prior to submitting entries.
|
||||
The rules are typically published along with these guidelines.
|
||||
The rules are typically published along with the [IOCCC guidelines](guidelines.html).
|
||||
|
||||
|
||||
# WHAT'S NEW THIS IOCCC
|
||||
@@ -68,7 +68,7 @@ The rules are typically published along with these guidelines.
|
||||
**`|`** The reason for the times of day are so that key IOCCC events are **calculated**
|
||||
for be a **fun**ctional UTC time. :-)
|
||||
|
||||
Until the start of this IOCCC, these rules, guidelines and iocccsize.c
|
||||
Until the start of this IOCCC, the [IOCCC rules](rules.html), [IOCCC guidelines](guidelines.html) and `iocccsize.c`
|
||||
(contained in the [mkiocccentry
|
||||
toolkit](https://github.com/ioccc-src/mkiocccentry))
|
||||
tool should be considered provisional **BETA** versions and **may be
|
||||
@@ -81,7 +81,7 @@ The IOCCC submission URL is <https://submit.ioccc.org/>.
|
||||
|
||||
Please wait to submit your entries until after that time.
|
||||
|
||||
The official rules, guidelines and iocccsize.c (invoked by the mkiocccentry)
|
||||
The [IOCCC rules](rules.html), [IOCCC guidelines](guidelines.html) and iocccsize.c (invoked by the mkiocccentry)
|
||||
tool will be available on the official IOCCC website on or slightly before start
|
||||
of this IOCCC. Please check the IOCCC [FAQ about how to submit](../faq.html#submit)
|
||||
to see how to submit entries, on or after the start of this IOCCC, to be sure
|
||||
@@ -135,7 +135,7 @@ to attempt to exploit them. We will award '_Worst abuse of the rules_' or
|
||||
|
||||
**`|`** Even so, we will attempt to use the smallest plug needed, if not smaller. Or, maybe not. :-)
|
||||
|
||||
**`|`** There may be less than 2^7+1 reasons why these guidelines seem obfuscated.
|
||||
**`|`** There may be less than 2^7+1 reasons why these [IOCCC guidelines](guidelines.html) seem obfuscated.
|
||||
|
||||
Check out your program and be sure that it works. We sometimes make
|
||||
the effort to debug an entry that has a slight problem, particularly
|
||||
@@ -166,17 +166,19 @@ When programs use VTxxx/ANSI sequences, they should NOT be limited to a
|
||||
specific terminal brand. Those programs that work in a standard xterm
|
||||
are considered more portable.
|
||||
|
||||
**`|`** Rule 2 (the size rule) refers to the use of the IOCCC size tool called `iocccsize`.
|
||||
**`|`** [Rule 2](rules.html#rule2) (the size rule) refers to the use of the IOCCC size tool called `iocccsize`.
|
||||
|
||||
**`|`** See the [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) for how to compile `iocccsize.c`.
|
||||
**`|`** See the [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) for the `iocccsize` tool.
|
||||
|
||||
**`|`** To further clarify rule 2, we subdivided it into two parts, 2a and 2b.
|
||||
**`|`** To further clarify [Rule 2](rules.html#rule2), we subdivided it into two parts, 2a and 2b.
|
||||
|
||||
**`|`** Your entry must satisfy BOTH the maximum size rule 2a AND your entry
|
||||
must satisfy the IOCCC size tool rule 2b.
|
||||
**`|`** The overall size limit (see [Rule 2a](rules.html#rule2a)) on `prog.c` is now 4993 bytes
|
||||
|
||||
This tool imposes a 2nd limit on C code size (rule 2b). To check your
|
||||
code against the 2nd limit of rule 2, use the -i command line option.
|
||||
**`|`** Your entry must satisfy BOTH the maximum size [Rule 2a](rules.html#rule2a) AND your entry
|
||||
must satisfy the IOCCC size tool [Rule 2b](rules.html#rule2b).
|
||||
|
||||
This tool imposes a 2nd limit on C code size (see [Rule 2a](rules.html#rule2a). To check your
|
||||
code against the 2nd limit of [Rule 2](rules.html#rule2), use the -i command line option.
|
||||
For example:
|
||||
|
||||
```
|
||||
@@ -185,13 +187,11 @@ For example:
|
||||
|
||||
The IOCCC size tool, when using the -i option, may be summarized as:
|
||||
|
||||
```
|
||||
The size tool counts most C reserved words (keyword, secondary,
|
||||
and selected preprocessor keywords) as 1. The size tool counts all
|
||||
other octets as 1 excluding ASCII whitespace, and excluding any
|
||||
';', '{' or '}' followed by ASCII whitespace, and excluding any
|
||||
';', '{' or '}' octet immediately before the end of file.
|
||||
```
|
||||
> The size tool counts most C reserved words (keyword, secondary,<br>
|
||||
> and selected preprocessor keywords) as 1. The size tool counts all<br>
|
||||
> other octets as 1 excluding ASCII whitespace, and excluding any<br>
|
||||
> ';', '{' or '}' followed by ASCII whitespace, and excluding any<br>
|
||||
> ';', '{' or '}' octet immediately before the end of file.
|
||||
|
||||
ASCII whitespace includes ASCII tab, ASCII space, ASCII newline,
|
||||
ASCII formfeed, and ASCII carriage return.
|
||||
@@ -215,10 +215,12 @@ by the IOCCC size tool source code is preferred by the judges.
|
||||
|
||||
Take note that this secondary limit imposed by the IOCCC size tool
|
||||
obviates some of the need to `#define` C reserved words in an effort
|
||||
to get around the size limits of rule 2.
|
||||
to get around the size limits of [Rule 2](rules.html#rule2).
|
||||
|
||||
Yes Virginia, **that is a hint**!
|
||||
|
||||
**`|`** The [Rule 2a](rules.html#rule2a) size was changed from 4096 to 4993: a change that keeps the "2b to 2a" size ratio to a value similar to the [2001-2020 IOCCC era](../faq.html#size_rule).
|
||||
|
||||
We applaud programs that do not issue warnings when compiled.
|
||||
To avoid warnings, you might be tempted to add various `-Wno-foobar`
|
||||
flags. Unfortunately such flags are NOT portable. Moreover,
|
||||
@@ -369,7 +371,7 @@ On 28 January 2007, the Judges rescinded the requirement that the
|
||||
The `exit(3)` function returns `void`. Some broken systems have `exit(3)`
|
||||
return `int`, your entry should assume that `exit(3)` returns a `void`.
|
||||
|
||||
**`|`** This guideline has a change mark at the very start of this line.
|
||||
**`|`** This _guideline_ has a change mark at the very start of this line.
|
||||
|
||||
Small programs are best when they are short, obscure and concise.
|
||||
While such programs are not as complex as other winners, they do
|
||||
@@ -455,7 +457,7 @@ program is reasonably portable.
|
||||
We prefer programs that are portable across a wide variety of Unix-like
|
||||
operating systems (i.e., Linux, GNU Hurd, BSD, Unix, etc.).
|
||||
|
||||
You are in a maze of twisty guidelines, all different.
|
||||
You are in a maze of twisty _guidelines_, all different.
|
||||
|
||||
There are at least zero judges who think that Fideism has little
|
||||
or nothing to do with the IOCCC judging process.
|
||||
@@ -509,7 +511,7 @@ of code, and the other that is formatted more like a typical C
|
||||
program, we tend to favor the second version. Of course, a third
|
||||
version of the same program that is formatted in an interesting
|
||||
and/or obfuscated way, would definitely win over the first two!
|
||||
Remember, you can submit more than one entry. See the rules for details.
|
||||
Remember, you can submit more than one entry. See the [IOCCC rules](rules.html) for details.
|
||||
|
||||
We suggest that you avoid trying for the 'smallest self-replicating'
|
||||
source. The smallest, a zero byte entry, [won in 1994](../1994/smr/index.html).
|
||||
@@ -555,15 +557,18 @@ source program (one that actually works) to display audio/visual data.
|
||||
X client entries should avoid using X related libraries and
|
||||
software that is not in wide spread use.
|
||||
|
||||
This is the only guideline that contains the word fizzbin.
|
||||
This is the only _guideline_ that contains the word fizzbin.
|
||||
|
||||
**`|`** However, do you know how to play [fizzbin](https://en.wikipedia.org/wiki/List_of_games_in_Star_Trek#Fizzbin)?
|
||||
You do?!? (Except on Tuesday)
|
||||
You do?!? (Except on Tuesday?)
|
||||
|
||||
**`|`** OK, there are actually 3 _guidelines_ that contain the word fizzbin.
|
||||
|
||||
We don't like entries that use proprietary toolkits such as the `M*tif`,
|
||||
`Xv*ew`, or `OpenL*ok` toolkits, since not everyone has them. Use an
|
||||
open source toolkit that is widely and freely available instead.
|
||||
|
||||
**NOTE**: The previous guideline in this spot has been replaced by this guideline:
|
||||
**NOTE**: The previous _guideline_ in this spot has been replaced by this _guideline_:
|
||||
|
||||
X client entries should not to depend on particular items on
|
||||
`.Xdefaults`. If you must do so, be sure to note the required lines
|
||||
@@ -584,13 +589,13 @@ the scope of the contest, we phrase our bias to favor:
|
||||
**`|`** You are **well advised** to submit entries that conform to the [Single UNIX Specification Version 4](https://unix.org/version4/overview.html).
|
||||
|
||||
**`|`** You very well might not be completely be prohibited from failing to not
|
||||
**`|`** partly misunderstand this particular guideline, but of course, we could
|
||||
**`|`** partly misunderstand this particular _guideline_, but of course, we could
|
||||
**`|`** not possibly comment! :-) Nevertheless, you are neither prohibited, nor are
|
||||
**`|`** you fully required to determine that this or the previous sentence is either false
|
||||
**`|`** and/or perhaps misleading. Therefore, it might be wise for you to not fail to consider
|
||||
**`|`** to do so, accordingly. Thank you very much.
|
||||
|
||||
Any complaints about the above guideline could be addressed to the
|
||||
Any complaints about the above _guideline_ could be addressed to the
|
||||
Speaker of the House of Commons, or to the speaker of your national
|
||||
parliament should you have one.
|
||||
|
||||
@@ -612,7 +617,7 @@ You are better off explaining what your entry does in the program
|
||||
"remarks" section rather than leaving it obscure for the judges
|
||||
as we might miss something and/or be too tired to notice.
|
||||
|
||||
**`|`** Please avoid this specific individual guideline, if it at all possible.
|
||||
**`|`** Please avoid this specific individual _guideline_, if it at all possible.
|
||||
|
||||
We freely admit that interesting, creative or humorous comments in
|
||||
the program "remarks" help your chances of winning. If you had to
|
||||
@@ -631,7 +636,7 @@ prevent such trailing control-M's being added.
|
||||
One should restrict libcurses to portable features found on BSD
|
||||
or Linux curses.
|
||||
|
||||
Rule 13 states any C source that fails to compile because of unescaped
|
||||
[Rule 13](rules.html#rule13) states any C source that fails to compile because of unescaped
|
||||
octets with the high bit set (octet value >= 128) will be rejected.
|
||||
Instead of unescaped octets, you should use \octal or \hex escapes:
|
||||
|
||||
@@ -671,15 +676,15 @@ We believe that Mark Twain's remark:
|
||||
Get your facts first, then you can distort them as you please.
|
||||
```
|
||||
|
||||
is a good guideline for those writing code for the IOCCC.
|
||||
is a good motto for those writing code for the IOCCC.
|
||||
|
||||
**`|`** The [IOCCC size tool source](https://github.com/ioccc-src/mkiocccentry/blob/master/iocccsize.c)
|
||||
is not an original work,
|
||||
unless you are Anthony C Howe, in which case it is original!
|
||||
Submitting source that uses the content of iocccsize.c, unless you are
|
||||
Anthony C Howe, might run the risk of violating rule 7.
|
||||
Anthony C Howe, might run the risk of violating [Rule 7](rules.html#rule7).
|
||||
|
||||
Rule 7 does not prohibit you from writing your own obfuscated IOCCC size tool.
|
||||
[Rule 7](rules.html#rule7) does not prohibit you from writing your own obfuscated IOCCC size tool.
|
||||
However if you do, you might wish to make your tool do something more
|
||||
interesting than simply implementing the IOCCC size tool algorithm.
|
||||
|
||||
@@ -768,53 +773,53 @@ and state:
|
||||
|
||||
# ABUSING THE RULES:
|
||||
|
||||
Legal abuse of the [rules](rules.html) is somewhat encouraged. Legal rule abuse
|
||||
Legal abuse of the [IOCCC rules](rules.html) is somewhat encouraged. Legal rule abuse
|
||||
may involve, but is not limited to, doing things that are technically allowed by
|
||||
the [rules](rules.html) and yet do not fit the spirit of what we intended to be
|
||||
the [IOCCC rules](rules.html) 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
|
||||
entries, regardless of if they receive an award, result in changes to
|
||||
the next year's [rules](rules.html) and [guidelines](guidelines.html).
|
||||
the next year's [IOCCC rules](rules.html) and [IOCCC guidelines](guidelines.html).
|
||||
|
||||
Legal abuse of the [rules](rules.html) is NOT an invitation to violate the
|
||||
[rules](rules.html). An entry that violates the [rules](rules.html) in the
|
||||
Legal abuse of the [IOCCC rules](rules.html) is NOT an invitation to violate the
|
||||
[IOCCC rules](rules.html). An entry that violates the [rules](rules.html) in the
|
||||
opinion of the judges, **WILL** be
|
||||
disqualified. **_RULE ABUSE CARRIES A CERTAIN LEVEL OF RISK!_** If you
|
||||
have an entry that might otherwise be interesting, you might want to
|
||||
submit two versions; one that does not abuse the [rules](rules.html) and one that
|
||||
submit two versions; one that does not abuse the [IOCCC rules](rules.html) and one that
|
||||
does.
|
||||
|
||||
If you intend to abuse the [rules](rules.html), indicate so in the program
|
||||
If you intend to abuse the [IOCCC rules](rules.html), indicate so in the program
|
||||
"remarks". You must try to justify why you consider your rule abuse to be
|
||||
allowed under the [rules](rules.html). That is, you must plead your case as to
|
||||
allowed under the [IOCCC rules](rules.html). That is, you must plead your case as to
|
||||
why your entry is valid. Humor and/or creativity help plead a case.
|
||||
|
||||
Abusing the web submission procedure tends to annoy us more
|
||||
than amuse us. Spend your creative energy on content of your
|
||||
entry rather than on the submission process itself.
|
||||
|
||||
We are often asked why the contest [rules](rules.html) and
|
||||
[guidelines](guidelines.html) seem too
|
||||
We are often asked why the contest [IOCCC rules](rules.html) and
|
||||
[IOCCC guidelines](guidelines.html) seem too
|
||||
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
|
||||
[rules](rules.html) and [guidelines](guidelines.html) in response to rule abuses, are done in a minimal
|
||||
[IOCCC rules](rules.html) and [IOCCC guidelines](guidelines.html) 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 may continue. A cleaver author
|
||||
should be able to read them and "drive a truck through the holes" in
|
||||
the [rules](rules.html) and [guidelines](guidelines.html).
|
||||
the [IOCCC rules](rules.html) and [IOCCC guidelines](guidelines.html).
|
||||
|
||||
At the risk of stating the obvious, this contest is a parody of the software
|
||||
development process. The [rules](rules.html) and [guidelines](guidelines.html)
|
||||
development process. The [IOCCC rules](rules.html) and [IOCCC guidelines](guidelines.html)
|
||||
are only a small part of the overall contest. Even so, one may think the
|
||||
contest [rules](rules.html) and [guideline](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
|
||||
and what engineering delivers. Real programmers must face obfuscated and
|
||||
sometimes conflicting specifications and requirements from marketing, sales,
|
||||
product management an even from customers themselves on a all too regular basis.
|
||||
This is one of the reasons why the [rules](rules.html) and
|
||||
[guidelines](guidelines.html) are written in obfuscated form.
|
||||
This is one of the reasons why the [IOCCC rules](rules.html) and
|
||||
[IOCCC guidelines](guidelines.html) are written in obfuscated form.
|
||||
|
||||
|
||||
# JUDGING PROCESS:
|
||||
@@ -847,8 +852,8 @@ and therefore consider any obfuscated source or data file claiming to be from
|
||||
Honeyman to not be form Honeyman. This of course creates an interesting paradox
|
||||
known as the "obfuscated Peter Honeyman paradox". Should Peter Honeyman
|
||||
actually submit an obfuscated entry, he alone is excluded from the above, as we
|
||||
will likely believe it just another attempt at confusion. This guideline is
|
||||
known as the "Peter Honeyman is exempt" guideline.
|
||||
will likely believe it just another attempt at confusion. This _guideline_ is
|
||||
known as the "Peter Honeyman is exempt" _guideline_.
|
||||
|
||||
BTW: None of the entries claiming to be from Peter Honeyman have ever
|
||||
won an award. So it is theoretically possible that Peter Honeyman
|
||||
@@ -901,7 +906,7 @@ A reading consists of a number of actions:
|
||||
In later rounds, other actions are performed including performing
|
||||
miscellaneous tests on the source and binary.
|
||||
|
||||
**`|`** This is the very guideline that goes, BING!
|
||||
**`|`** This is the very _guideline_ that goes, BING!
|
||||
|
||||
Until we reduce the stack of entries down to about 25 entries, entries
|
||||
are judged on an individual basis. An entry is set aside because it
|
||||
@@ -951,7 +956,7 @@ This technique is highly discouraged for use by non-IOCCC judges.
|
||||
|
||||
More often than not, we select a small entry (usually one line), a
|
||||
strange/creative layout entry. We sometimes also select an
|
||||
entry that abuses the contest guidelines in an interesting way,
|
||||
entry that abuses the [IOCCC guidelines](guidelines.html) in an interesting way,
|
||||
or that stretches the content rules that while legal, is
|
||||
nevertheless goes against the intent of the rules.
|
||||
|
||||
@@ -1027,11 +1032,11 @@ Last, but not least, winners receive international fame and flames! :-)
|
||||
|
||||
**`|`** For questions or comments about the contest, see [Contacting the IOCCC](../contact.html).
|
||||
|
||||
**`|`** Be sure to review the [IOCCC Rules and Guidelines](index.html) as
|
||||
[rules](rules.html) and the [guidelines](guidelines.html) may (and often do) change from year to year.
|
||||
**`|`** Be sure to review the [IOCCC Rules and Guidelines](index.html) as the
|
||||
[IOCCC rules](rules.html) and the [IOCCC guidelines](guidelines.html) may (and often do) change from year to year.
|
||||
|
||||
**`|`** You should be sure you have the current [rules](rules.html) and
|
||||
[guidelines](guidelines.html) prior to submitting entries.
|
||||
**`|`** You should be sure you have the current [IOCCC rules](rules.html) and
|
||||
[IOCCC guidelines](guidelines.html) prior to submitting entries.
|
||||
|
||||
**`|`** See the [Official IOCCC website news](../news.html) for additional information.
|
||||
|
||||
|
||||
+79
-17
@@ -404,8 +404,10 @@ future IOCCC openings.</p>
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in
|
||||
writing by <a href="../contact.html">contacting the judges</a>.</p>
|
||||
<h2 id="rules-version">Rules version</h2>
|
||||
<p><strong><code>|</code></strong> These rules are version <strong>2024-06-15-v28</strong>.</p>
|
||||
<div id="rule_version">
|
||||
<h2 id="ioccc-rules-version">IOCCC Rules version</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> These <a href="rules.html">IOCCC rules</a> are version <strong>2024-06-23-v28</strong>.</p>
|
||||
<p><strong>IMPORTANT</strong>: Be sure to read the <a href="guidelines.html">IOCCC guidelines</a>.</p>
|
||||
<h3 id="change-marks">Change marks</h3>
|
||||
<p><strong><code>|</code></strong> <strong>← Lines that start with this symbol indicate a change from the previous IOCCC</strong></p>
|
||||
@@ -423,7 +425,7 @@ IOCCC start with the <strong><code>|</code></strong> symbol.</p>
|
||||
<h1 id="goals-of-the-contest">Goals of the Contest</h1>
|
||||
<p>The goals of the IOCCC:</p>
|
||||
<ul>
|
||||
<li>To write the most Obscure/Obfuscated C program within the <a href="rules.html">rules</a>.</li>
|
||||
<li>To write the most Obscure/Obfuscated C program within the <a href="rules.html">IOCCC rules</a>.</li>
|
||||
<li>To show the importance of programming style, in an ironic way.</li>
|
||||
<li>To stress C compilers with unusual code.</li>
|
||||
<li>To illustrate some of the subtleties of the C language.</li>
|
||||
@@ -432,8 +434,8 @@ IOCCC start with the <strong><code>|</code></strong> symbol.</p>
|
||||
<h1 id="important-ioccc-dates">Important IOCCC dates</h1>
|
||||
<p><strong><code>|</code></strong> This IOCCC runs from <strong>2024-MMM-DD HH:MM:SS UTC</strong> to <strong>202x-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||||
<strong><code>|</code></strong> <strong>XXX - date/time is TBD - XXX</strong></p>
|
||||
<p>Until the start of this IOCCC, these <a href="rules.html">rules</a>,
|
||||
<a href="guidelines.html">guidelines</a> and iocccsize.c (contained in the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
<p>Until the start of this IOCCC, these <a href="rules.html">IOCCC rules</a>,
|
||||
<a href="guidelines.html">IOCCC guidelines</a> and iocccsize.c (contained in the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||||
toolkit</a> and invoked by the
|
||||
<code>mkiocccentry(1)</code> tool) should be considered provisional <strong>BETA</strong> versions and
|
||||
<strong>may be adjusted <em>AT ANY TIME</em></strong>.</p>
|
||||
@@ -445,24 +447,32 @@ for <strong>important information</strong> on how to submit to the IOCCC.</p>
|
||||
<p><strong><code>|</code></strong> The submit URL should be active on or slightly before <strong>2024-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||||
<strong><code>|</code></strong> <strong>XXX - date/time is TBD - XXX</strong></p>
|
||||
<p>Please wait to submit your entries until after that time.</p>
|
||||
<p>The official <a href="rules.html">rules</a> and <a href="guidelines.html">guidelines</a> will be
|
||||
<p>The official <a href="rules.html">IOCCC rules</a> and <a href="guidelines.html">IOCCC guidelines</a> will be
|
||||
available on the <a href="../index.html">official IOCCC website</a> on or slightly before
|
||||
the start of this IOCCC. The <code>mkiocccentry</code> toolkit may be obtained at any time
|
||||
at the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit repo</a>.</p>
|
||||
<p>Please recheck on or after the start of this IOCCC to be sure you
|
||||
are using the correct versions of these items before using the IOCCC
|
||||
entry submission URL.</p>
|
||||
<h1 id="rules">RULES</h1>
|
||||
<h1 id="ioccc-rules">IOCCC RULES</h1>
|
||||
<p>To help us with the volume of entries, we ask that you follow these rules:</p>
|
||||
<h2 id="rule-0">Rule 0</h2>
|
||||
<p>We need a rule 0. :-)</p>
|
||||
<div id="rule1">
|
||||
<h2 id="rule-1">Rule 1</h2>
|
||||
</div>
|
||||
<p>Your entry must be a complete program.</p>
|
||||
<div id="rule2">
|
||||
<h2 id="rule-2">Rule 2</h2>
|
||||
<p>The size rule requires your entry to satisfy <strong>BOTH</strong> rule 2a and rule 2b:</p>
|
||||
</div>
|
||||
<p>The size rule requires your entry to satisfy <strong>BOTH</strong> <a href="#rule2a">Rule 2a</a> and <a href="#rule2b">Rule 2b</a>:</p>
|
||||
<div id="rule2a">
|
||||
<h2 id="rule-2a">Rule 2a</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> The size of your program source <strong>MUST BE <= 4993 bytes</strong> in length.</p>
|
||||
<div id="rule2b">
|
||||
<h2 id="rule-2b">Rule 2b</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> When your program source is fed as input to the current IOCCC size
|
||||
tool, and the IOCCC size tool <code>-i</code> command line option is used, the
|
||||
value printed <strong>shall not exceed 2503</strong>.</p>
|
||||
@@ -470,7 +480,9 @@ value printed <strong>shall not exceed 2503</strong>.</p>
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry tool repo</a>. If you use
|
||||
the <code>mkiocccentry</code> tool (which we <strong>STRONGLY recommend you do</strong>) it will invoke
|
||||
this tool before packaging your entry for submission.</p>
|
||||
<div id="rule3">
|
||||
<h2 id="rule-3">Rule 3</h2>
|
||||
</div>
|
||||
<p>Submissions should be performed using the instructions outlined at:
|
||||
the <a href="../faq.html#submit">How to enter FAQ</a>.</p>
|
||||
<p>To submit to an open IOCCC, you must use the <a href="https://submit.ioccc.org/">IOCCC submit server</a>.</p>
|
||||
@@ -478,65 +490,89 @@ the <a href="../faq.html#submit">How to enter FAQ</a>.</p>
|
||||
<p><strong><code>|</code></strong> The submit URL should be active on or slightly before <strong>2024-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||||
<strong><code>|</code></strong> <strong>XXX - date/time is TBD - XXX</strong></p>
|
||||
<p>Please wait to submit your entries until after that time.</p>
|
||||
<div id="rule4">
|
||||
<h2 id="rule-4">Rule 4</h2>
|
||||
</div>
|
||||
<p>If your entry is selected as a winner, it will be modified as follows:</p>
|
||||
<p>Your ‘build’ instructions will be incorporated into a Makefile.</p>
|
||||
<p>Your source code will be the file <strong>prog.c</strong>. The compiled binary
|
||||
will be called <strong>prog</strong>.</p>
|
||||
<div id="rule5">
|
||||
<h2 id="rule-5">Rule 5</h2>
|
||||
</div>
|
||||
<p>Your entry <strong>MUST</strong> not modify the content or filename of any part of your
|
||||
original entry including, but not limited to <strong>prog.c</strong>, the <strong>Makefile</strong>
|
||||
(that we create from your how to build instructions), as well as any data
|
||||
files you submit.</p>
|
||||
<p>If you entry wishes to modify such content, it <strong>MUST</strong> first copy the
|
||||
file to a new filename and then modify that copy.</p>
|
||||
<div id="rule6">
|
||||
<h2 id="rule-6">Rule 6</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> I am not a rule, I am a <code>free(void *human);</code> ‼️</p>
|
||||
<p><strong><code>|</code></strong> <code>while (!(ioccc(rule(you(are(number(6)))))) {</code><br>
|
||||
<strong><code>|</code></strong> <code>ha_ha_ha();</code><br>
|
||||
<strong><code>|</code></strong> <code>}</code></p>
|
||||
<div id="rule7">
|
||||
<h2 id="rule-7">Rule 7</h2>
|
||||
</div>
|
||||
<p>The obfuscated C program must be an original work that you own.</p>
|
||||
<p>You (the author(s)) must own the contents of your submission OR
|
||||
you must have permission from the owner(s) to submit their content
|
||||
under the following license:</p>
|
||||
<p><strong><code>|</code></strong> <strong><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a></strong></p>
|
||||
<p>See also rule 18.</p>
|
||||
<p>See also <a href="#rule18">Rule 18</a>.</p>
|
||||
<p>If you submit any content that is owned by others, you <strong>MUST</strong>
|
||||
detail that ownership (i.e., who owns what) <strong>AND document the
|
||||
permission you obtained</strong>.</p>
|
||||
<p>Please note that the IOCCC size tool is <strong>NOT</strong> an original work.</p>
|
||||
<div id="rule8">
|
||||
<h2 id="rule-8">Rule 8</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> Entries must be received prior to the end of this IOCCC which is <strong>2024-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||||
<strong><code>|</code></strong> <strong>XXX - date/time is TBD - XXX</strong></p>
|
||||
<p>A confirmation of submission will be sent to the submitting email address
|
||||
before the close of the contest.</p>
|
||||
<div id="rule9">
|
||||
<h2 id="rule-9">Rule 9</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> Each person may submit up to and including 10.000000 entries per contest.</p>
|
||||
<p>Each entry must be submitted separately.</p>
|
||||
<div id="rule10">
|
||||
<h2 id="rule-10">Rule 10</h2>
|
||||
</div>
|
||||
<p>Entries requiring human interaction to be initially compiled are not permitted.</p>
|
||||
<div id="rule11">
|
||||
<h2 id="rule-11">Rule 11</h2>
|
||||
</div>
|
||||
<p>Programs that require special privileges (<code>setuid(2)</code>, <code>setgid(2)</code>, super-user,
|
||||
special owner, special group, etc.) are still highly discouraged. We
|
||||
do not guarantee these functions will behave as you expect on our test
|
||||
platforms. If your program needs special permissions <strong>please document
|
||||
them</strong> in the remarks file.</p>
|
||||
<div id="rule12">
|
||||
<h2 id="rule-12">Rule 12</h2>
|
||||
</div>
|
||||
<p>Legal abuse of the rules is somewhat encouraged. An entry that, in
|
||||
the opinion of the judges, violates the rules will be disqualified.
|
||||
Entries that attempt to abuse the rules <strong>MUST</strong> try to justify why
|
||||
their rule abuse is legal, in the remarks file.</p>
|
||||
<div id="rule13">
|
||||
<h2 id="rule-13">Rule 13</h2>
|
||||
</div>
|
||||
<p>Any C source that fails to compile because of unescaped octets with
|
||||
the high bit set (octet value >= 128) will be rejected.</p>
|
||||
<div id="rule14">
|
||||
<h2 id="rule-14">Rule 14</h2>
|
||||
</div>
|
||||
<p>Any C source that fails to compile because of lines with trailing
|
||||
control-M’s (i.e., lines with a tailing octet <code>015</code>) will be rejected.</p>
|
||||
<p>Please do not put trailing control-M’s on remarks file lines.
|
||||
Please check to be sure, before submitting, that you have removed
|
||||
any control-M at the end of remark file lines.</p>
|
||||
<div id="rule15">
|
||||
<h2 id="rule-15">Rule 15</h2>
|
||||
</div>
|
||||
<p>When you submit your entry you must have a valid email address
|
||||
that can both send and receive email. The online submission
|
||||
method is a two phase process that requires the use of an
|
||||
@@ -552,12 +588,16 @@ be valid for submitting and editing the entry for the lifetime of the
|
||||
competition.</p>
|
||||
<p>See also <a href="../faq.html#submit">How may I submit to the IOCCC?</a> in the
|
||||
<a href="../faq.html">FAQ</a>.</p>
|
||||
<div id="rule16">
|
||||
<h2 id="rule-16">Rule 16</h2>
|
||||
</div>
|
||||
<p>You are <strong>STRONGLY</strong> encouraged to submit a previously unpublished <em>AND</em>
|
||||
original entry. Submissions that are similar to previous entries are
|
||||
discouraged. As we judge anonymously, submissions that have already
|
||||
been published may be disqualified.</p>
|
||||
<div id="rule17">
|
||||
<h2 id="rule-17">Rule 17</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> The total size of your submission: the sum of the size of the program,
|
||||
hints, comments, build and info files <strong>MUST</strong> be less than or equal
|
||||
to 28314624 octets (27651K) in size.</p>
|
||||
@@ -565,19 +605,25 @@ to 28314624 octets (27651K) in size.</p>
|
||||
that file must than or equal 3999971 octets in size.</p>
|
||||
<p><strong><code>|</code></strong> The <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a>
|
||||
(see <code>mkiocccentry(1)</code> and <code>txzchk(1)</code>) will help you verify that your
|
||||
submission conforms to this rule.</p>
|
||||
submission conforms to this <a href="#rule17">Rule 17</a>.</p>
|
||||
<div id="rule18">
|
||||
<h2 id="rule-18">Rule 18</h2>
|
||||
</div>
|
||||
<p>The entirety of your entry must be submitted under the following license:</p>
|
||||
<p><strong><code>|</code></strong> <strong><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a></strong></p>
|
||||
<p>You (the author(s)) <strong>MUST</strong> own the contents of your submission <strong>OR</strong>
|
||||
you <strong>MUST HAVE PERMISSION</strong> from the owner(s) to submit their content.</p>
|
||||
<p>You must not submit anything that cannot be submitted under that license.</p>
|
||||
<div id="rule19">
|
||||
<h2 id="rule-19">Rule 19</h2>
|
||||
</div>
|
||||
<p>The remarks file must be written in markdown format. See
|
||||
the Daring Fireball <a href="http://daringfireball.net/projects/markdown/basics">Markdown: Basics</a>
|
||||
for more information.</p>
|
||||
<p><strong><code>|</code></strong> We currently use <a href="https://pandoc.org">pandoc</a> to convert markdown to HTML.</p>
|
||||
<div id="rule20">
|
||||
<h2 id="rule-20">Rule 20</h2>
|
||||
</div>
|
||||
<p>The how to build instructions must be in Makefile format. See <a href="../faq.html#make_compatibility">the FAQ about
|
||||
make(1) compatibility the IOCCC
|
||||
supports</a> for more details.</p>
|
||||
@@ -597,13 +643,17 @@ to use.</p>
|
||||
for help in constructing your Makefile. The <code>mkiocccentry</code>, which can be found
|
||||
at the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>, tries to
|
||||
detect if required rules exist in your Makefile.</p>
|
||||
<div id="rule21">
|
||||
<h2 id="rule-21">Rule 21</h2>
|
||||
</div>
|
||||
<p>Your entry must not create or modify files above the current directory
|
||||
with the exception of the <code>/tmp</code> and the <code>/var/tmp</code> directories. Your entry
|
||||
<strong>MAY</strong> create subdirectories below the current directory, or in <code>/tmp</code>,
|
||||
or in <code>/var/tmp</code> provided that <code>.</code> is <strong>NOT</strong> the first octet in any
|
||||
directory name or filename you submit.</p>
|
||||
<div id="rule22">
|
||||
<h2 id="rule-22">Rule 22</h2>
|
||||
</div>
|
||||
<p>Catch 22:</p>
|
||||
<p>Your source code, data files, remarks and program output must <strong>NOT</strong>
|
||||
identify the authors of your code. The judges <strong>STRONGLY prefer</strong> to
|
||||
@@ -614,29 +664,41 @@ within your code, data, remarks or program output (unless you are
|
||||
<em>Peter Honeyman</em> or pretending to be <em>Peter Honeyman</em>) will be grounds
|
||||
for disqualification of your entry.</p>
|
||||
<p>Yes, Virginia, <strong>WE REALLY MEAN IT!</strong></p>
|
||||
<div id="rule23">
|
||||
<h2 id="rule-23">Rule 23</h2>
|
||||
</div>
|
||||
<p>This prime rule number is reserved for future use.</p>
|
||||
<div id="rule24">
|
||||
<h2 id="rule-24">Rule 24</h2>
|
||||
<p>Even though 24 is not prime, you should still see rule #23.</p>
|
||||
</div>
|
||||
<p>Even though 24 is not prime, you should still see <a href="#rule23">Rule 23</a>.</p>
|
||||
<div id="rule25">
|
||||
<h2 id="rule-25">Rule 25</h2>
|
||||
<p><strong><code>|</code></strong> The IOCCC rule set needs more than 5^2 rules: see rule #26.</p>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> The <a href="rules.html">IOCCC rule set</a> needs more than 5^2 rules: see <a href="#rule26">Rule 26</a>.</p>
|
||||
<div id="rule26">
|
||||
<h2 id="rule-26">Rule 26</h2>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> “The quick brown fox jumps over the lazy dog”.<br>
|
||||
<strong><code>|</code></strong> “Pack my box with five dozen liquor jugs.”<br>
|
||||
<strong><code>|</code></strong> “How vexingly quick daft zebras jump!”<br>
|
||||
<strong><code>|</code></strong> “Sphinx of black quartz, judge my vow.”<br>
|
||||
<strong><code>|</code></strong> “Waltz, bad nymph, for quick jigs vex.”<br>
|
||||
<strong><code>|</code></strong> “Mr. Jock, TV quiz PhD, bags few lynx.”</p>
|
||||
<div id="rule27">
|
||||
<h2 id="rule-27">Rule 27</h2>
|
||||
<p><strong><code>|</code></strong> Unless otherwise needed, rule 27 is reserved for something cubic. :-)</p>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> Unless otherwise needed, <a href="#rule27">Rule 27</a> is reserved for something cubic. :-)</p>
|
||||
<div id="rule28">
|
||||
<h2 id="rule-28">Rule 28</h2>
|
||||
<p><strong><code>|</code></strong> Rule 28 is a perfect way end to the list of rules as we do not plan to have 496 rules.</p>
|
||||
</div>
|
||||
<p><strong><code>|</code></strong> <a href="#rule28">Rule 28</a> is a perfect way end to the list of <a href="rules.html">IOCCC rules</a> as we do not plan to have 496 rules. :-)</p>
|
||||
<h1 id="for-more-information">FOR MORE INFORMATION:</h1>
|
||||
<p><strong><code>|</code></strong> For questions or comments about the contest, see <a href="../contact.html">Contacting the IOCCC</a>.</p>
|
||||
<p><strong><code>|</code></strong> Be sure to review the <a href="index.html">IOCCC Rules and Guidelines</a> as
|
||||
<a href="rules.html">rules</a> and the <a href="guidelines.html">guidelines</a> may (and often do) change from year to year.</p>
|
||||
<p><strong><code>|</code></strong> You should be sure you have the current <a href="rules.html">rules</a> and
|
||||
<a href="guidelines.html">guidelines</a> prior to submitting entries.</p>
|
||||
<a href="rules.html">IOCCC rules</a> and the <a href="guidelines.html">IOCCC guidelines</a> may (and often do) change from year to year.</p>
|
||||
<p><strong><code>|</code></strong> You should be sure you have the current <a href="rules.html">IOCCC rules</a> and
|
||||
<a href="guidelines.html">IOCCC guidelines</a> prior to submitting entries.</p>
|
||||
<p><strong><code>|</code></strong> See the <a href="../news.html">Official IOCCC website news</a> for additional information.</p>
|
||||
<p><strong><code>|</code></strong> For the updates and breaking IOCCC news, you are encouraged to follow
|
||||
the <a href="https://fosstodon.org/@ioccc">IOCCC on Mastodon</a> account. See our
|
||||
|
||||
+80
-18
@@ -32,9 +32,11 @@ and remains unaltered. All other uses must receive prior permission in
|
||||
writing by [contacting the judges](../contact.html).
|
||||
|
||||
|
||||
## Rules version
|
||||
<div id="rule_version">
|
||||
## IOCCC Rules version
|
||||
</div>
|
||||
|
||||
**`|`** These rules are version **2024-06-15-v28**.
|
||||
**`|`** These [IOCCC rules](rules.html) are version **2024-06-23-v28**.
|
||||
|
||||
**IMPORTANT**: Be sure to read the [IOCCC guidelines](guidelines.html).
|
||||
|
||||
@@ -63,7 +65,7 @@ tr.v. -cated, -cating, -cates.
|
||||
|
||||
The goals of the IOCCC:
|
||||
|
||||
* To write the most Obscure/Obfuscated C program within the [rules](rules.html).
|
||||
* To write the most Obscure/Obfuscated C program within the [IOCCC rules](rules.html).
|
||||
* To show the importance of programming style, in an ironic way.
|
||||
* To stress C compilers with unusual code.
|
||||
* To illustrate some of the subtleties of the C language.
|
||||
@@ -75,8 +77,8 @@ The goals of the IOCCC:
|
||||
**`|`** This IOCCC runs from **2024-MMM-DD HH:MM:SS UTC** to **202x-MMM-DD HH:MM:SS UTC**.<br>
|
||||
**`|`** **XXX - date/time is TBD - XXX**
|
||||
|
||||
Until the start of this IOCCC, these [rules](rules.html),
|
||||
[guidelines](guidelines.html) and iocccsize.c (contained in the [mkiocccentry
|
||||
Until the start of this IOCCC, these [IOCCC rules](rules.html),
|
||||
[IOCCC guidelines](guidelines.html) and iocccsize.c (contained in the [mkiocccentry
|
||||
toolkit](https://github.com/ioccc-src/mkiocccentry) and invoked by the
|
||||
`mkiocccentry(1)` tool) should be considered provisional **BETA** versions and
|
||||
**may be adjusted _AT ANY TIME_**.
|
||||
@@ -93,7 +95,7 @@ for **important information** on how to submit to the IOCCC.
|
||||
|
||||
Please wait to submit your entries until after that time.
|
||||
|
||||
The official [rules](rules.html) and [guidelines](guidelines.html) will be
|
||||
The official [IOCCC rules](rules.html) and [IOCCC guidelines](guidelines.html) will be
|
||||
available on the [official IOCCC website](../index.html) on or slightly before
|
||||
the start of this IOCCC. The `mkiocccentry` toolkit may be obtained at any time
|
||||
at the [mkiocccentry toolkit repo](https://github.com/ioccc-src/mkiocccentry).
|
||||
@@ -103,7 +105,7 @@ are using the correct versions of these items before using the IOCCC
|
||||
entry submission URL.
|
||||
|
||||
|
||||
# RULES
|
||||
# IOCCC RULES
|
||||
|
||||
To help us with the volume of entries, we ask that you follow these rules:
|
||||
|
||||
@@ -113,22 +115,30 @@ To help us with the volume of entries, we ask that you follow these rules:
|
||||
We need a rule 0. :-)
|
||||
|
||||
|
||||
<div id="rule1">
|
||||
## Rule 1
|
||||
</div>
|
||||
|
||||
Your entry must be a complete program.
|
||||
|
||||
|
||||
<div id="rule2">
|
||||
## Rule 2
|
||||
</div>
|
||||
|
||||
The size rule requires your entry to satisfy **BOTH** rule 2a and rule 2b:
|
||||
The size rule requires your entry to satisfy **BOTH** [Rule 2a](#rule2a) and [Rule 2b](#rule2b):
|
||||
|
||||
|
||||
<div id="rule2a">
|
||||
## Rule 2a
|
||||
</div>
|
||||
|
||||
**`|`** The size of your program source **MUST BE <= 4993 bytes** in length.
|
||||
|
||||
|
||||
<div id="rule2b">
|
||||
## Rule 2b
|
||||
</div>
|
||||
|
||||
**`|`** When your program source is fed as input to the current IOCCC size
|
||||
tool, and the IOCCC size tool `-i` command line option is used, the
|
||||
@@ -140,7 +150,9 @@ the `mkiocccentry` tool (which we **STRONGLY recommend you do**) it will invoke
|
||||
this tool before packaging your entry for submission.
|
||||
|
||||
|
||||
<div id="rule3">
|
||||
## Rule 3
|
||||
</div>
|
||||
|
||||
Submissions should be performed using the instructions outlined at:
|
||||
the [How to enter FAQ](../faq.html#submit).
|
||||
@@ -155,7 +167,9 @@ When the IOCCC is not open, that link will likely be unresponsive.
|
||||
Please wait to submit your entries until after that time.
|
||||
|
||||
|
||||
<div id="rule4">
|
||||
## Rule 4
|
||||
</div>
|
||||
|
||||
If your entry is selected as a winner, it will be modified as follows:
|
||||
|
||||
@@ -165,7 +179,9 @@ Your source code will be the file **prog.c**. The compiled binary
|
||||
will be called **prog**.
|
||||
|
||||
|
||||
<div id="rule5">
|
||||
## Rule 5
|
||||
</div>
|
||||
|
||||
Your entry **MUST** not modify the content or filename of any part of your
|
||||
original entry including, but not limited to **prog.c**, the **Makefile**
|
||||
@@ -176,7 +192,9 @@ If you entry wishes to modify such content, it **MUST** first copy the
|
||||
file to a new filename and then modify that copy.
|
||||
|
||||
|
||||
<div id="rule6">
|
||||
## Rule 6
|
||||
</div>
|
||||
|
||||
**`|`** I am not a rule, I am a `free(void *human);` ‼️
|
||||
|
||||
@@ -185,8 +203,9 @@ file to a new filename and then modify that copy.
|
||||
**`|`** `}`
|
||||
|
||||
|
||||
|
||||
<div id="rule7">
|
||||
## Rule 7
|
||||
</div>
|
||||
|
||||
The obfuscated C program must be an original work that you own.
|
||||
|
||||
@@ -196,7 +215,7 @@ under the following license:
|
||||
|
||||
**`|`** **[CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)**
|
||||
|
||||
See also rule 18.
|
||||
See also [Rule 18](#rule18).
|
||||
|
||||
If you submit any content that is owned by others, you **MUST**
|
||||
detail that ownership (i.e., who owns what) **AND document the
|
||||
@@ -205,7 +224,9 @@ permission you obtained**.
|
||||
Please note that the IOCCC size tool is **NOT** an original work.
|
||||
|
||||
|
||||
<div id="rule8">
|
||||
## Rule 8
|
||||
</div>
|
||||
|
||||
**`|`** Entries must be received prior to the end of this IOCCC which is **2024-MMM-DD HH:MM:SS UTC**.<br>
|
||||
**`|`** **XXX - date/time is TBD - XXX**
|
||||
@@ -215,19 +236,25 @@ A confirmation of submission will be sent to the submitting email address
|
||||
before the close of the contest.
|
||||
|
||||
|
||||
<div id="rule9">
|
||||
## Rule 9
|
||||
</div>
|
||||
|
||||
**`|`** Each person may submit up to and including 10.000000 entries per contest.
|
||||
|
||||
Each entry must be submitted separately.
|
||||
|
||||
|
||||
<div id="rule10">
|
||||
## Rule 10
|
||||
</div>
|
||||
|
||||
Entries requiring human interaction to be initially compiled are not permitted.
|
||||
|
||||
|
||||
<div id="rule11">
|
||||
## Rule 11
|
||||
</div>
|
||||
|
||||
Programs that require special privileges (`setuid(2)`, `setgid(2)`, super-user,
|
||||
special owner, special group, etc.) are still highly discouraged. We
|
||||
@@ -236,7 +263,9 @@ platforms. If your program needs special permissions **please document
|
||||
them** in the remarks file.
|
||||
|
||||
|
||||
<div id="rule12">
|
||||
## Rule 12
|
||||
</div>
|
||||
|
||||
Legal abuse of the rules is somewhat encouraged. An entry that, in
|
||||
the opinion of the judges, violates the rules will be disqualified.
|
||||
@@ -244,13 +273,17 @@ Entries that attempt to abuse the rules **MUST** try to justify why
|
||||
their rule abuse is legal, in the remarks file.
|
||||
|
||||
|
||||
<div id="rule13">
|
||||
## Rule 13
|
||||
</div>
|
||||
|
||||
Any C source that fails to compile because of unescaped octets with
|
||||
the high bit set (octet value >= 128) will be rejected.
|
||||
|
||||
|
||||
<div id="rule14">
|
||||
## Rule 14
|
||||
</div>
|
||||
|
||||
Any C source that fails to compile because of lines with trailing
|
||||
control-M's (i.e., lines with a tailing octet `015`) will be rejected.
|
||||
@@ -260,7 +293,9 @@ Please check to be sure, before submitting, that you have removed
|
||||
any control-M at the end of remark file lines.
|
||||
|
||||
|
||||
<div id="rule15">
|
||||
## Rule 15
|
||||
</div>
|
||||
|
||||
When you submit your entry you must have a valid email address
|
||||
that can both send and receive email. The online submission
|
||||
@@ -283,7 +318,9 @@ See also [How may I submit to the IOCCC?](../faq.html#submit) in the
|
||||
[FAQ](../faq.html).
|
||||
|
||||
|
||||
<div id="rule16">
|
||||
## Rule 16
|
||||
</div>
|
||||
|
||||
You are **STRONGLY** encouraged to submit a previously unpublished _AND_
|
||||
original entry. Submissions that are similar to previous entries are
|
||||
@@ -291,7 +328,9 @@ discouraged. As we judge anonymously, submissions that have already
|
||||
been published may be disqualified.
|
||||
|
||||
|
||||
<div id="rule17">
|
||||
## Rule 17
|
||||
</div>
|
||||
|
||||
**`|`** The total size of your submission: the sum of the size of the program,
|
||||
hints, comments, build and info files **MUST** be less than or equal
|
||||
@@ -302,9 +341,12 @@ that file must than or equal 3999971 octets in size.
|
||||
|
||||
**`|`** The [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
|
||||
(see `mkiocccentry(1)` and `txzchk(1)`) will help you verify that your
|
||||
submission conforms to this rule.
|
||||
submission conforms to this [Rule 17](#rule17).
|
||||
|
||||
|
||||
<div id="rule18">
|
||||
## Rule 18
|
||||
</div>
|
||||
|
||||
The entirety of your entry must be submitted under the following license:
|
||||
|
||||
@@ -316,7 +358,9 @@ you **MUST HAVE PERMISSION** from the owner(s) to submit their content.
|
||||
You must not submit anything that cannot be submitted under that license.
|
||||
|
||||
|
||||
<div id="rule19">
|
||||
## Rule 19
|
||||
</div>
|
||||
|
||||
The remarks file must be written in markdown format. See
|
||||
the Daring Fireball [Markdown: Basics](http://daringfireball.net/projects/markdown/basics)
|
||||
@@ -325,7 +369,9 @@ for more information.
|
||||
**`|`** We currently use [pandoc](https://pandoc.org) to convert markdown to HTML.
|
||||
|
||||
|
||||
<div id="rule20">
|
||||
## Rule 20
|
||||
</div>
|
||||
|
||||
The how to build instructions must be in Makefile format. See [the FAQ about
|
||||
make(1) compatibility the IOCCC
|
||||
@@ -355,7 +401,9 @@ at the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry), tries to
|
||||
detect if required rules exist in your Makefile.
|
||||
|
||||
|
||||
<div id="rule21">
|
||||
## Rule 21
|
||||
</div>
|
||||
|
||||
Your entry must not create or modify files above the current directory
|
||||
with the exception of the `/tmp` and the `/var/tmp` directories. Your entry
|
||||
@@ -364,7 +412,9 @@ or in `/var/tmp` provided that `.` is **NOT** the first octet in any
|
||||
directory name or filename you submit.
|
||||
|
||||
|
||||
<div id="rule22">
|
||||
## Rule 22
|
||||
</div>
|
||||
|
||||
Catch 22:
|
||||
|
||||
@@ -382,22 +432,30 @@ for disqualification of your entry.
|
||||
Yes, Virginia, **WE REALLY MEAN IT!**
|
||||
|
||||
|
||||
<div id="rule23">
|
||||
## Rule 23
|
||||
</div>
|
||||
|
||||
This prime rule number is reserved for future use.
|
||||
|
||||
|
||||
<div id="rule24">
|
||||
## Rule 24
|
||||
</div>
|
||||
|
||||
Even though 24 is not prime, you should still see rule #23.
|
||||
Even though 24 is not prime, you should still see [Rule 23](#rule23).
|
||||
|
||||
|
||||
<div id="rule25">
|
||||
## Rule 25
|
||||
</div>
|
||||
|
||||
**`|`** The IOCCC rule set needs more than 5^2 rules: see rule #26.
|
||||
**`|`** The [IOCCC rule set](rules.html) needs more than 5^2 rules: see [Rule 26](#rule26).
|
||||
|
||||
|
||||
<div id="rule26">
|
||||
## Rule 26
|
||||
</div>
|
||||
|
||||
**`|`** "The quick brown fox jumps over the lazy dog".<br>
|
||||
**`|`** "Pack my box with five dozen liquor jugs."<br>
|
||||
@@ -407,14 +465,18 @@ Even though 24 is not prime, you should still see rule #23.
|
||||
**`|`** "Mr. Jock, TV quiz PhD, bags few lynx."
|
||||
|
||||
|
||||
<div id="rule27">
|
||||
## Rule 27
|
||||
</div>
|
||||
|
||||
**`|`** Unless otherwise needed, rule 27 is reserved for something cubic. :-)
|
||||
**`|`** Unless otherwise needed, [Rule 27](#rule27) is reserved for something cubic. :-)
|
||||
|
||||
|
||||
<div id="rule28">
|
||||
## Rule 28
|
||||
</div>
|
||||
|
||||
**`|`** Rule 28 is a perfect way end to the list of rules as we do not plan to have 496 rules.
|
||||
**`|`** [Rule 28](#rule28) is a perfect way end to the list of [IOCCC rules](rules.html) as we do not plan to have 496 rules. :-)
|
||||
|
||||
|
||||
|
||||
@@ -423,10 +485,10 @@ Even though 24 is not prime, you should still see rule #23.
|
||||
**`|`** For questions or comments about the contest, see [Contacting the IOCCC](../contact.html).
|
||||
|
||||
**`|`** Be sure to review the [IOCCC Rules and Guidelines](index.html) as
|
||||
[rules](rules.html) and the [guidelines](guidelines.html) may (and often do) change from year to year.
|
||||
[IOCCC rules](rules.html) and the [IOCCC guidelines](guidelines.html) may (and often do) change from year to year.
|
||||
|
||||
**`|`** You should be sure you have the current [rules](rules.html) and
|
||||
[guidelines](guidelines.html) prior to submitting entries.
|
||||
**`|`** You should be sure you have the current [IOCCC rules](rules.html) and
|
||||
[IOCCC guidelines](guidelines.html) prior to submitting entries.
|
||||
|
||||
**`|`** See the [Official IOCCC website news](../news.html) for additional information.
|
||||
|
||||
|
||||
Reference in new issue
Block a user