Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Programming

'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.

'International Obfuscated C Code Contest' Will Relaunch, Celebrating 40th Anniversary

Comments Filter:
  • "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.
    • "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 ...)

      • Ya, but are these tools are easy to read and well documented? (I'm hoping for something ironic and/or paradoxical ...)

        (My emphasis.)

        Something not written by fahrbot-bot ( 874524 )? I don't think I've got anything better.

    • by tlhIngan ( 30335 )

      "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."

      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)

    by Rosco P. Coltrane ( 209368 ) on Sunday December 29, 2024 @12:58PM (#65047903)

    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.

    • I have to admit, I've done some nice things in my life, but if I won the IOCCC, my professional career would have nothing that matches it.
      • ... until you write, in your professional life, something that (with minor modifications) also wins the IOCCC ...
  • by flyingfsck ( 986395 ) on Sunday December 29, 2024 @12:59PM (#65047905)
    Actually the contest was held, but nobody could find it for four years
  • 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.

    • 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.

      • 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 ...

        6) The program must be of original work.

        ... however the current rule 6 slowly evolved from the 2012 [github.com] rules. (I

    • by tlhIngan ( 30335 )

      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

      • Hmmm, so using POSIX integers for the external interface to the numbering system, but using decimalised Roman numbering for internal representation of numbers. Like an inverted INTERCAL.

        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).

  • So, I can submit a common object orientated on templates built C++ program?
    I can imagine more obfuscated C than that.

  • 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)

  • How unimaginative.

    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.

Solutions are obvious if one only has the optical power to observe them over the horizon. -- K.A. Arsdall

Working...