- Este año, IOCCC28 se reanudó después de 4 años, y se postularon numerosas obras de código C difícil y complejo de desarrolladores de todo el mundo
- La reconstrucción del sitio web y la infraestructura, la incorporación del kit de herramientas mkiocccentry y la mejora del sistema de envío incrementaron notablemente la eficiencia operativa
- El proceso de evaluación se volvió más complejo y exigente que en el pasado, pero el periodo de evaluación se redujo considerablemente frente a ciclos anteriores
- Aunque se relajaron las reglas de tamaño de código, se seleccionaron numerosas obras pequeñas y de alta calidad, por lo que se espera que los cambios futuros en las normas del concurso sean limitados
- Se presentaron obras ganadoras interesantes y originales con técnicas de ofuscación, junto con máquinas virtuales y emuladores experimentales, lo que contribuye a mejorar el nivel de programación en C
Resumen y contexto de IOCCC28
- IOCCC28, celebrado en 2024, fue una competencia de código C creativo y enigmático con participantes de todo el mundo, tras un hiato de 4 años
- Durante este período, con más de 6,168 commits, el sitio web oficial del IOCCC fue reconstruido a gran escala bajo el nombre de "Great Fork Merge"
- En lo operativo se aplicaron innovaciones como el kit de herramientas mkiocccentry, el nuevo proceso de registro y los servidores de envíos, mejorando la eficiencia de evaluación y la velocidad de publicación del código
- Las participaciones se recibieron entre el 5 de marzo de 2025 y el 5 de junio de 2025, y la evaluación terminó en solo 33 días, por lo que tras concluir el concurso el código fuente quedó disponible en su totalidad en unas 2 horas
Tendencias de participantes y selección
- En IOCCC28 de este año, al aumentar de forma marcada la cantidad y calidad de las entradas, también subió la dificultad de evaluación, y se produjeron 23 ganadores, el número más alto de todos los tiempos
- "La pausa de 4 años permitió que aparecieran trabajos mejores en algunos casos, pero en conjunto los participantes lograron avances notables tanto en ofuscación como en programación en C"
- Aunque se aplicó una nueva limitación de tamaño de código (con un aumento de alrededor de 21%), más de la mitad de los ganadores se entregó con menos de 2/3 del límite total, y 10 con menos de 1/2 del tamaño, mostrando así tanto eficiencia como calidad
- Por ello, se espera que en los próximos 10 años casi no haya cambios en el límite de tamaño de código
Normas de evaluación y planes futuros
- Las reglas y guías del IOCCC se revisarán para hacerlas más innovadoras e intuitivas, y los jueces del IOCCC tienen previsto comenzar la preparación para IOCCC29, programada para diciembre de 2025
- También se prevén parches de mejora basados en Pull Request para el repositorio de ganadores del IOCCC y el repositorio del toolkit mkiocccentry en GitHub
Presentación de ganadores y destacados
-
Se seleccionaron obras ganadoras con diversos temas, entre las que destacan:
- ChatIOCCC: implementa el motor de inferencia de LLM más compacto del mundo basado en el LLM de código abierto LLaMA 2 de Meta, y ofrece una divertida función de chatbot
- Eh: un editor con soporte de acento UTF-8 que implementa un código ofuscado más práctico que ed(1)
- One-liner de 135 bytes: un código de ofuscación extremadamente corto que produce distintas salidas según el valor hexadecimal recibido
- Arte de preprocesador de C: implementa renderizado de imágenes ejecutando el preprocesador miles a cientos de miles de veces, ofreciendo una experiencia de larga duración y muy singular
- VM Z₃: implementación de una máquina virtual basada en la tercera versión de la Z-Machine, donde leer el código fuente puede disfrutarse como si fuera un juego
- Entorno virtual con emulador de C64: máquina virtual que permite experimentar de forma segura escenarios dañinos como una fork bomb o el borrado de archivos, e incluye emulación de C64
- Emulación del chip Intel 4004: recreación artística que imita hasta el nivel de puertas lógicas el circuito del primer microprocesador comercial del mundo, lanzado en 1971
- Rompecabezas multilingüe: una ofuscación novedosa para quienes dominan al menos tres lenguajes (C, inglés y otro)
Participantes y recomendaciones futuras
- La ofuscación similar a obras ganadoras anteriores obtiene menor puntaje; la originalidad y la pulcritud de acabado son criterios principales de evaluación
- Se recomienda a quienes no ganaron volver a participar después de mejorar sus propuestas o probar enfoques diferentes
- También se da la bienvenida a que se publiquen por separado las obras que no ganaron
Guía para compilar y ejecutar los ganadores
- Se recomienda usar la versión más reciente de clang o gcc, ya que pueden existir problemas de compatibilidad con algunos compiladores de C
- El FAQ y la documentación oficial explican cómo resolver problemas y enviar correcciones
Descarga de los ganadores de IOCCC28 2024
- El conjunto de ganadores se ofrece como archivo comprimido (2024.tar.bz2); consulta la página de cada obra para ver la descripción detallada, el código fuente y las opiniones de los autores, y aprender técnicas de ofuscación originales
(Los enlaces directos para descargar los ganadores y la descripción detallada de cada uno están disponibles en el sitio oficial)
1 comentarios
Comentarios de Hacker News
Este código dibuja la fase actual de la luna en la consola. Si yo fuera un hombre lobo, podría observar la fase lunar.
donut.cEnlace de referencia a donut.c
Referencia del código para calcular pi de 1988
Ir a Compiler Explorer
git cloneDice: "Aunque la concisión se valora más que la oscuridad, este programa aún cumple con los estándares de claridad característicos del IOCCC"
Ver persano.c de 2005
Entrada de macke de 2024
Este programa es un emulador que ejecuta un sistema Linux moderno completo con el mínimo de funcionalidad posible