Add faq.md, remove faq.html

I tried to keep the formatting as close to the original as possible.
It's very likely links have to be fixed and it's very likely formatting
has to be fixed.

Some things necessarily had to change but very few did in fact need to
change.

As tempting as it was to change it to British English I did not (though
I started to when fixing a link but I caught myself in time) :-)

Naturally as this is a major change problems are expected but these will
be worked out. I guess the next step would be to do this for other raw
html files but I don't fancy doing more than one in a day. This can be
discussed later though as some will be automatically generated anyway so
no need for a markdown file (faq.md was discussed as a good idea).
This commit is contained in:
Cody Boone Ferguson committed 2023-03-30 06:39:35 -07:00
1 parent b5cca7ca12
commit a59162673c
2 files changed
+771 -436

No files matched your search

+338 -436
View File
@@ -1,546 +1,448 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<META name="description" content="International Obfuscated C Code Contest">
<META name="keywords" content="International, Obfuscated, C, c, IOCCC,ioccc, obfuscated, Obfuscate, obfuscate, Landon Curt Noll, chongo, Leonid A. Broukhis">
<link rel="stylesheet" type="text/css" href="ioccc.css">
<TITLE>The FAQ</TITLE>
</HEAD>
<BODY TEXT="#000000">
<p><HTML>
<BODY TEXT="#000000"></p>
<CENTER><IMG ALT="IOCCC" SRC="png/ioccc.png"></CENTER><BR>
<CENTER><FONT SIZE="6"><I>The International Obfuscated C Code
Contest </I></FONT></CENTER><BR>
<CENTER><P>[ <A HREF="judges.html">The judges</A> |
<center><img alt="IOCCC" SRC="png/ioccc.png"></center>
<p><br></p>
<center><font size="6"><I>The International Obfuscated C Code Contest </I></font></center>
<p><br></p>
<center><P>[ <A HREF="judges.html">The judges</A> |
<A HREF="main.html">IOCCC home page</A> |
<A HREF="main.html#enter">How to enter</A> |
<B>FAQ</B> |
<A HREF="contact.html">Contacting the IOCCC</A>
<BR>
<br>
<A HREF="main.html#new">IOCCC news</A> |
<A HREF="winners.html">People who have won</A> |
<A HREF="years.html">Winning entries</A> ]</P></CENTER>
<BR>
<A HREF="years.html">Winning entries</A> ]</P></center>
<p><br></p>
<HR>
<H2>The IOCCC FAQ</H2>
<P>
<BLOCKQUOTE><FONT SIZE=+1>Q:</FONT> How many entries do you receive each
year?
<BR><FONT SIZE=+1>A:</FONT> By tradition, we do not say.
<P><FONT SIZE=+1>Q:</FONT> How many judging rounds do you have?
<BR><FONT SIZE=+1>A:</FONT> Are you trying to trick us? We will not say
that either.
<P><FONT SIZE=+1>Q:</FONT> I cannot get entry xyzzy from year 19xx to compile!
<BR><FONT SIZE=+1>A:</FONT> Some winners, particularly winners from long
ago, no longer compile on more modern systems because the C language has
evolved (i.e. the modern C compilers are much more strict in what they
accept as a valid program), or the entry depended on operation system
and library features that where common back then but are different/missing
today.
<BR>E.g. it is highly unlikely that you'll be able to execute <A HREF="years.html#1984/mullender">1984/mullender</A> on a computer you're using to read this FAQ.
<P><FONT SIZE=+1>Q:</FONT> I found a bug in a previous winner, what should
I do?
<BR><FONT SIZE=+1>A:</FONT> We do not ``maintain'' the contest winners.
The code is made available on an ``AS IS'' basis. If you have a FIX for
<h1>The IOCCC FAQ</h1>
<h2>Q:</font> How many entries do you receive each year?</h2>
<p>By tradition, we do not say.</p>
<h2>Q: How many judging rounds do you have?</h2>
<p>Are you trying to trick us? We will not say that either.</p>
<h2>Q: I cannot get entry XYZZY from year 19xx to compile!</h2>
<p>Some winners, particularly winners from long ago, no longer compile on more
modern systems because the C language has evolved (i.e. the modern C compilers
are much more strict in what they accept as a valid program), or the entry
depended on operation system and library features that where common back then
but are different/missing today.</p>
<p>E.g. it is highly unlikely that you'll be able to execute
<a href="years.html#1984/mullender">1984/mullender</a> on a computer you're using to read
this FAQ.</p>
<h2>Q: I found a bug in a previous winner, what should I do?</h2>
<p>We do not 'maintain' the contest winners. The code is made available on an 'AS
IS' basis. If you have a FIX for
a entry, we suggest that you try and email it to the authors and to CC:
us using the instructions on the <A HREF="contact.html">contacting the IOCCC
Judges</A> page.
<BR>IF you have a FIX, and IF the author does not object, and IF your fix
us using the instructions on the
<a href="contact.hml">contacting the IOCCC Judges</a> page.</p>
<p>IF you have a FIX, and IF the author does not object, and IF your fix
looks reasonable, we will add a web link to a copy of your email
for others to see.
<P><FONT SIZE=+1>Q:</FONT> Are there types of entries that are submitted
so frequently that the judges get tired of them?
<BR><FONT SIZE=+1>A:</FONT> Yes, there are types of entries that show up
over and over again.
<BR>The <A HREF="guidelines.html">guidelines</A> say:
<BLOCKQUOTE><I>We tend to dislike programs that:</I>
<LI><I>are similar to previous winners</I></LI>
</BLOCKQUOTE>
We like variety. However too often we see (please look at the winning examples
given to be aware of the level of the competition):
<UL>
<LI>
<FONT SIZE=+1>maze generator</FONT>
for others to see.</p>
<UL>
<LI>
<A HREF="years.html#1985_shapiro">1985/shapiro</A></LI>
<h2>Q: Are there types of entries that are submitted so frequently that the judges get tired of them?</h2>
<LI>
<A HREF="years.html#1991_buzzard">1991/buzzard</A></LI>
<p>Yes, there are types of entries that show up over and over again.</p>
<LI>
<A HREF="years.html#1995_cdua">1995/cdua</A></LI>
<p>The <a href="guidelines.html">guidelines</a> say:</p>
<LI>
<A HREF="years.html#1995_dodsond2">1995/dodsond2</A></LI>
<blockquote><p><em>We tend to dislike programs that: are similar to previous winners</em></p></blockquote>
<LI>
<A HREF="years.html#1998_bas1">1998/bas1</A></LI>
</UL>
<P><LI>
<FONT SIZE=+1>tic-tac-toe game</FONT>
<p>We like variety. However too often we see (please look at the winning examples
given to be aware of the level of the competition):</p>
<UL>
<LI>
<A HREF="years.html#1991_westley">1991/westley</A></LI>
<h3>maze generator</h3>
<LI>
<A HREF="years.html#1996_jonth">1996/jonth</A></LI>
<ul>
<li><p><a href="years.html#1985_shapiro">1985/shapiro</a></p></li>
<li><p><a href="years.html#1991_buzzard">1991/buzzard</a></p></li>
<li><p><a href="years.html#1995_cdua">1995/cdua</a></p></li>
<li><p><a href="years.html#1995_dodsond2">1995/dodsond2</a></p></li>
<li><p><a href="years.html#1998_bas1">1998/bas1</a></p></li>
</ul>
<LI>
<A HREF="years.html#2020_carlini">2020/carlini</A></LI>
</UL>
<P><LI>
<FONT SIZE=+1>solitaire/Othello game</FONT>
<h3>tic-tac-toe game</h3>
<UL>
<LI>
<A HREF="years.html#1987_lievaart">1987/lievaart</A></LI>
<ul>
<li><p><a href="years.html#1991_westley">1991/westley</a></p></li>
<li><p><a href="years.html#1996_jonth">1996/jonth</a></p></li>
<li><p><a href="years.html#2020_carlini">2020/carlini</a></p></li>
</ul>
<LI>
<A HREF="years.html#1994_dodsond1">1994/dodsond1</A></LI>
</UL>
<P><LI>
<FONT SIZE=+1>generating small primes </FONT>(below is the list of all
prime related winners)
<h3>solitaire/Othello game</h3>
<UL>
<LI>
<A HREF="years.html#1985_august">1985/august</A></LI>
<ul>
<li><p><a href="years.html#1987_lievaart">1987/lievaart</a></p></li>
<li><p><a href="years.html#1994_dodsond1">1994/dodsond1</a></p></li>
</ul>
<LI>
<A HREF="years.html#1988_applin">1988/applin</A></LI>
<LI>
<A HREF="years.html#1994_weisberg">1994/weisberg</A></LI>
<h3>generating small primes (below is the list of all prime related winners)</h3>
<LI>
<A HREF="years.html#1995_makarios">1995/makarios</A></LI>
<ul>
<li><p><a href="years.html#1985_august">1985/august</a></p></li>
<li><p><a href="years.html#1988_applin">1988/applin</a></p></li>
<li><p><a href="years.html#1994_weisberg">1994/weisberg</a></p></li>
<li><p><a href="years.html#1995_makarios">1995/makarios</a></p></li>
<li><p><a href="years.html#1996_dalbec">1996/dalbec</a></p></li>
<li><p><a href="years.html#2000_bellard">2000/bellard</a></p></li>
</ul>
<LI>
<A HREF="years.html#1996_dalbec">1996/dalbec</A></LI>
<LI>
<A HREF="years.html#2000_bellard">2000/bellard</A></LI>
</UL>
<B><I>As you can see, just a list of primes (let alone small primes) does
not cut it anymore.</I></B>
<p><em>As you can see, just a list of primes (let alone small primes) does not cut it
anymore.</em></p>
<P><LI>
<FONT SIZE=+1>self reproducing program</FONT>
<h3>self reproducing program</h3>
<UL>
<LI>
<A HREF="years.html#1990_scjones">1990/scjones</A></LI>
<ul>
<li><p><a href="years.html#1990_scjones">1990/scjones</a></p></li>
<li><p><a href="years.html#1994_smr">1994/smr</a> - _do not claim your program is the smallest one without seeing it!</p></li>
<li><p><a href="years.html#2000_dhyang">2000/dhyang</a> - <em>unless you beat this one, your chances are slim</em></p></li>
</ul>
<LI>
<A HREF="years.html#1994_smr">1994/smr</A> - <I>do not claim your program
is the smallest one without seeing it</I></LI>
<LI>
<A HREF="years.html#2000_dhyang">2000/dhyang</A> - <I>unless you beat this
one, your chances are slim</I></LI>
</UL>
<h3>entries that just print "Hello, world!"</h3>
<P><LI>
<FONT SIZE=+1>entries that just print "Hello, world!"</FONT>
<ul>
<li><p><a href="years.html#1984_anonymous">1984/anonymous</a></p></li>
<li><p><a href="years.html#1985_applin">1985/applin</a></p></li>
<li><p><a href="years.html#1986_applin">1986/applin</a></p></li>
<li><p><a href="years.html#1986_holloway">1986/holloway</a></p></li>
<li><p><a href="years.html#1989_jar.1">1989/jar.1</a></p></li>
<li><p><a href="years.html#1992_lush">1992/lush</a></p></li>
<li><p><a href="years.html#2000_tomx">2000/tomx</a></p></li>
</ul>
<UL>
<LI>
<A HREF="years.html#1984_anonymous">1984/anonymous</A></LI>
<LI>
<A HREF="years.html#1985_applin">1985/applin</A></LI>
<p><em><strong>it's so 20th century...</strong></em></p>
<LI>
<A HREF="years.html#1986_applin">1986/applin</A></LI>
<h3>entries that use some complex state machine/table to print something</h3>
<LI>
<A HREF="years.html#1986_holloway">1986/holloway</A></LI>
<ul>
<li><p><a href="years.html#1988_isaak">1988/isaak</a></p></li>
<li><p><a href="years.html#1988_phillipps">1988/phillipps</a></p></li>
</ul>
<LI>
<A HREF="years.html#1989_jar.1">1989/jar.1</A></LI>
<LI>
<A HREF="years.html#1992_lush">1992/lush</A></LI>
<h3>rot13</h3>
<LI>
<A HREF="years.html#2000_tomx">2000/tomx</A></LI>
</UL>
<B><I>It's so 20th century...</I></B>
<ul>
<li><p><a href="years.html#1985_sicherman">1985/sicherman</a></p></li>
<li><p><a href="years.html#1989_westley">1989/westley</a></p></li>
<li><p><a href="years.html#1990_dg">1990/dg</a></p></li>
<li><p><a href="years.html#1991_fine">1991/fine</a></p></li>
</ul>
<P><LI>
<FONT SIZE=+1>entries that use some complex state machine/table to print
something</FONT>
<UL>
<LI>
<A HREF="years.html#1988_isaak">1988/isaak</A></LI>
<h3><strong>pi</strong> or <strong>e</strong> computation</font></h3>
<LI>
<A HREF="years.html#1988_phillipps">1988/phillipps</A></LI>
</UL>
<ul>
<li><p><a href="years.html#1986_august">1986/august</a></p></li>
<li><p><a href="years.html#1988_robison">1988/robison</a></p></li>
<li><p><a href="years.html#1988_westley">1988/westley</a></p></li>
<li><p><a href="years.html#1989_roemer">1989/roemer</a></p></li>
</ul>
<P><LI>
<FONT SIZE=+1>rot13</FONT></LI>
<UL>
<LI>
<A HREF="years.html#1985_sicherman">1985/sicherman</A></LI>
<LI>
<A HREF="years.html#1989_westley">1989/westley</A></LI>
<LI>
<A HREF="years.html#1990_dg">1990/dg</A></LI>
<LI>
<A HREF="years.html#1991_fine">1991/fine</A></LI>
</UL>
<P><LI>
<FONT SIZE=+1><B>pi</B> or <B>e</B> computation</FONT>
<UL>
<LI>
<A HREF="years.html#1986_august">1986/august</A></LI>
<LI>
<A HREF="years.html#1988_robison">1988/robison</A></LI>
<LI>
<A HREF="years.html#1988_westley">1988/westley</A></LI>
<LI>
<A HREF="years.html#1989_roemer">1989/roemer</A></LI>
</UL>
</UL>
<P>HINT: It is not fatal to send in those types of entries, it is just MUCH
<p>HINT: It is not fatal to send in those types of entries, it is just MUCH
HARDER to win. Such an entry would have to do something really unique and
interesting to even make it into the final judging rounds. Entries that
re-use these 'worn out' themes frequently lose to other entries that do
something different.
<P>HINT: If you really MUST send in an entry based on an 'over-used theme',
something different.</p>
<p>HINT: If you really MUST send in an entry based on an 'over-used theme',
be sure that it is obfuscated in several new and novel ways. Be sure to clearly
explain near the beginning of your remarks why you are submitting a entry
based on an 'over-used theme' and why the judges should not simply toss
it out as being boring.
<P><FONT SIZE=+1>Q:</FONT> What should I write in the 'remark' section
of my entry, if anything at all?
<BR><FONT SIZE=+1>A:</FONT> As much or as little as you wish.
<P>What helps:
<UL>
<LI>
explaining what your entry does</LI>
it out as being boring.</p>
<LI>
how to entice it to do what it is supposed to do</LI>
<h2>Q: What should I write in the 'remarks' (remarks.md) section of my entry, if anything at all?</h2>
<LI>
what obfuscations are used</LI>
<p>As much or as little as you wish.</p>
<LI>
what are the limitations of your entry in respect of portability and/or input
data</LI>
<h3>What helps:</h3>
<LI>
how it works (if you are really condescending)</LI>
</UL>
<P>What does not help:
<UL>
<LI>
admitting that your entry is not very obfuscated (you see, the contest
is called <B>IOCCC</B>, not <B>INVOCCC</B>); but even if you do not admit it,
not very obfuscated entries have a minuscule chance to win
(although <A HREF="years.html#2000_tomx">2000/tomx</A> is a notable counterexample)</LI>
<ul>
<li><p>explaining what your entry does</p></li>
<li><p>how to entice it to do what it is supposed to do</p></li>
<li><p>what obfuscations are used</p></li>
<li><p>what are the limitations of your entry in respect of portability and/or input data</p></li>
<li><p>how it works (if you are really condescending)</p></li>
</ul>
<LI>
mentioning your name or any identifying information in the remark section
(or in the C code for that matter) - we like to be unbiased during the
judging rounds; we look at the author name only if an entry wins</LI>
<LI>
leaving the remark section empty</LI>
</UL>
<P><FONT SIZE=+1>Q:</FONT> I am confused: what should I put to the 'build'
section?
<BR><FONT SIZE=+1>A:</FONT> The 'build' section must contain UNIX shell-style
commands to compile your C language entry <B>in a file named prog.c</B>
and produce an executable file. More than one command is allowed,
<h3>What does not help:</h3>
<ul>
<li><p>admitting that your entry is not very obfuscated (you see, the contest is
called <B>IOCCC</B>, not <B>INVOCCC</B>); but even if you do not admit it, not
very obfuscated entries have a minuscule chance to win (although
<a href="years.html#2000_tomx">2000/tomx</a> is a notable counterexample)</p></li>
<li><p>mentioning your name or any identifying information in the remark section (or
in the C code for that matter) - we like to be unbiased during the judging
rounds; we look at the author name only if an entry wins</p></li>
<li><p>leaving the remark section empty</p></li>
</ul>
<h2>Q: I am confused: what should I put to the 'build' section?</h2>
<p>The 'build' section must contain UNIX shell-style commands to compile your C
language entry <strong>in a file named prog.c</strong> and produce an executable file. More than one command is allowed,
as far as the size rule is followed.
Usually one (or more) of these commands will be an invocation of
a C compiler (use <B>cc</B> or <B>gcc</B>), but there may be exceptions
(or not anymore, see <A HREF="years.html#2000_tomx">2000/tomx</A>).
<BR>If your entry depends on a particular source file name during
compilation or execution, you will have to put a line
<PRE>cp prog.c desired_name.c</PRE> before the compiler invocation line.
<BR>If in doubt, put
<PRE>cc -o prog prog.c</PRE> in the 'build' section.
<P><FONT SIZE=+1>Q:</FONT> What happened to the winners for 1997, 1999
and 2002?
<BR><FONT SIZE=+1>A:</FONT> There are none. There was no IOCCC in those
years.
<P><FONT SIZE=+1>Q:</FONT> Why don't you publish non-winners?
<BR><FONT SIZE=+1>A:</FONT> Because the publication on the IOCCC site <B><I>IS</I></B>
a C compiler (use <strong>cc</strong> or <B>gcc</B>), but there may be exceptions
(or not anymore, see <a href="years.html#2000_tomx">2000/tomx</a>).</p>
<p>If your entry depends on a particular source file name during compilation or execution, you will have to put a line</p>
<pre><code>cp prog.c desired_name.c
</code></pre>
<p>before the compiler invocation line.</p>
<p>If in doubt, put</p>
<pre><code>cc -o prog prog.c
</code></pre>
<p>in the 'build' section.</p>
<p>Note however that with the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
tool</a> we have an example Makefile
which you should update, using the instructions above if necessary.</p>
<h2>Q: What happened to the winners for 1997, 1999 2002, 2003, 2007 - 2010, 2016, 2017, 2021 and 2022 ?</h2>
<p>There are none. There was no IOCCC in those years.</p>
<h2>Q: Why don't you publish non-winners?</h2>
<p>Because the publication on the IOCCC site <strong><em>IS</em></strong>
the award! Anyone is free to put their IOCCC hopefuls, lookalikes and/or
non-winners on their web page for everyone to see.
<P><FONT SIZE=+1>Q:</FONT> How much time does it take to judge the contest?
<BR><FONT SIZE=+1>A:</FONT> It takes a fair amount of time to setup, run,
answer email, process (note that we do not contact the author if an entry
does not compile or does not work as advertised, we might attempt to fix
obvious compilation problems or incompatibilities, but no more than that
- so be sure that your entry does work on at least a couple different platforms,
at least one of them being UNIX or POSIX-conforming) entries, review entries,
trim down the set entries to a set of winners, doing the write-up of the
winners, announcing the winners, reviewing final edits of the winning entry
set, posting the winners, being flamed :-), tell folks who send in late
entries to wait until the next contest, etc... It takes a few weekends
and a number nights of study and work ... which is hard given that we are busy
with many other activities as well.
<P><FONT SIZE=+1>Q:</FONT> What platform should I assume for my entry?
<BR><FONT SIZE=+1>A:</FONT> Your entry must compile with GCC and run under
at least one flavor of UNIX (e.g. Linux or Solaris). To improve chances
to win, it should work under both BSD and SysV style UNIX (think <B>stty
cbreak</B>), and should not depend on endianness. If it can compile and
run on Windows and/or Mac (see <A HREF="/years.html#2000_thadgavin">2000/thadgavin</A>),
even better.
<P><FONT SIZE=+1>Q:</FONT> I would like to mirror the IOCCC web site. May
I do so?
<BR><FONT SIZE=+1>A:We are not accepting mirror requests at this time, sorry.
<P><FONT SIZE=+1>Q:</FONT> I want to publish some parts of the IOCCC in
an article, or book, or newsletter, or use then in class/instructional
notes, or quote from the IOCCC. May I do so?
<BR><FONT SIZE=+1>A:</FONT> Please ask the IOCCC judges first. Please send
your request using the instructions on the <A HREF="contact.html">contacting
the IOCCC Judges</A> page.
<P><FONT SIZE=+1>Q:</FONT> What are the grand prize / Best of Show winners?
<BR><FONT SIZE=+1>A:</FONT> In 1984-1987, the grand prize winners are:
<UL>
<LI>
<A HREF="years.html#1984_mullender">1984/mullender</A></LI>
non-winners on their web page for everyone to see.</p>
<LI>
<A HREF="years.html#1985_shapiro">1985/shapiro</A></LI>
<h2>Q: How much time does it take to judge the contest?</h2>
<LI>
<A HREF="years.html#1986_wall">1986/wall</A></LI>
<p>It takes a fair amount of time to setup, run, answer email, process entries,
review entries, trim down the set entries to a set of winners, doing the
write-up of the winners, announcing the winners, reviewing final edits of the
winning entry set, posting the winners, being flamed :-), tell folks who send in
late entries to wait until the next contest, etc... It takes a few weekends and
a number nights of study and work ... which is hard given that we are busy with
many other activities as well.</p>
<LI>
<A HREF="years.html#1987_lievaart">1987/lievaart</A></LI>
</UL>
<BR>Starting from 1988, the entry we liked the most in that year is called
"Best of Show". Here are the "Best of Show" entries:
<UL>
<LI>
<A HREF="years.html#1988_applin">1988/applin</A></LI>
<p>Note that we do not contact the author if an entry does not compile or does not
work as advertised, we might attempt to fix obvious compilation problems or
incompatibilities, but no more than that - so be sure that your entry does work
on at least a couple different platforms, at least one of them being UNIX or
POSIX-conforming.</p>
<LI>
<A HREF="years.html#1989_jar.2">1989/jar.2</A></LI>
<h2>Q: What platform should I assume for my entry?</h2>
<LI>
<A HREF="years.html#1990_theorem">1990/theorem</A></LI>
<p>Your entry must compile with GCC and run under at least one flavor of UNIX (e.g.
Linux or Solaris). To improve chances to win, it should work under both BSD and
SysV style UNIX (think <B>stty cbreak</B>), and should not depend on endianness.
If it can compile and run on Windows and/or Mac (see
<a href="/years.html#2000_thadgavin">2000/thadgavin</a> for one example, amongst others), even better.</p>
<LI>
<A HREF="years.html#1991_brnstnd">1991/brnstnd</A></LI>
<h2>Q: I would like to mirror the IOCCC web site. May I do so?</h2>
<LI>
<A HREF="years.html#1992_vern">1992/vern</A></LI>
<p>We are not accepting mirror requests at this time, sorry.</p>
<LI>
<A HREF="years.html#1996_august">1996/august</A></LI>
<h2>Q: I want to publish some parts of the IOCCC in an article, or book, or newsletter, or use then in class/instructional notes, or quote from the IOCCC. May I do so?</h2>
<LI>
<A HREF="years.html#1998_banks">1998/banks</A></LI>
<p>Please ask the IOCCC judges first. Please send your request using the
instructions on the <a href="/contact.html">contacting the IOCCC Judges</a> page.</p>
<LI>
<A HREF="years.html#2000_jarijyrki">2000/jarijyrki</A></LI>
</UL>
<BR>In 1993, 1994 and 1995 the judges were unable to select a clear overall
<h2>Q: What are the grand prize / Best of Show winners?</h2>
<p>In 1984-1987, the grand prize winners are:</p>
<ul>
<li><p><a href="years.html#1984_mullender">1984/mullender</a></p></li>
<li><p><a href="years.html#1985_shapiro">1985/shapiro</a></p></li>
<li><p><a href="years.html#1986_wall">1986/wall</a></p></li>
<li><p><a href="years.html#1987_lievaart">1987/lievaart</a></p></li>
</ul>
<p>Starting from 1988, the entry we liked the most in that year is called
"Best of Show". Here are the "Best of Show" entries:</p>
<ul>
<li><p><a href="years.html#1988_applin">1988/applin</a></p></li>
<li><p><a href="years.html#1989_jar.2">1989/jar.2</a></p></li>
<li><p><a href="years.html#1990_theorem">1990/theorem</a></p></li>
<li><p><a href="years.html#1991_brnstnd">1991/brnstnd</a></p></li>
<li><p><a href="years.html#1992_vern">1992/vern</a></p></li>
<li><p><a href="years.html#1996_august">1996/august</a></p></li>
<li><p><a href="years.html#1998_banks">1998/banks</a></p></li>
<li><p><a href="years.html#2000_jarijyrki">2000/jarijyrki</a></p></li>
<li><p><a href="years.html#2020_carlini">2020/carlini</a></p></li>
</ul>
<p>In 1993, 1994 and 1995 the judges were unable to select a clear overall
winner. So to give a nod to the entry that had the highest approval ranking
from the judges, they used the following awards:
<UL>
<LI>
<A HREF="years.html#1993_rince">1993/rince</A> - Most Well Rounded</LI>
from the judges, they used the following awards:</p>
<LI>
<A HREF="years.html#1994_shapiro">1994/shapiro</A> - Most Well Rounded</LI>
<ul>
<li><p><a href="years.html#1993_rince">1993/rince</a> - Most Well Rounded</p></li>
<li><p><a href="years.html#1994_shapiro">1994/shapiro</a> - Most Well Rounded</p></li>
<li><p><a href="years.html#1995_leo">1995/leo</a> - Best Use of Obfuscation</p></li>
</ul>
<LI>
<A HREF="years.html#1995_leo">1995/leo</A> - Best Use of Obfuscation</LI>
</UL>
These could be considered the 'better entry' for those years with 1 or
more other entries that came in close behind.
<P><FONT SIZE=+1>Q:</FONT> I managed to get entry xyzzy from year 19xx to compile; now it fails to run!
<BR><FONT SIZE=+1>A:</FONT> switch(19xx/xyzzy) { <UL>
<LI>case <A HREF="years.html#1984_mullender">1984/mullender</A>: try
<PRE>main(){int i=512;do write(1," :-)\b\b\b\b",9),usleep(i);while(--i);}</PRE>
instead.<BR>Enable reverse wraparound in your xterm window for best results.
<BR>break;
</LI>
<P><LI>case <A HREF="years.html#1991_davidguy">1991/davidguy</A>: disable access
control of your X server (<B>xhost +</B>). If it does not help (or if you
<p>These could be considered the 'best entry' for those years with 1 or
more other entries that came in close behind.</p>
<h2>Q: I managed to get entry XYZZY from year 19xx to compile; now it fails to run!</h2>
<p>switch(19xx/XYZZY) {</p>
<ul>
<li><p>case <a href="years.html#1984_mullender">1984/mullender</a>: try</p>
<p> main(){int i=512;do write(1," :-)\b\b\b\b",9),usleep(i);while(--i);}</p></li>
</ul>
<p>instead. Enable reverse wraparound in your xterm window for best results.</p>
<p>break;</p>
<ul>
<li>case <a href="years.html#1991_davidguy">1991/davidguy</a>: disable access
control of your X server (<strong>xhost +</strong>). If it does not help (or if you
see black screen), restart the X server without access control and with visual
depth of 8 bits or less.
<BR>break;
</LI>
<P><LI>default: Try enabling <TT>-fwritable-strings</TT> for GCC
or its equivalent for other compilers.
</LI></UL>
}
depth of 8 bits or less.</li>
</ul>
<P><FONT SIZE=+1>Q:</FONT> How
did the IOCCC get started?
<BR><FONT SIZE=+1>A:</FONT>
One day (23 March 1984 to be exact), back Larry Bassel and I (Landon Curt
<p>break;</p>
<ul>
<li>default: Try enabling <TT>-fwritable-strings</TT> for GCC
or its equivalent for other compilers.</li>
</ul>
<p>}</p>
<h2>Q: How did the IOCCC get started?</h2>
<p>One day (23 March 1984 to be exact), Larry Bassel and I (Landon Curt
Noll) were working for National Semiconductor's Genix porting group, we
were both in our offices trying to fix some very broken code.
Larry had
been trying to fix a bug in the classic Bourne shell (C code #defined
to death to sort of look like Algol) and I had been working on the
finger program from early BSD (a bug ridden finger implementation to be
sure).
We happened to both wander (at the same time) out to the hallway
in Building 7C to clear our heads.
were both in our offices trying to fix some very broken code.</p>
<P>
<p>Larry had been trying to fix a bug in the classic Bourne shell (C code #defined
to death to sort of look like Algol) and I had been working on the finger
program from early BSD (a bug ridden finger implementation to be sure).</p>
We began to compare notes: ''<I>You won't believe the code I am trying to
fix</I>''.
And: ''<I>Well you cannot imagine the brain damage level of the code
I'm trying to fix''</I>.
As well as: ''<I>It's more than bad code, the author really
had to try to make it this bad!</I>''.
<p>We happened to both wander (at the same time) out to the hallway
in Building 7C to clear our heads.</p>
<P>
<p>We began to compare notes: '<em>You won't believe the code I am trying to fix</em>'.</p>
After a few minutes we wandered back into my office where I posted a
<A HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=789%40nsc.UUCP&rnum=3&filter=0">flame
to net.lang.c</A>
inviting people to try and out obfuscate the
UN*X source code we had just been working on.
<p>And: '<em>Well you cannot imagine the brain damage level of the code I'm trying to
fix'</em>.</p>
<BLOCKQUOTE>
<p>As well as: '<em>It's more than bad code, the author really had to try to make it
this bad!</em></p>
BTW:
I (Landon Curt Noll)
had to post this
<A HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=795%40nsc.UUCP&rnum=10&filter=0">typo
correction</A>.
Thus began the tradition of putting typos in the contest rules and
guidelines ... to make them more obfuscated of course! :-)
<p>After a few minutes we wandered back into my office where I posted a
<a href="http://groups.google.com/groups?q=Obfuscated&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;as_drrb=b&amp;as_mind=1&amp;as_minm=1&amp;as_miny=1983&amp;as_maxd=18&amp;as_maxm=4&amp;as_maxy=1984&amp;selm=789%40nsc.UUCP&amp;rnum=3&amp;filter=0" title="">flame to to
net.lang.c</a>
inviting people to try and out obfuscate the UN*X source code we had just been working on.</p>
<P>
<p>BTW: I (Landon Curt Noll) had to post this <a href="http://groups.google.com/groups?q=Obfuscated&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;as_drrb=b&amp;as_mind=1&amp;as_minm=1&amp;as_miny=1983&amp;as_maxd=18&amp;as_maxm=4&amp;as_maxy=1984&amp;selm=795%40nsc.UUCP&amp;rnum=10&amp;filter=0">typo
correction</a>.
Thus began the tradition of putting typos in the contest rules and guidelines
... to make them more obfuscated of course! :-)</p>
BTW:
This posting was made back in the days when AT&amp;T was the evil giant.
Now, Microsoft makes AT&amp;T look mild and kind in comparison. :-( (IMHO) ).
<p>BTW: This posting was made back in the days when AT&amp;T was the evil giant.
Now, Microsoft makes AT&amp;T look mild and kind in comparison. :-( (IMHO) ).</p>
<P>
<p>BTW: See the story about the '<a href="/1993/mills/mills.hint">Bill Gates</a>' award. :-)</p>
BTW:
See the story about the ''
<A HREF="/1993/mills/README.md">Bill Gates</A>'' award. :-)
<p>OK, back to the story.</p>
</BLOCKQUOTE>
<P>
OK, back to the story.
We (Larry and I) received a number of entries by email.
<p>We (Larry and I) received a number of entries by email.
When we began to receive messages from outside of the US, Larry and I
decided to include International in the name.
The
<A HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=837%40nsc.UUCP&rnum=2&filter=0">1st IOCCC winners</A>
were posted on 17 April 1984.
decided to include International in the name.</p>
<BLOCKQUOTE>
<p>The
<a href="http://groups.google.com/groups?q=Obfuscated&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;as_drrb=b&amp;as_mind=1&amp;as_minm=1&amp;as_miny=1983&amp;as_maxd=18&amp;as_maxm=4&amp;as_maxy=1984&amp;selm=837%40nsc.UUCP&amp;rnum=2&amp;filter=0">1st IOCCC winners</a>
were posted on 17 April 1984.</p>
There were 4 winners in 1984:
<p>There were 4 winners in 1984:</p>
<OL>
<LI> <A
HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=842%40nsc.UUCP&rnum=8&filter=0">&lt;dis&gt;honorable
mention</A>
<LI> <A
HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=843%40nsc.UUCP&rnum=7&filter=0">3rd
place</A>
<LI> <A
HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=844%40nsc.UUCP&rnum=6&filter=0">2nd
place</A>
<LI> <A
HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=845%40nsc.UUCP&rnum=5&filter=0">1st
place</A>
</OL>
<ol>
<li><a href="http://groups.google.com/groups?q=Obfuscated&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;as_drrb=b&amp;as_mind=1&amp;as_minm=1&amp;as_miny=1983&amp;as_maxd=18&amp;as_maxm=4&amp;as_maxy=1984&amp;selm=842%40nsc.UUCP&amp;rnum=8&amp;filter=0">(dis)honorable mention</a></li>
<li><a href="http://groups.google.com/groups?q=Obfuscated&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;as_drrb=b&amp;as_mind=1&amp;as_minm=1&amp;as_miny=1983&amp;as_maxd=18&amp;as_maxm=4&amp;as_maxy=1984&amp;selm=843%40nsc.UUCP&amp;rnum=7&amp;filter=0">3rd place</a></li>
<li><a href="http://groups.google.com/groups?q=Obfuscated&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;as_drrb=b&amp;as_mind=1&amp;as_minm=1&amp;as_miny=1983&amp;as_maxd=18&amp;as_maxm=4&amp;as_maxy=1984&amp;selm=844%40nsc.UUCP&amp;rnum=6&amp;filter=0">2nd place</a></li>
<li><a href="http://groups.google.com/groups?q=Obfuscated&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;as_drrb=b&amp;as_mind=1&amp;as_minm=1&amp;as_miny=1983&amp;as_maxd=18&amp;as_maxm=4&amp;as_maxy=1984&amp;selm=845%40nsc.UUCP&amp;rnum=5&amp;filter=0">1st place</a></li>
</ol>
BTW:
The &lt;dis&gt;honorable
mention wished to remain anonymous.
<p>BTW: The (dis)honorable mention wished to remain anonymous.
While many have asked who it was, we have continued to follow the
author's wish to remain anonymous.
A few years ago, we asked the author if they still wanted to remain anonymous.
They said: ''<I>Yes, I want to keep my anonymity.
But you can tell them that I am a well known for my connection to the
C language"</I>''.
It was not until 2001 that another
<A HREF="/years.html#2001_anonymous">anonymous
entry</A> received an award.
author's wish to remain anonymous.</p>
<P>
<p>A few years ago, we asked the author if they still wanted to remain anonymous.
They said: '<em>Yes, I want to keep my anonymity. But you can tell them that I am a well known for my connection to the
C language"</em>'. It was not until 2001 that another <a href="/years.html#2001_anonymous">anonymous
entry</a> received an award.</p>
BTW:
The
<A HREF="/years.html#1984_mullender">1984 winner</A>
remains one of my (Landon Curt Noll) all time favorites.
<p>BTW: The <a href="/years.html#1984_mullender">1984 winner</a> remains one of my (Landon
Curt Noll) all time favorites.</p>
</BLOCKQUOTE>
<p>The name used in the posting of the <a href="http://groups.google.com/groups?q=Obfuscated&amp;hl=en&amp;lr=&amp;ie=UTF-8&amp;as_drrb=b&amp;as_mind=1&amp;as_minm=1&amp;as_miny=1983&amp;as_maxd=18&amp;as_maxm=4&amp;as_maxy=1984&amp;selm=837%40nsc.UUCP&amp;rnum=2&amp;filter=0">1st IOCCC
winner</a>
posting was <strong>I</strong>nternational <strong>O</strong>bfuscated <strong>C</strong> <strong>C</strong>ode <B>C</B>ontest or
<strong>IOCCC</strong> for short.</p>
The name used in the posting of the
<A HREF="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=837%40nsc.UUCP&rnum=2&filter=0">1st
IOCCC winner</A>
posting was <B>I</B>nternational <B>O</B>bfuscated <B>C</B> <B>C</B>ode
<B>C</B>ontest or <B>IOCCC</B> for short.
<p>The posting said '<em>1st annual</em>', so in 1985 we held the <a href="/years.html#1985">2nd IOCCC contest</a>
and the tradition continues as the longest running contest on the Internet.</p>
<P>
The posting said ''<I>1st annual</I>'',
so in 1985 we held the
<A HREF="/years.html#1985">2nd IOCCC contest</A>
and the tradition continues as the longest running contest
on the Internet.
<p>P.S. Part of the inspiration for making the IOCCC a contest goes to the
<a href="http://www.bulwer-lytton.com/">Bulwer-Lytton fiction contest</a>.</p>
<P>
<p><P></p>
P.S. Part of the inspiration for making the IOCCC a contest goes to the
<A HREF="http://www.bulwer-lytton.com/">Bulwer-Lytton fiction contest</A>.
<p>P<sup>2</sup>.S. See the
<a href="/all/README">overall README</a>
for more details.</p>
<P>
P^2.S. See the
<A HREF="/all/README">overall README</A>
for more details.
</BLOCKQUOTE>
<HR>
<!-- Authored by: <A HREF="http://www.sfik.com">sc</A> -->
<TABLE><TR>
<p><TABLE><TR>
<TD><a rel="license" href="https://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="/png/by-sa-3.0-88x31.png" /></a></TD>
<TD><P>&copy; Copyright 1984-2020,
<A HREF="/judges.html">Leo Broukhis, Landon Curt Noll</A>
- All rights reserved<BR>
<a href="/judges.html">Leo Broukhis, Landon Curt Noll</a>
- All rights reserved<br>
This work is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</P></TD>
<TD>&nbsp;<!--<a href="https://validator.w3.org/check?uri=referer"><img src="https://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional" height="31" width="88"></a>--></TD>
</TR></TABLE>
</BODY>
</HTML>
</TR></TABLE></p>
+433
View File
@@ -0,0 +1,433 @@
<HTML>
<BODY TEXT="#000000">
<center><img alt="IOCCC" SRC="png/ioccc.png"></center><br>
<center><font size="6"><I>The International Obfuscated C Code Contest </I></font></center><br>
<center><P>[ <A HREF="judges.html">The judges</A> |
<A HREF="main.html">IOCCC home page</A> |
<A HREF="main.html#enter">How to enter</A> |
<B>FAQ</B> |
<A HREF="contact.html">Contacting the IOCCC</A>
<br>
<A HREF="main.html#new">IOCCC news</A> |
<A HREF="winners.html">People who have won</A> |
<A HREF="years.html">Winning entries</A> ]</P></center>
<br>
<HR>
# The IOCCC FAQ
## Q:</font> How many entries do you receive each year?
By tradition, we do not say.
## Q: How many judging rounds do you have?
Are you trying to trick us? We will not say that either.
## Q: I cannot get entry XYZZY from year 19xx to compile!
Some winners, particularly winners from long ago, no longer compile on more
modern systems because the C language has evolved (i.e. the modern C compilers
are much more strict in what they accept as a valid program), or the entry
depended on operation system and library features that where common back then
but are different/missing today.
E.g. it is highly unlikely that you'll be able to execute
[1984/mullender](years.html#1984/mullender) on a computer you're using to read
this FAQ.
## Q: I found a bug in a previous winner, what should I do?
We do not 'maintain' the contest winners. The code is made available on an 'AS
IS' basis. If you have a FIX for
a entry, we suggest that you try and email it to the authors and to CC:
us using the instructions on the
[contacting the IOCCC Judges](contact.hml) page.
IF you have a FIX, and IF the author does not object, and IF your fix
looks reasonable, we will add a web link to a copy of your email
for others to see.
## Q: Are there types of entries that are submitted so frequently that the judges get tired of them?
Yes, there are types of entries that show up over and over again.
The [guidelines](guidelines.html) say:
> _We tend to dislike programs that: are similar to previous winners_
We like variety. However too often we see (please look at the winning examples
given to be aware of the level of the competition):
### maze generator
- [1985/shapiro](years.html#1985_shapiro)
- [1991/buzzard](years.html#1991_buzzard)
- [1995/cdua](years.html#1995_cdua)
- [1995/dodsond2](years.html#1995_dodsond2)
- [1998/bas1](years.html#1998_bas1)
### tic-tac-toe game
- [1991/westley](years.html#1991_westley)
- [1996/jonth](years.html#1996_jonth)
- [2020/carlini](years.html#2020_carlini)
### solitaire/Othello game
- [1987/lievaart](years.html#1987_lievaart)
- [1994/dodsond1](years.html#1994_dodsond1)
### generating small primes (below is the list of all prime related winners)
- [1985/august](years.html#1985_august)
- [1988/applin](years.html#1988_applin)
- [1994/weisberg](years.html#1994_weisberg)
- [1995/makarios](years.html#1995_makarios)
- [1996/dalbec](years.html#1996_dalbec)
- [2000/bellard](years.html#2000_bellard)
_As you can see, just a list of primes (let alone small primes) does not cut it
anymore._
### self reproducing program
- [1990/scjones](years.html#1990_scjones)
- [1994/smr](years.html#1994_smr) - _do not claim your program is the smallest one without seeing it!
- [2000/dhyang](years.html#2000_dhyang) - _unless you beat this one, your chances are slim_
### entries that just print "Hello, world!"
- [1984/anonymous](years.html#1984_anonymous)
- [1985/applin](years.html#1985_applin)
- [1986/applin](years.html#1986_applin)
- [1986/holloway](years.html#1986_holloway)
- [1989/jar.1](years.html#1989_jar.1)
- [1992/lush](years.html#1992_lush)
- [2000/tomx](years.html#2000_tomx)
_**it's so 20th century...**_
### entries that use some complex state machine/table to print something
- [1988/isaak](years.html#1988_isaak)
- [1988/phillipps](years.html#1988_phillipps)
### rot13
- [1985/sicherman](years.html#1985_sicherman)
- [1989/westley](years.html#1989_westley)
- [1990/dg](years.html#1990_dg)
- [1991/fine](years.html#1991_fine)
### **pi** or **e** computation</font>
- [1986/august](years.html#1986_august)
- [1988/robison](years.html#1988_robison)
- [1988/westley](years.html#1988_westley)
- [1989/roemer](years.html#1989_roemer)
HINT: It is not fatal to send in those types of entries, it is just MUCH
HARDER to win. Such an entry would have to do something really unique and
interesting to even make it into the final judging rounds. Entries that
re-use these 'worn out' themes frequently lose to other entries that do
something different.
HINT: If you really MUST send in an entry based on an 'over-used theme',
be sure that it is obfuscated in several new and novel ways. Be sure to clearly
explain near the beginning of your remarks why you are submitting a entry
based on an 'over-used theme' and why the judges should not simply toss
it out as being boring.
## Q: What should I write in the 'remarks' (remarks.md) section of my entry, if anything at all?
As much or as little as you wish.
### What helps:
- explaining what your entry does
- how to entice it to do what it is supposed to do
- what obfuscations are used
- what are the limitations of your entry in respect of portability and/or input data
- how it works (if you are really condescending)
### What does not help:
- admitting that your entry is not very obfuscated (you see, the contest is
called <B>IOCCC</B>, not <B>INVOCCC</B>); but even if you do not admit it, not
very obfuscated entries have a minuscule chance to win (although
[2000/tomx](years.html#2000_tomx) is a notable counterexample)
- mentioning your name or any identifying information in the remark section (or
in the C code for that matter) - we like to be unbiased during the judging
rounds; we look at the author name only if an entry wins
- leaving the remark section empty
## Q: I am confused: what should I put to the 'build' section?
The 'build' section must contain UNIX shell-style commands to compile your C
language entry **in a file named prog.c** and produce an executable file. More than one command is allowed,
as far as the size rule is followed.
Usually one (or more) of these commands will be an invocation of
a C compiler (use **cc** or <B>gcc</B>), but there may be exceptions
(or not anymore, see [2000/tomx](years.html#2000_tomx)).
If your entry depends on a particular source file name during compilation or execution, you will have to put a line
cp prog.c desired_name.c
before the compiler invocation line.
If in doubt, put
cc -o prog prog.c
in the 'build' section.
Note however that with the [mkiocccentry
tool](https://github.com/ioccc-src/mkiocccentry) we have an example Makefile
which you should update, using the instructions above if necessary.
## Q: What happened to the winners for 1997, 1999 2002, 2003, 2007 - 2010, 2016, 2017, 2021 and 2022 ?
There are none. There was no IOCCC in those years.
## Q: Why don't you publish non-winners?
Because the publication on the IOCCC site **_IS_**
the award! Anyone is free to put their IOCCC hopefuls, lookalikes and/or
non-winners on their web page for everyone to see.
## Q: How much time does it take to judge the contest?
It takes a fair amount of time to setup, run, answer email, process entries,
review entries, trim down the set entries to a set of winners, doing the
write-up of the winners, announcing the winners, reviewing final edits of the
winning entry set, posting the winners, being flamed :-), tell folks who send in
late entries to wait until the next contest, etc... It takes a few weekends and
a number nights of study and work ... which is hard given that we are busy with
many other activities as well.
Note that we do not contact the author if an entry does not compile or does not
work as advertised, we might attempt to fix obvious compilation problems or
incompatibilities, but no more than that - so be sure that your entry does work
on at least a couple different platforms, at least one of them being UNIX or
POSIX-conforming.
## Q: What platform should I assume for my entry?
Your entry must compile with GCC and run under at least one flavor of UNIX (e.g.
Linux or Solaris). To improve chances to win, it should work under both BSD and
SysV style UNIX (think <B>stty cbreak</B>), and should not depend on endianness.
If it can compile and run on Windows and/or Mac (see
[2000/thadgavin](/years.html#2000_thadgavin) for one example, amongst others), even better.
## Q: I would like to mirror the IOCCC web site. May I do so?
We are not accepting mirror requests at this time, sorry.
## Q: I want to publish some parts of the IOCCC in an article, or book, or newsletter, or use then in class/instructional notes, or quote from the IOCCC. May I do so?
Please ask the IOCCC judges first. Please send your request using the
instructions on the [contacting the IOCCC Judges](/contact.html) page.
## Q: What are the grand prize / Best of Show winners?
In 1984-1987, the grand prize winners are:
- [1984/mullender](years.html#1984_mullender)
- [1985/shapiro](years.html#1985_shapiro)
- [1986/wall](years.html#1986_wall)
- [1987/lievaart](years.html#1987_lievaart)
Starting from 1988, the entry we liked the most in that year is called
"Best of Show". Here are the "Best of Show" entries:
- [1988/applin](years.html#1988_applin)
- [1989/jar.2](years.html#1989_jar.2)
- [1990/theorem](years.html#1990_theorem)
- [1991/brnstnd](years.html#1991_brnstnd)
- [1992/vern](years.html#1992_vern)
- [1996/august](years.html#1996_august)
- [1998/banks](years.html#1998_banks)
- [2000/jarijyrki](years.html#2000_jarijyrki)
- [2020/carlini](years.html#2020_carlini)
In 1993, 1994 and 1995 the judges were unable to select a clear overall
winner. So to give a nod to the entry that had the highest approval ranking
from the judges, they used the following awards:
- [1993/rince](years.html#1993_rince) - Most Well Rounded
- [1994/shapiro](years.html#1994_shapiro) - Most Well Rounded
- [1995/leo](years.html#1995_leo) - Best Use of Obfuscation
These could be considered the 'best entry' for those years with 1 or
more other entries that came in close behind.
## Q: I managed to get entry XYZZY from year 19xx to compile; now it fails to run!
switch(19xx/XYZZY) {
- case [1984/mullender](years.html#1984_mullender): try
main(){int i=512;do write(1," :-)\b\b\b\b",9),usleep(i);while(--i);}
instead. Enable reverse wraparound in your xterm window for best results.
break;
- case [1991/davidguy](years.html#1991_davidguy): disable access
control of your X server (**xhost +**). If it does not help (or if you
see black screen), restart the X server without access control and with visual
depth of 8 bits or less.
break;
- default: Try enabling <TT>-fwritable-strings</TT> for GCC
or its equivalent for other compilers.
}
## Q: How did the IOCCC get started?
One day (23 March 1984 to be exact), Larry Bassel and I (Landon Curt
Noll) were working for National Semiconductor's Genix porting group, we
were both in our offices trying to fix some very broken code.
Larry had been trying to fix a bug in the classic Bourne shell (C code #defined
to death to sort of look like Algol) and I had been working on the finger
program from early BSD (a bug ridden finger implementation to be sure).
We happened to both wander (at the same time) out to the hallway
in Building 7C to clear our heads.
We began to compare notes: '_You won't believe the code I am trying to fix_'.
And: '_Well you cannot imagine the brain damage level of the code I'm trying to
fix'_.
As well as: '_It's more than bad code, the author really had to try to make it
this bad!_
After a few minutes we wandered back into my office where I posted a
[flame to to
net.lang.c](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=789%40nsc.UUCP&rnum=3&filter=0")
inviting people to try and out obfuscate the UN\*X source code we had just been working on.
BTW: I (Landon Curt Noll) had to post this [typo
correction](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=795%40nsc.UUCP&rnum=10&filter=0).
Thus began the tradition of putting typos in the contest rules and guidelines
... to make them more obfuscated of course! :-)
BTW: This posting was made back in the days when AT&amp;T was the evil giant.
Now, Microsoft makes AT&amp;T look mild and kind in comparison. :-( (IMHO) ).
BTW: See the story about the '[Bill Gates](/1993/mills/mills.hint)' award. :-)
OK, back to the story.
We (Larry and I) received a number of entries by email.
When we began to receive messages from outside of the US, Larry and I
decided to include International in the name.
The
[1st IOCCC winners](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=837%40nsc.UUCP&rnum=2&filter=0)
were posted on 17 April 1984.
There were 4 winners in 1984:
1. [(dis)honorable mention](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=842%40nsc.UUCP&rnum=8&filter=0)
2. [3rd place](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=843%40nsc.UUCP&rnum=7&filter=0)
3. [2nd place](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=844%40nsc.UUCP&rnum=6&filter=0)
4. [1st place](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=845%40nsc.UUCP&rnum=5&filter=0)
BTW: The (dis)honorable mention wished to remain anonymous.
While many have asked who it was, we have continued to follow the
author's wish to remain anonymous.
A few years ago, we asked the author if they still wanted to remain anonymous.
They said: '_Yes, I want to keep my anonymity. But you can tell them that I am a well known for my connection to the
C language"_'. It was not until 2001 that another [anonymous
entry](/years.html#2001_anonymous) received an award.
BTW: The [1984 winner](/years.html#1984_mullender) remains one of my (Landon
Curt Noll) all time favorites.
The name used in the posting of the [1st IOCCC
winner](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=837%40nsc.UUCP&rnum=2&filter=0)
posting was **I**nternational **O**bfuscated **C** **C**ode <B>C</B>ontest or
**IOCCC** for short.
The posting said '_1st annual_', so in 1985 we held the [2nd IOCCC contest](/years.html#1985)
and the tradition continues as the longest running contest on the Internet.
P.S. Part of the inspiration for making the IOCCC a contest goes to the
[Bulwer-Lytton fiction contest](http://www.bulwer-lytton.com/).
<P>
P^2.S. See the
[overall README](/all/README)
for more details.
<TABLE><TR>
<TD><a rel="license" href="https://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="/png/by-sa-3.0-88x31.png" /></a></TD>
<TD><P>&copy; Copyright 1984-2020,
[Leo Broukhis, Landon Curt Noll](/judges.html)
- All rights reserved<br>
This work is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</P></TD>
<TD>&nbsp;<!--<a href="https://validator.w3.org/check?uri=referer"><img src="https://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional" height="31" width="88"></a>--></TD>
</TR></TABLE>