add IOCCC support content to the guidelines and FAQ
This is also a compromise for the idea of "fixing the IOCCC judges". Perform `make www` to perform the above and test under macOS.
This commit is contained in:
1 parent
38659fbc1e
commit
ce05938987
4 files changed
+215
-143
No files matched your search
@@ -454,6 +454,7 @@ other inconsistencies with the original entry?</a></li>
|
||||
<li><a href="#faq5_4">5.4 - How may I submit a fix to the IOCCC website?</a></li>
|
||||
<li><a href="#faq5_5">5.5 - How may I correct or update IOCCC author information?</a></li>
|
||||
<li><a href="#faq5_6">5.6 - What should I do if I find a broken or wrong web link?</a></li>
|
||||
<li><a href="#faq5_7">5.7 - How may I support the IOCCC?</a></li>
|
||||
</ul>
|
||||
<h2 id="section-6---miscellaneous-ioccc">Section 6 - <a href="#faq6">Miscellaneous IOCCC</a></h2>
|
||||
<ul>
|
||||
@@ -1022,8 +1023,10 @@ to the <a href="https://www.ioccc.org">official IOCCC website</a>.</p>
|
||||
<h2 id="section-2-ioccc-judging-process">Section 2: IOCCC Judging process</h2>
|
||||
</div>
|
||||
<div id="faq2_0">
|
||||
<div id="how_many">
|
||||
<h3 id="faq-2.0-how-many-entries-do-the-judges-receive-for-a-given-ioccc">FAQ 2.0: How many entries do the judges receive for a given IOCCC?</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p>By tradition, we do not say.</p>
|
||||
<div id="faq2_1">
|
||||
<div id="remarks_md">
|
||||
@@ -2396,6 +2399,21 @@ if the text in some <code>index.html</code> file was:</p>
|
||||
replace that text with:</p>
|
||||
<pre><code> See the **author's description of the program** (sorry the content is no longer available) for more information.</code></pre>
|
||||
<p>If you just wish to report the bad link issue, see <a href="#report_web_problem">FAQ 5.3</a>.</p>
|
||||
<div id="faq5_7">
|
||||
<div id="support">
|
||||
<h3 id="faq-5.7-how-may-i-support-the-ioccc">FAQ 5.7: How may I support the IOCCC?</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p>The <a href="judges.html">IOCCC judges</a> run the IOCCC entirely out of
|
||||
their own funds. This includes paying for IOCCC related hardware,
|
||||
services, registration, software and related technical items.</p>
|
||||
<p>There is <strong>NO</strong> requirement for anyone to support the IOCCC.
|
||||
Nevertheless, it has been shown that receiving <strong>anonymous</strong> gifts
|
||||
provides the <a href="judges.html">IOCCC judges</a> with a nice dopamine
|
||||
boost, and happy <a href="judges.html">IOCCC judges</a> help make the IOCCC
|
||||
better for everyone. :-)</p>
|
||||
<p>If you wish to express your support, we suggest making an <strong>Anonymous</strong> gift
|
||||
via the <a href="https://www.amazon.com/hz/wishlist/ls/3HSNTEL8RQ1M0?ref_=wl_share">IOCCC Amazon wishlist</a>.</p>
|
||||
<div id="faq6">
|
||||
<h2 id="section-6-miscellaneous-ioccc">Section 6: Miscellaneous IOCCC</h2>
|
||||
</div>
|
||||
|
||||
@@ -71,6 +71,7 @@ other inconsistencies with the original entry?](#faq4_3)
|
||||
- [5.4 - How may I submit a fix to the IOCCC website?](#faq5_4)
|
||||
- [5.5 - How may I correct or update IOCCC author information?](#faq5_5)
|
||||
- [5.6 - What should I do if I find a broken or wrong web link?](#faq5_6)
|
||||
- [5.7 - How may I support the IOCCC?](#faq5_7)
|
||||
|
||||
|
||||
## Section 6 - [Miscellaneous IOCCC](#faq6)
|
||||
@@ -829,8 +830,10 @@ NOTE: The size rule was actually rule 1.
|
||||
|
||||
|
||||
<div id="faq2_0">
|
||||
<div id="how_many">
|
||||
### FAQ 2.0: How many entries do the judges receive for a given IOCCC?
|
||||
</div>
|
||||
</div>
|
||||
|
||||
By tradition, we do not say.
|
||||
|
||||
@@ -2921,6 +2924,26 @@ replace that text with:
|
||||
If you just wish to report the bad link issue, see [FAQ 5.3](#report_web_problem).
|
||||
|
||||
|
||||
<div id="faq5_7">
|
||||
<div id="support">
|
||||
### FAQ 5.7: How may I support the IOCCC?
|
||||
</div>
|
||||
</div>
|
||||
|
||||
The [IOCCC judges](judges.html) run the IOCCC entirely out of
|
||||
their own funds. This includes paying for IOCCC related hardware,
|
||||
services, registration, software and related technical items.
|
||||
|
||||
There is **NO** requirement for anyone to support the IOCCC.
|
||||
Nevertheless, it has been shown that receiving **anonymous** gifts
|
||||
provides the [IOCCC judges](judges.html) with a nice dopamine
|
||||
boost, and happy [IOCCC judges](judges.html) help make the IOCCC
|
||||
better for everyone. :-)
|
||||
|
||||
If you wish to express your support, we suggest making an **Anonymous** gift
|
||||
via the [IOCCC Amazon wishlist](https://www.amazon.com/hz/wishlist/ls/3HSNTEL8RQ1M0?ref_=wl_share).
|
||||
|
||||
|
||||
<div id="faq6">
|
||||
## Section 6: Miscellaneous IOCCC
|
||||
</div>
|
||||
|
||||
+90
-62
@@ -591,9 +591,14 @@ submission.</p>
|
||||
<p><strong><code>|</code></strong> If you need to define something on the compile line, use
|
||||
the <code>CDEFINE</code> Makefile variable. For example:</p>
|
||||
<pre><code> CDEFINE= -Dfoo -Dbar=baz</code></pre>
|
||||
<p><strong><code>|</code></strong> If you need to include a file on the command line, use
|
||||
the <code>CINCLUDE</code> Makefile variable. For example:</p>
|
||||
<pre><code> CINCLUDE= -include stdio.h</code></pre>
|
||||
<p><strong><code>|</code></strong> If need add other “<em>magic</em>” flags to your compile line,
|
||||
use the <code>COTHER</code> Makefile variable. For example:</p>
|
||||
<pre><code> COTHER= -include stdio.h</code></pre>
|
||||
<pre><code> COTHER= -fno-math-errno</code></pre>
|
||||
<p><strong>NOTE</strong>: We recommend using only “<em>magic</em>” flags that both <strong>gcc</strong>
|
||||
and <strong>clang</strong> support.</p>
|
||||
<h1 id="our-likes-and-dislikes">OUR LIKES AND DISLIKES:</h1>
|
||||
<p><strong><code>|</code></strong> We <strong>LIKE</strong> entries that use an edited variant of the
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example">example Makefile</a>,
|
||||
@@ -771,14 +776,13 @@ they do not work as documented.</p>
|
||||
<p>Please note that the C source below, besides lacking in obfuscation,
|
||||
is NOT the smallest C source file that when compiled and run, dumps core:</p>
|
||||
<pre><code> main;</code></pre>
|
||||
<p>We do <strong>DISLIKE</strong> writable strings. That is, we don’t want stuff such as:</p>
|
||||
<p><strong><code>|</code></strong> Unless you specify <code>-fwritable-strings</code> (see <code>COTHER</code> in the <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example">example Makefile</a> do not assume this sort of code will work:</p>
|
||||
<pre><code> char *T = "So many primes, so little time!";
|
||||
...
|
||||
T[14] = ';';</code></pre>
|
||||
<p>Please don’t make use of this feature, even if your system allows it.
|
||||
However, initialized char arrays are OK to write over. This is OK:</p>
|
||||
T[14] = ';'; /* modifying a string requires: -fwritable-strings */</code></pre>
|
||||
<p><strong><code>|</code></strong> Initialized char arrays are OK to write over. This is OK:</p>
|
||||
<pre><code> char b[] = "Is this OK";
|
||||
b[9] = 'K';</code></pre>
|
||||
b[9] = 'k'; /* modifying an initialized char array is OK */</code></pre>
|
||||
<p><strong><code>|</code></strong> There are more than 1 typos in this very sentence.</p>
|
||||
<p>X client entries should be as portable as possible. Entries that
|
||||
adapt to a wide collection of environments will be favored. For
|
||||
@@ -798,25 +802,22 @@ You do?!? (Except on Tuesday?)</p>
|
||||
<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 <em>guideline</em> in this spot has been replaced by this <em>guideline</em>:</p>
|
||||
<p><strong><code>|</code></strong> X client entries should not to depend on particular items on
|
||||
<p><strong><code>|</code></strong> X client entries should try to not to depend on particular items on
|
||||
<code>.Xdefaults</code>. If you must do so, be sure to note the required lines
|
||||
in the your <code>remarks.md</code> file. They should also not depend on any
|
||||
particular window manager.</p>
|
||||
<p>Try to avoid entries that play silent sound segments or play the
|
||||
Happy Birthday song; music that some people believe is copyrighted
|
||||
(even if such copyrights appear to be bogus and/or blatant abuses of
|
||||
the copyright system).</p>
|
||||
<p>While we recognize that UNIX is not a universal operating system, the
|
||||
contest does have a bias towards such systems. In an effort to expand
|
||||
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> Try to avoid entries that play some people believe is copyrighted music.</p>
|
||||
<p><strong><code>|</code></strong> While we recognize that UNIX is not a universal operating system, the contest does have a bias towards such systems. In an effort to expand the scope of the contest, we phrase our bias to favor the <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 <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><strong><code>|</code></strong> To quote the <a href="../judges.html">IOCCC judges</a>:</p>
|
||||
<blockquote>
|
||||
<p>You very well might not be completely be prohibited from failing to not<br>
|
||||
partly misunderstand this particular <em>guideline</em>, but of course, we could<br>
|
||||
not possibly comment! :-) Nevertheless, you are neither prohibited, nor are<br>
|
||||
you fully required to determine that this or the previous sentence is either false<br>
|
||||
and/or perhaps misleading. Therefore, it might be wise for you to not fail to<br>
|
||||
consider to do so, accordingly. Thank you very much.</p>
|
||||
</blockquote>
|
||||
<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>
|
||||
@@ -826,9 +827,9 @@ parliament should you have one.</p>
|
||||
<li>do something at least quasi-interesting</li>
|
||||
<li>are portable</li>
|
||||
<li>are unique or novel in their obfuscation style</li>
|
||||
<li>MAKE USE OF A NUMBER OF DIFFERENT TYPES OF OBFUSCATION <strong><== HINT!!</strong></li>
|
||||
<li>make use of a <strong>NUMBER OF DIFFERENT TYPES OF OBFUSCATIONS!</strong> <strong><== HINT!!</strong></li>
|
||||
<li>make us laugh and/or throw up :-) (humor really helps!)</li>
|
||||
<li>make us want to eat good chocolate.</li>
|
||||
<li>make us want to eat good chocolate</li>
|
||||
</ul>
|
||||
<p>Some types of programs can’t excel (anti-tm) in some areas. Your
|
||||
program doesn’t have to excel in all areas, but doing well in several
|
||||
@@ -875,16 +876,16 @@ suggest you remark on this point in your remarks where you talk
|
||||
about why you think your submission is obfuscated. On the other hand,
|
||||
if you are pushing up against the size limits, you may be forced
|
||||
into creating a dense blob. Such are the trade-offs that obfuscators face!</p>
|
||||
<p>We prefer code that can run on either a 64-bit or 32-bit processor.
|
||||
However, it is unwise to assume it will run on an i386 or x86 architecture.</p>
|
||||
<p><strong><code>|</code></strong> We prefer code that can run on either a 64-bit or 32-bit
|
||||
processor. However, it is <strong>UNWISE </strong>to assume it will run on an
|
||||
some Intel-like x86 architecture.</p>
|
||||
<p>We believe that Mark Twain’s once wrote:</p>
|
||||
<blockquote>
|
||||
<p>Get your facts first, then you can distort them as you please.</p>
|
||||
</blockquote>
|
||||
<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!
|
||||
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 <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.
|
||||
@@ -892,45 +893,57 @@ 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
|
||||
to pick, choose a 64-bit word size.</p>
|
||||
<p>If we are feeling ornery we might choose to compile your program
|
||||
for running on an Arduino or a PDP-11. Heck, should we ever find
|
||||
an emulator of 60-bit CDC Cyber CPU, we might just try your submission
|
||||
on that emulator as well :-)</p>
|
||||
<p>If your submission MUST run only in 32-bit mode on an Intel processor, add the
|
||||
following compiler flag:</p>
|
||||
<pre><code> -arch i386</code></pre>
|
||||
<p>to your “how to build” make compile line. For example:</p>
|
||||
<pre><code> prog: prog.c
|
||||
${CC} prog.c -arch i386 -o prog</code></pre>
|
||||
<p>Be even more creative!</p>
|
||||
<p><strong><code>|</code></strong> If <a href="../judges.html">IOCCC judges</a> are feeling ornery we
|
||||
might choose to compile your program for running on an Arduino or
|
||||
a PDP-11. Heck, should we ever find an emulator of 60-bit CDC Cyber
|
||||
CPU, we might just try your submission on that emulator as well :-)</p>
|
||||
<p><strong><code>|</code></strong> If your submission <strong>MUST</strong> run only on a 64-bit or 32-bit architecture,
|
||||
then you <strong>MUST</strong> specify the <code>-arch</code> on your command line
|
||||
(see <code>CARCH</code> in the <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example">example Makefile</a>. Do not assume a processor word size without specifying <code>-arch</code>. For example:</p>
|
||||
<pre><code> CARCH= -m64</code></pre>
|
||||
<p><strong><code>|</code></strong> Try to be even more creative!</p>
|
||||
<p><strong><code>|</code></strong> If there are limitations in your submission, you are highly encouraged
|
||||
to note such limitations in your <code>remarks.md</code> file. For example if your
|
||||
submission factors values up to a certain size, you might want to state:</p>
|
||||
<pre><code> This submission factors values up 2305567963945518424753102147331756070.
|
||||
Attempting to factor larger values will produce unpredictable results.</code></pre>
|
||||
<blockquote>
|
||||
<p>This submission factors values up 2305567963945518424753102147331756070.<br>
|
||||
Attempting to factor larger values will produce unpredictable results.</p>
|
||||
</blockquote>
|
||||
<p>The judges might try to factor the value -5, so you want to might state:</p>
|
||||
<pre><code> This submission factors positive values up 2305567963945518424753102147331756070.
|
||||
Attempting to factor large values will produce unpredictable results.</code></pre>
|
||||
<blockquote>
|
||||
<p>This submission factors positive values up 2305567963945518424753102147331756070.<br>
|
||||
Attempting to factor large values will produce unpredictable results.</p>
|
||||
</blockquote>
|
||||
<p>However the judges might try to also factor 0, so you want to might state:</p>
|
||||
<pre><code> This submission factors values between 1 and 2305567963945518424753102147331756070.
|
||||
Attempting to factor values outside that range will produce unpredictable results.</code></pre>
|
||||
<blockquote>
|
||||
<p>This submission factors values between 1 and 2305567963945518424753102147331756070.<br>
|
||||
Attempting to factor values outside that range will produce unpredictable results.</p>
|
||||
</blockquote>
|
||||
<p>Moreover the try to also factor 3.5 or 0x7, or Fred, so you want to might state:</p>
|
||||
<pre><code> This submission factors integers between 1 and 2305567963945518424753102147331756070.
|
||||
Attempting to factor anything else will produce unpredictable results.</code></pre>
|
||||
<blockquote>
|
||||
<p>This submission factors integers between 1 and 2305567963945518424753102147331756070.<br>
|
||||
Attempting to factor anything else will produce unpredictable results.</p>
|
||||
</blockquote>
|
||||
<p>You submission might be better off catching the attempt to factor bogus values
|
||||
and doing something interesting. So you might want to code accordingly and state:</p>
|
||||
<pre><code> This submission factors integers between 1 and 2305567963945518424753102147331756070.
|
||||
Attempting to factor anything else will cause the program to insult your pet fish Eric.</code></pre>
|
||||
<blockquote>
|
||||
<p>This submission factors integers between 1 and 2305567963945518424753102147331756070.<br>
|
||||
Attempting to factor anything else will cause the program to insult your pet fish Eric.</p>
|
||||
</blockquote>
|
||||
<p>The judges might not have a pet fish named Eric, so might want to state:</p>
|
||||
<pre><code> This submission factors integers between 1 and 2305567963945518424753102147331756070.
|
||||
Attempting to factor anything else will cause the program to insult your pet fish Eric,
|
||||
or in the case that you lack such a pet, will insult the pet that you do not have.</code></pre>
|
||||
<blockquote>
|
||||
<p>This submission factors integers between 1 and 2305567963945518424753102147331756070.<br>
|
||||
Attempting to factor anything else will cause the program to insult your pet fish Eric,<br>
|
||||
or in the case that you lack such a pet, will insult the pet that you do not have.</p>
|
||||
</blockquote>
|
||||
<p>When all other things are equal, an submission with fewer limitations will be judged
|
||||
better than an submission with lots of limitations. So you might want to code accordingly
|
||||
and state:</p>
|
||||
<pre><code> This submission attempts to a factor value of any size provided that the program is
|
||||
given enough time and memory. If the value is not a proper integer, the program
|
||||
might insult a fish named Eric.</code></pre>
|
||||
<blockquote>
|
||||
<p>This submission attempts to a factor value of any size provided that the program is<br>
|
||||
given enough time and memory. If the value is not a proper integer, the program<br>
|
||||
might insult a fish named Eric.</p>
|
||||
</blockquote>
|
||||
<p><strong><code>|</code></strong> Do not fear if you not 100% sure of the significance of <code>2305567963945518424753102147331756070</code> as it is not of prime importance: or is it? :-)</p>
|
||||
<p><strong><code>|</code></strong> We <strong>DISLIKE</strong> the use of use ASCII tab characters in markdown files, such as in the required <code>remarks.md</code> file.</p>
|
||||
<p><strong><code>|</code></strong> We don’t mind the use ASCII tab characters in your C code. Feel free to use ASCII tab characters if that suits your obfuscation needs. If is perfectly <strong>OK</strong> to use tab characters elsewhere in your submission, just not in markdown files as this tends complicate and annoys us when be comes to rendering your markdown content.</p>
|
||||
@@ -1043,7 +1056,7 @@ previous round. Thus, an submission gets at least two readings.</p>
|
||||
<p>A reading consists of a number of actions:</p>
|
||||
<ul>
|
||||
<li>reading the “how to build” information and forming a Makefile</li>
|
||||
<li>reading prog.c, the C source
|
||||
<li>reading prog.c, the C source<br>
|
||||
<strong><code>|</code></strong> * reviewing the <code>remarks.md</code> information</li>
|
||||
<li>briefly looking any any supplied data files</li>
|
||||
<li>passing the source thru the C pre-processor
|
||||
@@ -1053,7 +1066,7 @@ skipping over any #include files</li>
|
||||
skipping over any #include files</li>
|
||||
<li>compiling/building the source</li>
|
||||
<li>running the program</li>
|
||||
<li>Doing other things that only IOCCC judges know about :-)</li>
|
||||
<li>Doing other things that only <a href="../judges.html">IOCCC judges</a> know about :-)</li>
|
||||
</ul>
|
||||
<p>In later rounds, other actions are performed including performing
|
||||
miscellaneous tests on the source and binary.</p>
|
||||
@@ -1095,9 +1108,26 @@ by a similar, but slightly better submission. For this reason, it is
|
||||
sometimes worthwhile to re-enter an improved version of an submission
|
||||
that failed to win in a previous year. This assumes, of course,
|
||||
that the submission is worth improving in the first place!</p>
|
||||
<p>More than one IOCCC judge has been known to bribe another IOCCC judge
|
||||
into voting for a winning submission by offering a bit high quality chocolate.
|
||||
This technique is highly discouraged for use by non-IOCCC judges.</p>
|
||||
<p><strong><code>|</code></strong> Over the years, more than one <a href="../judges.html">IOCCC judge</a>
|
||||
has been known to <em>bribe</em> another IOCCC judge into voting for a
|
||||
winning submission by offering a bit high quality chocolate, or
|
||||
other fun item.</p>
|
||||
<p><strong><code>|</code></strong> One <strong>should not</strong> attempt to <em>bribe</em> an <a href="../judges.html">IOCCC
|
||||
judge</a>, unless you are an <a href="../judges.html">IOCCC judge</a>,
|
||||
because <em>bribing</em> a <a href="../judges.html">IOCCC judge</a> by a non-judge
|
||||
has been shown to <strong>NOT</strong> be effective when the <strong>person attempting
|
||||
the bribe is made known</strong> to the <a href="../judges.html">IOCCC judges</a>
|
||||
(i.e., they are not anonymous) AND/OR the <em>bribe</em> is otherwise
|
||||
associated with a submission to the IOCCC.</p>
|
||||
<p><strong><code>|</code></strong> With the previous guideline in mind: <strong>anonymous</strong> gifts
|
||||
for the <a href="../judges.html">IOCCC judges</a> that are <strong>NOT</strong> associated
|
||||
with a submission to the IOCCC may be sent to the
|
||||
<a href="../judges.html">IOCCC judges</a> via the
|
||||
<a href="https://www.amazon.com/hz/wishlist/ls/3HSNTEL8RQ1M0?ref_=wl_share">IOCCC Amazon wishlist</a>.
|
||||
It has been shown that receiving <strong>anonymous</strong> gifts provides the
|
||||
<a href="../judges.html">IOCCC judges</a> with a nice dopamine boost, and happy
|
||||
<a href="../judges.html">IOCCC judges</a> help make the IOCCC better for everyone. :-)</p>
|
||||
<p><strong><code>|</code></strong> See <a href="../faq.html#support">FAQ: How may I support the IOCCC?</a>.</p>
|
||||
<p>More often than not, we select a small submission (usually one line), a
|
||||
strange/creative layout submission. We sometimes also select an
|
||||
submission that abuses the <a href="guidelines.html">IOCCC guidelines</a> in an interesting way,
|
||||
@@ -1129,9 +1159,7 @@ repo</a> that, in turn, updates the <a href="https://www.ioccc.org/index.html">o
|
||||
<p>In addition a note is posted to the <a href="https://fosstodon.org/@ioccc">IOCCC Mastodon
|
||||
account</a>.</p>
|
||||
<h2 id="back-to-announcement-of-winners">Back to announcement of winners</h2>
|
||||
<p>It is pointless to ask the IOCCC judges how many entries we receive.
|
||||
Other government TLA or FLA snooping organizations are prohibited from
|
||||
either confirming, denying or revealing any knowledge of this data point.</p>
|
||||
<p><strong><code>|</code></strong> It is pointless to ask the <a href="../judges.html">IOCCC judges</a> how many entries we receive. See <a href="../faq.html#how_many">How many entries do the judges receive for a given IOCCC</a>.</p>
|
||||
<p>Often, winning entries are published in selected magazines from around
|
||||
the world. Winners have appeared in books (“The New Hackers Dictionary”)
|
||||
and on T-Shirts. More than one winner has been turned in a tattoo!</p>
|
||||
|
||||
+84
-81
@@ -305,13 +305,24 @@ the `CDEFINE` Makefile variable. For example:
|
||||
CDEFINE= -Dfoo -Dbar=baz
|
||||
```
|
||||
|
||||
**`|`** If you need to include a file on the command line, use
|
||||
the `CINCLUDE` Makefile variable. For example:
|
||||
|
||||
```
|
||||
CINCLUDE= -include stdio.h
|
||||
```
|
||||
|
||||
|
||||
**`|`** If need add other "_magic_" flags to your compile line,
|
||||
use the `COTHER` Makefile variable. For example:
|
||||
|
||||
```
|
||||
COTHER= -include stdio.h
|
||||
COTHER= -fno-math-errno
|
||||
```
|
||||
|
||||
**NOTE**: We recommend using only "_magic_" flags that both **gcc**
|
||||
and **clang** support.
|
||||
|
||||
|
||||
# OUR LIKES AND DISLIKES:
|
||||
|
||||
@@ -559,20 +570,19 @@ is NOT the smallest C source file that when compiled and run, dumps core:
|
||||
main;
|
||||
```
|
||||
|
||||
We do **DISLIKE** writable strings. That is, we don't want stuff such as:
|
||||
**`|`** Unless you specify `-fwritable-strings` (see `COTHER` in the [example Makefile](https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example) do not assume this sort of code will work:
|
||||
|
||||
``` <!---c-->
|
||||
char *T = "So many primes, so little time!";
|
||||
...
|
||||
T[14] = ';';
|
||||
T[14] = ';'; /* modifying a string requires: -fwritable-strings */
|
||||
```
|
||||
|
||||
Please don't make use of this feature, even if your system allows it.
|
||||
However, initialized char arrays are OK to write over. This is OK:
|
||||
**`|`** Initialized char arrays are OK to write over. This is OK:
|
||||
|
||||
``` <!---c-->
|
||||
char b[] = "Is this OK";
|
||||
b[9] = 'K';
|
||||
b[9] = 'k'; /* modifying an initialized char array is OK */
|
||||
```
|
||||
|
||||
**`|`** There are more than 1 typos in this very sentence.
|
||||
@@ -602,30 +612,25 @@ open source toolkit that is widely and freely available instead.
|
||||
|
||||
**NOTE**: The previous _guideline_ in this spot has been replaced by this _guideline_:
|
||||
|
||||
**`|`** X client entries should not to depend on particular items on
|
||||
**`|`** X client entries should try to not to depend on particular items on
|
||||
`.Xdefaults`. If you must do so, be sure to note the required lines
|
||||
in the your `remarks.md` file. They should also not depend on any
|
||||
particular window manager.
|
||||
|
||||
Try to avoid entries that play silent sound segments or play the
|
||||
Happy Birthday song; music that some people believe is copyrighted
|
||||
(even if such copyrights appear to be bogus and/or blatant abuses of
|
||||
the copyright system).
|
||||
**`|`** Try to avoid entries that play some people believe is copyrighted music.
|
||||
|
||||
While we recognize that UNIX is not a universal operating system, the
|
||||
contest does have a bias towards such systems. In an effort to expand
|
||||
the scope of the contest, we phrase our bias to favor:
|
||||
|
||||
**`|`** [Single UNIX Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification).
|
||||
**`|`** While we recognize that UNIX is not a universal operating system, the contest does have a bias towards such systems. In an effort to expand the scope of the contest, we phrase our bias to favor the [Single UNIX Specification](https://en.wikipedia.org/wiki/Single_UNIX_Specification).
|
||||
|
||||
**`|`** 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
|
||||
**`|`** 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.
|
||||
**`|`** To quote the [IOCCC judges](../judges.html):
|
||||
|
||||
> You very well might not be completely be prohibited from failing to not<br>
|
||||
> partly misunderstand this particular _guideline_, but of course, we could<br>
|
||||
> not possibly comment! :-) Nevertheless, you are neither prohibited, nor are<br>
|
||||
> you fully required to determine that this or the previous sentence is either false<br>
|
||||
> and/or perhaps misleading. Therefore, it might be wise for you to not fail to<br>
|
||||
> consider to do so, accordingly. Thank you very much.
|
||||
|
||||
Any complaints about the above _guideline_ could be addressed to the
|
||||
Speaker of the House of Commons, or to the speaker of your national
|
||||
@@ -637,9 +642,9 @@ We **LIKE** programs that:
|
||||
* do something at least quasi-interesting
|
||||
* are portable
|
||||
* are unique or novel in their obfuscation style
|
||||
* MAKE USE OF A NUMBER OF DIFFERENT TYPES OF OBFUSCATION **<== HINT!!**
|
||||
* make use of a **NUMBER OF DIFFERENT TYPES OF OBFUSCATIONS!** **<== HINT!!**
|
||||
* make us laugh and/or throw up :-) (humor really helps!)
|
||||
* make us want to eat good chocolate.
|
||||
* make us want to eat good chocolate
|
||||
|
||||
Some types of programs can't excel (anti-tm) in some areas. Your
|
||||
program doesn't have to excel in all areas, but doing well in several
|
||||
@@ -699,8 +704,9 @@ about why you think your submission is obfuscated. On the other hand,
|
||||
if you are pushing up against the size limits, you may be forced
|
||||
into creating a dense blob. Such are the trade-offs that obfuscators face!
|
||||
|
||||
We prefer code that can run on either a 64-bit or 32-bit processor.
|
||||
However, it is unwise to assume it will run on an i386 or x86 architecture.
|
||||
**`|`** We prefer code that can run on either a 64-bit or 32-bit
|
||||
processor. However, it is **UNWISE **to assume it will run on an
|
||||
some Intel-like x86 architecture.
|
||||
|
||||
We believe that Mark Twain's once wrote:
|
||||
|
||||
@@ -709,8 +715,7 @@ We believe that Mark Twain's once wrote:
|
||||
... 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!
|
||||
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](rules.html#rule7).
|
||||
|
||||
@@ -721,82 +726,62 @@ interesting than simply implementing the IOCCC size tool algorithm.
|
||||
While programs that only run in a specific word size are OK. If you have
|
||||
to pick, choose a 64-bit word size.
|
||||
|
||||
If we are feeling ornery we might choose to compile your program
|
||||
for running on an Arduino or a PDP-11. Heck, should we ever find
|
||||
an emulator of 60-bit CDC Cyber CPU, we might just try your submission
|
||||
on that emulator as well :-)
|
||||
**`|`** If [IOCCC judges](../judges.html) are feeling ornery we
|
||||
might choose to compile your program for running on an Arduino or
|
||||
a PDP-11. Heck, should we ever find an emulator of 60-bit CDC Cyber
|
||||
CPU, we might just try your submission on that emulator as well :-)
|
||||
|
||||
If your submission MUST run only in 32-bit mode on an Intel processor, add the
|
||||
following compiler flag:
|
||||
**`|`** If your submission **MUST** run only on a 64-bit or 32-bit architecture,
|
||||
then you **MUST** specify the `-arch` on your command line
|
||||
(see `CARCH` in the [example Makefile](https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example). Do not assume a processor word size without specifying `-arch`. For example:
|
||||
|
||||
```
|
||||
-arch i386
|
||||
CARCH= -m64
|
||||
```
|
||||
|
||||
to your "how to build" make compile line. For example:
|
||||
|
||||
```
|
||||
prog: prog.c
|
||||
${CC} prog.c -arch i386 -o prog
|
||||
```
|
||||
|
||||
Be even more creative!
|
||||
**`|`** Try to be even more creative!
|
||||
|
||||
**`|`** If there are limitations in your submission, you are highly encouraged
|
||||
to note such limitations in your `remarks.md` file. For example if your
|
||||
submission factors values up to a certain size, you might want to state:
|
||||
|
||||
```
|
||||
This submission factors values up 2305567963945518424753102147331756070.
|
||||
Attempting to factor larger values will produce unpredictable results.
|
||||
```
|
||||
> This submission factors values up 2305567963945518424753102147331756070.<br>
|
||||
> Attempting to factor larger values will produce unpredictable results.
|
||||
|
||||
The judges might try to factor the value -5, so you want to might state:
|
||||
|
||||
```
|
||||
This submission factors positive values up 2305567963945518424753102147331756070.
|
||||
Attempting to factor large values will produce unpredictable results.
|
||||
```
|
||||
> This submission factors positive values up 2305567963945518424753102147331756070.<br>
|
||||
> Attempting to factor large values will produce unpredictable results.
|
||||
|
||||
However the judges might try to also factor 0, so you want to might state:
|
||||
|
||||
```
|
||||
This submission factors values between 1 and 2305567963945518424753102147331756070.
|
||||
Attempting to factor values outside that range will produce unpredictable results.
|
||||
```
|
||||
> This submission factors values between 1 and 2305567963945518424753102147331756070.<br>
|
||||
> Attempting to factor values outside that range will produce unpredictable results.
|
||||
|
||||
Moreover the try to also factor 3.5 or 0x7, or Fred, so you want to might state:
|
||||
|
||||
```
|
||||
This submission factors integers between 1 and 2305567963945518424753102147331756070.
|
||||
Attempting to factor anything else will produce unpredictable results.
|
||||
```
|
||||
> This submission factors integers between 1 and 2305567963945518424753102147331756070.<br>
|
||||
> Attempting to factor anything else will produce unpredictable results.
|
||||
|
||||
You submission might be better off catching the attempt to factor bogus values
|
||||
and doing something interesting. So you might want to code accordingly and state:
|
||||
|
||||
```
|
||||
This submission factors integers between 1 and 2305567963945518424753102147331756070.
|
||||
Attempting to factor anything else will cause the program to insult your pet fish Eric.
|
||||
```
|
||||
> This submission factors integers between 1 and 2305567963945518424753102147331756070.<br>
|
||||
> Attempting to factor anything else will cause the program to insult your pet fish Eric.
|
||||
|
||||
The judges might not have a pet fish named Eric, so might want to state:
|
||||
|
||||
```
|
||||
This submission factors integers between 1 and 2305567963945518424753102147331756070.
|
||||
Attempting to factor anything else will cause the program to insult your pet fish Eric,
|
||||
or in the case that you lack such a pet, will insult the pet that you do not have.
|
||||
```
|
||||
> This submission factors integers between 1 and 2305567963945518424753102147331756070.<br>
|
||||
> Attempting to factor anything else will cause the program to insult your pet fish Eric,<br>
|
||||
> or in the case that you lack such a pet, will insult the pet that you do not have.
|
||||
|
||||
When all other things are equal, an submission with fewer limitations will be judged
|
||||
better than an submission with lots of limitations. So you might want to code accordingly
|
||||
and state:
|
||||
|
||||
```
|
||||
This submission attempts to a factor value of any size provided that the program is
|
||||
given enough time and memory. If the value is not a proper integer, the program
|
||||
might insult a fish named Eric.
|
||||
```
|
||||
> This submission attempts to a factor value of any size provided that the program is<br>
|
||||
> given enough time and memory. If the value is not a proper integer, the program<br>
|
||||
> might insult a fish named Eric.
|
||||
|
||||
**`|`** Do not fear if you not 100% sure of the significance of `2305567963945518424753102147331756070` as it is not of prime importance: or is it? :-)
|
||||
|
||||
@@ -944,7 +929,7 @@ previous round. Thus, an submission gets at least two readings.
|
||||
A reading consists of a number of actions:
|
||||
|
||||
* reading the "how to build" information and forming a Makefile
|
||||
* reading prog.c, the C source
|
||||
* reading prog.c, the C source<br>
|
||||
**`|`** * reviewing the `remarks.md` information
|
||||
* briefly looking any any supplied data files
|
||||
* passing the source thru the C pre-processor
|
||||
@@ -954,7 +939,7 @@ A reading consists of a number of actions:
|
||||
skipping over any #include files
|
||||
* compiling/building the source
|
||||
* running the program
|
||||
* Doing other things that only IOCCC judges know about :-)
|
||||
* Doing other things that only [IOCCC judges](../judges.html) know about :-)
|
||||
|
||||
In later rounds, other actions are performed including performing
|
||||
miscellaneous tests on the source and binary.
|
||||
@@ -1003,9 +988,29 @@ sometimes worthwhile to re-enter an improved version of an submission
|
||||
that failed to win in a previous year. This assumes, of course,
|
||||
that the submission is worth improving in the first place!
|
||||
|
||||
More than one IOCCC judge has been known to bribe another IOCCC judge
|
||||
into voting for a winning submission by offering a bit high quality chocolate.
|
||||
This technique is highly discouraged for use by non-IOCCC judges.
|
||||
**`|`** Over the years, more than one [IOCCC judge](../judges.html)
|
||||
has been known to _bribe_ another IOCCC judge into voting for a
|
||||
winning submission by offering a bit high quality chocolate, or
|
||||
other fun item.
|
||||
|
||||
**`|`** One **should not** attempt to _bribe_ an [IOCCC
|
||||
judge](../judges.html), unless you are an [IOCCC judge](../judges.html),
|
||||
because _bribing_ a [IOCCC judge](../judges.html) by a non-judge
|
||||
has been shown to **NOT** be effective when the **person attempting
|
||||
the bribe is made known** to the [IOCCC judges](../judges.html)
|
||||
(i.e., they are not anonymous) AND/OR the _bribe_ is otherwise
|
||||
associated with a submission to the IOCCC.
|
||||
|
||||
**`|`** With the previous guideline in mind: **anonymous** gifts
|
||||
for the [IOCCC judges](../judges.html) that are **NOT** associated
|
||||
with a submission to the IOCCC may be sent to the
|
||||
[IOCCC judges](../judges.html) via the
|
||||
[IOCCC Amazon wishlist](https://www.amazon.com/hz/wishlist/ls/3HSNTEL8RQ1M0?ref_=wl_share).
|
||||
It has been shown that receiving **anonymous** gifts provides the
|
||||
[IOCCC judges](../judges.html) with a nice dopamine boost, and happy
|
||||
[IOCCC judges](../judges.html) help make the IOCCC better for everyone. :-)
|
||||
|
||||
**`|`** See [FAQ: How may I support the IOCCC?](../faq.html#support).
|
||||
|
||||
More often than not, we select a small submission (usually one line), a
|
||||
strange/creative layout submission. We sometimes also select an
|
||||
@@ -1058,9 +1063,7 @@ account](https://fosstodon.org/@ioccc).
|
||||
|
||||
## Back to announcement of winners
|
||||
|
||||
It is pointless to ask the IOCCC judges how many entries we receive.
|
||||
Other government TLA or FLA snooping organizations are prohibited from
|
||||
either confirming, denying or revealing any knowledge of this data point.
|
||||
**`|`** It is pointless to ask the [IOCCC judges](../judges.html) how many entries we receive. See [How many entries do the judges receive for a given IOCCC](../faq.html#how_many).
|
||||
|
||||
Often, winning entries are published in selected magazines from around
|
||||
the world. Winners have appeared in books ("The New Hackers Dictionary")
|
||||
|
||||
Reference in new issue
Block a user