Hacker News 의견
  • 정말 대단함 :)
    이 코드는 현재 달의 위상을 콘솔에 그려줌. 만약 내가 늑대인간이라면 달의 위상을 관찰할 수 있음.
  • 이 코드, donut.c에 대한 오마주 느낌임
    donut.c 참고 링크
  • 이 코드는 1988년에 파이 값을 계산하던 IOCCC 엔트리와도 살짝 비슷한 느낌을 줌
    1988년 파이 계산 코드 참고
  • Compiler Explorer에서 바로 확인 가능함
    Compiler Explorer 바로 가기
  • 이 코드를 컴파일하는 방법은 아래와 같음
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바이트의 추가 데이터를 담는 게 허용된다는 말임. 의외로 느슨한 규칙임
  • 4993바이트, 어떻게 이렇게 애매하게 정했는지 궁금해짐
  • underhanded-c.org도 다시 오픈됐으면 좋겠음
  • C를 쓰지 말아야 한다는 좋은 논거가 따로 있을까 싶음. 이게 명확하고도 진지한 결론처럼 느껴짐
  • 어떤 언어로든 이런 난해한 코드를 쓸 수 있음. C가 유난히 잘 어울리긴 하지만 대부분의 IOCCC 엔트리는 여러 언어에도 적용 가능한 트릭을 사용함
  • 내가 가장 좋아하는 IOCCC 출품작 중 하나이자 수상작임
    2005년 persano.c 보기
  • 아마 내가 프로그래머라면, 내 작업이 다른 사람들 눈에는 순수한 의미불명의 암호처럼 보일 것임
  • 이건 정말 멋짐
    2024년 macke 엔트리
    이 프로그램은 최소화된 기능만으로 최신 리눅스 시스템을 통째로 실행하는 에뮬레이터임
  • 작성자임. 이 바이너리가 1.6MB로 최신 리눅스를 구동함. 최대한 크기를 줄이기 위해 별의별 방법을 다 썼음. WebAssembly로도 컴파일돼서 브라우저 안에서도 실행 가능하게 됨
  • 이 엔트리가 좀 많이 혼란스러웠음