This year’s International Obfuscated C Code Contest (IOCCC) returned after a four-year hiatus, saw a record 23 winning entries due to the unusually high number of high-quality submissions.
The winning entries showcased the masters of the C language, with one program containing invisible Unicode characters to print a salmon recipe, and another that rickrolled the judges with an 8-bit music and graphic port from the Atari 2600.
Judges, including founder Landon Curt Noll, noted that while they experimented with Large Language Models (LLMs) to analyze code, the models had mixed results and were not used in the final judging process.
The judges also emphasized that humans can still produce code that is far beyond the capabilities of current AI models, citing a 750-byte LLM inference engine crafted by one of the winners. The source code for all winning entries, including the infamous “Rickroll,” is now available on a special GitHub repository. The IOCCC will return again in December 2025.
And of course, “Every contest there’s new stuff that I didn’t know you could do with C that people show that they can do!” Noll said.
A Live Presentation
It’s an iconic contest in the world of programmers, and this year also saw the revival of a tradition that’s 40 years old: A live announcement of the winners. Back in the 1980s, winners were always announced at a special session of the Usenix conference (immediately after a session about BSD’s next release). This was so long ago, “it consisted of my printing out stuff on transparencies and using an overhead projector,” Noll said — because the world didn’t yet have computers capable of digital projections.
But the competition’s organizers have now modernized their infrastructure — even offering videos showing off the zany output from the winning entries when their source code is compiled. Here in 2025, Noll said that “I wanted to give each entry its own spotlight it deserved,” even bringing in David McInnis to create the elaborate production for the awards ceremony, including multiple video and audio feeds from different locations and even some original music.
Though the iconic contest was finally returning from a four-year hiatus, Noll believes that it provided more time for contestants to fine-tune entries because of the unusually high number of high-quality submissions. While in past years they’ve awarded 12 to 15 prizes, this year they awarded 23 — more than any other year. “We really couldn’t come up with a good justification for leaving some of these really amazing winning entries out!”
“We had no ‘Best of Show’ or “Grand Prize’ winner, in part because we had so many entries worthy of that title!”
Will AI Affect the Contest?
There was another advantage to the long hiatus. Leonid A. Broukhis (a two-time winner in 1993 and 1995 — and a judge since 1998) pointed out that the long break gave them a chance to experiment with LLMs to analyze the source code. But the results were mixed. “For some entries, the LLMs were able to have a guess what the entry does, just based on the overall code structure or whether it uses logic with math…
“And for some entries, it was completely clueless.”
Noll also clarified that they didn’t use LLMs in their judging process. And he also didn’t recommend people use it for crafting their future entries. “More likely what you’ll get is something that’s garbage — doesn’t even compile… And many models will produce something that looks like C but is entirely unlike C — because it can’t even compile, let alone be obfuscated!”
In his 40th year of judging IOCCC entries, Noll shared his testimony to human programmers. “The people that wrote these programs put a lot of effort and skill. They are masters of the C language. And they’re masters at presenting it and getting it into a small chunk!”
This year, programmer Adrian Cable crafted a 750-byte LLM inference engine (using a larger 7-gigabyte model). “I don’t think any model any time soon is going to be able to produce code that good!”
But both judges suggested LLMs might be more useful for future contest entrants, to test whether their code is truly difficult to understand. Noll gave an example of what it would like to stump an LLM with obfuscated code. “If it says ‘It prints out pi,’ and instead it Rickrolls you — um, well, that’s been done, but you get the point.”
‘Never Gonna Give You Up’
This year, the judges were Rickrolled, a decades-old internet prank that involves tricking someone into clicking a hyperlink to the music video for the 1987 song “Never Gonna Give You Up” by English singer Rick Astley.
The judges described their thought process as they became victims in what’s possibly the geekiest prank you’ll ever see in your life. There’s a massive declaration of several constants, and a fork to a second child process, “One’s reading… one’s outputting some other stuff. It’s not quite clear what’s happening, there’s a little bit of sleep going on there… What’s going on? What could possibly… What does this puppy do?”
“We’ve been Rickrolled!”
“This is actually basically a rough port of what was on the Atari 2600 version of this program, including the 8-bit music and the graphic, and it’s a classic thing…” Noll explains in the presentation (citing the notes for a submission from programmer Vince Weaver). “We had an idea about it doing something with a sound file and some graphics output, but now you know.” (And keeping things educational, Noll advised his audience to then “go and look at the source code and figure out how does it Rickroll you!”)
Even more amazing was the entry from legendary obfuscated C programmer Yusuke Endoh. Running Endoh’s program displays beautiful ASCII animations of spinning objects in various shapes — demonstrating the real-world physics “of a rotating rigid body, such as a top.”
For added effect, Endoh even spaced his heavily obfuscated code — so that its whitespace also formed the image of a spinning top.
And programmer Adrian Cable submitted a second prize-winning entry this year — an innocuous 15-line program with one very misleading variable declaration.
unsigned int *salmon = U" is very yummy";
And yet this program somehow prints out an entire recipe for grilled salmon. (“Season salmon fillets with olive oil, lemon juice, garlic, salt, and pepper…”)
How? Through the magic of obfuscation. There are actually several more lines of additional code, but they’re all written in invisible Unicode characters which aren’t visible with the default settings of most text editors.
It ultimately won the contest’s “Murky Waters” prize…
And for additional obfuscation, the author even included a baffling for loop — as a decoy. When the code runs, it’s never actually executed….
for (int i = 1; i <= 10; i++) { printf("%d * %d = %dn", i, i, i*i); }
What’s Next?
There’s now a special GitHub repository with the source code, not just for this year’s winning entries, but for every year, all the way back to 1984. (In the video, Noll ceremoniously pushed the source code for this year’s winners into the repository’s newest directory.) “It’s all out there, ready to go, ready for you to go through,” Noll says in the video.
“Including the Rickroll, if you so choose.”
In a video posted on Patreon, Noll also promises that in years to come, there’ll be short videos on “some of the past and best of the IOCCC winners.” And for the next contest, they’re planning to update the tool used to package their entries (“There are a number of pull requests that are in process.”) — as well as improvements to their own server and the internal tools used by the judges.
The IOCCC will return again soon. Another post explains that their entry-accepting server “will resume operation upon the opening of the IOCCC29 registration period, which is anticipated to commence sometime in December 2025.” They’re planning to rewrite and trim the rules and guidelines — and there’ll inevitably be some new rules “based on our experience of judging this contest.”)
But right now, the judges are first looking forward to — a vacation. “We’ve been working hard at this project since December of 2020,” Noll says in one Patreon video. “And we had a number of volunteers to help us — thousands of hours of work went into the tools and the website….
“It’s time for us to enjoy the results of the authors of the winning entries, and take a break. So we’re going to be going offline, we’re going to do things like read books that are written on paper, and sort of unplug for a while. ”
“Enjoy the winning entries of IOCCC28. They’re amazing, and we’re really pleased to present those to you!”
YOUTUBE.COM/THENEWSTACK
Tech moves fast, don’t miss an episode. Subscribe to our YouTube
channel to stream all our podcasts, interviews, demos, and more.