30 comments

[ 161 ms ] story [ 1474 ms ] thread
For an obfuscation comp, I love the fact they explicitly refer to and do not rewrite "index.html web pages for each winning entry".
> Increased submission quantity and quality

So everybody just LLM'd this, right?

Thank you Barry Kerchival, My C programming teacher for sharing obfuscated code, and showing us utter abuse of the C pre-processor. "This does not do what you think it does."

"Recalcitrant code."

This is epic: :)

From : https://github.com/ioccc-src/winner/blob/master/2024/kurdyuk...

This code draws the current moon phase to the console. So if you’re a lycanthrope, you can monitor the phase of the moon.

#include <time.h> #include <stdio.h>

        a,b=44,x,
     y,z;main()  {!a
   ?a=2551443,x=    -b
  ,y=2-b,z=((time     (
 0)-592531)%a<<9)/     a
 :putchar(++x>=a?x     =
 -b,y+=4,10:x<0?x=     x
 *x+y*y<b*b?a=1-x,     -
  1:x+1,32:"#."[(     x
   <a*(~z&255)>>    8)
     ^z>>8]),y>  b?0
        :main();}
The entry rules are great. Highly specific in that way you know exactly how they were abused in the past.

    Rule 2
    
    Rule 2 requires that your submission satisfy BOTH Rule 2a AND Rule 2b.
    
    You may check your code with respect to Rule 2a and Rule 2b prior to
    submitting your code by giving the filename as a command like
    argument to the iocccsize(1) tool. For example:

    iocccsize prog.c

    The source to iocccsize(1) may be found in the mkiocccentry repo.

    See also the FAQ on “how to further test your submission” for more more thorough testing, including Rule 2.

    See also Rule 2a, Rule 2b, and Rule 17.

    Rule 2a

    The size of your program source should NOT exceed 4993 bytes.

    Rule 2b

    When the filename of your program source is given as a
    command line argument to the latest version of the official
    IOCCC size tool (hereby referred to as iocccsize(1)),
    the value printed should NOT exceed 2503.

    See also Rule 17.
Ah, obfuscated code, the mark of a genuinely human developer. :-)
I wonder what the future of these competitions is in the era of AI. Same for the Advent of Code.
It would appear that someone forget to add something before putting the page up... part way down the page is 'XXX-add-show-URL-here-XXX' referring to a youtube livestream vod for the announcement of the winners

Edit: Before posting this, I looked to see if there was a repository I could contribute to to fix it, but I can't find one

Ah yes, brings to mind a new engineer we hired in the early 90's with with an excellent academic record from a fine school introducing himself to the team by emailing everyone an obfuscated one-liner C program that did something cute. Several members of the team responded to him with lists of ways in which his program violated our recently create style guide. We were a fun group.
Aaaaaaa, I always learn of these after they've happened. I've wanted to enter for a long time.
my plan to rick-roll every major coding competition continues apace. muahahaha

I actually had another entry that I felt had much more clever coding that did some nice sixel animations but from what I understand there were many entries also doing that this year

The question, ladies and gentlemen, that we're all waiting for; Just how many of this year's IOCCC entries were vibe coded? /s
Unfortunate that the redesign broke all links to the old entries (which, since they've been around for decades are on quite a few sites - wikipedia for example) without redirects, and now requires using a javascript capable browser to view the entries on github (github having removed non-JS access last year).
I wonder if there is an LLM competition that can take the obfuscated code and return the unubfuscated/detailed code…
Indeed. Even when you see the hidden unicode it's still not obvious what's going on.

The "salmon" string is mostly unicode TAG characters[1] which contains the printed string followed by 2 En Quad[2], which not so obviously has the effect that `putchar` returns 0 when given as it's argument. Then the defines aren't what they seem, and the body of main is never executed because it's surrounded by a while loop where the condition is 0 (due to putchar() with en quad).

[1]:https://unicodeplus.com/block/E0000

[2]:https://unicodeplus.com/U+2000

"Sadly, K&C-style C code does not compile well under modern C compilers."

What is K&C

Is this a typo

You're probably a programmer. This is what your job looks like to everyone except programmers. Pure gibberish.
I’m stll waiting for the revival of the cousin, underhanded c contest.