'International Obfuscated C Code Contest' Will Relaunch, Celebrating 40th Anniversary (fosstodon.org) 23
After a four-year hiatus, 2025 will see the return of the International Obfuscated C Code Contest. Started in 1984 (and inspired partly by a bug in the classic Bourne shell), it's "the Internet's oldest contest," acording to their official social media account on Mastodon.
The contest enters its "pending" state today at 2024-12-29 23:58 UTC — meaning an opening date for submissions has been officially scheduled (for January 31st) as well as a closing date roughly eight weeks later on April 1st, 2025. That's according to the newly-released (proposed and tentative) rules and guidelines, listing contest goals like "show the importance of programming style, in an ironic way" and "stress C compilers with unusual code." And the contest's home page adds an additional goal: "to have fun with C!"
Excerpts from the official rules: Rule 0
Just as C starts at 0, so the IOCCC starts at rule 0. :-)
Rule 1
Your submission must be a complete program....
Rule 5
Your submission MUST not modify the content or filename of any part of your original submission including, but not limited to prog.c, the Makefile (that we create from your how to build instructions), as well as any data files you submit....
Rule 6
I am not a rule, I am a free(void *human);
while (!(ioccc(rule(you(are(number(6)))))) {
ha_ha_ha();
}
Rule 6 is clearly a reference to The Prisoner... (Some other rules are even sillier...) And the guidelines include their own jokes: You are in a maze of twisty guidelines, all different.
There are at least zero judges who think that Fideism has little or nothing to do with the IOCCC judging process....
We suggest that you avoid trying for the 'smallest self-replicating' source. The smallest, a zero byte entry, won in 1994.
And this weekend there was also a second announcement: After a 4 year effort by a number of people, with over 6168+ commits, the Great Fork Merge has been completed and the Official IOCCC web site has been updated! A significant number of improvements has been made to the IOCCC winning entries. A number of fixes and improvements involve the ability of reasonable modern Unix/Linux systems to be able to compile and even run them.
Thanks to long-time Slashdot reader — and C programmer — achowe for sharing the news.
The contest enters its "pending" state today at 2024-12-29 23:58 UTC — meaning an opening date for submissions has been officially scheduled (for January 31st) as well as a closing date roughly eight weeks later on April 1st, 2025. That's according to the newly-released (proposed and tentative) rules and guidelines, listing contest goals like "show the importance of programming style, in an ironic way" and "stress C compilers with unusual code." And the contest's home page adds an additional goal: "to have fun with C!"
Excerpts from the official rules: Rule 0
Just as C starts at 0, so the IOCCC starts at rule 0. :-)
Rule 1
Your submission must be a complete program....
Rule 5
Your submission MUST not modify the content or filename of any part of your original submission including, but not limited to prog.c, the Makefile (that we create from your how to build instructions), as well as any data files you submit....
Rule 6
I am not a rule, I am a free(void *human);
while (!(ioccc(rule(you(are(number(6)))))) {
ha_ha_ha();
}
Rule 6 is clearly a reference to The Prisoner... (Some other rules are even sillier...) And the guidelines include their own jokes: You are in a maze of twisty guidelines, all different.
There are at least zero judges who think that Fideism has little or nothing to do with the IOCCC judging process....
We suggest that you avoid trying for the 'smallest self-replicating' source. The smallest, a zero byte entry, won in 1994.
And this weekend there was also a second announcement: After a 4 year effort by a number of people, with over 6168+ commits, the Great Fork Merge has been completed and the Official IOCCC web site has been updated! A significant number of improvements has been made to the IOCCC winning entries. A number of fixes and improvements involve the ability of reasonable modern Unix/Linux systems to be able to compile and even run them.
Thanks to long-time Slashdot reader — and C programmer — achowe for sharing the news.
The pause during the 2021-2023 period... (Score:2)
In case you also wondered.
Re: The pause during the 2021-2023 period... (Score:2)
Re: (Score:2)
"The pause during the 2021-2023 period was due to the IOCCC judges developing tools to make it much more likely for the IOCCC to be held on a yearly basis later on." In case you also wondered.
Ya, but are these tools are easy to read and well documented? ...)
(I'm hoping for something ironic and/or paradoxical
Re: (Score:2)
(My emphasis.)
Something not written by fahrbot-bot ( 874524 )? I don't think I've got anything better.
Re: (Score:2)
Until a bug is found or they need to change something and then they need to dig through all that obfuscated C code to fix or update their tooling, that is. So it might pause again for a few years when that happens.
Winning the IOCCC (Score:5, Interesting)
almost a quater century ago is one of the greatest pride of my life, and it served me well throughout my professional career: job interviewers who knew what the IOCCC was knew I was proficient in C. Those who didn't know what the IOCCC was, I didn't really want to work for.
Re: (Score:2)
Re: (Score:2)
Obfuscated hiatus (Score:5, Funny)
Re: (Score:1)
was the contest held in its zeroeth year or first?
Ironic Pedantry? Rules 0 and 6 can be optimized... (Score:2)
Ironically for a content that prides itself on minimizing wasted space there are two rules that waste space. ;-)
Rule 0 [ioccc.org] can be optimized out since it doesn't actually DO anything useful aside from just waste space as a placeholder.
Likewise while I'm a huge fan of The Prison [amazon.com] Rule 6 [ioccc.org] seems useless as well.
Re: Ironic Pedantry? Rules 0 and 6 can be optimize (Score:3)
I have had C programs that did not compile if you changed the comments. Do not assume 0 and 6 are extraneous. They are probably critical infrastructure given their longevity.
Re: (Score:2)
For code, yes, definitely some fun shenanigans. i.e. Microsoft's MFC IIRC.
> Do not assume 0 and 6 are extraneous. They are probably critical infrastructure given their longevity.
That's incorrect. I was able to find ALL the old rules at the ioccc-src/winner [github.com] repository.
* Rule 0 is NEW as it wasn't present in the previous 2020 rules [github.com]
* Rule 6 was added first in 1985 [github.com] with the following description ...
Re: Ironic Pedantry? Rules 0 and 6 can be optimiz (Score:2)
Oh dear. It is worse than I thought: it is part of some table that has to be updated for every release using magical knowledge known only to the Trusted Few who would love to explain but the explanation takes longer than their remaining life expectancy!!!
Re: Ironic Pedantry? Rules 0 and 6 can be optimi (Score:2)
The addition of rule zero is probably a workaround for the dreaded Y2K+20 bug. :-)
Re: (Score:2)
Minimizing wasted space isn't a primary goal of the competition. Sure, minimizing space does tend to obfuscate the code somewhat, but that's a minor benefit. Some source code thrives on wasted space - the output is often another program that's formatted differently.
So just because there's a rule to waste space, doesn't mean the space is wasted. Rule 0 exists because C is 0-indexed, thus you must start at zero. If you wrote a program that would adjust the rule numbers (because renumbering is a PITA) then sur
Re: (Score:2)
Yeuck. ["Checks shoe sole".emoji]
Now I'm thinking - how would you represent fractional numbers in Roman? Or worse - irrational numbers (where the obvious expedient of representing your real numbers as fractions really doesn't help).
Obfuscated, eh? (Score:2)
So, I can submit a common object orientated on templates built C++ program?
I can imagine more obfuscated C than that.
Re: (Score:2)
That should be "can't imagine".
All part of the obfuscated post contest.
Re: (Score:2)
That wouldn't be C any longer, would it?
Re: (Score:2)
1 degree of separation (Score:2)
I was never competent enough to compete in these, but I was a student at University of Central Florida in the late 1980's and one of my professors was. And won, a couple times (David Van Brackle). He co-won with another employee at the school who I met, but never had as a professor/teacher (Mark Schnitzius)
Integers? For numbering rules? (Score:2)
The very least they could do is spread the rules across the complex plane. But a thoroughly rational irrational numbering oof the rules would be a good start.