From e10621d60aaa2b94b52f069335ae54afdcc0e3c2 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sat, 3 Feb 2024 08:19:03 -0800 Subject: [PATCH] update index.html and .winner.json per recent manifest changes --- 1988/spinellis/index.html | 6 - 2013/endoh3/index.html | 32 +++- 2013/endoh4/index.html | 52 ++++-- 2013/hou/index.html | 19 +- 2013/morgan1/index.html | 16 +- 2014/vik/index.html | 11 +- 2018/anderson/index.html | 7 +- 2018/bellard/index.html | 27 +-- 2018/ciura/index.html | 10 +- 2018/ferguson/index.html | 371 +++++++++++++++++++++++--------------- 2019/ciura/index.html | 3 + 2019/giles/index.html | 15 +- 2020/endoh3/index.html | 8 +- 2020/ferguson1/index.html | 2 - 2020/ferguson2/index.html | 2 - 2020/otterness/index.html | 11 +- 16 files changed, 363 insertions(+), 229 deletions(-) diff --git a/1988/spinellis/index.html b/1988/spinellis/index.html index 816477a84..9235958a4 100644 --- a/1988/spinellis/index.html +++ b/1988/spinellis/index.html @@ -178,12 +178,6 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/spinellis/sp href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/spinellis/spinellis.orig.c">spinellis.orig.c - original source
./endoh3This program plays sound. See FAQ 3.10 - +How do I compile and use an IOCCC winner that requires sound? if you +do not know how to set your system up for this or if you want to verify +that everything is oky.
Trying this out will depend on how your system can play sounds. The -author’s remarks include some options for different operating -systems.
-The simplest way is to create a .wav file and have your system play -that.
-echo 'CDEFGABc' | ./endoh3 | ruby wavify.rb > cde.wavObserve how you will need ruby installed.
-There are also some other musical samples, twinkle.abc and -menuet.abc.
+./try.sh
+
+./try.sh ABC
+
+./try.sh test.abc yankee.abc
+
+./try.sh *.abcThe script will check for SoX first and next padsp from
+PulseAudio and finally if neither are found if you have
+ruby(1) installed it’ll use the included ruby script to
+convert it to a WAV file for you to play.
If no args are passed to the script it will play twinkle.abc and the string ABC.
+Otherwise while there’s a remaining arg if it’s a file it will run the
+program on the file. If it’s not a file it’ll run it as a string.
The *.abc files are provided as music samples.
This program can toot out a tune that is small enough to posted to most social media platforms that have small message length limits.
@@ -315,6 +326,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh3/menue href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh3/test.abc">test.abc - sample inputmakeIf you wish to change the size (see the Author’s remarks below) you can do so with
+the SIZE variable. For instance you can do:
make clobber SIZE=50,50 allbut you can also do this directly with the endoh4.sh script as described below.
+The current status of this entry is:
+STATUS: INABIAF - please **DO NOT** fix
+For more detailed information see 2013 +endoh4 in bugs.md.
./endoh4 < file
-./run.sh file./endoh4 < file
+./endoh4.sh fileThe second form is preferable as it will temporarily make the cursor
-invisible as recommended by the author. If no file is specified in
-run.sh command line it will feed to the program ./endoh4.sh command line it will feed to the program endoh4.c.
./run.sh cube.txt./endoh4.sh cube.txtHit ctrl-c to end the program.
The author recommends the use of xterm.
For an example, if you are a football/soccer fan, try:
-./run.sh solids/archimedian-solid/a11-truncated-icosahedron.txt./endoh4.sh solids/archimedian-solid/a11-truncated-icosahedron.txtYou can provide more than one file:
+./endoh4.sh solids/archimedian-solid/a11-truncated-icosahedron.txt cube.txtHit ctrl-c/intr to go to the next file.
+If you wish to change the size to 50,50 without passing
+any arg:
SIZE=50,50 ./endoh4.shNot specifying a file feeds endoh4.c to the +program.
This program is formatted as the net for a tetrahedron (hint: try
-feeding the program it’s own source code like ./run.sh).
+feeding the program it’s own source code like ./endoh4.sh).
When it runs there is an animation for the computation to work out the
convex hull.
(Note that this program does not use math.h.)
I think it conforms with both C89 and C99. I confirmed that it worked
-on gcc, clang, and tcc. It should not be warned with
+on gcc, clang, and tcc. It should not trigger warnings with
-pedantic and -Wextra.
You may want to use tput to hide the terminal
cursor.
tput civis
-./endoh4 < cube.txt
-tput cnormtput civis
+./endoh4 < cube.txt
+tput cnormor
-./run.sh cube.txt./endoh4.sh cube.txtYou can change the screen size. Let the aspect ratio be about 3:1.
-cc -DS=120,40 -o endoh4 endoh4.ccc -DS=120,40 -o endoh4 endoh4.cThe shape of this code is the geometric net of a regular tetrahedron. So, try:
-./endoh4 < endoh4.c # or ./run.sh./endoh4 < endoh4.c # or ./endoh4.shThe solids/ directory includes various solid data:
./hou BIG
-./hou old_default.scene BIG
-./hou otherroom.scene
-./hou otherroom.scene NAIVETry opening the file and then let the program run a while and every -so often reopen the file, to see how it changes. The author suggests -that you leave the program running overnight to see what happens. If -however you do not have all night :-) then the following JPEG files -should show you what happens with some of the invocations above:
+./try.shTry opening the file noted by the program then let the program run a +while and every so often reopen the file, to see how it changes. The +author suggests that you leave the program running overnight to see what +happens. If however you do not have all night :-) then the following +JPEG files should show you what happens with some of the invocations +above:
@@ -380,6 +378,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/old_defa
makeecho "2013/10/03" | ./morgan1echo "YYYY/MM/DD" | ./morgan1where YYYY is the four digit year, MM is
+the two digit month and DD is two digit day of the
+month.
echo "1985/10/28" | ./morgan1
-
-echo "1996/12/31" | ./morgan1
-
-echo "1986/03/31" | ./morgan1 # Comet Halley (look for 'Ha')
-
-echo "1997/04/01" | ./morgan1 # Comet Hale-Bopp (look for 'Hb')./try.shTry pressing the arrow keys when your focus is in the window.
To verify the output, try echoing the date of an evening with a clear @@ -242,6 +239,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/morgan1/Make
For more detailed information see 2014 vik in bugs.md.
./prog > foo.cecho foo | ./prog > audio_file.raw
+
+echo foo | ./prog | mplayer -demuxer rawaudio -echo 'Want to hear me beep?' | ./prog > audio_file.raw
-
-echo 'No. I want chocolate!' | ./prog | mplayer -demuxer rawaudio -./try.shThe alternate code, prog.alt.c, is based on the author’s instructions on how to get it to work with Windows.
@@ -212,6 +212,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/vik/prog.altmake altUse prog.alt as you would prog above.
./try.alt.shWith this entry, you won’t need to turn your monitor upside down!
cc -Wall -Wextra -Wpedantic -O3 -std=c11 prog.c -o progcc -Wall -Wextra -Wpedantic -O3 -std=c11 prog.c -o progAlso works with a standard of C99, but C90/C89 will not compile due
to for loop initial declarations, along with additional
warnings about variable length arrays and lack of a return
@@ -203,6 +205,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/anderson/pro
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/anderson/prog.orig.c">prog.orig.c
- original source
./prog > lena.ppmeog lena.ppm # On Linux
-open -a Preview lena.ppm # On macOS
-
-pngtopam < Lenna.png | pnmscale 0.25 | cjpeg -arithmetic -dct float -quality 14 > small.jpgNOTE: pngtopam(1) (or pngtopnm(1) for older
-versions) and pnmscale come from the netpbm project and
-cjpeg(1) comes from libjpeg-turbo. If you
-don’t have these tools already see FAQ 3.15 -
-How do I compile and install netpbm for entries that require it? and
-FAQ 3.16 - How do I compile and install
-libjpeg-turbo for entries that require it?.
First open Lenna.png in your graphics viewer
+of choice. Next, after running the above command
+(./prog > lena.ppm), open lena.ppm in your
+graphics viewer of choice. After that try:
./try.shNOTE: the script uses the tools pngtopam(1) (or
+pngtopnm(1) for older versions) and pnmscale
+come from the netpbm project and cjpeg(1) comes from
+libjpeg-turbo. If you don’t have these tools already see FAQ 3.15 - How do I compile and install netpbm for
+entries that require it? and FAQ 3.16 -
+How do I compile and install libjpeg-turbo for entries that require
+it?.
NOTE: Lenna.png is from https://upload.wikimedia.org/wikipedia/en/7/7d/Lenna_%28test_image%29.png.
@@ -222,6 +224,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/bellard/prog href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/bellard/prog.orig.c">prog.orig.c - original source./prog < text./prog < Makefile
-./prog < README.md./try.shAn alternate version of this entry, prog.alt.c, is provided. As mentioned in the @@ -135,6 +134,10 @@ useful bug fix.
make altUse prog.alt as you would prog above.
./try.alt.shDo you spot the fix by running both try.sh and +try.alt.sh?
This text was processed by prog. You may get confused.
We’re not really sure: prog.c wasn’t commented. Who
@@ -398,6 +401,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ciura/prog.o
./weasel./try.sh./try.sh
+
+# For those who believe in '"intelligent" design' or want to see how easy it is
+# to prove evolution is a proven fact:
+./id.sh
+
+# For those who want to see if Eric the monkey can type the word 'words' before
+# falling asleep or giving up:
+./monkey-words.shNOTE: the try.sh script will run the other two +scripts but if the first one, id.sh is terminated +early in the try script, the second one, monkey-words.sh will not be run.
+You can reconfigure certain values. These are described by the author +in more detail in the S, M and N Constants +section. The script above will make use of some of these.
This version has a simpler keyboard (fewer characters). The author wrote more about this under the keyboards @@ -137,7 +152,27 @@ section.
Use weasel.alt as you would weasel
above.
./try.alt.sh./try.alt.sh
+
+# For those who believe in '"intelligent" design' or want to see how easy it is
+# to prove evolution is a proven fact:
+./id.alt.sh
+
+# For those who want to see if Eric the monkey can type the word 'words' before
+# falling asleep or giving up:
+./monkey-words.alt.shNOTE: the try.alt.sh script will run the +other two scripts but if the first one, id.alt.sh is terminated early in the try script, +the second one, monkey-words.alt.sh +will not be run.
+You can reconfigure certain values. These are described by the author +in more detail in the S, M and N Constants +section. The script above will make use of some of these.
+./try.alt.shYou can reconfigure certain values. These are described by the author +in more detail in the S, M and N Constants +section. The script above will make use of some of these.
Looking back over the strata of past IOCCC entries, this program marks a new mutation on our understanding of sequencing of code. In @@ -153,7 +188,7 @@ which us Homo sapiens hang from the phylogenetic tree of life.
code era, while using more Cenozoic minded code migration, read rpm.md.If you find yourself in an evolutionary dead end, try:
-man ./weasel.1man ./weasel.1man ./weasel.manman ./weasel.manIf that isn’t sufficient I would recommend reading this section (and possibly the next) where I attempt to give a brief explanation of the sections to make reading it easier and @@ -215,10 +250,11 @@ after.
techniques that might not be used.How to build: Here I describe
briefly the constants that can be redefined
-S and N: the maximum size of the chromosome
-(target string; the maximum length is S - 1 but it must be
->= the default 38) and the number of offspring, respectively. I also
-give example compiler invocations, S, M and N: the maximum size of
+the chromosome (target string; the maximum length is S - 1
+but it must be >= the default 38), the number of maximum attempts
+before giving up and the number of offspring, respectively. I also give
+example compiler invocations, portability notes, an more
portability notes and a note on rpm.md.
On the subject of S and N: As the judges’
@@ -458,18 +494,18 @@ means you’ll need to quote the string if it has more than one word (that
is it contains spaces) or anything else interpreted specially by your
shell e.g. parentheses. For instance if you just want to find
METHINKS you could do one of:
./weasel METHINKS
-./weasel "METHINKS"
-./weasel 'METHINKS'If you wanted YOU ARE A MONKEY:
./weasel "YOU ARE A MONKEY"
-./weasel 'YOU ARE A MONKEY'If you do one of:
+class="sourceCode sh">./weasel METHINKS
+./weasel "METHINKS"
+./weasel 'METHINKS'
+If you wanted YOU ARE A MONKEY:
./weasel "METHINKS IT IS A" "MONKEY"
-./weasel METHINKS IT IS A MONKEY./weasel "YOU ARE A MONKEY"
+./weasel 'YOU ARE A MONKEY'
+If you do one of:
+./weasel "METHINKS IT IS A" "MONKEY"
+./weasel METHINKS IT IS A MONKEY
It will search for MONKEY in both cases; in other words
it’s the last one. If the string is too long given the value of
@@ -479,14 +515,14 @@ truncated.
If you actually do want to search for a string starting with a
- you must disable further parsing of options by using the
- option itself; for example if you were to do any of:
./weasel -q- -- -test
-./weasel -q- -test
-./weasel -q -- -test./weasel -q- -- -test
+./weasel -q- -test
+./weasel -q -- -testThe target string will be: -TEST. This means though that
here:
./weasel -q -- -test -r5./weasel -q -- -test -r5The string to be searched would actually be -r5 and the
mutation rate will remain the default because after the -
option is seen it will no longer parse additional options: only target
@@ -497,8 +533,8 @@ three above are equivalent i.e. the following two are equivalent:
As for the caveat I referenced what does the following do?
./weasel -qr 5./weasel -qr 5In fact it will set quiet output and set the target string to be ‘5’.
So the mutation rate will be out of range, thus enabling that Easter
egg, but it will likely come to an answer fairly quickly because it’s
@@ -507,21 +543,21 @@ option; if the program is currently parsing argv[N], for
example, and it encounters a -- then depending on where the
other options are in the command line it might still parse the options.
Thus you have:
$ ./weasel -qr-r5
-quiet output
-mutation rate out of range
-target 'METHINKS IT IS LIKE A WEASEL'
-mutation rate 5
-Generation 440 Offspring 20: METHINKS IT IS LIKE A WEASEL$ ./weasel -qr-r5
+quiet output
+mutation rate out of range
+target 'METHINKS IT IS LIKE A WEASEL'
+mutation rate 5
+Generation 440 Offspring 20: METHINKS IT IS LIKE A WEASELSimilarly this would set quiet output, then an invalid mutation rate and then a mutation rate of 5:
-./weasel --qrr5If you were instead to do one of (for example):
./weasel -q -- -r
-./weasel -q -q- -r./weasel --qrr5
+If you were instead to do one of (for example):
+./weasel -q -- -r
+./weasel -q -q- -rThen it would set quiet output then see the --
(the - option itself) and then the target string would
literally be set to -r because it no longer cares
@@ -555,16 +591,16 @@ If yes how do we know if monkey mode was specially requested? There are
at least two ways to go about it: I took the monkey safe (‘fool safe’)
method; *if you explicitly request monkey mode you cannot disable it in
the same invocation of weasel!
$ ./weasel -qr101r5r101r1r test
-quiet output
-mutation rate out of range
-mutation rate out of range
-mutation rate out of range
-target 'test'
-mutation rate 0
-monkey at typewriter
-Generation 16844 Offspring 22: TEST$ ./weasel -qr101r5r101r1r test
+quiet output
+mutation rate out of range
+mutation rate out of range
+mutation rate out of range
+target 'test'
+mutation rate 0
+monkey at typewriter
+Generation 16844 Offspring 22: TESTSo in this case I joined the options in the following order:
-q
TEST).Given that it was a short string it did find the answer relatively quickly, even in monkey mode.
Another example:
-$ ./weasel -q -r101 test -r5
-quiet output
-mutation rate out of range
-target 'test'
-mutation rate 5
-Generation 109 Offspring 13: TEST$ ./weasel -q -r101 test -r5
+quiet output
+mutation rate out of range
+target 'test'
+mutation rate 5
+Generation 109 Offspring 13: TESTIn this case I also enabled quiet mode but I didn’t join the options;
the -r101 reports that it’s out of range and sets monkey
mode. I then specify the target string and then set a valid mutation
rate. This disabled monkey mode which means that it’ll use the genetic
algorithm.
One more example of monkey mode:
-$ ./weasel -q -mr101 test -r5
-quiet output
-mutation rate out of range
-target 'test'
-mutation rate 5
-monkey at typewriter
-Generation 465298 Offspring 10: TEST$ ./weasel -q -mr101 test -r5
+quiet output
+mutation rate out of range
+target 'test'
+mutation rate 5
+monkey at typewriter
+Generation 465298 Offspring 10: TESTHere I also requested quiet output and then explicitly requested
that Eric the monkey types. After this I set the mutation rate to
be 101 which would have set monkey mode (in this case only
@@ -715,13 +751,13 @@ read from the file and pass each string to the program itself. I’ve
included a script test.sh and a file of sample input
test-strings.txt that you can play with.
Try:
-make testmake testThis will essentially make sure the program is compiled and then do:
-chmod +x test.sh
-./test.shchmod +x test.sh
+./test.shThe script will first try compiling the program (if necessary) and if
it fails for any reason it will exit; else it will read each line in the
file test-strings.txt (if the file doesn’t exist or can’t
@@ -732,8 +768,8 @@ until all the strings have been read and processed).
You can pass additional options directly to the script but remember that it stops when there are no more strings in the file - so if you try:
-./test.sh -q test./test.sh -q testThe final string test won’t be searched for; it will
however run the program in all invocations with quiet output enabled.
The following are some notes about how the shell and the program
@@ -762,12 +798,12 @@ keyboard the program prints an error message and then exits (returning
1). But since the keyboard doesn’t have '\n' if you were to
type a ' and send a '\n' before the closing
' you might see something like:
$ ./weasel '!!
-> '
-
-'
-' not in keyboard " !"#$<%:>&'()*+,-./0123456789;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~"$ ./weasel '!!
+> '
+
+'
+' not in keyboard " !"#$<%:>&'()*+,-./0123456789;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~"I showed that ' is in the keyboard already; however the
user sent a \n (hence the secondary prompt
> on line two) before literally typing the closing
@@ -793,9 +829,9 @@ read.
S) as well as some C keywords.The way main() is declared is:
/* Special C main() handler (encapsulation): */
-#define r(main) main
-r(k main(k a, E **V)) {/* Special C main() handler (encapsulation): */
+#define r(main) main
+r(k main(k a, E **V)) {It appears to be recursively defined but is it? And is it truly
encapsulation? And is it executing code of any kind? It mightn’t seem like it isn’t encapsulation and also isn’t executing code but assuming @@ -852,18 +888,22 @@ wrong. Yes some of it might look like a blob but this is clearly false; or misleading it should be made clear in the comments! :)
Skip to Compilation.
-These two #defined constants can be redefined at
-compilation to modify the behaviour of the program in a number of ways
-(see the Compilation
+
There are three #defined constants that can be redefined
+at compilation to modify the behaviour of the program in a number of
+ways (see the Compilation
subsection for example invocations). Both are capped to be no greater
-than SIZE_MAX - 1. This is handled by the C
-preprocessor.
S
This determines the maximum size of the target string but it
-must be at least 38; this is because
+than SIZE_MAX - 1 or whatever M (which can’t
+be lower than 100) is set to (maximum attempts before giving up). This
+is handled by the C preprocessor.
SThe macro S (or MAX_SIZE in the Makefile)
+is the maximum size of the target string but it must be at least
+38 (which is protected against in the code); this is because
38 >= 29 and because
strlen("METHINKS IT IS LIKE A WEASEL") == 28 (which is the
default target string - it would hardly be an implementation of the
@@ -874,33 +914,58 @@ works
N
This is the number of offspring per generation. Anything less than 4 -will be set to 3 (that’s not a typo!) and this is part of an Easter -egg.
-Be aware that depending on the size of S and
-N (individually and together) the program will use varying
-amounts of memory and the larger the values the more memory it’ll
-require.
The Makefile simplifies how to reconfigure this value with the
+variable MAX_SIZE:
make clobber MAX_SIZE=55 allThe next macro that can be reconfigured, M (or
+MAX_ATTEMPTS in the Makefile), is the maximum attempts
+before giving up. This was added as another feature in 2024 but it was
+not made an alt version because there already is an alt version. This
+macro allows for seeing what happens when reaching the maximum number
+attempts without waiting for a very long time.
The Makefile simplifies how to reconfigure this value with the
+variable MAX_ATTEMPTS:
make clobber MAX_ATTEMPTS=100 allThe final macro, N (or OFFSPRING in the
+Makefile), is the number of offspring per generation.
Anything less than 4 will be set to 3 (that’s not a typo!) and this +is part of an Easter egg.
+Be aware that depending on the size of S
+(MAX_SIZE) and N (OFFSPRING) both
+individually and together the program will use varying amounts of memory
+and the larger the values the more memory it’ll require.
The Makefile simplifies how to reconfigure this value with the
+variable OFFSPRING:
make clobber OFFSPRING=55 allSkip to Portability.
The following options must always be passed to the compiler:
--DQ='typedef' -D'g(o)'='goto o;' -D'w(x)'="x:" -D'H(main)'='r(main)'-DQ='typedef' -D'g(o)'='goto o;' -D'w(x)'="x:" -D'H(main)'='r(main)'which running make will always do.
If you want to increase the number of offspring to 50
-and the size of the chromosome to 75 you would pass to the
-compiler:
-DQ='typedef' -D'g(o)'='goto o;' -D'w(x)'="x:" -D'H(main)'='r(main)' -DN=50 -DS=75N) and the size of the chromosome to 75
+(S) you would do:
+make clobber OFFSPRING=50 MAX_SIZE=75 everythingIf you wanted to change N to 3:
-DQ='typedef' -D'g(o)'='goto o;' -D'w(x)'="x:" -D'H(main)'='r(main)' -DN=3make clobber OFFSPRING=3 everythingRemember that it cannot be less than 3; more
correctly if it’s less than 4 it’s redefined to 3 so you could have
-passed in -DN=2 and have the same result. Remember too that
-S cannot be less than 38. Both S
-and N are capped at SIZE_MAX - 1.
-DN=2 (or MAX_SIZE=2) and have the
+same result. Remember too that S (MAX_SIZE)
+cannot be less than 38. Both S and
+N are capped at SIZE_MAX - 1 or whatever
+M (MAX_ATTEMPTS) is set to.
+If you wanted to change the maximum number attempts to 100 you could +do:
+make clobber MAX_ATTEMPTS=100 everythingSkip to An aside on bugs.
This entry requires at least C99 even if you translate digraphs. The @@ -911,48 +976,48 @@ some data type sizes will be smaller and this I believe includes issues (if any) either but I have no way to test this. Originally I tested it on the below systems.
$ clang --version|head -n1
-clang version 4.0.1 (tags/RELEASE_401/final)
-$ gcc --version|head -n1
-gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2)
-$ /lib64/libc-2.25.so |head -n1|cut -d',' -f1-1
-GNU C Library (GNU libc) stable release version 2.25
-$ lscpu |grep Endian
-Byte Order: Little Endian$ clang --version|head -n1
+clang version 4.0.1 (tags/RELEASE_401/final)
+$ gcc --version|head -n1
+gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2)
+$ /lib64/libc-2.25.so |head -n1|cut -d',' -f1-1
+GNU C Library (GNU libc) stable release version 2.25
+$ lscpu |grep Endian
+Byte Order: Little Endian$ clang --version|head -n1
-clang version 3.4.2 (tags/RELEASE_34/dot2-final)
-$ gcc --version|head -n1
-gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
-$ /lib64/libc-2.17.so |head -n1 |cut -d, -f1-1
-GNU C Library (GNU libc) stable release version 2.17
-$ lscpu |grep Endian
-Byte Order: Little Endian$ clang --version|head -n1
+clang version 3.4.2 (tags/RELEASE_34/dot2-final)
+$ gcc --version|head -n1
+gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
+$ /lib64/libc-2.17.so |head -n1 |cut -d, -f1-1
+GNU C Library (GNU libc) stable release version 2.17
+$ lscpu |grep Endian
+Byte Order: Little Endian$ clang --version|head -n1
-clang version 5.0.1 (tags/RELEASE_501/final)
-$ gcc --version|head -n1
-gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
-$ /lib64/libc-2.26.so |head -n1|cut -d, -f1-1
-GNU C Library (GNU libc) stable release version 2.26
-$ lscpu |grep Endian
-Byte Order: Little Endian$ clang --version|head -n1
+clang version 5.0.1 (tags/RELEASE_501/final)
+$ gcc --version|head -n1
+gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
+$ /lib64/libc-2.26.so |head -n1|cut -d, -f1-1
+GNU C Library (GNU libc) stable release version 2.26
+$ lscpu |grep Endian
+Byte Order: Little EndianSystem Version: macOS 10.13.4 (17E199) Kernel Version: Darwin 17.5.0
-$ gcc -v
-Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
-Apple LLVM version 9.1.0 (clang-902.0.39.1)
-Target: x86_64-apple-darwin17.5.0
-Thread model: posix
-InstalledDir: /Library/Developer/CommandLineTools/usr/bin
-$ uname -srmv
-Darwin 17.5.0 Darwin Kernel Version 17.5.0: Mon Mar 5 22:24:32 PST 2018; root:xnu-4570.51.1~1/RELEASE_X86_64 x86_64$ gcc -v
+Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
+Apple LLVM version 9.1.0 (clang-902.0.39.1)
+Target: x86_64-apple-darwin17.5.0
+Thread model: posix
+InstalledDir: /Library/Developer/CommandLineTools/usr/bin
+$ uname -srmv
+Darwin 17.5.0 Darwin Kernel Version 17.5.0: Mon Mar 5 22:24:32 PST 2018; root:xnu-4570.51.1~1/RELEASE_X86_64 x86_64Skip to Installing.
Any undocumented bugs are the result of insolent monkeys tampering @@ -1082,8 +1147,8 @@ we quickly added additional cryptic features and evolved into B, BCPL, and finally C. We stopped when we got a clean compile on the following syntax:
-for(;P("\n"),R=;P("|"))for(e=C;e=P("_"+(*u++/
-8)%2))P("|"+(*u/4)%2);for(;P("\n"),R=;P("|"))for(e=C;e=P("_"+(*u++/
+8)%2))P("|"+(*u/4)%2);“To think that modern programmers would try to use a language that allowed such a statement was beyond our comprehension! We actually @@ -1129,8 +1194,8 @@ since he was part of its creation I don’t think it’s a bad thing; on the contrary it makes all of us C programmers even more talented! :) I do wonder if he tested that bit of C code though:
-+for(;P("\n"),R=;P("|"))for(e=C;e=P("_"+(*u++/ -8)%2))P("|"+(*u/4)%2);for(;P("\n"),R=;P("|"))for(e=C;e=P("_"+(*u++/ +8)%2))P("|"+(*u/4)%2);
How isR=;valid? Since I don’t have the context maybe there is something I’m missing but either way it’s a funny piece. It @@ -1232,6 +1297,18 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/ferguson/proFILES - information about various files +id.alt.sh +- how to run +id.sh +- how to run +monkey-words.alt.sh +- how to run +monkey-words.sh +- how to run rpm.html - about forming the rpm test.sh diff --git a/2019/ciura/index.html b/2019/ciura/index.html index 73ebf2076..1fdbc3fba 100644 --- a/2019/ciura/index.html +++ b/2019/ciura/index.html @@ -322,6 +322,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/de.sh" href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/en.sh">en.sh - run with English data fr.alt.sh +- how to run alternative code in French +fr.sh - run with French data AU To use:
./prog infile.wav outfile.wavTry:
--play MonodyVocals.wav -./prog MonodyVocals.wav -play out.wavNOTE:
+playcomes from SoX, the Swiss Army Knife of sound -processing programs. If you don’t have this installed, see FAQ 3.10: How do I compile and use an IOCCC -winner that requires sound.+./try.shNOTE:
play, which try.sh uses, +comes from SoX, the Swiss Army Knife of sound processing programs. If +you don’t have this installed, see FAQ 3.10: +How do I compile and use an IOCCC winner that requires sound.Judges’ remarks:
Do you need to pretend enjoying a more spacious living environment than you actually are in, or the great outdoors with mountains and @@ -371,6 +369,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/giles/prog.o - original source
BlockDiagram.png - reverb algorithm block-diagram of internal structure +try.sh +- how to run MonodyVocals.wav - Monody by TheFatRat featuring Laura Brehm 2019_giles.tar.bz2 - download diff --git a/2020/endoh3/index.html b/2020/endoh3/index.html index 23fdede2a..213d54e32 100644 --- a/2020/endoh3/index.html +++ b/2020/endoh3/index.html @@ -133,6 +133,9 @@ Unicode letters. make altAlternate use:
Use
+prog.altas you wouldprogabove.Alternate try:
+./run_clock.alt +# And watch closely for 15-20 secondsJudges’ remarks:
You may be tempted to use a mirror. Resist the temptation! Try figuring out how the clock hands are drawn. Can you change the program @@ -142,7 +145,7 @@ second hand?
your perception of time might depend on what time it is.Author’s remarks:
Prepare a mirror!
-+make clockmake clockNote: You need to recompile it each run.
Copyright and CC BY-SA 4.0 License:
@@ -172,6 +175,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh3/prog. href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh3/prog.orig.c">prog.orig.c - original sourcerun_clock.alt.sh +- how to run alternate code +run_clock.sh - how to run 2020_endoh3.tar.bz2 - download diff --git a/2020/ferguson1/index.html b/2020/ferguson1/index.html index 6d58c2e67..168928a3c 100644 --- a/2020/ferguson1/index.html +++ b/2020/ferguson1/index.html @@ -752,8 +752,6 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson1/pl snake-colours.sh - script to reset - preset colors -ioccc-and-chocolate.pdf - -IOCCC publications prog.2.c - source with more digraphs diff --git a/2020/ferguson2/index.html b/2020/ferguson2/index.html index 882606634..5401afe4a 100644 --- a/2020/ferguson2/index.html +++ b/2020/ferguson2/index.html @@ -988,8 +988,6 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/ferguson2/trenigma.1 - Enigma simulator man page -ioccc-and-chocolate.pdf - -IOCCC publications key.txt - key to decipher or encipher IOCCC diff --git a/2020/otterness/index.html b/2020/otterness/index.html index c082f7ad4..07ebd4e7f 100644 --- a/2020/otterness/index.html +++ b/2020/otterness/index.html @@ -127,11 +127,9 @@ href="/bugs.md#2020-otterness">2020 otterness in bugs.md.To use:
./progTry:
-+./prog < cvikl.mid > output.mid -# Play output.mid with your favorite player - -./prog < entertainer.mid > output2.mid -# Play output2.mid with your favorite player+./try.shNow play
output.midandoutput2.midin an +audio player that can play MIDI files.Judges’ remarks:
In an entry that boasts not using literals, one would expect to see straightforward ways to produce small integers like @@ -264,6 +262,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/otterness/Ma
prog.orig.c - original source +try.sh +- how to run cvikl.mid - sample input sound entertainer.mid - sample input sound