diff --git a/1984/index.html b/1984/index.html new file mode 100644 index 000000000..3d51729f7 --- /dev/null +++ b/1984/index.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + +
+ + + +
+ In 1984, the first contest was held.
+The name of the contest was simply
+“First annual Obfuscated C Code Contest”.
Look at the README.mdfile for the given winning entry
+for information on how to compile it and how to run the winning program.
+Look at the winning source and try to figure how it does what it does!
+This year we only had remarks from two authors but which came years
+later.
Restrictions against machine dependent code were not in the rules in 1984. The source file size restriction was +only 512 bytes. Rules and results were posted to net.lang.c and net.unix-wizards. +The contest was announced in a net.lang.c +post.
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 1984,2023, Landon Curt Noll. All Rights Reserved. This +work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 1984 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry
+for information on how to compile it and how to run the winning program.
+Look at the winning source and try to figure how it does what it does!
+You may then wish to look at the Author’s remarks for even more
+details.
Hints against machine dependent code were added to the rules to avoid another 1984 style winner (1984/mullender). Rules and results +were posted to net.lang.c and net.unix-wizards. +Larry Bassel was invited to help in the judging. Awards were given to 5 +classes of programs since we were unable to select only the best 4.
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 1985,2023, Landon Curt Noll and Larry Bassel. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) that you send us a note about your use.
+ + + + + + +Download IOCCC 1985 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry
+for information on how to compile it and how to run the winning program.
+Look at the winning source and try to figure how it does what it does!
+You may then wish to look at the Author’s remarks for even more
+details.
The rules for 1986 suggested categories due +to the success of the 1985 judging +method. The maximum size was increased from 512 to 1024 bytes. Larry +Bassel joined as the second official judge.
+A poll was taken for the worst code for BSD
+and System V
+program. The Bourne
+Shell (/bin/sh) won for both systems. The BSD finger
+program took third place.
Rules and results were posted to net.lang.c and net.unix-wizards. +Micro/Systems +Journal started regular publishing of the winners. The practice of +making first announcement of the winners at the Summer USENIX BOF (Birds +of a Feather) started this year. A notice was posted to +net.announce.
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 1986,2023, Landon Curt Noll and Larry Bassel. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 1986 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+The rules for 1997 suggested even more
+categories than in 1986. Hints for what to do and not to do were also
+given in the rules. For example, a simple
+excessive abuse of /lib/cpp was discouraged unless the
+abuse was unusual. The mailboxes for the contest were moved from nsc to
+amdahl. The practice of posting a preliminary set of rules for the next
+year was started this year.
Rules and results were posted to comp.lang.c +and comp.unix.wizards with an announcement in news.announce.important. +Micro/Systems Journal published the 1987 winners. Mark +R. Horton included a version of the 1987 winners in an appendix of his C book +Portable +C Software International Edition. The first announcement of winners +at the Summer 87 USENIX was helped by a small fly that danced all over +the foils.
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 1987,2023, Landon Curt Noll and Larry Bassel. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 1987 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+The maximum size of entries was raised from 1024 to 1536 bytes, +however smaller entries were encouraged. Due to the “Best Abuse of the Rules” winner of 1987, a +limit of 160 chars in the compile line was introduced.
+This year, the Grand Prize was given to the most unusual entry and +best abuse of the C Preprocessor rather than the most well rounded +entry.
+Rules and results were posted to comp.lang.c, +comp.sources.unix and alt.sources. The 1988 winners will be published in +the Micro/Systems +Journal.
+Winning entries for previous years were repackaged with each year +being in its own directory. Makefiles and hints were also provided. The +package was posted to the comp.sources.unix newsgroup. They are also +available on a wide number of USENET archive sites.
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 1988,2023, Landon Curt Noll and Larry Bassel. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 1988 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+Instructions for use: Run make to compile entries (it is
+possible that on System V or non-Unix systems the Makefile needs to be
+changed).
This year, the Grand Prize was given to the most useful program.
+The “Strangest abuse of the rules” +award was given this year to stress the fact that starting in 1990, +compiling entries must result an executable regular file.
+The Makefile always uses the portable version of the “Best self modifying program” because there +is no loss of functionality in using it. In the case of the “Best game” winner, however, some functionality +is lost in the portable version and so the Makefile uses the original +program. System V users may need to change the Makefile to use the s5 +version. See the hint files or the Makefile for details.
+Rules and results were posted to comp.lang.c, +comp.sources.unix, and alt.sources. They have been made available on a +wide number of USENET archive sites such as uunet. The 1989 winners will +be published in the Micro/Systems +Journal.
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 1989,2023, Landon Curt Noll and Larry Bassel. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 1989 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+This year, the Grand Prize won a standing ovation at USENIX.
+The “Strangest abuse of the rules” +award was given this year to stress the fact that starting in 1991, +entries should be shell-specific.
+This year was the first year that we accepted ANSI C entries. It was +interesting to note that the ANSI C entries were as a whole less +portable than the K&R C entries. We hope that in future contests +people will enter more obfuscated and challenging ANSI C programs.
+We would like to thank Barbara Frezza (loving wife of Larry Bassel) +for her role as official chef of the contest. Her opinions regarding +some of the contest entries were appreciated.
+Rules and results were posted to +comp.lang.c, comp.sources.unix, and alt.sources. They have been made +available on a wide number of USENET archive sites such as uunet.
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 1990,2023, Landon Curt Noll and Larry Bassel. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 1990 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+Instructions for use: Run make to compile entries. It is
+possible that on BSD or non-Unix systems the Makefile needs to be
+changed.
This year, we did not single out an entry that was better than all of +the rest. We selected 3 entries that were, in our opinion, went beyond +all of the other entries this year:
+Name and address information are separated from the actual program +prior to judging. This eliminates any chance that we would bias our +judging for/against any person or group. In the end, we are surprised as +you are to see who has won. Even so, it is worth noting that Brian +Westley has submitted a winning entry for the past 5 years!
+We did not give awards to some traditional contest categories such as +“Best Layout” or “Worst Abuse of the Rules”. We felt that to do so would +deny awards to more deserving entries. These categories have not been +eliminated, and will likely be considered in future years.
+A number of entries made use of the following C pre-processor +feature:
+#define X define
+#X foo barThis is not permitted under ANSI C. Some ANSI C compilers do allow +this. In the future, we do not want programs to use this feature. +Because this request was not stated in the 1991 +rules, we did not reject entries of this type. However we provided +more portable versions so that more people could compile these +programs.
+This year we received entries that made use of the X Window System. +Since this functionality is now available on many systems, we feel that +programs that use these are now portable enough to be valid entries.
+We may allow programs to make use of the X Window System libs and
+include files, provided that they can operate with a system running at
+the level of at least X11r4. Requiring the use of imake, a specific
+window manager, specific display hardware, or a specific user interface
+(Openl**k, M*tif, …) is likely not to be
+allowed. We will provide a more detailed explanation of our viewpoint in
+next year’s rules.
In order to encourage more ‘normal’ looking C programs, we are +considering the following change to the maximum size rule:
+Your source, not counting any <space>, <tab>, and a <newline> character,
+and not counting any ';', '{' and '}' character followed by a <newline>
+character, must be 1536 bytes or less. The entire source, counting all
+characters, be 4096 bytes or less.
+Some thought has been given to adding some C++ categories, however +this is not likely to happen soon. We are waiting until C++ compilers +become common place on a wide number of systems. We also need time to +brace ourselves for what obfuscation C++ could wield!
+Be sure to wait until the 1992 rules are posted before submitting +entries. We may fine tune the rules to reflect the some ideas above.
+Please send us comments and suggestions what we have expressed above. +Also include anything else that you would like to see in future +contests. Send such email to:
+...!{sun,pacbell,uunet,pyramid}!hoptoad!judges
+judges@toad.com
+IMPORTANT NOTE: The email addresses found above are +for historical purposes only, and should not be used today. See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+We would like to thank Barbara Frezza for her role as official chef +of the contest. Landon Noll appreciated the opportunity to serve as +assistant pizza chef. Larry Bassel was official taste tester. Yummo!
+Copyright (c) 1991,2023 Landon Curt Noll and Larry Bassel. All Rights +Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 1991 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+Use make to compile entries. It is possible that on BSD
+or non-Unix systems the Makefile needs to be changed. See the Makefile
+for details.
Read over the Makefile for compile/build issues. Your system may
+require certain changes (add or remove a library, add or remove a
+#define i.e. the -D flag). A number of
+compilers had problems optimizing certain entries. Some compilers do
+optimize, but the resulting program does not work. By default we have
+left off -O from compile lines. You might want to add
+-O back, or add it back for certain entries where
+performance is important.
This year marked an all time high for number of entries as well as +the quality of entries. Nearly twice the usual number of entries made it +to the final judging rounds. Even when we raised the standards for +winning, we still wound up giving out a few more awards than in other +years. The new size rules size probably contributed to the overall high +quality.
+FYI: By tradition, we do not record the count of the number entries, +nor do we give our our guess as to the number of entries received. For +folks who wonder, we can say that we consumed about 2000 pages of output +(printing between 2 and 4 normal pages per side) during the judging +process this year.
+The new instructions for submitting entries worked well - we were +able to write scripts to unpack them and eliminate duplicates.
+As promised last year, we accepted programs that made use of the X +libraries for the first time. We now consider ANSI C compilers to be the +“standard” version that the entries were compiled with.
+Name and address information are separated from the actual program +prior to judging. This eliminates any chance that we would bias our +judging for/against any person or group. In the end, we are surprised as +you are to see who has won. Even so, it is worth noting that Brian +Westley has submitted a winning entry for the past 6 years!
+We did not give awards to some traditional contest categories such as +“Best Layout”. We felt that to do so would deny awards to more deserving +entries. These categories have not been eliminated. We will likely be +awarding them in future years.
+We received a few entries whose instructions were rot13’d. While +nothing was said about this in the rules, we found that it made the +judging process a little harder, so we may request that this not be done +this in the future.
+Some thought has been given to a separate obfuscated perl contest. +Watch comp.lang.perl for details!
+Be sure to wait until the 1993 rules are posted before submitting +entries. We may fine tune the rules to reflect the some ideas above.
+Please send us comments and suggestions what we have expressed above. +Also include anything else that you would like to see in future +contests. Send such email to:
+...!{sun,pacbell,uunet,pyramid}!hoptoad!judges
+judges@toad.com
+If you use, distribute or publish these entries in some way, please +drop us a line. We enjoy seeing who, where and how the contest is +used.
+IMPORTANT NOTE: The email addresses found above are +for historical purposes only, and should not be used today. See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+We would like to thank Barbara Frezza for her role as official chef +of the contest. Landon Noll and Larry Bassel appreciated the opportunity +to serve as official taste testers. Yummo!
+Copyright (c) 1992,2023, Landon Curt Noll and Larry Bassel. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 1992 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+Use make to compile entries. It is possible that on BSD
+or non-Unix systems the Makefile needs to be changed. See the Makefiles
+and/or README.md files for details.
Read over the Makefile and/or README.md files for compile/build
+issues. Your system may require certain changes (add or remove a
+library, add or remove a #define i.e. the -D
+flag).
Name and address information are separated from the actual program +prior to judging. This eliminates any chance that we would bias our +judging for/against any person or group.
+This year was the first year that ANSI C was the default. Use of +classic K&R C was allowed so long as ANSI C compilers could still +compile the entry. If you do not have an ANSI C compiler, you may not be +able to compile the winners, sorry!
+Be sure to wait until the 1994 rules are posted before submitting +entries. Rules differ from year to year, sometimes in significant +ways.
+In 1994, we will retract the guideline that discouraged the use of C
+constructs such as 3["curds"]. At one time, certain ANSI
+compilers did not consider such expressions to be valid ANSI C. Alert
+readers noted that the current ANSI standard considered them to be
+valid. We were unable to find an ANSI C compiler that flagged such
+expressions as errors.
Please send us comments and suggestions what we have expressed above. +Also include anything else that you would like to see in future +contests. Send such email to:
+...!{sun,pacbell,uunet,pyramid}!hoptoad!judges
+judges@toad.com
+If you use, distribute or publish these entries in some way, please +drop us a line. We enjoy seeing who, where and how the contest is +used.
+IMPORTANT NOTE: The email addresses found above are +for historical purposes only, and should not be used today. See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+We would like to thank Barbara Frezza for her role as official chef +of the contest. Landon Noll and Larry Bassel appreciated the opportunity +to serve as official taste testers. And as usual, the food was +excellent.
+Copyright (c) 1993,2023, Landon Curt Noll and Larry Bassel. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 1993 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+Use make to compile entries. It is possible that on BSD
+or non-Unix systems the Makefile needs to be changed. See the Makefile
+for details.
Read over the Makefile for compile/build issues. Your system may
+require certain changes (add or remove a library, add or remove a
+#define i.e. the -D flag).
Name and address information are separated from the actual program +prior to judging. This eliminates any chance that we would bias our +judging for/against any person or group.
+This year we retracted the guideline that discouraged the use of C
+constructs such as 3["curds"]. At one time, certain ANSI
+compilers did not consider such expressions to be valid ANSI C. Alert
+readers noted that the current ANSI standard considered them to be
+valid. We were unable to find an ANSI C compiler that flagged such
+expressions as errors.
Rule abuse was encouraged this year - two of this year’s winners +found new and interesting abuses of the rules. Next year’s rules will +change due to these (smr and dodsond2) entries’ forms of abuse.
+We are thinking about adding a 3rd judge to our team. A 3rd judge +would help distribute the work load as well as to allowing us to +possibly expand or reshape the contest.
+The ideal 3rd judge would have all of the following:
+Any of the following, though not required, would be a plus:
+/bin/sh experienceIf you think this may be you, send an email before 31 Dec 1995, +to:
+judges@toad.com (use the Subject: 3rd judge)
+Include in your message:
+If you have any questions about the above, feel free to ask us via +email at the above address.
+We would like to setup an IOCCC home page somewhere out in WWW land. +If you have a well known stable site that would be willing to give us +access to put up some IOCCC html pages, please send an email (say prior +to 31 Dec 1995) to:
+judges@toad.com (use the Subject: www site)
+describing your site and any other appropriate comments. Thanks!
+Due to changes in the USENIX conference calendar, the 1995 contest +will be delayed. Because there will be no Summer 1995 USENIX conference, +the 1995 IOCCC winners will be announced at the Jan 1996 USENIX +conference.
+The 1995 contest will not open until late October 1995, and will +close sometime around the end of December 1995. The rules for the 1995 +contest have not been formed at this time and are not expected to be +ready for distribution until late October 1995.
+Be sure to wait until the 1995 rules are posted before submitting +entries. Rules differ from year to year, sometimes in significant +ways.
+Please send us comments and suggestions what we have expressed above. +Also include anything else that you would like to see in future +contests. Send such email to:
+...!{sun,pacbell,uunet,pyramid}!hoptoad!judges
+judges@toad.com
+If you use, distribute or publish these entries in some way, please +drop us a line. We enjoy seeing who, where and how the contest is used. +as well as details on how to provide fixes to any of the entries.
+IMPORTANT NOTE: The email addresses found above are +for historical purposes only, and should not be used today. See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+We would like to thank Barbara Frezza for her role as official chef +of the contest. Landon Noll and Larry Bassel appreciated the opportunity +to serve as official taste testers. And as usual, the food was +excellent. The official menu of the 1994 Obfuscated C Contest +dinner:
+Antipasto: meats, cheeses, olives, peppers, pickles, artichokes Soup: +Cream of tomato Salad: spring mix Pasta: Linguine with wild mushrooms +and Reggiano Parmesan Seafood: Salmon in cream sauce or lobster claws +Vegetable: Zucchini Dessert: Homemade chocolate/pecan brownies, +fruit
+Copyright (c) 1994,2023, Landon Curt Noll and Larry Bassel. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 1994 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for
+information on how to compile and run the winning program. Look at the
+winning source and try to figure how it does what it does! You may then
+wish to look at the Author's remarks section for even more
+details.
The IOCCC has an official home page, https://www.ioccc.org, which contains previous winning +entries, information about the judges, announcements and much more.
+Use make to compile entries. It is possible that on BSD
+or non-Unix systems the Makefile needs to be changed. See
+the Makefile for details.
Read over the Makefile for compile/build issues. Your
+system may require certain changes (add or remove a library, add or
+remove a #define i.e. the -D flag).
This year Sriram +Srinivasan joined the judging.
+The moderator of comp.unix.wizards +did not feel that the IOCCC was “wizardly” enough to be posted to +comp.unix.wizards so we will no longer post the winners to this +newsgroup - we’ll let you the reader decide for yourself the wizardry of +these entries.
+This year there were several people who won more than once and +several previous winners as well. The +judging was done without knowledge of the names of the submitters - +multiple winners were a coincidence. Since we tend to discount entries +that are similar to previous winners, these people had to come with +original ideas to stay in the winners circle.
+We wish to thank CAIP +at Rutgers University for the use of their machines.
+Due to changes in the USENIX conference +calendar, the 1996 contest will be +delayed. Because there will be no Summer 1996 USENIX conference, the +1996 IOCCC winners will be announced at the Jan 1997 USENIX +conference.
+The 1996 contest will not open until sometime in October 1996, and +will close sometime around the end of December 1996. The rules for the 1996 contest have not been +formed at this time and are not expected to be ready for distribution +until late September 1996.
+Be sure to wait until the 1996 rules +are posted before submitting entries. Rules differ from year to year, +sometimes in significant ways.
+Please send us comments and suggestions what we have expressed above. +Also include anything else that you would like to see in future +contests. Send such email to:
+...!{sun,pacbell,uunet,pyramid}!hoptoad!judges
+judges@toad.com
+If you use, distribute or publish these entries in some way, please +drop us a line. We enjoy seeing who, where and how the contest is +used.
+IMPORTANT NOTE: The email addresses found above are +for historical purposes only, and should not be used today. See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+We would like to thank Barbara Frezza for her role as official chef +of the contest. Landon Noll, Larry Bassel and Sriram Srinivasan +appreciated the opportunity to serve as official taste testers. And as +usual, the food was excellent. The official menus of the 1995 Obfuscated +C Contest dinners were:
+Antipasti: Crudites, olive selection, pickles, cheese selection Soup: +Homemade mushroom and green onion soup Salad: artichoke, red bell +peppers, Italian onions, cucumbers and Greek olives with mustard +vinaigrette Main Course: Pizzas, with a variety of toppings Dessert: +Chocolate torte
+Antipasti: crudites, olives, roasted red peppers, cheese selection +Salad: Mixed greens with vinaigrette Main Course: Spaghetti with tomato +sauce containing mushrooms and black olives selection of hot and mild +Italian sausages Bread: Fresh French bread Dessert: Cookie selection, +featuring chocolate chocolate chip cookies and chocolate butter +cookies
+Antipasti: Crudites, olive selection Salad: Mixed greens with mustard +vinaigrette Main Course: Broiled salmon with lemon pepper mayonnaise, +chard, mixture of white and wild rices Bread: Cheese bread with herbs +Dessert: Chocolate cheesecake (Courtesy of Elizabeth Watson)
+Antipasti: Crudites, olive selection, roasted red peppers, cheese +selection Bread: Sourdough Salad: Mixed spring greens with flowers, and +mustard vinaigrette Main Course: Surf and Turf–Grilled steaks of salmon +and New York steak grilled vegetables–onions, peppers, portobello +mushrooms wild rice Dessert: Chocolate mousse
+Antipasti: Crudites, olive selection, pickles Salad: Mixed spring +greens with mustard vinaigrette Main Course: Linguini with a cream sauce +of shiitake mushrooms and smoked salmon Bread: Garlic bread Dessert: +Flour-less chocolate torte
+Antipasti: Carrot and celery sticks with cheese spread, olive +selection, pickles Bread: Focaccia with black olives and mozzarella +cheeses Salad: Mixed spring greens with flowers and mustard vinaigrette +Soup: Homemade butternut squash soup with mushrooms Main Course: Cracked +Dungeness crab with lemon mayonnaise, broccoli, mixture of white and +brown rice Dessert: Key lime pie
+Copyright (c) 1995,2023, Landon Curt Noll, Larry Bassel, Sriram +Srinivasan. All Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 1995 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+The IOCCC has an official home page: https://www.ioccc.org
+containing previous winning entries, information about the judges, +announcements and much more.
+Use make to compile entries. It is possible that on BSD
+or non-Unix systems the Makefile needs to be changed. See the Makefile
+for details.
Read over the Makefile for compile/build issues. Your system may
+require certain changes (add or remove a library, add or remove a
+#define i.e. the -D flag).
It is not true that Larry Bassel avoided the 13th IOCCC on grounds of +superstition! Larry (as well as Landon) is fond of prime numbers. Larry +is so fond of prime numbers that he decided to become a graduate student +in number theory at UC San Diego. For this reason Larry decided to sit +out this year and plans to be back next year.
+Barbara Frezza also went to San Diego to enter into law school at the +same time. Her cooking in the role of official chef was sorely missed. +We look forward to her return to the contest next year as well.
+Both Larry and Barbara have taken important new steps in their lives +and we wish them the best. When it is all over, Larry will be able to +produce obfuscated mathematical proofs, and Barbara will be able +deobfuscate the many legal obfuscations. :-)
+This year, Jens +Schweikhardt won 3 times … a new IOCCC record. Meanwhile, Brian +Westley came up with his 8th winning entry, twice the number of the +next highest count. But with people like Schweikhardt around, this lead +could fall fast.
+As we stated in the guidelines, the +names of the winners are as much news to us as they are to you because +we keep authorship separate from rest of the entry. Some people have it, +we guess!
+There were a few very good entries that might have won if it were not +for the fact that they didn’t work. If you didn’t win, but think you had +a chance: test your program, fix it and submit it next year!
+There will be no 1997 contest.
+The next contest will not open until sometime in March 1998, and will +close sometime around the end of May 1998. The rules for the 1998 +contest have not been formed at this time and are not expected to be +ready for distribution until late February 1998.
+So what happened to 1997? Well the next USENIX Technical Conference +will be held Jun 15-19, 1998 (in New Orleans, US). The 18 month span +between conferences will cause the IOCCC to skip over 1997.
+Be sure to wait until the 1998 rules are posted before submitting +entries. Rules differ from year to year, sometimes in significant +ways.
+Please send us comments and suggestions what we have expressed above. +Also include anything else that you would like to see in future +contests. Send such email to:
+judges@toad.com
+If you use, distribute or publish these entries in some way, please +drop us a line. We enjoy seeing who, where and how the contest is +used.
+IMPORTANT NOTE: The email addresses found above are +for historical purposes only, and should not be used today. See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 1997,2023, Landon Curt Noll and Sriram Srinivasan. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 1996 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+The IOCCC has its own domain. The IOCCC has an official home page is +now: https://www.ioccc.org.
+Use make to compile entries. It is possible that on BSD
+or non-Unix systems the Makefile needs to be changed. See the Makefile
+for details.
Read over the Makefile for compile/build issues. Your system may
+require certain changes (add or remove a library, add or remove a
+#define i.e. the -D flag).
Some ANSI C compilers are not quite as good as they should be. If +yours is lacking, you may need to compile using gcc instead of your +local compiler.
+Larry Bassel is now a graduate student in number theory at UC San +Diego. Barbara Frezza also went to San Diego to enter into law school at +the same time. Her cooking in the role of official chef was sorely +missed. Both Larry and Barbara have taken important new steps in their +lives. We wish them the best.
+Landon was unable to contact Sriram Srinivasan at the start of the +1998 IOCCC season. Having not heard from Sriram, Landon put out a call +for new IOCCC judges. A number of excellent people applied.
+Landon selected Leonid A. Broukhis, a two time IOCCC winner, as a +co-judge. Landon and Leo together selected Jeremy Horn and Peter +Seebach. The four judges (https://www.ioccc.org/judges.html) together worked +thru-out the 1998 IOCCC season.
+The number of judges now is only 2, Landon Curt Noll and Leonid A. +Broukhis.
+This year, Jens +Schweikhardt won 3 times … AGAIN! He is the only person who was able +to do this, let alone do it in two contests in a row. Bas de +Bakker and David Lowe +won twice this year as well.
+As we stated in the guidelines, the +names of the winners are as much news to us as they are to you because +we keep authorship separate from rest of the entry. Some people have it, +we guess!
+There were a few very good entries that might have won if it were not +for the fact that they didn’t work. If you didn’t win, but think you had +a chance: test your program, fix it and submit it next year!
+This year we awarded some outstanding entries. We recommend that you +look at all of the winners. The list of winners is a bit too long to say +something about every winner. On the other hand a partial mention of a +few is in order:
+There were some outstanding entries that did not win. Unfortunately +some very good entries lost because they:
+We hope the authors of some of those entries will fix and re-submit +them for the next IOCCC.
+So what happened to 1997? There was no summer USENIX Technical +Conference. The Technical Conference was held Jun 15-19, 1998 instead … +18 months later than the 1996 summer USENIX Technical Conference. In +addition we had to select some new IOCCC judges. As a result the IOCCC +skipped over 1997.
+Please send us comments and suggestions what we have expressed above. +Also include anything else that you would like to see in future +contests. Send such email to:
+questions@ioccc.org
+If you use, distribute or publish these entries in some way, please +drop us a line. We enjoy seeing who, where and how the contest is +used.
+You must include the words ‘ioccc question’ in the subject of your +email message when sending email to the judges.
+The next IOCCC is planned to start towards the end of 1999. Watch https://www.ioccc.org
+for news of the next contest.
+IMPORTANT NOTE: The email addresses found above are +for historical purposes only, and should not be used today. See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 1999,2023, Landon Curt Noll, Jeremy Horn, Peter Seebach +and Leonid A. Broukhis. All Rights Reserved. This work is licensed under +a Creative +Commons CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International +license. If you do use this work in some form, the IOCCC judges would appreciate (but does not +require) if you were to send us a note about +your use.
+ + + + + + +Download IOCCC 1998 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+Use make to compile entries. It is possible that on
+non-Unix / non-Linux systems the Makefile needs to be changed. See the
+Makefile for details.
Read over the Makefile for compile/build issues. Your system may +require certain changes (add or remove a library, add or remove a +#define).
+Some ANSI C compilers are not quite as good as they should be. If +yours is lacking, you may need to compile using gcc instead of your +local compiler.
+The judges were unable to contact Jeremy Horn for judging the 2000 +contest.
+As a result, Simon Cooper: http://www.sfik.com/
+joined our team. Simon is well known for being a co-author of the 2nd +edition of the Building Internet Firewalls book.
+There were some outstanding entries that did not win. Unfortunately +some very good entries lost because they:
+We hope the authors of some of those entries will fix and re-submit +them for the next IOCCC.
+We believe you will be impressed with this year’s winners. The Best of Show is a fine example of compact +obfuscation. But don’t ignore the shorter winners. The Best Small Program, Best Abuse of User and Most Complete Program are well worth studying +in detail.
+The Worst Abuse of the Rules is +technically allowed by the rules. We gave it an award this year, but +don’t assume you can get away with using it next time … :-)
+Speaking of time, be sure to check out the Astronomically Obfuscated and the Most Timely Output.
+So what happened to 1999? Landon Curt Noll was scheduled to take a +vacation from the IOCCC this year. The remaining judges were unable to +contact Jeremy Horn, so the IOCCC stalled.
+But thanks to Landon’s returning early from his IOCCC vacation +(Landon will take a full IOCCC vacation during some other year), Simon +Cooper joining the IOCCC judging team as well as the hard work of Peter +Seebach and Leonid A. Broukhis the judging was completed in Dec +2000.
+It was decided that the 15th contest would be the year 2000 contest +(the year the judging completed) rather than year 1999 (the initial +scheduled start of the contest). That is why there is no 1999 +contest.
+NOTE: The above has been mentioned in an Amici +Curiae for the DeCSS case. See BRIEF +OF AMICI CURIAE N SUPPORT OF APPELLANTS AND REVERSAL ...
+Please send us comments and suggestions what we have expressed above. +Also include anything else that you would like to see in future +contests. Send such email to:
+questions@ioccc.org
+IMPORTANT NOTE: The email addresses found above are +for historical purposes only, and should not be used today. See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 2000,2023, Landon Curt Noll, Peter Seebach and Leonid +A. Broukhis. All Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 2000 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+The IOCCC has a web site and now has a number of international +mirrors. The primary site can be found at https://www.ioccc.org.
+Use make to compile entries. It is possible that on
+non-Unix / non-Linux systems the Makefile needs to be changed. See the
+Makefile for details.
Read over the Makefile for compile/build issues. Your system may
+require certain changes (add or remove a library, add or remove a
+#define i.e. the -D flag).
Some ANSI C compilers are not quite as good as they should be. If +yours is lacking, you may need to compile using gcc instead of your +local compiler.
+There were some outstanding entries that did not win. Unfortunately +some very good entries lost because they:
+We hope the authors of some of those entries will fix and re-submit +them for the next IOCCC.
+We believe you will be impressed with this year’s winners. The Best of Show is a fine example of +obfuscation. But don’t ignore the other winners! There are games, +programs that speak, ones that compile code and one that might run binaries you already +have.
+The Best/Worst Abuse of the Rules is +technically allowed by the rules. This year we +awarded it again, but don’t assume you can get away with using the same +technique next time … :-)
+This year there were several repeat winners. This is understating the +achievement a little - one person +has won 8 times before! (Please note that judging is done completely +anonymously.)
+This is somewhat my (Simon Cooper’s) fault. I do apologize to the +IOCCC community for this! Judging does take quite a lot of time, and I +over-committed myself several times this year. Without divulging too +much, we do look at and work out what every entry does.
+Please send us comments and suggestions what we have expressed above. +Also include anything else that you would like to see in future +contests. Send such email to:
+questions@ioccc.org
+IMPORTANT NOTE: The email addresses found above are +for historical purposes only, and should not be used today. See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 2001,2002,2023, Landon Curt Noll, Peter Seebach and +Leonid A. Broukhis, All Rights Reserved. This work is licensed under a +Creative +Commons CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International +license. If you do use this work in some form, the IOCCC judges would appreciate (but does not +require) if you were to send us a note about +your use.
+ + + + + + +Download IOCCC 2001 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winner for
+information on how to compile the entry and how to run the winning
+program. Look at the winning source and try to figure how it does what
+it does! You may then wish to look at the Author’s remarks for even more
+details.
The IOCCC has a web site and now has a number of international +mirrors. The primary site can be found at https://www.ioccc.org/.
+Use make(1) to compile entries. It is possible that on
+non-Unix / non-Linux systems the Makefile needs to be
+changed. See the Makefile for details.
Read over the Makefile for compile/build issues. Your
+system may require certain changes (add or remove a library, add or
+remove a #define).
Some ANSI C compilers are not quite as good as they should be. If
+yours is lacking, you may need to compile using gcc instead
+of your local compiler.
We believe you will be impressed with this year’s winners. The Best of Show is a fine example of obfuscation. +But don’t ignore the other winners! There are games, utilities, programs +that output images and a one-liner that is incredibly compact for what +it can do.
+The Best Abuse of the Guidelines is +technically allowed by the rules. This year we allowed it due to the +functionality of the program. This entry is one of the easiest to read! +Don’t assume you can win using similar techniques next time … :-)
+This year a single person won +two awards! We also had repeat winners with their 6th, 4th and 2nd +winning entries this year! (Please note that judging is done completely +anonymously. Be warned that we may disqualify entries that reveal the +identity of the submitter.)
+There were some outstanding entries that did not win. Unfortunately +some very good entries lost because they:
+We hope the authors of some of those entries will fix and re-submit +them for the next IOCCC.
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 2001,2004,2023, Landon Curt Noll, Peter Seebach and +Leonid A. Broukhis. All Rights Reserved. This work is licensed under a +Creative +Commons CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International +license. If you do use this work in some form, the IOCCC judges would appreciate (but does not +require) if you were to send us a note about +your use.
+ + + + + + +Download IOCCC 2004 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winner for
+information on how to compile the entry and how to run the winning
+program. Look at the winning source and try to figure how it does what
+it does! You may then wish to look at the Author’s remarks for even more
+details.
The IOCCC has a web site and now has a number of international +mirrors. The primary site can be found at https://www.ioccc.org/.
+Use make(1) to compile entries. It is possible that on
+non-Unix / non-Linux systems the Makefile needs to be
+changed. See the Makefile for details.
This year we included most of the information included by the
+submitters in the README.md files.
Read over the Makefile for compile/build issues. Your
+system may require certain changes (add or remove a library, add or
+remove a #define).
Some ANSI C compilers are not quite as good as they should be. If
+yours is lacking, you may need to compile using gcc instead
+of your local compiler.
We believe you will be impressed with this year’s winners.
+In particular:
+The Abuse of the rules used +local dictionary data to get around the size limit.
The Most beauteous visuals made
+clever use of {}s and whitespace in their source code and
+during execution.
The Most circuitous walk entry is just +amazing.
The Best game makes full use of its +single function.
The Best emulator may allow you to reconnect +to your first PET.
Our Best of Show this year was +simply (or non-simply :-) ) the best!
(And we need only mention (parenthetically speaking) that the +best use of parenthesis is self reproducing).
The Most sonorous output might
+sound :-) like a good idea.
The Best 2D puzzle takes +editorial license with expressions as well as the with the vi editor.
The Most ambiguous language winner is +really a C program.
The Most superfluous output +winner is simply Voronoi-lific!
Try not to have your sense of good coding offended by the Most discourteous interpreter winner.
The Best use of the www doesn’t include +those letters.
You will be puzzled by the Best 3D +puzzle winner; we are sure!
The Most ingenious puzzle solution +might puzzle you more while it puzzles out some puzzles: all in a +puzzling way! :-)
There were some outstanding entries that did not win. Unfortunately +some very good entries lost because they:
+depended too much on non-portable side effects in expressions; +and/or
depended too much on a particular byte order; and/or
required the use of a special script, data file or pseudo-machine +language that was not supplied with the entry.
We hope the authors of some of those entries will fix and resubmit +them for the next IOCCC.
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 2005,2023, Landon Curt Noll and Leonid A. Broukhis. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 2005 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+The IOCCC has a web site and now has a number of international +mirrors. The primary site can be found at,
++ ++
Use make to compile entries. It is possible that on
+non-Unix / non-Linux systems the Makefile needs to be changed. See the
+Makefile for details.
This year we included most of the information included by the +submitters in the README.md files.
+Read over the Makefile for compile/build issues. Your system may +require certain changes (add or remove a library, add or remove a +#define).
+Some ANSI C compilers are not quite as good as they should be. If +yours is lacking, you may need to compile using gcc instead of your +local compiler.
+There were some outstanding entries that did not win. Unfortunately +some very good entries lost because they:
+depended too much on non-portable side effects in +expressions;
depended too much on a particular byte order;
required the use of a special script, data file or pseudo-machine +language that was not supplied with the entry.
We hope the authors of some of those entries will fix and re-submit +them for the next IOCCC.
+We believe you will be impressed with this year’s winners. The Best +of Show is a fine example of (retro) obfuscation. But don’t ignore the +other winners! There are games, puzzles, puzzle solvers, simulators, +emulators, calculators and graphical and audio tools.
+This year a single person won three awards and another two awards! +Many winners won for the first time. (Please note that judging is done +completely anonymously. Be warned that we may disqualify entries that +reveal the identity of the submitter).
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 2006,2023, Landon Curt Noll and Leonid A. Broukhis. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 2006 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+The IOCCC has a web site and now has a number of international +mirrors. The primary site can be found at,
++ ++
Use make to compile entries. It is possible that on
+non-Unix / non-Linux systems the Makefile needs to be changed. See the
+Makefile for details.
This year we included most of the information included by the +submitters in the README.md files.
+Read over the Makefile for compile/build issues. Your system may +require certain changes (add or remove a library, add or remove a +#define).
+Some ANSI C compilers are not quite as good as they should be. If +yours is lacking, you may need to compile using gcc instead of your +local compiler.
+There were some outstanding entries that did not win. Unfortunately +some very good entries lost because they:
+did not follow the “one program - one file” rule;
depended too much on 32 bit architectures;
were more of the “obfuscated math” kind rather than the +“obfuscated C” kind.
We hope the authors of some of those entries will fix and re-submit +them for the next IOCCC.
+We believe you will be impressed with this year’s winners. The Best +of Show is a fine example of character stitching. But don’t ignore the +other winners! There are games, puzzle solvers, utilities, eye candy, +calculators and graphical and audio tools.
+This year all winners are different, and there is a winner from a new +country - China! Many winners won for the first time. (Please note that +judging is done completely anonymously. Be warned that we may disqualify +entries that reveal the identity of the submitter).
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 2012,2023, Landon Curt Noll and Leonid A. Broukhis. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 2011 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+The IOCCC has a web site and now has a number of international +mirrors. The primary site can be found at,
++ ++
Use make to compile entries. It is possible that on
+non-Unix / non-Linux systems the Makefile needs to be changed. See the
+Makefile for details.
Read over the Makefile for compile/build issues. Your system may +require certain changes (add or remove a library, add or remove a +#define).
+Some ANSI C compilers are not quite as good as they should be. If +yours is lacking, you may need to compile using gcc instead of your +local compiler.
+We believe you will be impressed with this year’s winners. We had a +very difficult time picking a single best from among the other winners +because the overall quality of the winners were so high.
+This year we selected the top 4 entries for particularly high +honors:
+Gold award - Balanced use of obfuscation
+A very extremely subtle and twisted piece of source code! Even if you +start with the zeitak_deobfucate.c source, you will still have a very +challenging time to understand it!
Silver award - Most elementary use of C
+A fun program that could also have won “Best abuse of Ghostscript” +because it managed to create some PDF files that Ghostscript could not +read.
Bronze award - Best use of cocoa
+A picture within a picture is worth more than a thousand (4 byte) +words. :-)
Honorable mention - Most complex ASCII fluid
+When you see this program in action, you too will very likely say wow as we did!
But don’t ignore the other winners! There are games, utilities, eye +candy, calculators and graphical tools to explore.
+This year, Yusuke Endoh won with two entries, one of which (endoh1) +won the special Honorable mention award. Eight of the winning entries +were from people who won in previous years.
+This year we had a number of winners from Asia. We saw our second +winner from China and first from Korea. We are pleased to see +outstanding entries from areas of the world that have not been active in +past contests. Will we see an upswing of entries from South America, +Africa and Antarctica next year? :-)
+Please note that judging is done completely anonymously. Please do +NOT reveal your identity in your source code. In the future we may +disqualify entries that reveal the identity of the submitter!
+There were some outstanding entries that did not win. Unfortunately +some very good entries lost because they:
+would take years to execute
were way way oversize and didn’t even attempt to justify their +excess by a clever abuse of the rules
obfuscate themselves by simply invoking a complex state +machine
depend on a single obfuscation trick
could only be run on a particular vendor’s platform
were very similar to previous winners
were based on an overused theme such as yet another fractal +display program
didn’t work as documented
We hope the authors of some of those entries will fix and re-submit +them for the next IOCCC.
+There is a risk in submitting an entry that is similar to a well used +theme by previous winners. Previous winners set a very high bar. A new +winner must not only compete against other submissions form the current +year, they must also excel over similar winners in some particularly +impressive way.
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 2012,2023, Landon Curt Noll and Leonid A. Broukhis. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 2012 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile the entry and how to run the winning +program. Look at the winning source and try to figure how it does what +it does! You may then wish to look at the Author’s remarks for even more +details.
+The IOCCC has a web site and now has a number of international +mirrors. The primary site can be found at: https://www.ioccc.org/
+Use make to compile entries. It is possible that on
+non-Unix / non-Linux systems the Makefile needs to be changed. See the
+Makefile for details.
Read over the Makefile for compile/build issues. Your system might
+require certain changes (add or remove a library, add or remove a
+#define i.e. -D flag).
Some ANSI C compilers are not quite as good as they should be. If +yours is lacking, you may need to compile using gcc instead of your +local compiler.
+We believe you will again be impressed with this year’s winners.
+This year, 9 won 15 awards. For the first time in the history of the +contest, one person, Yusuke Endoh +won 4 times while Adrian Cable +won 3 times! It is also worth noting that Chris +Mills last win was in 1993. Welcome back Chris!
+We, the judges, were very surprised by this as many of the multiple +winners submitted very different styles of entries.
+This year was the first time the IOCCC size tool was used. Entries
+had to print a value 2053 or less when the -i flag was
+used.
Several people discovered an undocumented feature in that certain +comments such as:
+ ///*or:
+ *\
+ /were not correctly parsed by the tool. The guidelines stated:
+In cases where the above summary and the algorithm implemented by
+the IOCCC size tool source code conflict, the algorithm implemented
+by the IOCCC size tool source code is preferred by the judges.
+so this abuse was allowed (and encouraged). The judges hope that the +IOCCC size tool author will patch the tool to block this kind of size +abuse in future contests.
+There were some outstanding entries that did not win. Unfortunately +some very good entries lost because they:
+We hope that the authors of some of those entries will fix and +resubmit them for the next IOCCC.
+There is a risk in submitting an entry that is similar to a well used +theme by previous winners. Previous winners set a very high bar. A new +winner must not only compete against other submissions from the current +year but they must also excel over similar previous winners in some +particularly impressive way.
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 2013,2023, Landon Curt Noll and Leonid A. Broukhis. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 2013 entry source
+Jump to: top
+ + + + + + + + + +
+ The IOCCC has a web site and now has a number of international +mirrors. The primary site can be found at,
+ +Use make to compile entries. It is possible that on non-Un*x / +non-Linux systems the makefile needs to be changed. See the Makefile for +details.
+Look at the source and try to figure out what the programs do, and +run them with various inputs. If you want to, look at the hints files +for spoilers - this year we included most of the information included by +the submitter.
+Read over the makefile for compile/build issues. Your system may +require certain changes (add or remove a library, add or remove a +#define).
+Some ANSI C compilers are not quite as good as they should be. If +yours is lacking, you may need to compile using gcc instead of your +local compiler.
+We believe you will again be impressed with this year’s winners.
+This year, 2014:
+We, the judges, were very surprised by this as many of the multiple +winners submitted very different styles of entries.
+This year was the second time the IOCCC size tool was used. Rule 2 +required that when program source is fed as input to the current IOCCC +size tool, and the IOCCC size tool -i command line option is used, the +value printed should be less than or equal to 2053.
+We were pleased to see that abuse of the rules was extended to abuse +to the IOCCC size tool. Matt Zucker, followed by a few users, were able +to discover cleaver use of certain // comments to perplex the size tool. +The abuse was so bad that the judges released a critical and mandatory +patch to the IOCCC size tool on 2014-09-23.
+There were some great entries that did not win. Unfortunately some +entries lost because they:
+were too large according the IOCCC size tool and didn’t even +attempt to justify their excess by a clever abuse of the rules
depended on a single obfuscation trick
didn’t work as documented
We hope the authors of some of those entries will fix and re-submit +them for the next IOCCC.
+There is a risk in submitting an entry that is similar to a well used +theme by previous winners. Previous winners set a very high bar. A new +winner must not only compete against submissions from the current year, +they must also excel over any similar winners in some particularly +impressive way.
+We apologize on the delay of sending the winners the tarball for them +to review. There were some unforeseen events, such as unplanned +mandatory business travel, the death of a IOCCC judge mother, etc. that +impacted our planned schedule for building the IOCCC winner tarball.
+During some of these forced delays, we took the time to better +automate some of the tools needed to package the source for the winners +to review and to post the edited winners to the web site. It is our +intent that these changes made during those delays will make releasing +future IOCCC winners a faster procedure.
+p.s. The final advice given to Landon by his mom: “Have fun.” We +recommend following this advice were possible.
+Please feel free to send us comments and suggestions about the +competition, this README or anything else that you would like to see in +future contests.
+If you use, distribute or publish these entries in some way, please +drop us a line. We enjoy seeing who, where and how the contest is +used.
+If you have problems with any of the entries, AND YOU HAVE A FIX, +please send us the fix (patch file or the entire changed file).
+For the latest information on how to contact the IOCCC Judges please +visit
+ +For news of the next contest watch:
+ +Copyright (C) 2014,2024, Landon Curt Noll and Leonid A. Broukhis. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 2014 entry source
+Jump to: top
+ + + + + + + + + +
+ The IOCCC has a web site and now has a number of international +mirrors. The primary site can be found at,
+ +Use make to compile entries. It is possible that on non-Un*x / +non-Linux systems the makefile needs to be changed. See the Makefile for +details.
+Look at the source and try to figure out what the programs do, and +run them with various inputs. If you want to, look at the hints files +for spoilers - this year we included most of the information included by +the submitter.
+Read over the makefile for compile/build issues. Your system may +require certain changes (add or remove a library, add or remove a +#define).
+Some ANSI C compilers are not quite as good as they should be. If +yours is lacking, you may need to compile using gcc instead of your +local compiler.
+We believe you will again be impressed with this year’s winners.
+The fraction of worthy entries was higher than usual.
+We call to your attention, the hou entry, that performs the +MD5 cryptographic hash. Normally implemented with a set of integer and +boolean operations, this code uses floating point variables inside a +single while loop filled with unusual constants, cosine, square root, +and exponent function calls. The number of lines of code is also smaller +than the original algorithm.
+The mills2 source code is a very compressed version of a +decompression algorithm. We think those who enjoy compression algorithms +will particularly enjoy this entry.
+We suggest that you attempt to completely understand the +endoh4 1-liner program: another impressive compact piece of C +code.
+And while you are at it, cat the endoh2 prog.c code. Compile +it and look at the source code again.
+In a “Back to the Future” moment, endoh3 gave us a twist on +one of the all time best IOCCC winners from 1984.
+We also suggest that you take a very good look at how the +muth code makes full use of the C Pre-Processor.
+…We’ll stop spouting spoilers now. Have fun exploring all the +entries!
+The number of entries that would have made it into the final rounds +would have been much higher had some people paid attention to rules 2 +and 22 (one third of 666).
+Rule 22, now known as Catch 22 states:
+| 22) Your source code, data files, remarks and program output must NOT
+| identify the authors of your code. The judges STRONGLY prefer to
+| not know who is submitting entries to the IOCCC.
+
+| The "Peter Honeyman is exempt" guideline also applies to this rule.
+| Identifying yourself, in an obvious way in your code, data, remarks
+| or program output, unless you are Peter Honeyman or pretending
+| to be Peter Honeyman, will be grounds for disqualification of your entry.
+A number of other entries were based on iocccsize.c, making +derivative works rather than original works.
+Still other entries were too large, violating the first line of rule +2:
+While these entries might have passed under the 2053 limit for +iocccsize, they were larger than <= 4096 bytes, sometimes by an order +or magnitude.
+We hope the authors of some of those entries will fix and re-submit +them for the next IOCCC.
+Please feel free to send us comments and suggestions about the +competition, this README or anything else that you would like to see in +future contests.
+If you use, distribute or publish these entries in some way, please +drop us a line. We enjoy seeing who, where and how the contest is +used.
+If you have problems with any of the entries, AND YOU HAVE A FIX, +please send us the fix (patch file or the entire changed file).
+For the latest information on how to contact the IOCCC Judges please +visit
+ +For news of the next contest watch:
+ +Copyright (C) 2015,2024, Landon Curt Noll and Leonid A. Broukhis. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 2015 entry source
+Jump to: top
+ + + + + + + + + +
+ The primary IOCCC web site can be found at,
++ ++
Use make to compile entries. It is possible that on
+non-Unix / non-Linux systems the Makefile needs to be changed. See the
+Makefile for details.
Look at the source and try to figure out what the programs do, and +run them with various inputs. If you want to, look at the hints files +for spoilers - this year we included most of the information included by +the submitter.
+Read over the Makefile for compile/build issues. Your system may +require certain changes (add or remove a library, add or remove a +#define).
+Some C compilers are not quite as good as they should be. If yours is +lacking, you may need to compile using clang or gcc instead of your +local compiler.
+We believe you will again be impressed with this year’s winners.
+The “Best of show” (mills) is an amazing tribute to winners from 1984 +and 2015.
+Take a close look at the “Most likely to top the charts” (hou) +winner. Observe that while it contains no variables and no operators, it +remains functional in what it does.
+The “Best one-liner” (burton1), at 109 characters, is a short and +sweet implementation of a classic utility and a nod to a winner from +1986. Sometimes it takes 20 ox years to do things the true IOCCC +way.
+The color of the remarks text this year was inspired by one of the +stars of the “Most stellar” winner (poikola).
+The “Best use of python” (endoh2) is a not what you might think it +is. It is something completely different.
+The “Most likely to be awarded” (ciura) has an amazing +vocabulary!
+There are also nods to winners of the years 2000 (bellard), 1989 +(yang), …
+…We’ll stop spouting spoilers now. Have fun exploring all the +entries!
+The number of entries that would have made it into the final rounds +would have been much higher had some people paid attention to rules 2 +and 22 (one third of 666).
+Rule 22, now known as “Catch 22” states:
+| 22) Your source code, data files, remarks and program output must NOT
+| identify the authors of your code. The judges STRONGLY prefer to
+| not know who is submitting entries to the IOCCC.
+
+| The "Peter Honeyman is exempt" guideline also applies to this rule.
+| Identifying yourself, in an obvious way in your code, data, remarks
+| or program output, unless you are Peter Honeyman or pretending
+| to be Peter Honeyman, will be grounds for disqualification of your entry.
+A number of other entries were based on iocccsize.c, making +derivative works rather than original works.
+Still other entries were too large, violating the first line of rule +2:
+2) The size of your program source must be <= 4096 bytes in length.
+While these entries might have passed under the 2053 limit for +iocccsize, they were larger than <= 4096 bytes, sometimes by an order +or magnitude.
+We hope the authors of some of those entries will fix and re-submit +them for the next IOCCC.
+Some entries seemed to have a good idea, but the implementation of +the idea was limited in scope.
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (C) 2018,2023, Landon Curt Noll and Leonid A. Broukhis. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 2018 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+The primary IOCCC web site can be found at,
++ ++
Use make to compile entries. It is possible that on
+non-Unix / non-Linux systems the Makefile needs to be changed. See the
+Makefile for details.
Read over the Makefile for compile/build issues. Your system may +require certain changes (add or remove a library, add or remove a +#define).
+Some C compilers are not quite as good as they should be. If yours is +lacking, you may need to compile using clang or gcc instead of your +local compiler.
+This year’s winners are impressive!
+The “Most in need of debugging” (endoh) is very inventive in a way it +produces its own text!
+The “Most likely to be awarded” (ciura) has an amazing +vocabulary!
+There are again nods to winners of the years:
+[1991/davidguy](http://ioccc.org/years.html#1991_davidguy)
+[2011/blakely](http://ioccc.org/years.html#2011_blakely)
+These nods to not run afoul of the guideline:
+We tend to dislike programs that:
+...
+are rather similar to previous winners
+because the entry (dogon) appropriately pays homage to past winners +without blatantly reusing their code.
+…We’ll stop spouting spoilers now. Have fun exploring all the +entries!
+Some entries tried to get around the size limit by submitting a data +file that was really C code and then blindly including code in +prog.c.
+Quite a few entries suffered from undefined behavior like accessing +uninitialized locals and/or reading-writing below the stack. We advise +running your entry through valgrind to make sure those mistakes are +avoided.
+Using extra arguments to main, or arguments of wrong types as a quick +and dirty way of declaring variables is now passé. Clang, for example, +rejects them outright.
+We hope the authors of some of those entries will fix and re-submit +them for the next IOCCC.
+Some entries seemed to have a good idea, but the implementation of +the idea was limited in scope.
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (c) 2019,2023, Landon Curt Noll and Leonid A. Broukhis. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 2019 entry source
+Jump to: top
+ + + + + + + + + +
+ Look at the README.md file for the given winning entry for +information on how to compile it and how to run the winning program. +Look at the winning source and try to figure how it does what it does! +You may then wish to look at the Author’s remarks for even more +details.
+The primary IOCCC web site can be found at,
++ ++
Use make to compile entries. It is possible that on
+non-Unix / non-Linux systems the Makefile needs to be changed. See the
+Makefile for details.
Read over the Makefile for compile/build issues. Your system may +require certain changes (add or remove a library, add or remove a +#define).
+Some C compilers are not quite as good as they should be. If yours is +lacking, you may need to compile using clang or gcc instead of your +local compiler.
+This year’s Best of Show (carlini) is such a novel way of obfuscation +that it would be worth of a special mention in the (future) Best of +IOCCC list!
+For some reason, this year’s set of winners contains three nostalgic +games, Asteroids (tsoj), Minesweeper (endoh1), and Snake +(ferguson1).
+An entry (kurdyukov1) pays homage to a previous winner +(2015/hou).
+…We’ll stop spouting spoilers now. Have fun exploring all the +entries!
+As a rule, we try to compile the entries on a variety of platforms. +Quite a few entries this year could not be built or executed on some of +them due to reliance on library internals or the system runtime.
+A few entries were violating the “2053 significant bytes” rule. If an +entry could not be brought to compliance within a few seconds of looking +at the source, it was disqualified.
+One entry tried to get around the size limit by putting the code into +Makefile variables and using -D. This is already called out as +discouraged technique in the guidelines, but it is worth a reminder.
+Several promising entries attempted to make use of the
+syscall function using literal syscall numbers. This is
+utterly non-portable.
A note to the authors: when submitting multiple entries, don’t let us +easily correlate them by coding style or documentation content, and +definitely don’t submit nearly identical versions of your program +separately. As we try to judge the entries anonymously, the similarities +will cause such entries to compete against one another, making each less +likely to win.
+We hope the authors of non-winning entries will refine their entries +and perhaps re-submit them for the next IOCCC.
+IMPORTANT NOTE: See contact.html for up to date contact details as +well as details on how to provide fixes to any of the entries. See also +the IOCCC FAQ for addition information on the +IOCCC.
+Copyright (C) 2020,2023, Landon Curt Noll and Leonid A. Broukhis. All +Rights Reserved. This work is licensed under a Creative Commons +CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International license. +If you do use this work in some form, the IOCCC +judges would appreciate (but does not require) if you were to send us a note about your use.
+ + + + + + +Download IOCCC 2020 entry source
+Jump to: top
+ + + + + + + + + +