cc -Wno-implicit-int -Wno-implicit-function-declaration phase.c && ./a.out
리디자인 때문에 이전 IOCCC 엔트리로 가는 링크들이 모두 깨졌음. 수십 년간 위키피디아 같은 다양한 사이트에 퍼졌던 링크들이 리디렉트 없이 막혀버렸고, 이제 Github에서 엔트리 보려면 자바스크립트 지원 브라우저가 꼭 필요하게 됨
JS가 없는 환경에서 접근하려면 git clone으로 저장소를 복제하는 방법을 쓰면 됨
이 엔트리를 보면서 지난 IOCCC 출품작들을 읽어봤는데, 이 이미지 디컴프레션 원라이너는 소스코드의 해시 값을 인자로 받으면 직접 자기 로고 이미지를 출력함. 너무 신기함
이 해시 트릭이 어떻게 동작하는지 궁금했는데, 노트에 설명이 있음. 참고로 노트 내용도 정말 웃김
"간결함이 난해함보다 중요시되지만, 이 프로그램 역시 IOCCC 특유의 명료성 기준을 여전히 충족함"이라고 적혀있음
정말 놀라운 우연으로, 입력 포맷의 비트 수가 다섯 살짜리 GPU가 한 시간에 할 수 있는 MD5 평가 횟수의 log2와 거의 일치함
이 사람 jq 만든 사람이기도 함
135바이트로 작성됨! 거의 미친 과학자 영역에 가까운 코드임. 완전 믿기 힘든 수준임
IOCCC 엔트리 룰이 멋짐. 과거에 어떻게 악용됐는지 명확히 보여주는 매우 구체적인 규정임
Rule 2
Rule 2는 출품작이 Rule 2a와 2b 둘 다 만족해야 함
iocccsize(1) 툴로 코드가 이 룰을 통과하는지 체크할 수 있음
prog.c 같은 식으로 파일명을 인자로 넘기면 됨
Rule 2a
프로그램 소스의 크기는 4993바이트를 넘으면 안 됨
Rule 2b
iocccsize(1) 툴로 코드 크기를 측정했을 때 출력값이 2503을 넘어선 안 됨
관련해서 좀 더 자세한 내용은 FAQ나 Rule 17을 참고하면 됨
그러면 파일명에 2053바이트의 추가 데이터를 담는 게 허용된다는 말임. 의외로 느슨한 규칙임
Hacker News 의견
이 코드는 현재 달의 위상을 콘솔에 그려줌. 만약 내가 늑대인간이라면 달의 위상을 관찰할 수 있음.
donut.c 참고 링크
1988년 파이 계산 코드 참고
Compiler Explorer 바로 가기
"간결함이 난해함보다 중요시되지만, 이 프로그램 역시 IOCCC 특유의 명료성 기준을 여전히 충족함"이라고 적혀있음
2005년 persano.c 보기
2024년 macke 엔트리
이 프로그램은 최소화된 기능만으로 최신 리눅스 시스템을 통째로 실행하는 에뮬레이터임