forked from ioccc-src/winner
/
faq.html
2997 lines (2895 loc) · 180 KB
/
faq.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- START: two lines up starts content from: inc/top.default.html -->
<!-- END: this line ends content from: inc/top.default.html -->
<!-- START: this line starts content from: inc/head.default.html -->
<head>
<link rel="stylesheet" href="./ioccc.css">
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap" rel="stylesheet">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>The International Obfuscated C Code Contest</title>
<link rel="icon" type="image/x-icon" href="./favicon.ico">
<meta name="description" content="IOCCC FAQ">
<meta name="keywords" content="IOCCC, FAQ, questions, answers, Frequently Asked Questions">
</head>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- END: this line ends content from: inc/head.default.html -->
<!-- -->
<!-- This web page was formed via the tool: bin/gen-top-html.sh -->
<!-- The content of main section of this web page came from: faq.md -->
<!-- -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- !!! Do not modify this web page, instead modify the file: faq.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: faq.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: faq.md !!! -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- Markdown content was converted into HTML via the tool: bin/md2html.sh -->
<!-- START: this line starts content from: inc/body.default.html -->
<body>
<!-- END: this line ends content from: inc/body.default.html -->
<!-- START: this line starts content from: inc/topbar.default.html -->
<div class="theader">
<nav class="topbar">
<div class="container">
<div class="logo">
<a href="./index.html" class="logo-link">
IOCCC
</a>
</div>
<div class="topbar-items">
<div class="item">
<span class="item-header">
Entries
</span>
<div class="sub-item">
<div class="outfit-font">
<a href="./years.html" class="sub-item-link">
Winning Entries
</a>
</div>
<div class="outfit-font">
<a href="./authors.html" class="sub-item-link">
People who have won
</a>
</div>
<div class="outfit-font">
<a href="./location.html" class="sub-item-link">
Location of authors
</a>
</div>
<div class="outfit-font">
<a href="./bugs.html" class="sub-item-link">
Bugs & (Mis)features
</a>
</div>
</div>
</div>
<div class="item">
<span class="item-header">
Status
</span>
<div class="sub-item">
<div class="outfit-font">
<a href="./news.html" class="sub-item-link">
IOCCC News
</a>
</div>
<div class="outfit-font">
<a href="./status.html" class="sub-item-link">
Contest status
</a>
</div>
<div class="outfit-font">
<a href="./next/index.html" class="sub-item-link">
Rules & Guidelines
</a>
</div>
</div>
</div>
<div class="item">
<span class="item-header">
FAQ
</span>
<div class="sub-item">
<div class="outfit-font">
<a href="./faq.html" class="sub-item-link">
FAQ
</a>
</div>
<div class="outfit-font">
<a href="./faq.html#submit" class="sub-item-link">
How to enter the IOCCC
</a>
</div>
<div class="outfit-font">
<a href="./faq.html#fix_an_entry" class="sub-item-link">
Fixing IOCCC entries
</a>
</div>
<div class="outfit-font">
<a href="./faq.html#fix_web_site" class="sub-item-link">
Fixing the web site
</a>
</div>
<div class="outfit-font">
<a href="./faq.html#fix_author" class="sub-item-link">
Fixing author info
</a>
</div>
</div>
</div>
<div class="item">
<span class="item-header">
About
</span>
<div class="sub-item">
<div class="outfit-font">
<a href="./index.html" class="sub-item-link">
IOCCC Home
</a>
</div>
<div class="outfit-font">
<a href="./judges.html" class="sub-item-link">
The IOCCC Judges
</a>
</div>
<div class="outfit-font">
<a href="./contact.html" class="sub-item-link">
Contacting the IOCCC
</a>
</div>
<div class="outfit-font">
<a href="./thanks-for-help.html" class="sub-item-link">
Thanks for the help
</a>
</div>
</div>
</div>
</div>
</div>
</nav>
<div class="header-mobile-menu">
<noscript>
<a href="./nojs-menu.html" class="topbar-js-label">
Please Enable JavaScript
</a>
</noscript>
<button id="header-open-menu-button" class="topbar-mobile-menu">
<img
src="./png/hamburger-icon-open.png"
alt="hamburger style menu icon - open state"
width=48
height=48>
</button>
<button id="header-close-menu-button" class="hide-content">
<img
src="./png/hamburger-icon-closed.png"
alt="hamburger style menu icon - closed state"
width=48
height=48>
</button>
<div id="mobile-menu-panel" class="hide-content">
<div class="mobile-menu-container">
<div class="mobile-menu-wrapper">
<div class="mobile-menu-item">
Entries
</div>
<div class="mobile-submenu-wrapper">
<a class="mobile-submenu-item" href="./years.html">
Winning Entries
</a>
<a class="mobile-submenu-item" href="./authors.html">
People who have won
</a>
<a class="mobile-submenu-item" href="./location.html">
Location of authors
</a>
<a class="mobile-submenu-item" href="./bugs.html">
Bugs & (Mis)features
</a>
</div>
</div>
<div class="mobile-menu-wrapper">
<div class="mobile-menu-item">
Status
</div>
<div class="mobile-submenu-wrapper">
<a class="mobile-submenu-item" href="./status.html">
Contest status
</a>
<a class="mobile-submenu-item" href="./next/index.html">
Rules & Guidelines
</a>
<a class="mobile-submenu-item" href="./news.html">
IOCCC News
</a>
</div>
</div>
<div class="mobile-menu-wrapper">
<div class="mobile-menu-item">
FAQ
</div>
<div class="mobile-submenu-wrapper">
<a class="mobile-submenu-item" href="./faq.html">
Frequently Asked Questions
</a>
<a class="mobile-submenu-item" href="./faq.html#submit">
How to enter the IOCCC
</a>
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
Fixing IOCCC entries
</a>
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
Fixing the web site
</a>
<a class="mobile-submenu-item" href="./faq.html#fix_author">
Fixing author info
</a>
</div>
</div>
<div class="mobile-menu-wrapper">
<div class="mobile-menu-item">
About
</div>
<div class="mobile-submenu-wrapper">
<a class="mobile-submenu-item" href="./index.html">
IOCCC Home
</a>
<a class="mobile-submenu-item" href="./judges.html">
The IOCCC Judges
</a>
<a class="mobile-submenu-item" href="./contact.html">
Contacting the IOCCC
</a>
<a class="mobile-submenu-item" href="./thanks-for-help.html">
Thanks for the help
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
headerOpenMenuButton.addEventListener("click", () => {
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
headerOpenMenuButton.classList.add("hide-content");
headerCloseMenuButton.classList.remove("hide-content");
headerCloseMenuButton.classList.add("topbar-mobile-menu");
mobileMenuPanel.classList.remove("hide-content");
mobileMenuPanel.classList.add("topbar-mobile-panel");
});
headerCloseMenuButton.addEventListener("click", () => {
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
headerCloseMenuButton.classList.add("hide-content");
mobileMenuPanel.classList.add("hide-content");
mobileMenuPanel.classList.remove("topbar-mobile-panel");
headerOpenMenuButton.classList.add("topbar-mobile-menu");
headerOpenMenuButton.classList.remove("hide-content");
});
</script>
<!-- END: this line ends content from: inc/topbar.default.html -->
<!-- START: this line starts content from: inc/header.default.html -->
<div class="header">
<a href="./2011/zucker/index.html">
<img src="./png/ioccc.png"
alt="IOCCC image by Matt Zucker"
width=300
height=110>
</a>
<h1>The International Obfuscated C Code Contest</h1>
<h2>Frequently Asked Questions</h2>
</div>
<!-- END: this line ends content from: inc/header.default.html -->
<!-- START: this line starts content from: inc/navbar.empty.html -->
<div class="navbar">
<a class="Right" href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2Ffaq.html">✓</a>
</div>
<!-- END: this line ends content from: inc/navbar.empty.html -->
<!-- START: this line starts content from: inc/before-content.default.html -->
<div class="content" id="content">
<!-- END: this line ends content from: inc/before-content.default.html -->
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- BEFORE: 1st line of markdown file: faq.md -->
<h1 id="faq-table-of-contents">FAQ Table of Contents <!-- XXX - Change the references from _temp-test-ioccc_ to _winners_ when these fixes are merged. --></h1>
<h2 id="section-0---submitting-entries-to-a-new-ioccc">Section 0 - <a href="#faq0">Submitting entries to a new IOCCC</a></h2>
<ul>
<li><a href="#faq0_0">0.0 - How may I submit to the IOCCC?</a></li>
<li><a href="#faq0_1">0.1 - What types of entries have been frequently submitted to the IOCCC?</a></li>
<li><a href="#faq0_2">0.2 - What should I put in my entry’s Makefile?</a></li>
<li><a href="#faq0_3">0.3 - May I use a different source or compiled filename than prog.c or prog?</a></li>
<li><a href="#faq0_4">0.4 - What platform should I assume for my entry?</a></li>
<li><a href="#faq0_5">0.5 - How may I comment or make a suggestion on IOCCC rules, guidelines and tools?</a></li>
<li><a href="#faq0_6">0.6 - What are the IOCCC best practices for using markdown?</a></li>
</ul>
<h2 id="section-1---history-of-the-ioccc">Section 1 - <a href="#faq1">History of the IOCCC</a></h2>
<ul>
<li><a href="#faq1_0">1.0 - How did the IOCCC get started?</a></li>
<li><a href="#faq1_1">1.1 - Why are some years missing IOCCC entries?</a></li>
<li><a href="#faq1_2">1.2 - What is the history of the IOCCC web site?</a></li>
<li><a href="#faq1_3">1.3 - How has the IOCCC size limit rule changed over the years?</a></li>
</ul>
<h2 id="section-2---ioccc-judging-process">Section 2 - <a href="#faq2">IOCCC Judging process</a></h2>
<ul>
<li><a href="#faq2_0">2.0 - How many entries do the judges receive for a given IOCCC?</a></li>
<li><a href="#faq2_1">2.1 - What should I put in the remarks.md file of my entry?</a></li>
<li><a href="#faq2_2">2.2 - Why don’t you publish entries that do not win?</a></li>
<li><a href="#faq2_3">2.3 - How much time does it take to judge the contest?</a></li>
<li><a href="#faq2_4">2.4 - How many judging rounds do you have?</a></li>
<li><a href="#faq2_5">2.5 - Why do some IOCCC entries receive the Grand Prize or Best of Show award?</a></li>
<li><a href="#faq2_6">2.6 - How are IOCCC entries announced?</a></li>
</ul>
<h2 id="section-3---compiling-and-running-ioccc-entries">Section 3 - <a href="#faq3">Compiling and running IOCCC entries</a></h2>
<ul>
<li><a href="#faq3_0">3.0 - What Makefile rules are available to build or clean up IOCCC entries?</a></li>
<li><a href="#faq3_1">3.1 - Why doesn’t this IOCCC entry compile?</a></li>
<li><a href="#faq3_2">3.2 - Why does a IOCCC entry fail on my 64-bit system?</a></li>
<li><a href="#faq3_3">3.3 - Why do some IOCCC entries fail to compile under macOS?</a></li>
<li><a href="#faq3_4">3.4 - Why does clang or gcc fail to compile an IOCCC entry?</a></li>
<li><a href="#faq3_5">3.5 - What is this cb tool that is mentioned in the IOCCC?</a></li>
<li><a href="#faq3_6">3.6 - An IOCCC entry messed up my terminal application, how do I fix this?</a></li>
<li><a href="#faq3_7">3.7 - How do I run an IOCCC entry that requires X11?</a></li>
<li><a href="#faq3_8">3.8 - How do I compile an IOCCC entry that requires SDL1 or SDL2?</a></li>
<li><a href="#faq3_9">3.9 - How do I compile an IOCCC entry that requires (n)?</a></li>
<li><a href="#faq3_10">3.10 - How do I compile and use an IOCCC entry that requires sound?</a></li>
<li><a href="#faq3_11">3.11 - Why do Makefiles use -Weverything with clang?</a></li>
<li><a href="#faq3_12">3.12 - How do I find out how to send interrupt/EOF etc. for entries that require it?</a></li>
<li><a href="#faq3_13">3.13 - Why does an IOCCC entry fail to compile or or fail run?</a></li>
<li><a href="#faq3_14">3.14 - How do I compile and install tcpserver for entries that require it?</a></li>
<li><a href="#faq3_15">3.15 - How do I compile and install netpbm for entries that require it?</a></li>
<li><a href="#faq3_16">3.16 - How do I compile and install libjpeg-turbo for entries that require it?</a></li>
<li><a href="#faq3_17">3.17 - How do I compile and install ImageMagick for entries that require it?</a></li>
<li><a href="#faq3_18">3.18 - How do I compile and install OpenGL for entries that require it?</a></li>
<li><a href="#faq3_19">3.19 - What kind of make(1) compatibility does the IOCCC support and will it support other kinds?</a></li>
</ul>
<h2 id="section-4---changes-made-to-ioccc-entries">Section 4 - <a href="#faq4">Changes made to IOCCC entries</a></h2>
<ul>
<li><a href="#faq4_0">4.0 - Why are some winning author remarks incongruent with the winning IOCCC code?</a></li>
<li><a href="#faq4_1">4.1 - Why were some calls to the libc function gets(3) changed to use fgets(3)?</a></li>
<li><a href="#faq4_2">4.2 - What was changed in an IOCCC entry source code?</a></li>
<li><a href="#faq4_3">4.3 - Why do author remarks sometimes not match the source and/or why are there
other inconsistencies with the original entry?</a></li>
<li><a href="#faq4_4">4.4 - What is the meaning of the file ending in .orig.c in IOCCC entries?</a></li>
</ul>
<h2 id="section-5---helping-the-ioccc">Section 5 - <a href="#faq5">Helping the IOCCC</a></h2>
<ul>
<li><a href="#faq5_0">5.0 - How may I help the IOCCC?</a></li>
<li><a href="#faq5_1">5.1 - How do I report a bug in an IOCCC entry?</a></li>
<li><a href="#faq5_2">5.2 - How may I submit a fix to an IOCCC entry?</a></li>
<li><a href="#faq5_3">5.3 - How may I report an IOCCC web site problem?</a></li>
<li><a href="#faq5_4">5.4 - How may I submit a fix to the IOCCC web site?</a></li>
<li><a href="#faq5_5">5.5 - How may I correct or update IOCCC author information?</a></li>
<li><a href="#faq5_6">5.6 - What should I do if I find a broken or wrong web link?</a></li>
</ul>
<h2 id="section-6---miscellaneous-ioccc">Section 6 - <a href="#faq6">Miscellaneous IOCCC</a></h2>
<ul>
<li><a href="#faq6_0">6.0 - How did an entry that breaks the size rule 2 win the IOCCC?</a></li>
<li><a href="#faq6_1">6.1 - Is there a list of known bugs and (mis)features of IOCCC entries?</a></li>
<li><a href="#faq6_2">6.2 - May I mirror the IOCCC web site?</a></li>
<li><a href="#faq6_3">6.3 - May I use parts of the IOCCC in an article, book, newsletter, or instructional material?</a></li>
<li><a href="#faq6_4">6.4 - Why do you sometimes use the first person plural?</a></li>
<li><a href="#faq6_5">6.5 - What is an author handle?</a></li>
<li><a href="#faq6_6">6.6 - What is a author_handle.json file and how are they used?</a></li>
<li><a href="#faq6_7">6.7 - What is a entry_id?</a></li>
<li><a href="#faq6_8">6.8 - What is the purpose of the .top, .year and .path files?</a></li>
<li><a href="#faq6_9">6.9 - What is the current meaning of the IOCCC terms Author, Entry, and Submission?</a></li>
<li><a href="#faq6_10">6.10 - How does someone make a change to a file and submit that change as a GitHub pull request?</a></li>
<li><a href="#faq6_11">6.11 - Am I allowed to use IOCCC content?</a></li>
<li><a href="#faq6_12">6.12 - What is Mastodon and why does IOCCC use it?</a></li>
<li><a href="#faq6_13">6.13 - How may I find my author handle?</a></li>
</ul>
<h1 id="the-ioccc-faq">The IOCCC FAQ</h1>
<div id="faq0">
<h2 id="section-0-submitting-entries-to-a-new-ioccc">Section 0: Submitting entries to a new IOCCC</h2>
</div>
<div id="faq0_0">
<div id="submit">
<h3 id="faq-0.0-how-may-i-submit-to-the-ioccc">FAQ 0.0: How may I submit to the IOCCC?</h3>
</div>
</div>
<p>To submit your code to the IOCCC, you <strong>MUST</strong> follow these steps:</p>
<ol start="0" type="1">
<li><p>Verify that the IOCCC is open for submissions</p>
<p>Check the <a href="status.json">status.json</a> URL and
check the <a href="news.html#news">IOCCC news</a> to
see of the IOCCC is open.</p>
<p>You may only register for the IOCCC
and you may only submit your entries to the IOCCC when the IOCCC is <strong>OPEN</strong>.</p></li>
<li><p>Read the latest IOCCC rules and review the IOCCC guidelines</p>
<p>Please pay close attention to the <a href="next/rules.html">official IOCCC rules</a>.</p>
<p>You are also <strong>highly encouraged</strong> to review the
<a href="next/guidelines.html">official IOCCC guidelines</a> as they contain important
suggestions, useful hints, and IOCCC humor. :-)</p></li>
<li><p>Register for the IOCCC</p>
<p>The <strong>IOCCC registration procedure</strong> is still being designed.
<!--XXX--> As such, we do not yet have instructions on how to
use the <strong>IOCCC registration procedure</strong>. Once <strong>IOCCC
registration procedure</strong> is ready, we will update this section
with the proper instructions. Watch the <a href="news.html">IOCCC news</a>
for an annoucement about the <strong>IOCCC registration procedure</strong>.</p>
<p>Once you have been registered, you will receive an email message for how to
prepare your entries for submission, and how to upload the compressed tarballs
to our submission portal.</p></li>
<li><p>Obtain the latest mkiocccentry toolkit</p>
<p>If you do not have an mkiocccentry tool directory:</p>
<p>cd some_directory
git clone git@github.com:ioccc-src/mkiocccentry.git
cd mkiocccentry</p>
<p>If you already have an mkiocccentry tool directory:</p>
<p>cd mkiocccentry
git fetch
git rebase</p></li>
<li><p>Make the mkiocccentry toolkit</p>
<p>make clobber all</p></li>
<li><p>Run the mkiocccentry tool to form your entry tarball</p>
<p>./mkiocccentry work_dir prog.c Makefile remarks.md [file …]</p>
<p>where:</p>
<p>work_dir directory where the entry directory and tarball are formed
prog.c path to the C source for your entry</p>
<p>Makefile Makefile to build (make all) and cleanup (make clean & make clobber)</p>
<p>remarks.md Remarks about your entry in markdown format: see <a href="#remarks_md">FAQ 2.1</a> for more info.</p>
<pre><code> NOTE: See the [markdown syntax](https://www.markdownguide.org/basic-syntax) guide.
See also [CommonMark Spec](https://spec.commonmark.org/current/).</code></pre>
<p>[file …] extra data files to include with your entry</p>
<p>NOTE: It is <em>NOT</em> necessary to install the tools to use them as you can run
the tools from the top of the <em>mkiocccentry repo</em> directory just fine.</p>
<p>If <code>mkiocccentry</code> tool indicates that there is a problem with your entry,
especially if it identifies a <a href="next/rules.html#2">rule 2</a> related problem,
you are <strong>strongly</strong> encouraged to revise and correct your entry and
then re-run the <code>mkiocccentry</code> tool.</p>
<p>If you choose to risk violating rules, be sure an explain your reason
for doing so in your <code>remarks.md</code> file.</p></li>
<li><p>Upload your entry to the IOCCC submit server</p>
<p>The <strong>IOCCC submit server</strong> is still being written as of 2024
Mar 10. <!--XXX--> As such, we do not yet have instructions
on how upload your entry to the <strong>IOCCC submit server</strong>. Once
<strong>IOCCC submit server</strong> is ready, we will update this section
with the proper instructions. Watch the <a href="news.html">IOCCC news</a>
for an annoucement of the availability of the <strong>IOCCC submit server</strong>.</p></li>
</ol>
<div id="faq0_1">
<h3 id="faq-0.1-what-types-of-entries-have-been-frequently-submitted-to-the-ioccc">FAQ 0.1: What types of entries have been frequently submitted to the IOCCC?</h3>
</div>
<p>There are types of entries that are frequently submitted to the IOCCC.
While we <strong>do not wish to prevent</strong> people from sending
a submission to the IOCCC on a frequently submitted theme,
we do wish to provide a <strong>fair warning</strong> to those who do.</p>
<h4 id="fair-warnings-on-frequently-submitted-themes">Fair warnings on frequently submitted themes</h4>
<p><strong>IMPORTANT HINT</strong>: It is <strong>not fatal</strong> to send in those types of
entries, it is just <strong>HARDER to win</strong> with such a submission. A
submission on a frequently submitted theme will have to do something
in a <strong>really unique AND interesting way</strong> to even make it into the
final judging rounds. It will have to compete with previous IOCCC
winners based on the same theme.</p>
<p><strong>IMPORTANT HINT</strong>: If you really wish send in an submission on a
frequently submitted theme, be sure that it is obfuscated in several
new and novel ways.</p>
<p><strong>IMPORTANT HINT</strong>: Be sure to <strong>clearly explain</strong> near the beginning
of your <code>remarks.md</code> file, see <a href="#remarks_md">FAQ 2.1</a>,
<strong>why you are submitting a entry based on a frequently
submitted theme</strong> and <strong>how compares with previous IOCCC winners</strong>
of the same theme.</p>
<h4 id="examples-of-frequently-submitted-themes">Examples of frequently submitted themes</h4>
<h5 id="maze-generator">maze generator</h5>
<ul>
<li><a href="1985/shapiro/index.html">1985/shapiro</a></li>
<li><a href="1991/buzzard/index.html">1991/buzzard</a></li>
<li><a href="1995/cdua/index.html">1995/cdua</a></li>
<li><a href="1995/dodsond2/index.html">1995/dodsond2</a></li>
<li><a href="1998/bas1/index.html">1998/bas1</a></li>
</ul>
<h5 id="tic-tac-toenoughts-and-crossesxs-and-os-game">tic-tac-toe/noughts and crosses/Xs and Os game</h5>
<ul>
<li><a href="1991/westley/index.html">1991/westley</a></li>
<li><a href="1996/jonth/index.html">1996/jonth</a></li>
<li><a href="2020/carlini/index.html">2020/carlini</a></li>
</ul>
<h5 id="solitaireothello-game">solitaire/Othello game</h5>
<ul>
<li><a href="1987/lievaart/index.html">1987/lievaart</a></li>
<li><a href="1994/dodsond1/index.html">1994/dodsond1</a></li>
</ul>
<h5 id="generating-small-primes-below-is-the-list-of-all-prime-related-winning-entries">generating small primes (below is the list of all prime related winning entries)</h5>
<ul>
<li><a href="1985/august/index.html">1985/august</a></li>
<li><a href="1988/applin/index.html">1988/applin</a></li>
<li><a href="1994/weisberg/index.html">1994/weisberg</a></li>
<li><a href="1995/makarios/index.html">1995/makarios</a></li>
<li><a href="1996/dalbec/index.html">1996/dalbec</a></li>
<li><a href="2000/bellard/index.html">2000/bellard</a></li>
</ul>
<h5 id="self-reproducing-program">self reproducing program</h5>
<ul>
<li><a href="1990/scjones/index.html">1990/scjones</a></li>
<li><a href="1994/smr/index.html">1994/smr</a> - <em>do not claim your program is the smallest without seeing this entry</em>!</li>
<li><a href="2000/dhyang/index.html">2000/dhyang</a> - <em>this entry set a high bar for entries of this theme</em></li>
</ul>
<h5 id="entries-that-just-print-hello-world">entries that just print “Hello, world!”</h5>
<ul>
<li><a href="1984/anonymous/index.html">1984/anonymous</a></li>
<li><a href="1985/applin/index.html">1985/applin</a></li>
<li><a href="1986/applin/index.html">1986/applin</a></li>
<li><a href="1986/holloway/index.html">1986/holloway</a></li>
<li><a href="1989/jar.1/index.html">1989/jar.1</a></li>
<li><a href="1992/lush/index.html">1992/lush</a></li>
<li><a href="2000/tomx/index.html">2000/tomx</a></li>
</ul>
<h5 id="entries-that-use-some-complex-state-machinetable-to-print-something">entries that use some complex state machine/table to print something</h5>
<ul>
<li><a href="1988/isaak/index.html">1988/isaak</a></li>
<li><a href="1988/phillipps/index.html">1988/phillipps</a></li>
<li><a href="2018/ciura/index.html">2018/ciura</a></li>
<li><a href="2018/giles/index.html">2018/giles</a></li>
</ul>
<h5 id="rot13">rot13</h5>
<ul>
<li><a href="1985/sicherman/index.html">1985/sicherman</a></li>
<li><a href="1989/westley/index.html">1989/westley</a></li>
<li><a href="1990/dg/index.html">1990/dg</a></li>
<li><a href="1991/fine/index.html">1991/fine</a></li>
</ul>
<h5 id="pi-or-e-computation"><strong>pi</strong> or <strong>e</strong> computation</h5>
<ul>
<li><a href="1986/august/index.html">1986/august</a></li>
<li><a href="1988/robison/index.html">1988/robison</a></li>
<li><a href="1988/westley/index.html">1988/westley</a></li>
<li><a href="1989/roemer/index.html">1989/roemer</a></li>
</ul>
<h4 id="the-above-list-of-frequently-submitted-themes-is-not-exhaustive">The above list of frequently submitted themes is not exhaustive</h4>
<h4 id="some-final-thoughts-on-frequently-used-themes">Some final thoughts on frequently used themes</h4>
<p>While it is possible to win a new IOCCC with one of these
<strong>frequently submitted</strong> types of entries, level of the competition from
previous IOCCC entries make it more challenging to be successful.</p>
<p>It is also important to note that the <a href="next/guidelines.html">guidelines</a> often
state something along the lines of:</p>
<pre><code> We tend to dislike programs that: are similar to previous winning entries.</code></pre>
<p><strong>FAIR WARNING</strong>: Be sure to <strong>clearly explain</strong> near the beginning
of your <code>remarks.md</code> file, see <a href="#remarks_md">FAQ 2.1</a>,
<strong>why you are submitting a entry based on a frequently
submitted theme</strong> and <strong>how compares with previous IOCCC winners</strong>
of the same theme.</p>
<div id="faq0_2">
<h3 id="faq-0.2-what-should-i-put-in-my-entrys-makefile">FAQ 0.2: What should I put in my entry’s Makefile?</h3>
</div>
<p>We recommend starting with the <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example">sample
Makefile</a>
as found in the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry GitHub repo</a>,
(renamed as <code>Makefile</code> of course) as a starting point for your
entry’s <code>Makefile</code>.</p>
<p>The <code>Makefile</code> is a file used by the <code>make(1)</code> command that contains
rules and UNIX shell-style commands.</p>
<p>The first and default rule should be the “all” rule and should build your entry’s executable file.</p>
<p>If your entry depends on a particular source file name during compilation or execution,
your <code>Makefile</code> should copy <code>prog.c</code> into the desired filename. For example:</p>
<p>If you are not familiar <code>Makefile</code>s, you might consider the following tutorials:</p>
<ul>
<li><a href="https://www.gnu.org/software/make/manual/make.html#Introduction">GNU make</a></li>
<li><a href="https://opensource.com/article/18/8/what-how-makefile">What is a Makefile and how does it work?</a></li>
<li><a href="https://makefiletutorial.com">Learn Makefiles</a></li>
</ul>
<p>For the <code>make(1)</code> <em>connoisseur</em>: As of 2023, IOCCC judges use <a href="https://www.gnu.org/software/make/">GNU
make compatible</a> <code>make(1)</code>
command that is compatible with GNU Make version 3.81.</p>
<div id="faq0_3">
<h3 id="faq-0.3-may-i-use-a-different-source-or-compiled-filename-than-prog.c-or-prog">FAQ 0.3: May I use a different source or compiled filename than prog.c or prog?</h3>
</div>
<p>While your entry’s source filename, as submitted, must be <code>prog.c</code>, your entry’s <code>Makefile</code>
may copy <code>prog.c</code> to a different filename as part of the compiling/building process. For example:</p>
<pre><code> all: desired_name
desired_name: desired_name.c
cc desired_name.c -o $@
desired_name.c: prog.c
rm -f $@
cp -f prog.c $@
clobber:
rm -f desired_name.c desired_name</code></pre>
<p>We recommend that the <code>make clobber</code> rule remove files that your entry
creates as part of the compiling/building process.</p>
<p>You may also copy the compiled <code>prog</code> into a different file as part of compiling process.
For example:</p>
<pre><code> different_name: prog
rm -f $@
cp -f prog $@</code></pre>
<div id="faq0_4">
<div id="SUS">
<h3 id="faq-0.4-what-platform-should-i-assume-for-my-entry">FAQ 0.4: What platform should I assume for my entry?</h3>
</div>
</div>
<p>Your entry must compile with <strong>clang</strong> or <strong>gcc</strong> and run under at least one flavor of a UNIX
system that conforms to the <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">SUS</a>,
otherwise known as the <a href="https://unix.org/version4/">The Single UNIX Specification Version 4</a>
or <a href="https://unix.org/online.html">later SUS</a>.</p>
<div id="faq0_5">
<div id="feedback">
<h3 id="faq-0.5-how-may-i-comment-or-make-a-suggestion-on-ioccc-rules-guidelines-and-tools">FAQ 0.5: How may I comment or make a suggestion on IOCCC rules, guidelines and tools?</h3>
</div>
</div>
<p>The <a href="judges.html">IOCCC judges</a> to welcome feedback on the <a href="next/rules.html">IOCCC
rules</a>, <a href="next/guidelines.html">IOCCC guidelines</a>
and on the <a href="https://github.com/ioccc-src/mkiocccentry">IOCCC mkiocccentry tools</a>.</p>
<p>To comment on the <a href="next/rules.html">IOCCC rules</a> or the
<a href="next/guidelines.html">IOCCC guidelines</a> please view the
<a href="https://github.com/ioccc-src/temp-test-ioccc/discussions">GitHub discussions for this repo</a>.
If there is an on-going discussion that seems relevant to what you
have to say, consider adding comments to that particular discussion.
Otherwise consider opening a <a href="https://github.com/ioccc-src/temp-test-ioccc/discussions/new/choose">new IOCCC repo
discussion</a>.</p>
<p>To comment on <a href="https://github.com/ioccc-src/mkiocccentry">IOCCC mkiocccentry tools</a>,
please view the <a href="https://github.com/ioccc-src/mkiocccentry/discussions">mkiocccentry repo discussions</a>.
If there is an on-going discussion that seems relevant to what you
have to say, consider adding comments to that particular discussion.
Otherwise consider opening a <a href="https://github.com/ioccc-src/mkiocccentry/discussions/new/choose">new mkiocccentry
discussion</a>.</p>
<p>As a very last resort and/or if you feel the need to engage in a private
discussion with the <a href="judges.html">IOCCC judges</a>, then see
<a href="contact.html">How to contact the IOCCC</a>.</p>
<div id="faq0_6">
<div id="markdown">
<h3 id="faq-0.6---what-are-the-ioccc-best-practices-for-using-markdown">FAQ 0.6: - What are the IOCCC best practices for using markdown?</h3>
</div>
</div>
<p>The IOCCC makes extensive use of <a href="https://daringfireball.net/projects/markdown/">markdown</a>.
For example, we <a href="faq.html#submit">submitting to the IOCCC</a>, we have people
to submit remarks about entry in markdown format. Every
<a href="years.html">winning IOCCC entry</a> uses a <code>README.md</code> markdown file
as the basis for forming the <code>index.html</code> web page for that entry.
All generated HTML pages on the <a href="https://www.ioccc.org/index.html">Official IOCCC web site</a>
start with some markdown content.</p>
<p><strong>IMPORTANT</strong>: Please read the <a href="markdown.html">IOCCC markdown best practices</a> guide
as it lists things you <strong>should not use</strong> in markdown files.</p>
<p>See the <a href="https://www.markdownguide.org/basic-syntax">markdown syntax</a> guide.
See also <a href="https://spec.commonmark.org/current/">CommonMark Spec</a>.</p>
<div id="faq1">
<h2 id="section-1-history-of-the-ioccc">Section 1: History of the IOCCC</h2>
</div>
<div id="faq1_0">
<div id="ioccc_start">
<h3 id="faq-1.0-how-did-the-ioccc-get-started">FAQ 1.0: How did the IOCCC get started?</h3>
</div>
</div>
<p>One day (1984 March 23 to be exact), Larry Bassel and I (Landon Curt
Noll) were working for National Semiconductor’s Genix porting group, we
were both in our offices trying to fix some very broken code.</p>
<p>Larry had been trying to fix a bug in the classic Bourne shell (C code <code>#define</code>d
to death to sort of look like Algol) and I had been working on the finger
program from early BSD (a bug ridden finger implementation to be sure).</p>
<p>We happened to both wander (at the same time) out to the hallway
in Building 7C to clear our heads.</p>
<p>We began to compare notes: ‘<em>You won’t believe the code I am trying to fix</em>’.</p>
<p>And: ’<em>Well you cannot imagine the brain damage level of the code I’m trying to
fix’</em>.</p>
<p>As well as: ’<em>It’s more than bad code, the author really had to try to make it
this bad!</em></p>
<p>After a few minutes we wandered back into my office where I posted a
<a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=789%40nsc.UUCP&rnum=3&filter=0%22">flame to
net.lang.c</a>
inviting people to try and out obfuscate the UN*X source code we had just been working on.</p>
<p>BTW: I (Landon Curt Noll) had to post this <a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=795%40nsc.UUCP&rnum=10&filter=0">typo
correction</a>.
Thus began the tradition of putting typos in the contest rules and guidelines
… to make them more obfuscated of course! :-)</p>
<p>BTW: This posting was made back in the days when AT&T was the evil giant.
Now, Microsoft makes AT&T look mild and kind in comparison. :-( (IMHO) ).</p>
<p>BTW: See the story about the ‘<a href="1993/cmills/index.html">Bill Gates</a>’ award. :-)</p>
<p>OK, back to the story.</p>
<p>We (Larry and I) received a number of entries by email.
When we began to receive messages from outside of the US, Larry and I
decided to include International in the name.</p>
<p>The
<a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=837%40nsc.UUCP&rnum=2&filter=0">1st IOCCC entries</a>
were posted on 17 April 1984.</p>
<p>There were 4 entries that won in 1984:</p>
<ol type="1">
<li><a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=842%40nsc.UUCP&rnum=8&filter=0">(dis)honorable mention</a></li>
<li><a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=843%40nsc.UUCP&rnum=7&filter=0">3rd place</a></li>
<li><a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=844%40nsc.UUCP&rnum=6&filter=0">2nd place</a></li>
<li><a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=845%40nsc.UUCP&rnum=5&filter=0">1st place</a></li>
</ol>
<p>BTW: The (dis)honorable mention wished to remain anonymous.
While many have asked who it was, we have continued to follow the
author’s wish to remain anonymous.</p>
<p>A few years ago, we asked the author if they still wanted to remain anonymous.
They said: ‘<em>Yes, I want to keep my anonymity. But you can tell them that I am well known for my connection to the
C language</em>’. It was not until 2001 that another <a href="2001/anonymous/index.html">anonymous
entry</a> received an award.</p>
<p>BTW: The <a href="1984/mullender/index.html">1984/mullender</a> remains one of my (Landon Curt Noll) all time favorites.</p>
<p>The name used in the posting of the <a href="http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=837%40nsc.UUCP&rnum=2&filter=0">1st winning IOCCC
entry</a>
posting was <strong>I</strong>nternational <strong>O</strong>bfuscated <strong>C</strong> <strong>C</strong>ode <strong>C</strong>ontest or
<strong>IOCCC</strong> for short.</p>
<p>The posting said ‘<em>1st annual</em>’, so in 1985 we held the <a href="years.html#1985">2nd IOCCC contest</a>
and the tradition continues as the longest running contest on the Internet.</p>
<p>P.S. Part of the inspiration for making the IOCCC a contest goes to the
<a href="http://www.bulwer-lytton.com/">Bulwer-Lytton fiction contest</a>.</p>
<div id="faq1_1">
<h3 id="faq-1.1-why-are-some-years-missing-ioccc-entries">FAQ 1.1: Why are some years missing IOCCC entries?</h3>
</div>
<p>Some years, such as 1997, 1999, 2002-2003, 2007-2010, 2016-2017, 2021-2023, no IOCCC was held.</p>
<p>While we try to hold the IOCCC every year, sometime the other demands on the IOCCC judges
so not permit us to hold a new IOCCC.</p>
<p>The pause during the 2021-2023 period was due to the IOCCC judges developing tools to
make is much more likely for the IOCCC to be held in a yearly basis later on.</p>
<div id="faq1_2">
<h3 id="faq-1.2-what-is-the-history-of-the-ioccc-web-site">FAQ 1.2: What is the history of the IOCCC web site?</h3>
</div>
<h4 id="in-the-beginning-of-www.ioccc.org">In the beginning of www.ioccc.org</h4>
<p>The long history of the <a href="https://www.ioccc.org">official IOCCC web site</a> can be
viewed at the <a href="https://web.archive.org">Internet Wayback Machine Wayback Machine</a>.</p>
<p>One can <a href="https://web.archive.org/web/20230000000000*/www.ioccc.org">view several thousand snapshots showing how the IOCCC web site has
evolved</a> going back
as far as <a href="https://web.archive.org/web/19981212030016/https://www.ioccc.org/">1998 Dec 12
www.ioccc.org</a>.</p>
<p>On 2020 Dec 31, the IOCCC source tree was moved to the <a href="https://web.archive.org/web/20210101211346/https://www.ioccc.org/">IOCCC winner
repo</a> on
<a href="https://github.com">GitHub</a>. From this point on, the <a href="https://www.ioccc.org">official IOCCC web
site</a> became a <a href="https://pages.github.com">GitHub Pages</a>
web site.</p>
<h4 id="dec-28-bzip2-compressed-tarball-archive">2020 Dec 28 bzip2 compressed tarball archive</h4>
<p>Furthermore, a bzip2 compressed tarball containing the released
IOCCC entry source code may be found under the
<a href="archive/historic/index.html">archive/historic</a> directory. The file
<a href="archive/historic/archive-all.tar.bz2">archive-all.tar.bz2</a> contains
all years and the individual years are in the form
<code>archive/historic/archive-YYYY.tar.bz2</code>.</p>
<p>These files were obtained from the <a href="https://web.archive.org">Internet Wayback
Machine</a> from the <a href="https://web.archive.org/web/20201228005211/https://www.ioccc.org/">snapshot of the website
on 2020 Dec
28</a>.
See <a href="archive/historic/index.html">archive/historic/index.html</a> for
details about these bzip2 compressed tarballs.</p>
<h4 id="dec-29-official-ioccc-winner-repo">2022 Dec 29 Official IOCCC winner repo</h4>
<p>The <a href="https://github.com/ioccc-src/winner">Official IOCCC winner repo</a>
was <a href="https://github.com/ioccc-src/winner/commit/28efc67f5dd692a3544708bf7fa26286adb82dfb">created on 2020 Dec
29</a>.</p>
<h4 id="dec-30-ioccc-content-uploaded-to-github">2020 Dec 30 IOCCC content uploaded to GitHub</h4>
<p>An <a href="https://www.ioccc.org/judges.html">IOCCC judge</a> formed a local
directory <a href="https://git-scm.com">git</a> repo on <strong>Tue Dec 29 23:48:30
2020 -0800</strong> via <a href="https://github.com/ioccc-src/winner/commit/28efc67f5dd692a3544708bf7fa26286adb82dfb">commit
28efc67f5dd692a3544708bf7fa26286adb82dfb</a>
and then on <strong>Wed Dec 30 16:57:03 2020 -0800</strong> added a preview of
1984-2019 via <a href="https://github.com/ioccc-src/winner/commit/c0663537cb88d39b74285a930ff1a668c6d5968b">commit
c0663537cb88d39b74285a930ff1a668c6d5968b</a>.</p>
<p>On 2020 Dec 30, with <a href="https://github.com/ioccc-src/winner/commit/c0663537cb88d39b74285a930ff1a668c6d5968b">commit
c0663537cb88d39b74285a930ff1a668c6d5968b</a>,
the <a href="https://web.archive.org/web/20221231001721/https://www.ioccc.org/">official IOCCC web site of 2022 Dec
29</a> was
uploaded into the <a href="https://github.com/ioccc-src/winner">Official IOCCC winner
repo</a>.</p>
<h4 id="ioccc-winning-entries-released-using-git-via-github">2020 IOCCC winning entries released using git via GitHub</h4>
<p>The <a href="https://github.com/ioccc-src/winner/commit/9d61fc0fb4a3245afb1435458cfb597fad0e8e6a">winning
entries</a>
of the <a href="years.html#2020">IOCCC 2020</a>,
after a far too long of a delay
(due in part to a <a href="https://github.com/ioccc-src/winner/commit/c94fc84c35dc83e3eb9900720b95917a15c27afe">former IOCCC judge whose resignation was noted on
2021 Jan 04</a> commit)
from their initial <a href="https://web.archive.org/web/20200726232505/http://www.ioccc.org:80/index.html">2020 Jul 25
announcement</a>,
were added by an <a href="https://www.ioccc.org/judges.html">IOCCC judge</a>
to their local <a href="https://git-scm.com">git</a> repository and then were
merged into the <a href="https://github.com/ioccc-src/winner/commit/b1638ff0012964d79ab1c44aa815d3f824f35b6c">Official IOCCC winner repo on 2020 Dec
31</a>.</p>
<p>These <a href="years.html#2020">2020 IOCCC winning entries</a>,
as shown in the <a href="https://web.archive.org">Internet Wayback Machine</a>
<a href="https://web.archive.org/web/20210102042216/www.ioccc.org/years.html">snapshot of 2021 Jan 02</a>
were the first IOCCC entries to have been released via
<a href="https://git-scm.com">git</a> and <a href="https://github.com">GitHub</a>.</p>
<h4 id="dec-30-thru-202y-mmm-dd---work-on-the-temp-test-ioccc-github-repo">2020 Dec 30 thru 202y MMM DD - Work on the temp-test-ioccc GitHub repo</h4>
<p>Starting on <a href="https://github.com/ioccc-src/winner/commit/2f20ae8451ada03f4601ac727d10e1d8630861a8">2020 Dec
30</a>
edits to the <a href="https://github.com/ioccc-src/winner">Official IOCCC winner
repo</a> began.</p>
<p>The local <a href="https://git-scm.com">git</a> repository of an <a href="https://www.ioccc.org/judges.html">IOCCC
judge</a> was <a href="https://github.com/ioccc-src/winner/commit/c0663537cb88d39b74285a930ff1a668c6d5968b">edited starting Wed
Dec 30 16:57:03 2020
-0800</a>
and was occasionally committed to the <a href="https://github.com/ioccc-src/winner">Official IOCCC winner
repo</a>.</p>
<p>The <a href="https://github.com/ioccc-src/winner/pull/2">first accepted pull request</a> to
the <a href="https://github.com/ioccc-src/winner">Official IOCCC winner repo</a> was made
by <a href="https://www.ioccc.org/winners.html#Yusuke_Endoh">Yusuke Endoh</a> on <a href="https://github.com/ioccc-src/winner/commit/84c62c4cbf56ac1351ea91e5019f51103615fda2">2021 Jan
5</a>.</p>
<p>Between <a href="https://github.com/ioccc-src/winner/commit/c0663537cb88d39b74285a930ff1a668c6d5968b">Wed Dec 30 16:57:03 2020
-0800</a>
and <a href="https://github.com/ioccc-src/winner/commit/098a3e7e04d43e480ecc4b5482c83274e1434002">Sat Jan 29 21:56:53 2022
-0800</a>,
an <a href="https://www.ioccc.org/judges.html">IOCCC judge</a> made edits to
their local repository with occasional pushes to the <a href="https://github.com/ioccc-src/winner">Official IOCCC winner
repo</a> and the <a href="https://www.ioccc.org/index.html">Official
www.ioccc.org web site</a>. After
that time and until the <strong>Great Fork Merge</strong>, very few changes
were made to the <a href="https://github.com/ioccc-src/winner">Official IOCCC winner
repo</a> and the <a href="https://www.ioccc.org/index.html">Official
www.ioccc.org web site</a> most of
which were news updates.</p>
<p>While the <a href="https://github.com/ioccc-src/temp-test-ioccc">temp-test-ioccc
repo</a> has history
going back to <a href="https://github.com/ioccc-src/temp-test-ioccc/commit/28efc67f5dd692a3544708bf7fa26286adb82dfb">2020 Dec
29</a>,
the repo was forked on <strong>Sun Sep 18 17:30:00 2022 -0700</strong>. The
first <a href="https://github.com/ioccc-src/temp-test-ioccc/commit/edbc3089e1b755d85a020af7975bbc7df3737a5f">push into the temp-test-ioccc
repo</a>
occurred on Sun Sep 18 11:15:49 2022 -0700.</p>
<p>At this same time, the <a href="https://ioccc-src.github.io/temp-test-ioccc/">temp-test-ioccc web site</a> went live.</p>
<p>Edits were made by an <a href="https://www.ioccc.org/judges.html">IOCCC judge</a>
to their local <a href="https://git-scm.com">git</a> repository and <a href="https://github.com/ioccc-src/temp-test-ioccc/commit/2f20ae8451ada03f4601ac727d10e1d8630861a8">were pushed into the temp-test-ioccc
repo</a>
and to the <a href="https://ioccc-src.github.io/temp-test-ioccc/">temp-test-ioccc web site</a>.</p>
<p>The <a href="https://github.com/ioccc-src/temp-test-ioccc/pull/15">first accepted pull request</a>
made directly to the <a href="https://github.com/ioccc-src/temp-test-ioccc">temp-test-ioccc
repo</a> on
<a href="https://github.com/ioccc-src/temp-test-ioccc/commit/11bb36ac8ce790f32a9a3e5d2131ee12820fb8ec">Wed Feb 22 05:44:55 2023 -0800 with commit
11bb36ac8ce790f32a9a3e5d2131ee12820fb8ec</a>
by <a href="https://www.ioccc.org/winners.html#Cody_Boone_Ferguson">Cody Boone
Ferguson</a>.</p>
<p>A <a href="https://github.com/ioccc-src/temp-test-ioccc/discussions/1918">decision was made by the
IOCCC</a> to
mostly use frequent commits to individual components of the IOCCC,
rather than to use occasional site wide massive updates in order
to improve the tractability of changes made to components of the
IOCCC such as IOCCC entries although occasionally site wide updates
were performed in order to address an issue common to many IOCCC
entries. And while some people prefer infrequent updates to a repo
the <a href="https://www.ioccc.org/judges.html">IOCCC judges</a> believe
the ability to trace changes with commit messages is important.</p>
<p>Changes to the IOCCC content included things such as:</p>
<ul>
<li>Moving IOCCC entries into their own separate directories.</li>
<li>Establishing a detailed manifest for an IOCCC winning entries.</li>
<li>Fixing lots and lots of typos.</li>
<li>Fixing Makefiles and code to allow for nearly all winning entries to be
compiled with/in modern systems.</li>
<li>Fixing Makefiles and code to allow for nearly all winning entries to run
with/in modern systems.</li>
<li>Reworking the Makefiles to use a consistent set of rules.</li>
<li>Reworking the Makefiles specific to the gcc and clang C compilers.</li>
<li>Replacing the various hint files with a index.html markdown (from README.md
files) that is more consistent across IOCCC years.</li>
<li>Generating HTML content from markdown files and JSON data files via a <a href="bin/index.html">set of
tools and scripts</a>.</li>
<li>Setting up a system whereby authors of IOCCC entries may update their own
contact information via a <a href="https://github.com/ioccc-src/temp-test-ioccc/pulls">GitHub pull
request</a>.</li>
<li>Setting up to generate the top level <a href="years.html">years.html</a> file via the
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/bin/gen-years.sh">gen-years.sh</a> tool.</li>
<li>Setting up to generate the top level <a href="authors.html">authors.html file</a>, renamed
from <code>winners.html</code>, via the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/bin/gen-authors.sh">gen-authors.sh</a> tool.</li>
<li>Making use of a new and improved <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/ioccc.css">IOCCC CSS</a> for web site consistency</li>
<li>Etc.</li>
</ul>
<h4 id="y-mm-dd-the-great-fork-merge">202y mm dd The Great Fork Merge <!-- XXX - Fill in the date when Great Fork Merge happens --></h4>
<p>As of 2024 Mar 5 <a href="https://github.com/ioccc-src/temp-test-ioccc">temp-test-ioccc
repo</a>
there were <a href="https://github.com/ioccc-src/winner/compare/master...ioccc-src:temp-test-ioccc:master">4513 commits ahead</a>
of the <a href="https://github.com/ioccc-src/winner">IOCCC winner repo</a>.</p>
<p>On 202y mm dd, the temporary repo was merged back into the <a href="https://github.com/ioccc-src/winner">IOCCC winner
repo</a> resulting in many, many substantial improvements
to the <a href="https://www.ioccc.org">official IOCCC web site</a>.</p>
<div id="faq1_3">
<div id="size_rule">
<h3 id="faq-1.3-how-has-the-ioccc-size-limit-rule-changed-over-the-years">FAQ 1.3: How has the IOCCC size limit rule changed over the years?</h3>
</div>
</div>
<p>The IOCCC size rule has changed over the years.</p>
<p>In later years, Rule 2 was split into two parts. These two parts of Rule 2 are:</p>
<ul>
<li>Rule 2a: Overall size limit of “prog.c”</li>
<li>Rule 2b: Size of “prog.c”, w/o counting certain types of characters</li>
</ul>
<h4 id="ioccc-1984-1985">IOCCC 1984-1985</h4>
<p>NOTE: The size rule was actually rule 1.</p>
<ul>
<li>Rule 2a: 512</li>
<li>Rule 2b: n/a</li>
</ul>
<h4 id="ioccc-1986-1987">IOCCC 1986-1987</h4>
<p>NOTE: The size rule was actually rule 1.</p>
<ul>
<li>Rule 2a: 1024</li>
<li>Rule 2b: n/a</li>
</ul>
<h4 id="ioccc-1988-1991">IOCCC 1988-1991</h4>
<p>NOTE: The size rule was actually rule 1.</p>
<ul>
<li>Rule 2a: 1536</li>
<li>Rule 2b: n/a</li>
</ul>
<h3 id="ioccc-1992-2000">IOCCC 1992-2000</h3>
<ul>
<li>Rule 2a: 3217</li>
<li>Rule 2b: 1536</li>
</ul>
<h3 id="ioccc-2001-2012">IOCCC: 2001-2012</h3>
<ul>
<li>Rule 2a: 4096</li>
<li>Rule 2b: 2048</li>
</ul>
<h3 id="ioccc-2013-2020">IOCCC 2013-2020</h3>
<ul>
<li>Rule 2a: 4096</li>
<li>Rule 2b: 2053</li>
</ul>
<h3 id="ioccc-2024-date">IOCCC 2024-date</h3>
<ul>