diff --git a/1990/.gitignore b/1990/.gitignore index a47722c25..7f047df8e 100644 --- a/1990/.gitignore +++ b/1990/.gitignore @@ -1,5 +1,5 @@ baruch/baruch -mills/mills +cmills/cmills dds/dds dg/dg jaw/atob @@ -10,9 +10,9 @@ scjones/scjones stig/o stig/o.c tbr/tbr -mariano/fibonacci -mariano/fibonacci.c -mariano/sorter -mariano/sorter.c -mariano/mariano +theorem/fibonacci +theorem/fibonacci.c +theorem/sorter +theorem/sorter.c +theorem/theorem westley/westley diff --git a/1990/Makefile b/1990/Makefile index 65db600bc..16ad51ce1 100644 --- a/1990/Makefile +++ b/1990/Makefile @@ -53,7 +53,7 @@ include ../var.mk # IOCCC winners ############### # -WINNERS= baruch dds dg jaw mariano mills pjr scjones stig tbr westley +WINNERS= baruch cmills dds dg jaw pjr scjones stig tbr theorem westley YEAR= 1990 diff --git a/1990/cmills/.gitignore b/1990/cmills/.gitignore new file mode 100644 index 000000000..931adc228 --- /dev/null +++ b/1990/cmills/.gitignore @@ -0,0 +1 @@ +cmills diff --git a/1990/mills/Makefile b/1990/cmills/Makefile similarity index 99% rename from 1990/mills/Makefile rename to 1990/cmills/Makefile index 37b584635..0d3166dea 100644 --- a/1990/mills/Makefile +++ b/1990/cmills/Makefile @@ -1,6 +1,6 @@ #!/usr/bin/env make # -# IOCCC 1990 winning entry - mills +# IOCCC 1990 winning entry - cmills ################################################################################ # @@ -163,7 +163,7 @@ endif # Special flags for this entry ############################## # -ENTRY= mills +ENTRY= cmills PROG= ${ENTRY} # OBJ= ${PROG}.o diff --git a/1990/mills/README.md b/1990/cmills/README.md similarity index 96% rename from 1990/mills/README.md rename to 1990/cmills/README.md index a0284f0b2..97f2a0201 100644 --- a/1990/mills/README.md +++ b/1990/cmills/README.md @@ -12,14 +12,14 @@ ### To run - ./mills [starting_cash] + ./cmills [starting_cash] NOTE: we used a patch from Yusuke Endoh to get this to work in modern systems (it resulted in a bus error otherwise). Thank you Yusuke for your assistance! ### Try: - ./mills 5000 + ./cmills 5000 NOTE: this program uses `gets()` so you will likely get a warning under modern @@ -29,7 +29,7 @@ systems. Compile notes: - cc -DM=500 -DN=52 -DX="srand((int)time(0L))" -DV=void -o mills mills.c + cc -DM=500 -DN=52 -DX="srand((int)time(0L))" -DV=void -o cmills cmills.c -DM= -DN=<52 * number of decks used> diff --git a/1990/mills/mills.c b/1990/cmills/cmills.c similarity index 100% rename from 1990/mills/mills.c rename to 1990/cmills/cmills.c diff --git a/1990/mills/.gitignore b/1990/mills/.gitignore deleted file mode 100644 index 435314278..000000000 --- a/1990/mills/.gitignore +++ /dev/null @@ -1 +0,0 @@ -mills diff --git a/1990/mariano/.gitignore b/1990/theorem/.gitignore similarity index 100% rename from 1990/mariano/.gitignore rename to 1990/theorem/.gitignore diff --git a/1990/mariano/Makefile b/1990/theorem/Makefile similarity index 98% rename from 1990/mariano/Makefile rename to 1990/theorem/Makefile index 59fae18eb..235e17082 100644 --- a/1990/mariano/Makefile +++ b/1990/theorem/Makefile @@ -1,6 +1,6 @@ #!/usr/bin/env make # -# IOCCC 1990 winning entry - mariano +# IOCCC 1990 winning entry - theorem ################################################################################ # @@ -165,7 +165,7 @@ endif # Special flags for this entry ############################## # -ENTRY= mariano +ENTRY= theorem PROG= ${ENTRY} # OBJ= ${PROG}.o @@ -191,13 +191,13 @@ ${PROG}: ${PROG}.c ${CC} ${CFLAGS} $< -o $@ ${LIBS} sorter.c: ${PROG} ${PROG}.c - -./mariano -r 0 0 0 0 < mariano.c > sorter.c + -./theorem -r 0 0 0 0 < theorem.c > sorter.c sorter: sorter.c ${CC} ${CFLAGS} sorter.c -o $@ fibonacci.c: sorter ${PROG}.c - -./sorter 0 0 0 0 < mariano.c > fibonacci.c + -./sorter 0 0 0 0 < theorem.c > fibonacci.c fibonacci: fibonacci.c ${CC} ${CFLAGS} fibonacci.c -o $@ diff --git a/1990/mariano/README.md b/1990/theorem/README.md similarity index 100% rename from 1990/mariano/README.md rename to 1990/theorem/README.md diff --git a/1990/mariano/mariano.c b/1990/theorem/theorem.c similarity index 100% rename from 1990/mariano/mariano.c rename to 1990/theorem/theorem.c diff --git a/1991/Makefile b/1991/Makefile index 68e9abd8a..e70318e7b 100644 --- a/1991/Makefile +++ b/1991/Makefile @@ -53,7 +53,7 @@ include ../var.mk # IOCCC winners ############### # -WINNERS= brnstnd buzzard cdupont davidguy dds fine howe rince westley +WINNERS= ant brnstnd buzzard cdupont davidguy dds fine rince westley YEAR= 1991 diff --git a/1991/howe/.gitignore b/1991/ant/.gitignore similarity index 100% rename from 1991/howe/.gitignore rename to 1991/ant/.gitignore diff --git a/1991/howe/Makefile b/1991/ant/Makefile similarity index 99% rename from 1991/howe/Makefile rename to 1991/ant/Makefile index fc119e5fd..4eab4caa8 100644 --- a/1991/howe/Makefile +++ b/1991/ant/Makefile @@ -1,6 +1,6 @@ #!/usr/bin/env make # -# IOCCC 1991 winning entry - howe +# IOCCC 1991 winning entry - ant ################################################################################ # @@ -163,7 +163,7 @@ endif # Special flags for this entry ############################## # -ENTRY= howe +ENTRY= ant PROG= ${ENTRY} # OBJ= ${PROG}.o diff --git a/1991/howe/README.md b/1991/ant/README.md similarity index 99% rename from 1991/howe/README.md rename to 1991/ant/README.md index 543775bc2..99878c512 100644 --- a/1991/howe/README.md +++ b/1991/ant/README.md @@ -12,8 +12,8 @@ ### To run - cp howe.hint hill - ./howe hill + cp README.md hill + ./ant hill ## Judges' comments diff --git a/1991/howe/howe.c b/1991/ant/ant.c similarity index 100% rename from 1991/howe/howe.c rename to 1991/ant/ant.c diff --git a/1992/Makefile b/1992/Makefile index e9d1cd1e8..82ec8b5d5 100644 --- a/1992/Makefile +++ b/1992/Makefile @@ -53,8 +53,8 @@ include ../var.mk # IOCCC winners ############### # -WINNERS= albert buzzard1 buzzard2 gson howe imc kivinen lush marangon \ - mariano nathan vern westley +WINNERS= adrian albert ant buzzard.1 buzzard.2 gson imc kivinen lush marangon \ + nathan vern westley YEAR= 1992 diff --git a/1992/mariano/.gitignore b/1992/adrian/.gitignore similarity index 92% rename from 1992/mariano/.gitignore rename to 1992/adrian/.gitignore index 53400c544..d1f2f4681 100644 --- a/1992/mariano/.gitignore +++ b/1992/adrian/.gitignore @@ -9,4 +9,4 @@ adsleep adsleep.c adwc adwc.c -mariano +adrian diff --git a/1992/mariano/Makefile b/1992/adrian/Makefile similarity index 93% rename from 1992/mariano/Makefile rename to 1992/adrian/Makefile index c9fcea042..c772dc322 100644 --- a/1992/mariano/Makefile +++ b/1992/adrian/Makefile @@ -1,6 +1,6 @@ #!/usr/bin/env make # -# IOCCC 1992 winning entry - mariano +# IOCCC 1992 winning entry - adrian ################################################################################ # @@ -166,7 +166,7 @@ endif # Special flags for this entry ############################## # -ENTRY= mariano +ENTRY= adrian PROG= ${ENTRY} # OBJ= ${PROG}.o @@ -191,20 +191,20 @@ all: data ${TARGET} ${PROG}: ${PROG}.c ${CC} ${CFLAGS} $< -o $@ ${LIBS} ${RM} -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c - ${SED} '1s/\..*\./. wc ./' mariano.c > ad.temp - -./mariano ad.temp adwc.c + ${SED} '1s/\..*\./. wc ./' adrian.c > ad.temp + -./adrian ad.temp adwc.c ${CC} ${CFLAGS} -o adwc adwc.c - ${SED} '1s/\..*\./. basename ./' mariano.c > ad.temp - -./mariano ad.temp adbasename.c + ${SED} '1s/\..*\./. basename ./' adrian.c > ad.temp + -./adrian ad.temp adbasename.c ${CC} ${CFLAGS} -o adbasename adbasename.c - ${SED} '1s/\..*\./. echo| ./' mariano.c > ad.temp - -./mariano ad.temp adecho.c + ${SED} '1s/\..*\./. echo| ./' adrian.c > ad.temp + -./adrian ad.temp adecho.c ${CC} ${CFLAGS} -o adecho adecho.c - ${SED} '1s/\..*\./. head; ./' mariano.c > ad.temp - -./mariano ad.temp adhead.c + ${SED} '1s/\..*\./. head; ./' adrian.c > ad.temp + -./adrian ad.temp adhead.c ${CC} ${CFLAGS} -o adhead adhead.c - ${SED} '1s/\..*\./. sleep ./' mariano.c > ad.temp - -./mariano ad.temp adsleep.c + ${SED} '1s/\..*\./. sleep ./' adrian.c > ad.temp + -./adrian ad.temp adsleep.c ${CC} ${CFLAGS} -o adsleep adsleep.c ${RM} -f ad.temp @@ -241,7 +241,7 @@ clean: clobber: clean ${RM} -f ${TARGET} ${ALT_TARGET} ${RM} -f adbasename adbasename.c adecho adecho.c adgrep adhead - ${RM} -f adhead.c mariano adsleep adsleep.c adwc adwc.c + ${RM} -f adhead.c adrian adsleep adsleep.c adwc adwc.c @-if [ -e sandwich ]; then \ ${RM} -f sandwich; \ echo 'ate sandwich'; \ diff --git a/1992/mariano/README.md b/1992/adrian/README.md similarity index 96% rename from 1992/mariano/README.md rename to 1992/adrian/README.md index 1508d7c95..7582bbbd4 100644 --- a/1992/mariano/README.md +++ b/1992/adrian/README.md @@ -10,13 +10,14 @@ make all -### To run - ./mariano mariano.grep.try < mariano.hint +## Try: - For the slow minded, try: + ./adrian adrian.grep.try < README.md - ./adsleep 32767 +For the slow minded, try: + + ./adsleep 32767 ## Judges' comments @@ -130,7 +131,7 @@ If no filename is specified on the command line, then "adgrep.c" is used as the specification for the automaton. (This file has been renamed - to mariano.c by the judges.) In this case, the program will search for + to adrian.c by the judges.) In this case, the program will search for matches to the regular expression: ^.[^|C][^w[Q]*(Q|[w[]c).*|^.[C|]$ @@ -208,7 +209,7 @@ machine.) The four programs which read from stdin require lines shorter than 999 characters. - The other info files are mariano.grep.[1-6] which contain the six + The other info files are adrian.grep.[1-6] which contain the six examples that appear above, and from, which is used to emulate the unix from command. For reasons of clarity, the name "from" should probably not be changed if possible. I wouldn't want to be accused of diff --git a/1992/mariano/mariano.c b/1992/adrian/adrian.c similarity index 100% rename from 1992/mariano/mariano.c rename to 1992/adrian/adrian.c diff --git a/1992/mariano/mariano.grep.1 b/1992/adrian/adrian.grep.1 similarity index 100% rename from 1992/mariano/mariano.grep.1 rename to 1992/adrian/adrian.grep.1 diff --git a/1992/mariano/mariano.grep.2 b/1992/adrian/adrian.grep.2 similarity index 100% rename from 1992/mariano/mariano.grep.2 rename to 1992/adrian/adrian.grep.2 diff --git a/1992/mariano/mariano.grep.3 b/1992/adrian/adrian.grep.3 similarity index 100% rename from 1992/mariano/mariano.grep.3 rename to 1992/adrian/adrian.grep.3 diff --git a/1992/mariano/mariano.grep.4 b/1992/adrian/adrian.grep.4 similarity index 100% rename from 1992/mariano/mariano.grep.4 rename to 1992/adrian/adrian.grep.4 diff --git a/1992/mariano/mariano.grep.5 b/1992/adrian/adrian.grep.5 similarity index 100% rename from 1992/mariano/mariano.grep.5 rename to 1992/adrian/adrian.grep.5 diff --git a/1992/mariano/mariano.grep.from b/1992/adrian/adrian.grep.from similarity index 100% rename from 1992/mariano/mariano.grep.from rename to 1992/adrian/adrian.grep.from diff --git a/1992/mariano/mariano.grep.try b/1992/adrian/adrian.grep.try similarity index 100% rename from 1992/mariano/mariano.grep.try rename to 1992/adrian/adrian.grep.try diff --git a/1992/ant/.gitignore b/1992/ant/.gitignore new file mode 100644 index 000000000..ef8f8b213 --- /dev/null +++ b/1992/ant/.gitignore @@ -0,0 +1,5 @@ +am +am.safe +ant +node.* +leaf.* diff --git a/1992/howe/Makefile b/1992/ant/Makefile similarity index 99% rename from 1992/howe/Makefile rename to 1992/ant/Makefile index 8ddafabc3..c4a20882f 100644 --- a/1992/howe/Makefile +++ b/1992/ant/Makefile @@ -1,6 +1,6 @@ #!/usr/bin/env make # -# IOCCC 1992 winning entry - howe +# IOCCC 1992 winning entry - ant ################################################################################ # @@ -162,12 +162,12 @@ endif # Special flags for this entry ############################## # -ENTRY= howe +ENTRY= ant PROG= ${ENTRY} # OBJ= ${PROG}.o DATA= -TARGET= ${PROG} +TARGET= ${PROG} am # ALT_OBJ= ALT_TARGET= diff --git a/1992/howe/README.md b/1992/ant/README.md similarity index 95% rename from 1992/howe/README.md rename to 1992/ant/README.md index 02bd41690..51291de9f 100644 --- a/1992/howe/README.md +++ b/1992/ant/README.md @@ -13,7 +13,7 @@ ### To run - ./am howe.test.mk + ./am ant.test.mk ## Judges' comments @@ -33,7 +33,7 @@ ## Author's comments - See the file howe.README. + See the file ant.README. Copyright (c) 1992, Landon Curt Noll & Larry Bassel. All Rights Reserved. Permission for personal, educational or non-profit use is diff --git a/1992/howe/howe.README b/1992/ant/ant.README similarity index 100% rename from 1992/howe/howe.README rename to 1992/ant/ant.README diff --git a/1992/howe/howe.c b/1992/ant/ant.c similarity index 100% rename from 1992/howe/howe.c rename to 1992/ant/ant.c diff --git a/1992/howe/howe.test.mk b/1992/ant/ant.test.mk similarity index 97% rename from 1992/howe/howe.test.mk rename to 1992/ant/ant.test.mk index 686a5f2ff..9b55d5d6d 100644 --- a/1992/howe/howe.test.mk +++ b/1992/ant/ant.test.mk @@ -170,9 +170,9 @@ split.cmd: # Test AM error reports and exit statuses. # errors: - -am test.mk error.1 - -am test.mk error.2 - -am test.mk error.3 + -./am test.mk error.1 + -./am test.mk error.2 + -./am test.mk error.3 # Target that does not exist, has no dependencies, and no commands. error.1: diff --git a/1992/buzzard.1/README.md b/1992/buzzard.1/README.md index 456f92f57..6538bf764 100644 --- a/1992/buzzard.1/README.md +++ b/1992/buzzard.1/README.md @@ -13,24 +13,24 @@ Most Obfuscated Algorithm: ### To run - ./babble 0 10 - ./babble 56 720 - ./babble 1 521 + ./buzzard.1 0 10 + ./buzzard.1 56 720 + ./buzzard.1 1 521 ## Judges' comments - To see good C Preprocessor babble, try: + To see good C Preprocessor buzzard.1, try: - make babble.cppcb - cat babble.cppcb + make buzzard.1.cppcb + cat buzzard.1.cppcb Notice how many statements it takes to do anything useful? ## Author's comments - What you shouldn't think about babble: + What you shouldn't think about buzzard.1: - babble doesn't just do a mass of #defines as its obfuscation. + buzzard.1 doesn't just do a mass of #defines as its obfuscation. What you should be glad about: @@ -40,22 +40,22 @@ Most Obfuscated Algorithm: Cute trick warning: - babble contains only a numeric printf, yet sometimes it prints out + buzzard.1 contains only a numeric printf, yet sometimes it prints out short strings. What it does: - babble is a simple mathematical program. It expects two numeric + buzzard.1 is a simple mathematical program. It expects two numeric arguments. - % babble 0 + % buzzard.1 0 will print out the factorial of . - % babble + % buzzard.1 will print out the largest common factor of num1 and num2. - % babble 1 + % buzzard.1 1 will print out a factor of num2 if it's composite, or else it will print a string informing you that num2 is prime. @@ -65,10 +65,10 @@ Most Obfuscated Algorithm: What it is: - babble is a translator from a pseudo-assembly language into a + buzzard.1 is a translator from a pseudo-assembly language into a subset of C suitable for execution on Charles Babbage's - Analytical Engine. Or rather, the #defines in babble are that - translator. The rest of babble is a babble program. If you run the + Analytical Engine. Or rather, the #defines in buzzard.1 are that + translator. The rest of buzzard.1 is a buzzard.1 program. If you run the whole mess through CPP and a beautifier, you will see that all you have is a loop that runs until a variable is not 0, and a sequence of assignment statements. The assignment statements @@ -99,7 +99,7 @@ Most Obfuscated Algorithm: The simulated comparison operations only work with a certain range of numbers; numbers that are too large will cause the output code to fail to simulate the input code. This means - that this implementation of babble would not be Turing-complete, + that this implementation of buzzard.1 would not be Turing-complete, even if the AE could process indefinitely-sized numbers. However, this is actually a constraint that no actual computer can meet, either, so we can conclude that if an AE, with @@ -113,7 +113,7 @@ Most Obfuscated Algorithm: have any. - Definition of the input language to babble: + Definition of the input language to buzzard.1: (OR What Exactly Do All The Macros Do?) [Don't read this unless you're stumped!] @@ -213,7 +213,7 @@ Most Obfuscated Algorithm: Thanks to Bill Pugh for bringing the loopability of the AE to my attention. - babble was originally named 'cb', for obvious reasons, and is + buzzard.1 was originally named 'cb', for obvious reasons, and is dedicated to the memory of Charles Barrett. Copyright (c) 1992, Landon Curt Noll & Larry Bassel. diff --git a/1992/howe/.gitignore b/1992/howe/.gitignore deleted file mode 100644 index dcf1cb0d7..000000000 --- a/1992/howe/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -am -am.safe -howe diff --git a/1993/.gitignore b/1993/.gitignore index e22307309..1e600ff76 100644 --- a/1993/.gitignore +++ b/1993/.gitignore @@ -1,5 +1,5 @@ ant/ant -mills/mills +cmills/mills dgibson/data.name dgibson/data.name2 dgibson/life.d diff --git a/1993/Makefile b/1993/Makefile index 12af97e4c..b09a744e7 100644 --- a/1993/Makefile +++ b/1993/Makefile @@ -53,7 +53,7 @@ include ../var.mk # IOCCC winners ############### # -WINNERS= dgibson ejb howe jonth leo lmfjyh mills plummer rince schnitzi vanb +WINNERS= cmills dgibson ejb howe jonth leo lmfjyh plummer rince schnitzi vanb YEAR= 1993 diff --git a/1993/howe/.gitignore b/1993/ant/.gitignore similarity index 73% rename from 1993/howe/.gitignore rename to 1993/ant/.gitignore index 2b4e1f31a..ee8d56390 100644 --- a/1993/howe/.gitignore +++ b/1993/ant/.gitignore @@ -1,4 +1,4 @@ ag ag.txt ant -howe +ant diff --git a/1993/howe/Makefile b/1993/ant/Makefile similarity index 99% rename from 1993/howe/Makefile rename to 1993/ant/Makefile index 25ca65cd5..69fdbf54f 100644 --- a/1993/howe/Makefile +++ b/1993/ant/Makefile @@ -1,6 +1,6 @@ #!/usr/bin/env make # -# IOCCC 1993 winning entry - howe +# IOCCC 1993 winning entry - ant ################################################################################ # @@ -160,7 +160,7 @@ endif # Special flags for this entry ############################## # -ENTRY= howe +ENTRY= ant PROG= ${ENTRY} # OBJ= ${PROG}.o diff --git a/1993/howe/README.md b/1993/ant/README.md similarity index 91% rename from 1993/howe/README.md rename to 1993/ant/README.md index 90f765a0e..d5159ef73 100644 --- a/1993/howe/README.md +++ b/1993/ant/README.md @@ -12,14 +12,14 @@ ### To run - ./howe 'ERE' [file ...] + ./ant 'ERE' [file ...] ## Judges' comments You may also want to try the author's test suite: - make -f howe.test.mk + make -f ant.test.mk - See the author's Posix P1003.2-like documentation file howe.txt + See the author's Posix P1003.2-like documentation file ant.txt for more information. This program demonstrates that Posix doesn't guarantee readability. :-) diff --git a/1993/howe/howe.c b/1993/ant/ant.c similarity index 100% rename from 1993/howe/howe.c rename to 1993/ant/ant.c diff --git a/1993/howe/howe.test.mk b/1993/ant/ant.test.mk similarity index 62% rename from 1993/howe/howe.test.mk rename to 1993/ant/ant.test.mk index e253c6ce7..afb54deae 100644 --- a/1993/howe/howe.test.mk +++ b/1993/ant/ant.test.mk @@ -5,28 +5,28 @@ # SHELL=/bin/sh -PRG=./howe +PRG=./ant -all: howe char word anchor literal wild closure option branch sub class +all: ant char word anchor literal wild closure option branch sub class # # Built the entry # -howe: Makefile - make -f Makefile howe +ant: Makefile + make -f Makefile ant # # Test simple text patterns without the use of meta characters. # empty: - $(PRG) '' howe.test.mk + $(PRG) '' ant.test.mk char: - $(PRG) 'q' howe.test.mk + $(PRG) 'q' ant.test.mk word: - $(PRG) 'simple' howe.test.mk + $(PRG) 'simple' ant.test.mk # # Test meta characters. @@ -35,28 +35,28 @@ word: anchor: anchor1 anchor2 anchor3 anchor4 anchor5 anchor1: - $(PRG) '^anchor1' howe.test.mk + $(PRG) '^anchor1' ant.test.mk anchor2: - $(PRG) 'Grep$$' howe.test.mk + $(PRG) 'Grep$$' ant.test.mk # # Find all empty lines. # anchor3: - $(PRG) '^$$' howe.test.mk + $(PRG) '^$$' ant.test.mk # # This is valid but will never match. # anchor4: - -$(PRG) 'x^a' howe.test.mk + -$(PRG) 'x^a' ant.test.mk # # This is valid but will never match. # anchor5: - -$(PRG) 'mk$$x' howe.test.mk + -$(PRG) 'mk$$x' ant.test.mk literal: literal1 literal2 @@ -64,13 +64,13 @@ literal: literal1 literal2 # Every line with a dollar-sign. # literal1: - $(PRG) '\$$' howe.test.mk + $(PRG) '\$$' ant.test.mk # # Every line with a backslash. # literal2: - $(PRG) '\\' howe.test.mk + $(PRG) '\\' ant.test.mk # # wild #1# @@ -78,7 +78,7 @@ literal2: # wild #%# # wild: - $(PRG) '#.#' howe.test.mk + $(PRG) '#.#' ant.test.mk # # closure !! @@ -86,7 +86,7 @@ wild: # closure !xxxxxx! # closure: - $(PRG) 'closure !x*!' howe.test.mk + $(PRG) 'closure !x*!' ant.test.mk # # option ++ @@ -98,45 +98,45 @@ closure: option: option1 option2 option1: - $(PRG) '+b?+' howe.test.mk + $(PRG) '+b?+' ant.test.mk option2: - $(PRG) '+.?+' howe.test.mk + $(PRG) '+.?+' ant.test.mk branch: branch1 branch2 branch3 branch4 branch5 branch6 branch1: - $(PRG) 'q|simple' howe.test.mk + $(PRG) 'q|simple' ant.test.mk # # This pattern should be the same as '(^all)|(Public)|(Grep$)'. # branch2: - $(PRG) '^all|Public|Grep$$' howe.test.mk + $(PRG) '^all|Public|Grep$$' ant.test.mk # # This pattern should generate the same results as branch2. # branch3: - $(PRG) 'Grep$$|^all|Public' howe.test.mk + $(PRG) 'Grep$$|^all|Public' ant.test.mk # # Null expression between start of pattern and vertical-line. # branch4: - $(PRG) '|Grep' howe.test.mk + $(PRG) '|Grep' ant.test.mk # # Null expression between vertical-line and end of pattern. # branch5: - $(PRG) 'Grep|' howe.test.mk + $(PRG) 'Grep|' ant.test.mk # # Null expression between vertical-line and vertical-line. # branch6: - $(PRG) 'all||Grep' howe.test.mk + $(PRG) 'all||Grep' ant.test.mk # # sub aabcbcbcxx @@ -151,49 +151,49 @@ sub: sub0 sub1 sub2 sub3 sub4 sub5 lparen1 lparen2 rparen1 rparen2 # Null sub-expressions. # sub0: - $(PRG) 's()u()b()' howe.test.mk + $(PRG) 's()u()b()' ant.test.mk sub1: - $(PRG) '#(1|%)#' howe.test.mk + $(PRG) '#(1|%)#' ant.test.mk sub2: - $(PRG) 'aa((bc)*|g)xx' howe.test.mk + $(PRG) 'aa((bc)*|g)xx' ant.test.mk # # Null expression between the left-parenthesis and the vertical-line. # sub3: - $(PRG) '#(|1)#' howe.test.mk + $(PRG) '#(|1)#' ant.test.mk # # Null expression between the vertical-line and the right-parenthesis. # sub4: - $(PRG) '#(1|)#' howe.test.mk + $(PRG) '#(1|)#' ant.test.mk # # Null expression between the vertical-line and the right-parenthesis. # sub5: - $(PRG) '#(%||1)#' howe.test.mk + $(PRG) '#(%||1)#' ant.test.mk # # Missing left-parenthesis generates an error. # lparen1: - -$(PRG) 'left ( only' howe.test.mk + -$(PRG) 'left ( only' ant.test.mk lparen2: - $(PRG) 'left \( only' howe.test.mk + $(PRG) 'left \( only' ant.test.mk # # Right-parenthesis without preceding left parenthesis should be a literal. # rparen1: - -$(PRG) 'right ) only' howe.test.mk + -$(PRG) 'right ) only' ant.test.mk rparen2: - $(PRG) 'right \) only' howe.test.mk + $(PRG) 'right \) only' ant.test.mk # # 12345678 @@ -215,26 +215,26 @@ rparen2: class: class1 class2 class3 class4 class5 class6 class7 class8 class1: - $(PRG) '=[09]=' howe.test.mk + $(PRG) '=[09]=' ant.test.mk class2: - $(PRG) '=[^09]=' howe.test.mk + $(PRG) '=[^09]=' ant.test.mk class3: - $(PRG) '=[]]=' howe.test.mk + $(PRG) '=[]]=' ant.test.mk class4: - $(PRG) '=[^]]=' howe.test.mk + $(PRG) '=[^]]=' ant.test.mk class5: - $(PRG) '=[0-9]=' howe.test.mk + $(PRG) '=[0-9]=' ant.test.mk class6: - $(PRG) '=[^0-9]=' howe.test.mk + $(PRG) '=[^0-9]=' ant.test.mk class7: - -$(PRG) '=[3-1]=' howe.test.mk + -$(PRG) '=[3-1]=' ant.test.mk class8: - $(PRG) '=[-13]=' howe.test.mk + $(PRG) '=[-13]=' ant.test.mk diff --git a/1993/howe/howe.txt b/1993/ant/ant.txt similarity index 99% rename from 1993/howe/howe.txt rename to 1993/ant/ant.txt index 8aed2cc35..c68cd843d 100644 --- a/1993/howe/howe.txt +++ b/1993/ant/ant.txt @@ -208,7 +208,7 @@ The following rules and definitions apply to bracket expressions: an ending range point in a range expression. As examples, the expressions [-ac] and [ac-] are equivalent and match any of the characters a, c, or -; the expressions [^-ac] and [^ac-] - are equivalent and match howe character except a, c, -; the + are equivalent and match ant character except a, c, -; the expression [%--] matches any of the characters between % and - inclusive; the expression [--@] matches any of the characters between - and @ inclusive; and the expression diff --git a/1993/cmills/.gitignore b/1993/cmills/.gitignore new file mode 100644 index 000000000..931adc228 --- /dev/null +++ b/1993/cmills/.gitignore @@ -0,0 +1 @@ +cmills diff --git a/1993/mills/Makefile b/1993/cmills/Makefile similarity index 98% rename from 1993/mills/Makefile rename to 1993/cmills/Makefile index 769bc91f8..78c11691d 100644 --- a/1993/mills/Makefile +++ b/1993/cmills/Makefile @@ -1,6 +1,6 @@ #!/usr/bin/env make # -# IOCCC 1993 winning entry - mills +# IOCCC 1993 winning entry - cmills ################################################################################ # @@ -54,7 +54,7 @@ include ../../var.mk #X11_LIBDIR= /usr/X11/lib X11_LIBDIR= /opt/X11/lib -# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# Set X11_INCDIR to the directory where the X11 include files reside # #X11_INCDIR= /usr/X11R6/include #X11_INCDIR= /usr/X11/include @@ -161,7 +161,7 @@ endif # Special flags for this entry ############################## # -ENTRY= mills +ENTRY= cmills PROG= ${ENTRY} # OBJ= ${PROG}.o diff --git a/1993/mills/README.md b/1993/cmills/README.md similarity index 79% rename from 1993/mills/README.md rename to 1993/cmills/README.md index f21eec1ea..e7443a01e 100644 --- a/1993/mills/README.md +++ b/1993/cmills/README.md @@ -10,11 +10,21 @@ make all +NOTE: this entry requires `X11/Xlib.h` header file and the X11 library to +compile. The Makefile sets the additional paths to `/opt/X11/include` (`-I` +flag) and `/opt/X11/lib` (`-L` flag) but you can override it by specifying e.g.: + + make X11_INCDIR=/opt/local/include X11_LIBDIR=/opt/local/lib/ all + +which could compile it under macOS with MacPorts if you have the right packages +installed though it still must be run on an X11 server which means that the +example is just that: an example which might or might not work when running. + ### To run DISPLAY="your_X_server_display" export DISPLAY - ./mills [speed] # must be run on an X11 server + ./cmills [speed] # must be run on an X11 server where: diff --git a/1993/mills/mills.c b/1993/cmills/cmills.c similarity index 100% rename from 1993/mills/mills.c rename to 1993/cmills/cmills.c diff --git a/1993/mills/.gitignore b/1993/mills/.gitignore deleted file mode 100644 index 435314278..000000000 --- a/1993/mills/.gitignore +++ /dev/null @@ -1 +0,0 @@ -mills diff --git a/all/summary.txt b/all/summary.txt index 68f6e2ec5..6fa125c66 100644 --- a/all/summary.txt +++ b/all/summary.txt @@ -52,15 +52,15 @@ 1989 westley reversible, rot13able program that reverses and/or rot13s. 1990 baruch short prog to solve N-queens problem -1990 mills squished blackjack game +1990 cmills squished blackjack game 1990 dds basic interpreter, heavily compressed -1990 dg rot13 done with strange cpp macros +1990 dg rot13 done with strange cpp macros 1990 jaw compress & atob standins -1990 mariano numerically solves the equation y'=f(x,y) 1990 pjr the quick brown fox... cppd, structs of functions 1990 scjones trigraph-abusing self-reproducing program 1990 stig nested-comment tester (all on command line) 1990 tbr simple compressed shell, silly layout +1990 theorem numerically solves the equation y'=f(x,y) 1990 westley poetic exchange between lovers, prints "luvs me, luvs not" 1991 brnstnd sorta stack language @@ -69,31 +69,31 @@ 1991 davidguy plays life on a root window, doesn't need Xlib or include files 1991 dds basic compiler, heavily compressed 1991 fine rot13s lines of input -1991 howe compressed vi-like editor +1991 ant compressed vi-like editor 1991 rince game with sprites, boulders, dimonds, and keys 1991 westley plays tic-tac-toe, compile output for next move, prints board +1992 adrian grep-like utility using a state machine transition language 1992 albert factors multi-precision numbers with factors < MAX_LONG 1992 buzzard.1 print factorial, gcd or prime test using a Babbage-like engine 1992 buzzard.2 forth-like stack machine 1992 gson anagram generator -1992 howe make utility +1992 ant make utility 1992 imc Mandelbrot/Julia drawer 1992 kivinen X11 space invaders, dropout and knockout games 1992 lush prints "Hello, World" using error messages 1992 marangon game to balance a grid of digits to all 5's -1992 mariano grep-like utility using a state machine transition language 1992 nathan obfuscation by (trivial) encryption (source not exported) 1992 vern plays chess 1992 westley print ASCII world map and mark a location by lat/long 1993 dgibson plays the game of like using cpp 1993 ejb tower of Hanoi and patience pizzle -1993 howe egrep utility with Posix-like documentation +1993 ant egrep utility with Posix-like documentation 1993 jonth game of Tetris 1993 leo game of mastermind (cows & bulls) 1993 lmfjyh source is the filename, prints value of __FILE__ -1993 mills X11 program that shatters and bounces windows +1993 cmills X11 program that shatters and bounces windows 1993 plummer prints numbers up to a given value 1993 rince game state machine language, comes with a number of games 1993 schnitzi answers questions about English text in a file diff --git a/winners.html b/winners.html index 20aee4885..bafe89e17 100644 --- a/winners.html +++ b/winners.html @@ -626,9 +626,9 @@ Contest
  • Anthony C. Howe -- http://www.snert.com/ - -

    mariano - grep-like utility using a state machine transition language

    + +

    adrian - grep-like utility using a state machine transition language

    albert - factors multi-precision numbers with factors < MAX_LONG

    @@ -3007,13 +3007,13 @@ Contest
  • baruch.c
  • README.md - +

    mills - squished blackjack game

    dds - basic interpreter, heavily compressed