diff --git a/2012/zeitak/.entry.json b/2012/zeitak/.entry.json index 9e3321746..59c865475 100644 --- a/2012/zeitak/.entry.json +++ b/2012/zeitak/.entry.json @@ -58,12 +58,12 @@ "entry_text" : "original source code" }, { - "file_path" : "test.sh", + "file_path" : "try.sh", "inventory_order" : 100, "OK_to_edit" : true, "display_as" : "shellscript", "display_via_github" : true, - "entry_text" : "test tool" + "entry_text" : "script to try entry" }, { "file_path" : "correct.java", diff --git a/2012/zeitak/Makefile b/2012/zeitak/Makefile index 893853a56..436355a7d 100644 --- a/2012/zeitak/Makefile +++ b/2012/zeitak/Makefile @@ -137,7 +137,7 @@ all: data ${TARGET} ${PROG}: ${PROG}.c ${CC} ${CFLAGS} $< -o $@ ${LDFLAGS} -test: test.sh +test: try.sh ./$< || exit 1 diff --git a/2012/zeitak/README.md b/2012/zeitak/README.md index 4eb75f96c..ce35c0bde 100644 --- a/2012/zeitak/README.md +++ b/2012/zeitak/README.md @@ -22,7 +22,7 @@ text files that are not code. ## Try: ``` - make test + ./try.sh ``` NOTE: the program prints an error and exits on the first nesting error so it @@ -64,7 +64,9 @@ NOTE: if you use vim to view the code, make sure to do: :set tabstop=4 ``` -in command mode, before looking at the code, to see the correct layout. +in command mode, before looking at the code, to see the correct layout. For more +help see [[6.14 - How do I set certain tabstops for viewing source code in +vi(m)?](../../faq.html#faq6_14) ## Author's remarks: diff --git a/2012/zeitak/index.html b/2012/zeitak/index.html index b8e8c0328..cb10f9f6b 100644 --- a/2012/zeitak/index.html +++ b/2012/zeitak/index.html @@ -411,7 +411,7 @@ code below.

try incorrect.1.quote.c and the program itself. You may also run it on text files that are not code.

Try:

-
    make test
+
    ./try.sh

NOTE: the program prints an error and exits on the first nesting error so it will not detect multiple issues.

Alternate code:

@@ -431,7 +431,9 @@ minutes just to understand 18 key characters of this code.

NOTE: if you use vim to view the code, make sure to do:

    :set tabstop=4
-

in command mode, before looking at the code, to see the correct layout.

+

in command mode, before looking at the code, to see the correct layout. For more +help see [6.14 - How do I set certain tabstops for viewing source code in +vi(m)?

Author’s remarks:

Nesting Errors Detector

What does it do

@@ -525,7 +527,7 @@ at least two bytes long.

  • anonymous.c - 1984/anonymous source
  • zeitak.alt.c - alternate source code
  • zeitak.orig.c - original source code
  • -
  • test.sh - test tool
  • +
  • try.sh - script to try entry
  • correct.java - example Java source with correct brace (supposedly :-) )
  • incorrect.1.quote.c - example C source with incorrect quote
  • incorrect.3.quotes.c - example C source with incorrect quote
  • diff --git a/2012/zeitak/test.sh b/2012/zeitak/try.sh similarity index 100% rename from 2012/zeitak/test.sh rename to 2012/zeitak/try.sh diff --git a/2013/cable2/try.sh b/2013/cable2/try.sh index c5da94d17..f55ac7056 100755 --- a/2013/cable2/try.sh +++ b/2013/cable2/try.sh @@ -44,7 +44,6 @@ echo 1>&2 echo "Sometimes typeset text will work if the typeset has characters that are" 1>&2 echo "enough to support the handwritten shapes." 1>&2 -read -r -n 1 -p "Press any key to try Menlo 160pt text: " echo 1>&2 read -r -n 1 -p "Press any key to run: ./cable2 typeset.bmp: " echo 1>&2 diff --git a/2013/endoh4/.entry.json b/2013/endoh4/.entry.json index bb9df81bd..b224c405f 100644 --- a/2013/endoh4/.entry.json +++ b/2013/endoh4/.entry.json @@ -47,7 +47,7 @@ "OK_to_edit" : true, "display_as" : "shellscript", "display_via_github" : true, - "entry_text" : "script to try entry" + "entry_text" : "script to run entry without cursor" }, { "file_path" : "solids/antiprism/a04-square-antiprism.txt", diff --git a/2013/endoh4/endoh4.sh b/2013/endoh4/endoh4.sh index f2968776d..9aeba1fc3 100755 --- a/2013/endoh4/endoh4.sh +++ b/2013/endoh4/endoh4.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# try.sh - demonstrate IOCCC entry 2013/endoh4 +# endoh4.sh - run IOCCC entry 2013/endoh4 without cursor being in the way # # make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it diff --git a/2013/endoh4/index.html b/2013/endoh4/index.html index ef5b8d56f..07fcd237a 100644 --- a/2013/endoh4/index.html +++ b/2013/endoh4/index.html @@ -518,7 +518,7 @@ They are copyrighted in CC BY-SA 3.0 by “User:Cyp” and “User:AndrewKepert
  • Makefile - entry Makefile
  • endoh4.orig.c - original source code
  • cube.txt - 3D object coordinates
  • -
  • endoh4.sh - script to try entry
  • +
  • endoh4.sh - script to run entry without cursor
  • solids/antiprism/a04-square-antiprism.txt - 3D object coordinates
  • solids/antiprism/a05-pentagonal-antiprism.txt - 3D object coordinates
  • solids/antiprism/a06-hexagonal-antiprism.txt - 3D object coordinates
  • diff --git a/2018/burton2/tokcount.sh b/2018/burton2/tokcount.sh old mode 100644 new mode 100755 diff --git a/2019/dogon/README.md b/2019/dogon/README.md index d3837b518..58dc94528 100644 --- a/2019/dogon/README.md +++ b/2019/dogon/README.md @@ -1,4 +1,4 @@ -%%REPO_URL%%/2019/lynn/## To build: +## To build: ``` make diff --git a/2019/dogon/index.html b/2019/dogon/index.html index 2ae5a2171..7e6dddf24 100644 --- a/2019/dogon/index.html +++ b/2019/dogon/index.html @@ -401,7 +401,7 @@ Location: IL - State of Israel ( -

    https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/lynn/## To build:

    +

    To build:

        make

    Bugs and (Mis)features:

    The current status of this entry is:

    diff --git a/2020/ferguson1/chocolate-cake.html b/2020/ferguson1/chocolate-cake.html index e3f7587d4..39e1bbac5 100644 --- a/2020/ferguson1/chocolate-cake.html +++ b/2020/ferguson1/chocolate-cake.html @@ -384,6 +384,7 @@

    Double-layered Chocolate Fudge Cake

    +

    Last updated Tue 26 Mar 16:28:01 2024 UTC

    Here’s a delicious double-layered chocolate fudge cake that is something of my mum’s speciality. It’s complicated and I should warn that nobody has seemed to get it down as well as she has but it’s well worth the effort if @@ -394,7 +395,7 @@ feeble attempt at drawing IOCCC into the cake before icing, a diffe The picture below was taken for my birthday (14 February) in 2022 as it’s the best one I have:

    photograth of a delicious double-layered chocolate fudge cake

    There are two sets of ingredients and instructions; the cake and the icing. In addition there are some VERY IMPORTANT NOTES to pay attention to; some will diff --git a/2020/ferguson1/chocolate-cake.md b/2020/ferguson1/chocolate-cake.md index 933b781e9..f27dc3690 100644 --- a/2020/ferguson1/chocolate-cake.md +++ b/2020/ferguson1/chocolate-cake.md @@ -1,5 +1,7 @@ # Double-layered Chocolate Fudge Cake +## Last updated Tue 26 Mar 16:28:01 2024 UTC + Here's a delicious double-layered chocolate fudge cake that is something of my mum's speciality. It's complicated and I should warn that nobody has seemed to get it down as well as she has but it's well worth the effort if @@ -12,7 +14,7 @@ The picture below was taken for my birthday (14 February) in 2022 as it's the best one I have: photograth of a delicious double-layered chocolate fudge cake There are two sets of ingredients and instructions; the cake and the icing. In diff --git a/thanks-for-help.html b/thanks-for-help.html index 71db37463..0b68d21c0 100644 --- a/thanks-for-help.html +++ b/thanks-for-help.html @@ -1942,7 +1942,7 @@ was not a char **. InsteadO5()(which wasmain()vi its own function which main() calls with the right parameters.

    Later Cody fixed it again to look much more like the original where only a single line is added, that of main(), which calls O5(). This was done through --include stdio.h at the compiler (in the Makefile) and by removing the O3 +-include stdio.h at the compiler (in the Makefile) and by removing the O3 variable (an int) at the top of the file, instead making it a char ** inmain()(O5()had three args) but then passing in0toO5()` for the third arg (as it was 0 at file scope already this is perfectly fine and it means there’s no need to cast it to an int in the function call though that would also @@ -2912,10 +2912,11 @@ index.html for details.

    Winning entry: 2001/westley

    Winning entry source code: westley.c

    -

    Cody added the script try.sh to automate a heap of commands -that we, the IOCCC judges, suggested, as well as some additional ones that he -thought would be fun. He also provided the sort and punch card versions, -described in the index.html, based on the author’s remarks.

    +

    Cody added the script try.sh to +automate a heap of commands that we, the IOCCC judges, suggested, as well as +some additional ones that he thought would be fun. He also provided the sort +and punch card versions, described in the index.html, based on the author’s +remarks, through Makefile rules that generate the files by default with make all.

    @@ -3742,13 +3743,18 @@ version that does this.

    Winning entry: 2012/zeitak

    Winning entry source code: zeitak.c

    -

    Cody added the test.sh script and the make test rule -that uses the script along with a number of files that will correctly be flagged -as incorrect (including a text file and a java file, with a joke, to show that -it’s not that it parses C but rather just matching pairs though that’s probably -obvious) and some correctly nested files were also added including -1984/anonymous (as the author explicitly mentioned -it) and a java file as well with another joke.

    +

    Cody added the try.sh script and the +make test rule that uses the script along with a number of files that will +correctly be flagged as incorrect (including a text file and a Java file, with a +joke, to show that it’s not that it parses C but rather just matching pairs +though that’s probably obvious) and some correctly nested files were also added +including 1984/anonymous (as the +author explicitly mentioned it), both the original +version (.alt.c) and the +modified version that works with macOS +as well, and a Java file as well with another joke. Those C files had to be +added because each entry has its own tarball and without the files it would +break the script.

    A problem was later fixed in the Makefile by Cody, a typo in the CSILENCE variable that prevented compilation.

    A minor point is that the author noted that one should @@ -3767,18 +3773,18 @@ the same) so that as long as it runs to completion the terminal will be sane and the cursor will be visible. Using atexit(3) will not work if the program is killed, signals are ugly and these would be messing with the entry too much so these were not done.

    -

    Cody also added the alt version that lets one control how fast the painting is -done, based on the author’s recommendations, except that Cody made it -configurable at compile time. The Makefile was modified in such a way as to make -it very easy to redefine it at compile time.

    +

    Cody also added the alternate version +that lets one control how fast the painting is done, based on the author’s +recommendations, except that Cody made it configurable at compile time. The +Makefile was modified in such a way as to make it very easy to redefine it at +compile time.

    Cody also added the try.sh script for the entry and the try.alt.sh script for the alternate code.

    Winning entry: 2013/cable1

    Winning entry source code: cable1.c

    -

    Cody added the try.sh script which also has an -joke Easter egg in it based on the judges’ remarks.

    +

    Cody added the try.sh script.

    Winning entry: 2013/cable2

    Winning entry source code: cable2.c

    @@ -3789,14 +3795,15 @@ joke Easter egg in it based on the judges’ remarks.

    Winning entry source code: cable3.c

    Cody fixed this to compile with modern systems. The problems were that -localtime() is used differently and time.h being included (with +localtime() is used differently and with time.h being included (with SDL2 in macOS - but see below) there was a conflicting function type. This appeared to be a problem with macOS and only when SDL2 was included (but which as noted next it cannot be).

    The other problem is that this entry uses SDL functions that were removed from SDL2 so the Makefile has to use sdl-config and not sdl2-config. This meant that at one point to be strictly technical, the removal of -localtime() wasn’t necessary but this change was left in place anyway.

    +localtime() wasn’t necessary but this change was left in place anyway (but see +below again).

    Later on in an updated macOS (problem discovered in macOS Sonoma) the entry failed to compile again also due to localtime() so he removed the prototype entirely to solve the problem.

    @@ -3810,11 +3817,9 @@ Studio. This is done by in the compile line undefining KB (-U the source code defining KB to what the author suggested, (kb=H(8),kbhit())&&(r[1190]=getch(),H(7)). It need hardly be mentioned that this will not link in Unix systems (including macOS).

    -

    Clang required a -Wno- option as well.

    Finally Cody provided the bios.asm that the author referred to, found at the GitHub repo for the -entry, and the ‘ready-made -40MB hard disk image containing a whole bunch of software’ in hd.img that the +entry, and the ready-made 40MB hard disk image containing a whole bunch of software in hd.img that the author linked to at https://bitly.com/1bU8URK.

    Winning entry: 2013/dlowe

    @@ -3849,16 +3854,13 @@ commands to try that he suggested to see how different lengths look.

    Ruby and ImageMagick are installed before trying to run the ruby script. To be more technically correct: it checks that the convert tool of ImageMagick is available (via type -P) -because convert is part of the ImageMagick suite.

    -

    This is useful because the Ruby script tries to run (via IO.popen()) the +because convert is part of the ImageMagick suite. The rule will report the +tools not installed and where to find them, if they are not installed, and after +checking these requirements it will exit if either is not found.

    +

    The checks are useful because the Ruby script tries to run (via IO.popen()) the convert tool but without ImageMagick being installed, if one is unaware of where it comes from it will appear to be an error in the Ruby script (it might -also appear to be an issue with the script even if you know of convert: it was -another day that Cody remembered it and why it wasn’t installed on his MacBook -Pro even though in the past it had been and is indeed now).

    -

    The rule will report the tools not installed and where to find them, if they are -not installed, and after checking these requirements it will exit if either is -not found.

    +also appear to be an issue with the script even if you know of convert).

    The entry can still be enjoyed if you do not have these tools, however.

    Winning entry: 2013/endoh3

    @@ -3905,7 +3907,7 @@ does not).

    rule in the Makefile was originally removed as part of the above but it was restored so that one can see what the author is talking about.

    Further, after the file 2013/hou/doc/example.markdown was moved to -2013/hou/doc/example.html to match the rest of the repo +2013/hou/doc/example.md to match the rest of the repo this broke make which Cody also fixed.

    Cody also added the try.sh script.

    @@ -3914,8 +3916,8 @@ this broke make which Cody also fixed.

    Cody fixed this so that the server would not refuse the connection after the first call to close(2). The problem was that because the backlog to -listen(2) was 1 once the connection closed the server was essentially ‘dead’. -The backlog was changed to 10 and this solves the problem. It is not known if +listen(2) was 1, once the connection closed the server was essentially ‘dead’. +The backlog was changed to 10 and this solves the problem. It is not known if this was specific to macOS but it was not specific to a browser as Safari and Firefox both had the problem.

    @@ -3942,7 +3944,7 @@ implicitly (Linux doesn’t seem to but macOS does).

    Winning entry: 2014/birken

    Winning entry source code: prog.c

    -

    Cody provided the alternate +

    Cody provided the alternate code that lets one redefine the port to bind to in case there is a firewall issue or there is some other reason to not have the default port. Remember that ports < 1024 are privileged. It also lets @@ -3954,7 +3956,7 @@ redefine the port and timing constant.

    Winning entry source code: prog.c

    Cody added alternate code that lets -one (via the Makefile) reconfigure the coordinates but instead of being a +one (via the Makefile) reconfigure the coordinates but instead of being a modified version of the entry it is the version the author provided which would be what the program would look like if, as the author put it:

    @@ -3962,7 +3964,7 @@ be what the program would look like if, as the author put it:

    application source code is intentionally kept to a bare minimum.

    .. was not true.

    -

    This alt version did not originally compile because a value was left off the +

    This alternate version did not originally compile because a value was left off the return statement (this might have been fixed in the index.html file too) so that was fixed and it also has #include <stdio.h> for putchar(3). The #ifndef..#define..#endif was not part of the original alternate code, of course.

    @@ -3998,8 +4000,8 @@ it is a file with spoilers (and too close to index.html?).

    Winning entry: 2014/maffiodo1

    Winning entry source code: prog.c

    -

    Cody fixed the build for this entry: it does not require -SDL2 but SDL1 so there were linking errors.

    +

    Cody fixed the Makefile for this entry: it does not require +SDL2 but SDL1 so there were linking errors.

    Cody also added the mario.sh and giana.sh scripts which play, respectively, Super Mario Bros and one of The @@ -4010,7 +4012,7 @@ which let one configure the width and height of the game.

    Winning entry source code: prog.c

    Cody added the try.sh script.

    -

    He also added the alternate code +

    Cody also added the alternate code provided by the author.

    Winning entry: 2014/morgan

    @@ -4023,11 +4025,11 @@ provided by the author.

    Cody fixed the code so that the game can play automatically like it once did. The problem is that it expects a certain file name which was -sinon.c. The code now refers to prog.c.

    +sinon.c. The code now refers to prog.c (it cannot as easily use __FILE__).

    Cody also fixed the scripts glock.sh and -hecate.sh which did not work after running either once -as they compile run.c and then do ./run | tee run.c which overwrites it with -output that is not code.

    +hecate.sh which did not work after running +either of them once as they compile run.c and then do ./run | tee run.c +which overwrites it with output that is not code.

    Cody also added the try.sh script that will first (if perl is installed) run the demo mode and then after that it will run the above noted scripts in a loop until the user says they do not want to try again (or they @@ -4064,9 +4066,9 @@ that would break it we do not know.

    Cody added the try.sh script which is based on the command to try in the ‘try’ section but improved so one can more easily -specify what ident tool they want to use and also change which sed to use, +specify what indent tool they want to use and also change which sed(1) to use, should they want to. It also checks that both of these two tools exist and are -executable and it pipes it through less as it’s longer than a page worth of +executable and it pipes it through less(1) as it’s longer than a page worth of output.

    2015 - The 24th IOCCC

    @@ -4106,9 +4108,9 @@ add a ./ to the commands in the man page/index.html.

    Cody improved the Makefile so that one can easily change the dimensions at compilation time via make(1).

    -

    Cody also added alternate code that is based on the author’s remarks, suggesting that -one change the value of q to a different number, in order to see a bug that -they avoided.

    +

    Cody also added alternate code that is +based on the author’s remarks, suggesting that one change the value of q to a +different number, in order to see a bug that they avoided.

    Winning entry: 2015/duble

    Winning entry source code: prog.c

    @@ -4126,11 +4128,11 @@ they avoided.

    Cody fixed this to compile with Linux which was having a problem with duplicate symbols of main(). The fix is through the compiler option -fcommon which will let it compile like it does with macOS.

    -

    Cody also added the try.sh script which makes use of the -make rule he added (to enjoy the theme of the entry, Back to the +

    Cody also added the try.sh script which makes +use of the make rule he added (to enjoy the theme of the entry, Back to the Future using this entry by -simply typing make back_to or make mullender) and then runs the famous -1984/mullender.c.

    +simply typing make back_to, make future or make mullender) and then runs +the famous 1984/mullender.c.

    Winning entry: 2015/endoh4

    Winning entry source code: prog.c

    @@ -4161,11 +4163,7 @@ resulted in standard input errors in piping to bc(1)) and added the

    Winning entry source code: prog.c

    Cody added the try.sh script which changes the -parameters to what we had in the judges’ remarks to make it easier (he only died -when he tried to mark a reminder complete on the other side of the screen at the -same time and he almost survived that, scoring at that point over 90 - but this -also involves good eye-hand coordination and playing games like this in the -past).

    +parameters to what we had in the judges’ remarks to make it easier.

    Winning entry: 2015/mills2

    Winning entry source code: prog.c

    @@ -4222,7 +4220,7 @@ Why was arg count and/or type changed in main() in some older entries? for more details.

    Cody also added explicit linking of libm (-lm) for systems that do not do this (Linux doesn’t seem to but macOS does).

    -

    Cody also added alternate code that should +

    Cody also added alternate code that should work for Windows, based on the author’s remarks. The same thing with the number of args to main() that was done in the original entry was done with this version as well.

    @@ -4240,7 +4238,7 @@ GitHub as far as downloading/displaying goes.

    Winning entry source code: prog.c

    Cody fixed the make test rule: it tried to run tac(1) (in systems -that have that command) rather than the entry itself which is called tac and +that have that command) rather than the entry itself which is called tac. Also the runtest script (which he renamed to runtest.sh for download/browser display purposes) was not executable.

    Cody also renamed manpage to manpage.sh for download/browser purposes and he @@ -4251,7 +4249,7 @@ did the same with tokenfix to tokenfix.sh as well as < file tac.1.

    Cody also renamed discrepancies to discrepancies.html and made it markdown format.

    -

    Cody added the tokcount.sh script which was +

    Cody also added the tokcount.sh script which was included in the remarks of the author but not an included file.

    Finally Cody added the try.sh script.

    @@ -4271,7 +4269,7 @@ input files one at a time and after each one is shown, it feeds it to the program, redirecting the output to the respective GIF file. It then will inform the user they should open it in a GIF viewer that can show animation in animated GIF files. It offers an example command for macOS like the judges did in their -remarks. The input files offered includes the prog.c as the author, +remarks. The input files offered includes the prog.c as the author, Yusuke, suggested that it too has a secret.

    Winning entry: 2018/endoh2

    @@ -4285,28 +4283,16 @@ three of the other scripts but each allows one to send an interrupt in the loops and still continue to the next script (if one does it when not in a loop it will exit the script). The make python and make python3 rules in the Makefile now run the respective scripts.

    -
    -

    Winning entry: 2018/ferguson

    -

    Winning entry source code: prog.c

    -
    -

    Cody, with irony well intended :-), fixed the test.sh -script for portability, shellcheck, making it executable -and other things, fixed dead links in the man page, updated the test-strings.txt -file and other things as well (like adding the try.sh -and try.alt.sh scripts).

    -

    Landon notes that Cody will probably never finish changes in his entries and -that’s probably true: let’s just say that for the IOCCC I’m (Cody) a weasel! :-) -(but isn’t that kind of the point ? :-) )

    Winning entry: 2018/hou

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added explicit linking of libm (-lm) for systems that do not do this (Linux doesn’t seem to but macOS does).

    Cody also added the try.sh script.

    Winning entry: 2018/mills

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody, based on the author’s remarks, made it possible to save state between runs of the program so that one can resume where they left off. It @@ -4314,11 +4300,11 @@ should be noted that there is a bug in the entry (irrespective of save state option) where running ./prog twice in a row involves having to hit (the second run) enter and then exit and then start the program again. Also if you do add a file you should run sync prior to exiting or else the file might not exist or -it might be corrupt. See 2018/mills in bugs.html for more +it might be corrupt. See 2018/mills in bugs.html for more details on the bug.

    Winning entry: 2018/poikola

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the missing docs rule to the Makefile that forms a PDF file. The rule requires the tool pdflatex.

    @@ -4329,12 +4315,12 @@ We added some additional notes on what might happen (it varies depending on configuration).

    Winning entry: 2018/vokes

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Winning entry: 2018/yang

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script. This script will ask if the user wants to see some of the spoilers and only show them if they type @@ -4344,14 +4330,14 @@ if the user wants to see some of the spoilers and only show them if they type

    Winning entry: 2019/adamovsky

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script and the Unlambda file crash.unl which is in the judges’ remarks as to what can crash it - but it’s not a bug, it’s a feature.

    Winning entry: 2019/burton

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody fixed the Makefile which had a bad character, a ‘%’ instead of a ‘$’ which caused a rule to fail.

    @@ -4361,7 +4347,7 @@ running make test.

    Cody also fixed the script check.sh (renamed from check) in case x is specified and is not executable and also made it satisfy ShellCheck. He also made ShellCheck not be a cow and/or (to use Bart Simpson’s -advice :-) ) ‘not have a cow’ about certain things (including one thing it was +advice :-) ) 'not have a cow about certain things (including one thing it was wrong about) in cow.sh (which was renamed from cow) mootoo.

    Cody also renamed the file on.one.liners to @@ -4369,12 +4355,12 @@ wrong about) in

    Winning entry: 2019/ciura

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody fixed an invalid bytes error in tr in the scripts. This does not -mean that they will produce any output, though, as they provide expect all +mean that they will produce any output, though, as they expect all letters and that makes it harder to form perfect pangrams. On the subject of -German umlauts and Eszett (ß) see the entry in bugs.html.

    +German umlauts and Eszett (ß) see the 2019/ciura in bugs.html.

    Cody also fixed the Makefile so that the alternate code would be built when running make alt.

    Cody converted the PS file linked to by the author to a PDF, @@ -4383,21 +4369,21 @@ website.

    Cody also added the try.sh and try.alt.sh scripts.

    Finally he added the scripts for the different languages that use the alternate -version but with the caveat that only English appears to work. See the entry in +version but with the caveat that only English appears to work. Again, see 2019/ciura in bugs.html for more details.

    Winning entry: 2019/diels-grabsch1

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Cody also added the file Shakespeare.txt from 2019/mills (after running make) so that one can not worry about having the entire IOCCC winning entry tree (or at least the 2019 tree each -entry in a subdirectory). This is more important as there is discussion of -having tarballs for each individual entry as a convenience.

    +entry in a subdirectory). This was important as we now have tarballs for each +entry by themselves.

    Winning entry: 2019/diels-grabsch2

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script. This script will try and show the difference (i.e. the same output) between the @@ -4406,26 +4392,26 @@ tools can be found but otherwise it’ll just run the program itself, showing it own sha512sum value.

    Winning entry: 2019/dogon

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added explicit linking of libm (-lm) for systems that do not do this (Linux does not seem to but macOS does).

    He also fixed the Makefile so that it compiles with clang in Linux.

    He also added the try.sh script.

    He also made it possible to easily redefine the memory macro Z at compilation -time by modifying the Makefile.

    +time by improving the Makefile.

    He fixed a link in the spoiler source code. As a spoiler it felt more important that this was done (some typos were fixed as well but only some - the purpose was to only correct spelling and only some, not to change wording or anything else).

    Winning entry: 2019/duble

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody made the make fullscreen more portable by not relying on stty(1) and sed(1) but rather it just uses tput(1). He also made it so that if tput(1) is not found it tells the user an easier way to compile the full -screen size rather than having to modify the Makefile. This done with a script, +screen size rather than having to modify the Makefile. This is done with a script, fullscreen.sh, to simplify the Makefile and provide an easy way to tell the user how to compile it, assuming that the environmental variables LINES and COLUMNS are set. But even if they’re not set it explains @@ -4433,12 +4419,12 @@ how to easily compile the program to a specific size. Note that LINESCOLUMNS is not available to scripts so it can’t make use of them that way.

    Winning entry: 2019/endoh

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    As this is a backtrace quine having the optimiser enabled is not a good idea so Cody disabled it. For this same reason he also added the -g flag to the compilation as debugging symbols might just be useful for an entry that’s -supposed to segfault :-)

    +supposed to segfault (and which you’re supposed to inspect the core file) :-)

    Cody also added the simple ascii.c that (while it has an arg) prints out the character of the ASCII value (uses isascii(3) first). This combined with the try.sh script that he added allows one @@ -4446,23 +4432,22 @@ to easily reconstruct the source code through GDB by the fact it’s a backtrace quine.

    Winning entry: 2019/giles

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Winning entry: 2019/karns

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    -

    Cody reported that with -O level > 0 this program segfaults (sometimes?). He’s -not sure why as it worked fine before on the same systems tested but -O0 -appears to fix the problem in both macOS and Linux. Perhaps this is the problem +

    Cody forced the Makefile to use -O0 as he discovered that an +optimiser level > 0 causes a segfault (sometimes?). (Perhaps this is the problem that the author reported where it sometimes segfaults but Cody did not try -debugging it since it works with -O0.

    +debugging it since it works with -O0.)

    He also added the script try.sh to showcase the entry a bit more easily.

    Winning entry: 2019/lynn

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Cody also added the example-1.txt and @@ -4471,17 +4456,18 @@ bit more easily.

    entry existing.

    Winning entry: 2019/mills

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Winning entry: 2019/poikola

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the missing docs rule to the Makefile that forms a PDF file. The rule requires the tool pdflatex.

    -

    Cody also added the alternate code.

    +

    Cody also added the alternate code which +adds a newline after each number for parsing in additional ways.

    Cody also added the try.sh and try.alt.sh scripts.

    Cody also disabled the optimiser because the author stated that for clang the @@ -4492,7 +4478,7 @@ tested: gnu17 was not tested but gnu11 was so the stan gnu11.

    Winning entry: 2019/yang

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script which also involved slightly updating the sample_input.txt file @@ -4503,7 +4489,7 @@ shouldn’t) and adding the ioccc.txt file.

    Winning entry: 2020/burton

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody fixed the script check_be.sh: it assumed that prog_be was in PATH which is unlikely so it was changed to @@ -4514,7 +4500,7 @@ showing nothing at all.

    Cody also added the try.sh script.

    Winning entry: 2020/carlini

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script which although at first glance might not appear to have a point, it actually does, namely showing @@ -4522,15 +4508,15 @@ how you can automate play and then reminding you to actually play for real, with a friend, whether that’s real or imagined.

    Winning entry: 2020/endoh2

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    -

    Cody copied the files from the spoiler.zip file (from his copy during +

    Cody copied the files from the spoiler.zip file (from his copy during the preview period) that was password protected with a password that was no -longer known.

    +longer known (but fortunately was already extracted).

    He also added the try.sh script.

    Winning entry: 2020/endoh3

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody fixed the script run_clock.sh which gave a funny error when running it:

    @@ -4548,50 +4534,21 @@ first.

    point?) like macOS the use of make clock would not work due possibly to a timing issue so Yusuke changed it to compile clock.c file directly (this might have been fixed in the -Makefile later on but it doesn’t hurt to keep it in and this way it isn’t a -problem in any system). How Cody remembers this minor detail more than three -years ago is something that many people might wonder but he also once told us -that if someone moves something of his even a millimetre from where it was he -knows it so he might be called unusual (and he argues, with pride, eccentric :-) -) :-)

    +Makefile later on but it doesn’t hurt to keep it in and this way it isn’t a +problem in any system).

    Cody also added the run_clock.alt.sh script which is analogous to the run_clock.sh but for the alternate code provided by the author, Yusuke.

    Winning entry: 2020/ferguson1

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    -

    Cody, with intentional irony here :-), fixed formatting, links and typos in -various files.

    -

    He improved the termcaps.c test utility, bug fixed -play.sh, fixed other scripts and the Makefile, changed -some files to be markdown (and fixed problems that he caused in doing so :-) ), -fixed typos and formatting and he also fixed some issues that occurred when -files were renamed to .html from .markdown.

    -

    Most importantly he also added some corrections to the vital Double -layered chocolate fudge cake recipe :-)

    -
    -

    Winning entry: 2020/ferguson2

    -

    Winning entry source code: prog.c

    -
    -

    Cody, with intentional irony here :-), fixed formatting, links and typos in -various files.

    -

    He also added the try.sh script.

    -

    He also added the alternate code and the -try.alt.sh script.

    -

    The try scripts involved the addition of a text file, -key.txt which has the key of the file the judges -added in try.this.txt which itself was based on -something the author (Cody :-) ) submitted in the first place.

    -

    He also fixed some issues that occurred when files were renamed to .html from -.markdown.

    -

    Yes the irony here is as rich as the chocolate cake: the question is do you know -how rich it is? If not and you like chocolate I (that is Cody :-) ) highly -recommend you give it a go! :-) You’re welcome to ask me questions if you wish -and I encourage you to do so as the cake is quite picky!

    +

    Just for awareness, here: Cody made some corrections to the vital Double +layered chocolate fudge cake recipe :-) +Other fixes were made but as it’s his entry it’s not worth noting.

    Winning entry: 2020/giles

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script. This script does the conversion of pi.wav (showing the digits) and also converts the number for @@ -4604,12 +4561,12 @@ and tells them they will have to play the WAV files manually. Otherwise it’ll use the program to play the WAV files (and in one case stdout).

    Winning entry: 2020/kurdyukov1

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Winning entry: 2020/kurdyukov2

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Cody also added -L/-I paths to the Makefile to let this compile more easily if @@ -4617,13 +4574,13 @@ the user has installed the appropriate library with MacPorts (with the default MacPorts prefix /opt/local).

    Cody also fixed the script makegif.sh in a variety -of ways: shellcheck(1), make sure the program is compiled first (allowing one to +of ways: shellcheck(1), make sure the program is compiled first (allowing one to specify which compiler to use with CC=foo ./makegif.sh ...), checking that convert(1) is found and that it worked properly (linking to the proper FAQ entry if not installed or it fails).

    Winning entry: 2020/kurdyukov3

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    He also added a link that has much more details about this phenomenon to the @@ -4631,7 +4588,7 @@ index.html. Naturally he’s one of the ones who can read text even if it’s ev more jumbled but we know of others too.

    Winning entry: 2020/kurdyukov4

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Cody also added from 2019/mills the text file @@ -4648,7 +4605,7 @@ and literary executor and heir to

    Winning entry: 2020/otterness

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the MIDI files cvikl.mid and entertainer.mid from the URLs we suggested so @@ -4657,14 +4614,14 @@ even if the domain or link goes dead.

    Cody also added the try.sh script.

    Winning entry: 2020/tsoj

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added alternate code that will feel more at home for vi users. One might still end up cursing (see the index.html file) but probably a lot less :-)

    Winning entry: 2020/yang

    -

    Winning entry source code: prog.c

    +

    Winning entry source code: prog.c

    Cody added the try.sh script.

    Cody also added a make rule (make cppp) for the author’s provided C++ code @@ -4704,17 +4661,17 @@ in fact different names especially if one installs them from something like (though that usually does not mean it is worth a thank you note it might be worth noting in this case). Other times it was enabling or disabling the optimiser to fix an entry, sometimes causing other problems that also had to be -fixed, a good example being 1986/marshall (see the +fixed, a good example being 1986/marshall (see the compilers.html for the amusing details and all that had to be done to fix it).

    There was a ‘problem’ where ${MAKE} was $(MAKE): this doesn’t break anything but it is inconsistent with the rest of the ${foo} tools even if by tradition it is $(MAKE).

    Cody also added missing variables like BASH and PDFLATEX to the -var.mk file and removed another that was deemed problematic or +var.mk file and removed another that was deemed problematic or undesired. Other variable names had typos in them.

    In at least one case, like the top level Makefile, where raw -commands that are in var.mk were used, Cody updated them to use the +commands that are in var.mk were used, Cody updated them to use the variables.

    A comment was missing for the diff_alt_orig rule in all the Makefiles and this, along with many other fixes and changes to the Makefiles were made by diff --git a/thanks-for-help.md b/thanks-for-help.md index 25e5dce10..412fc70a3 100644 --- a/thanks-for-help.md +++ b/thanks-for-help.md @@ -2216,7 +2216,7 @@ its own function which main() calls with the right parameters. Later Cody fixed it again to look much more like the original where only a single line is added, that of `main()`, which calls `O5()`. This was done through -`-include stdio.h` at the compiler (in the Makefile) and by removing the `O3` +`-include stdio.h` at the compiler (in the `Makefile`) and by removing the `O3` variable (an int) at the top of the file, instead making it a `char ** in `main()` (`O5()` had three args) but then passing in `0` to `O5()` for the third arg (as it was 0 at file scope already this is perfectly fine and it means @@ -3578,10 +3578,12 @@ Cody also added the [try.sh](%%REPO_URL%%/2001/schweikh/try.sh) script. ### Winning entry source code: [westley.c](%%REPO_URL%%/2001/westley//westley.c) -[Cody](#cody) added the script [try.sh](%%REPO_URL%%/2001/westley/try.sh) to automate a heap of commands -that we, the IOCCC judges, suggested, as well as some additional ones that he -thought would be fun. He also provided the sort and punch card versions, -described in the index.html, based on the author's remarks. +[Cody](#cody) added the script [try.sh](%%REPO_URL%%/2001/westley/try.sh) to +automate a heap of commands that we, the IOCCC judges, suggested, as well as +some additional ones that he thought would be fun. He also provided the sort +and punch card versions, described in the index.html, based on the author's +remarks, through `Makefile` rules that generate the files by default with `make +all`.

    @@ -4744,13 +4746,18 @@ version](%%REPO_URL%%/2012/vik/vik.alt.c) that does this. ### Winning entry source code: [zeitak.c](%%REPO_URL%%/2012/zeitak//zeitak.c)
    -[Cody](#cody) added the [test.sh](%%REPO_URL%%/2012/zeitak/test.sh) script and the `make test` rule -that uses the script along with a number of files that will correctly be flagged -as incorrect (including a text file and a java file, with a joke, to show that -it's not that it parses C but rather just matching pairs though that's probably -obvious) and some correctly nested files were also added including -[1984/anonymous](1984/anonymous/index.html) (as the author explicitly mentioned -it) and a java file as well with another joke. +[Cody](#cody) added the [try.sh](%%REPO_URL%%/2012/zeitak/try.sh) script and the +`make test` rule that uses the script along with a number of files that will +correctly be flagged as incorrect (including a text file and a Java file, with a +joke, to show that it's not that it parses C but rather just matching pairs +though that's probably obvious) and some correctly nested files were also added +including [1984/anonymous](%%REPO_URL%%/1984/anonymous/index.html) (as the +author explicitly mentioned it), both the [original +version](%%REPO_URL%%/2012/zeitak/anonymous.alt.c) (.alt.c) and the +[modified version](%%REPO_URL%%/2012/zeitak/anonymous.c) that works with macOS +as well, and a Java file as well with another joke. Those C files had to be +added because each entry has its own tarball and without the files it would +break the script. A problem was later fixed in the `Makefile` by Cody, a typo in the `CSILENCE` variable that prevented compilation. @@ -4778,10 +4785,11 @@ the cursor will be visible. Using `atexit(3)` will not work if the program is killed, signals are ugly and these would be messing with the entry too much so these were not done. -Cody also added the alt version that lets one control how fast the painting is -done, based on the author's recommendations, except that Cody made it -configurable at compile time. The `Makefile` was modified in such a way as to make -it very easy to redefine it at compile time. +Cody also added the [alternate version](%%REPO_URL%%/2013/birken/birken.alt.c) +that lets one control how fast the painting is done, based on the author's +recommendations, except that Cody made it configurable at compile time. The +`Makefile` was modified in such a way as to make it very easy to redefine it at +compile time. Cody also added the [try.sh](%%REPO_URL%%/2013/birken/try.sh) script for the entry and the [try.alt.sh](%%REPO_URL%%/2013/birken/try.alt.sh) script for the alternate code. @@ -4792,8 +4800,7 @@ Cody also added the [try.sh](%%REPO_URL%%/2013/birken/try.sh) script for the ent ### Winning entry source code: [cable1.c](%%REPO_URL%%/2013/cable1//cable1.c) -[Cody](#cody) added the [try.sh](%%REPO_URL%%/2013/cable1/try.sh) script which also has an -joke Easter egg in it based on the judges' remarks. +[Cody](#cody) added the [try.sh](%%REPO_URL%%/2013/cable1/try.sh) script.
    @@ -4810,7 +4817,7 @@ joke Easter egg in it based on the judges' remarks.
    [Cody](#cody) fixed this to compile with modern systems. The problems were that -`localtime()` is used differently and `time.h` being included (with +`localtime()` is used differently and with `time.h` being included (with [SDL2](https://www.libsdl.org) in macOS - but see below) there was a conflicting function type. This appeared to be a problem with macOS and only when SDL2 was included (but which as noted next it cannot be). @@ -4818,7 +4825,8 @@ included (but which as noted next it cannot be). The other problem is that this entry uses SDL functions that were removed from SDL2 so the `Makefile` has to use `sdl-config` and not `sdl2-config`. This meant that at one point to be strictly technical, the removal of -`localtime()` wasn't necessary but this change was left in place anyway. +`localtime()` wasn't necessary but this change was left in place anyway (but see +below again). Later on in an updated macOS (problem discovered in macOS Sonoma) the entry failed to compile again also due to `localtime()` so he removed the prototype @@ -4837,12 +4845,11 @@ the source code defining `KB` to what the author suggested, `(kb=H(8),kbhit())&&(r[1190]=getch(),H(7))`. It need hardly be mentioned that this will not link in Unix systems (including macOS). -`Clang` required a `-Wno-` option as well. Finally Cody provided the [bios.asm](%%REPO_URL%%/2013/cable3/bios.asm) that the author referred to, found at the [GitHub repo for the -entry](https://github.com/adriancable/8086tiny/tree/master), and the 'ready-made -40MB hard disk image containing a whole bunch of software' in `hd.img` that the +entry](https://github.com/adriancable/8086tiny/tree/master), and the `ready-made +40MB hard disk image containing a whole bunch of software` in `hd.img` that the author linked to at `https://bitly.com/1bU8URK`. @@ -4891,18 +4898,14 @@ commands to try that he suggested to see how different lengths look. [Ruby](https://www.ruby-lang.org) and [ImageMagick](https://imagemagick.org) are installed before trying to run the ruby script. To be more technically correct: it checks that the `convert` tool of ImageMagick is available (via `type -P`) -because `convert` is part of the ImageMagick suite. +because `convert` is part of the ImageMagick suite. The rule will report the +tools not installed and where to find them, if they are not installed, and after +checking these requirements it will exit if either is not found. -This is useful because the Ruby script tries to run (via `IO.popen()`) the +The checks are useful because the Ruby script tries to run (via `IO.popen()`) the `convert` tool but without ImageMagick being installed, if one is unaware of where it comes from it will appear to be an error in the Ruby script (it might -also appear to be an issue with the script even if you know of `convert`: it was -another day that Cody remembered it and why it wasn't installed on his MacBook -Pro even though in the past it had been and is indeed now). - -The rule will report the tools not installed and where to find them, if they are -not installed, and after checking these requirements it will exit if either is -not found. +also appear to be an issue with the script even if you know of `convert`). The entry can still be enjoyed if you do not have these tools, however. @@ -4975,7 +4978,7 @@ rule in the `Makefile` was originally removed as part of the above but it was restored so that one can see what the author is talking about. Further, after the file `2013/hou/doc/example.markdown` was moved to -[2013/hou/doc/example.html](2013/hou/doc/example.html) to match the rest of the repo +[2013/hou/doc/example.md](%%REPO_URL%%/2013/hou/doc/example.md) to match the rest of the repo this broke `make` which Cody also fixed. Cody also added the [try.sh](%%REPO_URL%%/2013/hou/try.sh) script. @@ -4988,8 +4991,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2013/hou/try.sh) script. [Cody](#cody) fixed this so that the server would not refuse the connection after the first call to `close(2)`. The problem was that because the backlog to -`listen(2)` was 1 once the connection closed the server was essentially 'dead'. -The backlog was changed to 10 and this solves the problem. It is not known if +`listen(2)` was `1`, once the connection closed the server was essentially 'dead'. +The backlog was changed to `10` and this solves the problem. It is not known if this was specific to macOS but it was not specific to a browser as Safari and Firefox both had the problem. @@ -5032,7 +5035,7 @@ Cody also added the [try.sh](%%REPO_URL%%/2013/morgan1/try.sh) script. [Cody](#cody) provided the [alternate -code](2014/birken/index.html#alternate-code) that lets one redefine the port to +code](%%REPO_URL%%/2014/birken/prog.alt.c) that lets one redefine the port to bind to in case there is a firewall issue or there is some other reason to not have the default port. Remember that ports < 1024 are privileged. It also lets you redefine the timing constant `STARDATE` (see the author's remarks for more @@ -5046,7 +5049,7 @@ redefine the port and timing constant. [Cody](#cody) added [alternate code](2014/deak/index.html#alternate-code) that lets -one (via the Makefile) reconfigure the coordinates but instead of being a +one (via the `Makefile`) reconfigure the coordinates but instead of being a modified version of the entry it is the version the author provided which would be what the program would look like if, as the author put it: @@ -5055,7 +5058,7 @@ application source code is intentionally kept to a bare minimum. .. was not true. -This alt version did not originally compile because a value was left off the +This alternate version did not originally compile because a value was left off the `return` statement (this might have been fixed in the index.html file too) so that was fixed and it also has `#include ` for `putchar(3)`. The `#ifndef..#define..#endif` was not part of the original alternate code, of course. @@ -5105,8 +5108,8 @@ it is a file with spoilers (and too close to index.html?). ### Winning entry source code: [prog.c](%%REPO_URL%%/2014/maffiodo1//prog.c) -[Cody](#cody) fixed the build for this entry: it does not require -[SDL2](https://www.libsdl.org) but SDL1 so there were linking errors. +[Cody](#cody) fixed the `Makefile` for this entry: it does not require +`SDL2` but `SDL1` so there were linking errors. Cody also added the [mario.sh](%%REPO_URL%%/2014/maffiodo1/mario.sh) and [giana.sh](%%REPO_URL%%/2014/maffiodo1/giana.sh) scripts which play, respectively, [Super @@ -5122,7 +5125,7 @@ which let one configure the width and height of the game. [Cody](#cody) added the [try.sh](%%REPO_URL%%/2014/maffiodo2/try.sh) script. -He also added the [alternate code](2014/maffiodo2/index.html#alternate-code) +Cody also added the [alternate code](%%REPO_URL%%/2014/maffiodo2/prog.alt.c) provided by the author. @@ -5141,12 +5144,12 @@ provided by the author. [Cody](#cody) fixed the code so that the game can play automatically like it once did. The problem is that it expects a certain file name which was -`sinon.c`. The code now refers to `prog.c`. +`sinon.c`. The code now refers to `prog.c` (it cannot as easily use `__FILE__`). Cody also fixed the scripts [glock.sh](%%REPO_URL%%/2014/sinon/glock.sh) and -[hecate.sh](%%REPO_URL%%/2014/sinon/hecate.sh) which did not work after running either once -as they compile `run.c` and then do `./run | tee run.c` which overwrites it with -output that is not code. +[hecate.sh](%%REPO_URL%%/2014/sinon/hecate.sh) which did not work after running +either of them once as they compile `run.c` and then do `./run | tee run.c` +which overwrites it with output that is not code. Cody also added the [try.sh](%%REPO_URL%%/2014/sinon/try.sh) script that will first (if perl is installed) run the demo mode and then after that it will run the above noted @@ -5197,9 +5200,9 @@ that would break it we do not know. [Cody](#cody) added the [try.sh](%%REPO_URL%%/2014/wiedijk/try.sh) script which is based on the command to try in the 'try' section but improved so one can more easily -specify what ident tool they want to use and also change which sed to use, +specify what `indent` tool they want to use and also change which `sed(1)` to use, should they want to. It also checks that both of these two tools exist and are -executable and it pipes it through less as it's longer than a page worth of +executable and it pipes it through `less(1)` as it's longer than a page worth of output. @@ -5260,9 +5263,9 @@ add a `./` to the commands in the man page/index.html. [Cody](#cody) improved the `Makefile` so that one can easily change the dimensions at compilation time via `make(1)`. -Cody also added alternate code that is based on the author's remarks, suggesting that -one change the value of `q` to a different number, in order to see a bug that -they avoided. +Cody also added [alternate code](%%REPO_URL%%/2015/dogon/prog.alt.c) that is +based on the author's remarks, suggesting that one change the value of `q` to a +different number, in order to see a bug that they avoided.
    @@ -5290,11 +5293,11 @@ they avoided. symbols of `main()`. The fix is through the compiler option `-fcommon` which will let it compile like it does with macOS. -Cody also added the [try.sh](%%REPO_URL%%/2015/endoh3/try.sh) script which makes use of the -make rule he added (to enjoy the theme of the entry, [Back to the +Cody also added the [try.sh](%%REPO_URL%%/2015/endoh3/try.sh) script which makes +use of the make rule he added (to enjoy the theme of the entry, [Back to the Future](https://en.wikipedia.org/wiki/Back_to_the_Future) using this entry by -simply typing `make back_to` or `make mullender`) and then runs the famous -[1984/mullender.c](%%REPO_URL%%/1984/mullender/mullender.c). +simply typing `make back_to`, `make future` or `make mullender`) and then runs +the famous [1984/mullender.c](%%REPO_URL%%/1984/mullender/mullender.c).
    @@ -5339,11 +5342,7 @@ resulted in standard input errors in piping to `bc(1)`) and added the
    [Cody](#cody) added the [try.sh](%%REPO_URL%%/2015/mills1/try.sh) script which changes the -parameters to what we had in the judges' remarks to make it easier (he only died -when he tried to mark a reminder complete on the other side of the screen at the -same time and he almost survived that, scoring at that point over 90 - but this -also involves good eye-hand coordination and playing games like this in the -past). +parameters to what we had in the judges' remarks to make it easier.
    @@ -5431,7 +5430,7 @@ entries?](faq.html#faq4_6) for more details. Cody also added explicit linking of libm (`-lm`) for systems that do not do this (Linux doesn't seem to but macOS does). -Cody also added [alternate code](2018/bellard/index.html#alternate-code) that should +Cody also added [alternate code](%%REPO_URL%%/2018/bellard/prog.alt.c) that should work for Windows, based on the author's remarks. The same thing with the number of args to `main()` that was done in the original entry was done with this version as well. @@ -5456,7 +5455,7 @@ Cody also added the [try.sh](%%REPO_URL%%/2018/burton1/try.sh) script which also
    [Cody](#cody) fixed the `make test` rule: it tried to run `tac(1)` (in systems -that have that command) rather than the entry itself which is called `tac` and +that have that command) rather than the entry itself which is called `tac`. Also the `runtest` script (which he renamed to `runtest.sh` for download/browser display purposes) was not executable. @@ -5471,7 +5470,7 @@ file `tac.1`. Cody also renamed `discrepancies` to `discrepancies.html` and made it markdown format. -Cody added the [tokcount.sh](%%REPO_URL%%/2018/burton2/tokcount.sh) script which was +Cody also added the [tokcount.sh](%%REPO_URL%%/2018/burton2/tokcount.sh) script which was included in the remarks of the author but not an included file. Finally Cody added the [try.sh](%%REPO_URL%%/2018/burton2/try.sh) script. @@ -5498,7 +5497,7 @@ input files one at a time and after each one is shown, it feeds it to the program, redirecting the output to the respective GIF file. It then will inform the user they should open it in a GIF viewer that can show animation in animated GIF files. It offers an example command for macOS like the judges did in their -remarks. The input files offered includes the prog.c as the author, +remarks. The input files offered includes the `prog.c` as the author, [Yusuke](#yusuke), suggested that it too has a secret. @@ -5517,22 +5516,6 @@ exit the script). The `make python` and `make python3` rules in the `Makefile` n run the respective scripts. -
    -## Winning entry: [2018/ferguson](2018/ferguson/index.html) -### Winning entry source code: [prog.c](%%REPO_URL%%/2018/ferguson//prog.c) -
    - -[Cody](#cody), with irony well intended :-), fixed the [test.sh -script](%%REPO_URL%%/2018/ferguson/test.sh) for portability, shellcheck, making it executable -and other things, fixed dead links in the man page, updated the test-strings.txt -file and other things as well (like adding the [try.sh](%%REPO_URL%%/2018/ferguson/try.sh) -and [try.alt.sh](%%REPO_URL%%/2018/ferguson/try.alt.sh) scripts). - -Landon notes that Cody will probably never finish changes in his entries and -that's probably true: let's just say that for the IOCCC I'm (Cody) a weasel! :-) -(but isn't that kind of the point ? :-) ) - -
    ## Winning entry: [2018/hou](2018/hou/index.html) ### Winning entry source code: [prog.c](%%REPO_URL%%/2018/hou//prog.c) @@ -5555,7 +5538,7 @@ should be noted that there is a bug in the entry (irrespective of save state option) where running `./prog` twice in a row involves having to hit (the second run) enter and then exit and then start the program again. Also if you do add a file you should run `sync` prior to exiting or else the file might not exist or -it might be corrupt. See [2018/mills in bugs.html](bugs.html#2018-mills) for more +it might be corrupt. See [2018/mills in bugs.html](bugs.html#2018_mills) for more details on the bug. @@ -5624,7 +5607,7 @@ running `make test`. Cody also fixed the script [check.sh](%%REPO_URL%%/2019/burton/check.sh) (renamed from `check`) in case `x` is specified and is not executable and also made it satisfy ShellCheck. He also made ShellCheck not be a cow and/or (to use Bart Simpson's -advice :-) ) 'not have a cow' about certain things (including one thing it was +advice :-) ) `'not have a cow` about certain things (including one thing it was wrong about) in [cow.sh](%%REPO_URL%%/2019/burton/cow.sh) (which was renamed from `cow`) mootoo. @@ -5639,9 +5622,9 @@ browsers/GitHub.
    [Cody](#cody) fixed an invalid bytes error in `tr` in the scripts. This does not -mean that they will produce any output, though, as they provide expect all +mean that they will produce any output, though, as they expect all letters and that makes it harder to form perfect pangrams. On the subject of -German umlauts and Eszett (ß) see the [entry in bugs.html](bugs.html#2019-ciura). +German umlauts and Eszett (ß) see the [2019/ciura in bugs.html](bugs.html#2019_ciura). Cody also fixed the `Makefile` so that the alternate code would be built when running `make alt`. @@ -5654,8 +5637,8 @@ Cody also added the [try.sh](%%REPO_URL%%/2019/ciura/try.sh) and [try.alt.sh](%%REPO_URL%%/2019/ciura/try.alt.sh) scripts. Finally he added the scripts for the different languages that use the alternate -version but with the caveat that only English appears to work. See the [entry in -bugs.html](bugs.html#2019-ciura) for more details. +version but with the caveat that only English appears to work. Again, see [2019/ciura in +bugs.html](bugs.html#2019_ciura) for more details. @@ -5669,8 +5652,8 @@ bugs.html](bugs.html#2019-ciura) for more details. Cody also added the file [Shakespeare.txt](2019/diels-grabsch1/Shakespeare.txt) from [2019/mills](2019/mills/index.html) (after running `make`) so that one can not worry about having the entire IOCCC winning entry tree (or at least the 2019 tree each -entry in a subdirectory). This is more important as there is discussion of -having tarballs for each individual entry as a convenience. +entry in a subdirectory). This was important as we now have tarballs for each +entry by themselves.
    @@ -5698,7 +5681,7 @@ He also fixed the `Makefile` so that it compiles with `clang` in Linux. He also added the [try.sh](%%REPO_URL%%/2019/dogon/try.sh) script. He also made it possible to easily redefine the memory macro `Z` at compilation -time by modifying the Makefile. +time by improving the `Makefile`. He fixed a link in the spoiler source code. As a spoiler it felt more important that this was done (some typos were fixed as well but only some - the purpose @@ -5714,7 +5697,7 @@ else). [Cody](#cody) made the `make fullscreen` more portable by not relying on `stty(1)` and `sed(1)` but rather it just uses `tput(1)`. He also made it so that if `tput(1)` is not found it tells the user an easier way to compile the full -screen size rather than having to modify the Makefile. This done with a script, +screen size rather than having to modify the `Makefile`. This is done with a script, [fullscreen.sh](%%REPO_URL%%/2019/duble/fullscreen.sh), to simplify the `Makefile` and provide an easy way to tell the user how to compile it, assuming that the environmental variables `LINES` and `COLUMNS` are set. But even if they're not set it explains @@ -5730,7 +5713,7 @@ how to easily compile the program to a specific size. Note that `LINES` and As this is a backtrace quine having the optimiser enabled is not a good idea so [Cody](#cody) disabled it. For this same reason he also added the `-g` flag to the compilation as debugging symbols might just be useful for an entry that's -supposed to segfault :-) +supposed to segfault (and which you're supposed to inspect the core file) :-) Cody also added the simple [ascii.c](%%REPO_URL%%/2019/endoh/ascii.c) that (while it has an arg) prints out the character of the ASCII value (uses `isascii(3)` first). This @@ -5752,11 +5735,10 @@ quine. ### Winning entry source code: [prog.c](%%REPO_URL%%/2019/karns//prog.c)
    -[Cody](#cody) reported that with `-O` level > 0 this program segfaults (sometimes?). He's -not sure why as it worked fine before on the same systems tested but `-O0` -appears to fix the problem in both macOS and Linux. Perhaps this is the problem +[Cody](#cody) forced the `Makefile` to use `-O0` as he discovered that an +optimiser level > 0 causes a segfault (sometimes?). (Perhaps this is the problem that the author reported where it sometimes segfaults but Cody did not try -debugging it since it works with `-O0`. +debugging it since it works with `-O0`.) He also added the script [try.sh](%%REPO_URL%%/2019/karns/try.sh) to showcase the entry a bit more easily. @@ -5792,7 +5774,8 @@ entry existing. file. The rule requires the tool [pdflatex](https://tug.org/applications/pdftex/index.html). -Cody also added the [alternate code](2019/poikola/index.html#alternate-code). +Cody also added the [alternate code](%%REPO_URL%%/2019/poikola/prog.alt.c) which +adds a newline after each number for parsing in additional ways. Cody also added the [try.sh](%%REPO_URL%%/2019/poikola/try.sh) and [try.alt.sh](%%REPO_URL%%/2019/poikola/try.alt.sh) scripts. @@ -5853,9 +5836,9 @@ a friend, whether that's real or imagined. ### Winning entry source code: [prog.c](%%REPO_URL%%/2020/endoh2//prog.c)
    -[Cody](#cody) copied the files from the spoiler.zip file (from his copy during +[Cody](#cody) copied the files from the `spoiler.zip` file (from his copy during the preview period) that was password protected with a password that was no -longer known. +longer known (but fortunately was already extracted). He also added the [try.sh](%%REPO_URL%%/2020/endoh2/try.sh) script. @@ -5892,12 +5875,8 @@ Cody also reported (during the preview period of 2020) for some systems (at some point?) like macOS the use of `make clock` would not work due possibly to a timing issue so [Yusuke](#yusuke) changed it to compile `clock.c` file directly (this might have been fixed in the -Makefile later on but it doesn't hurt to keep it in and this way it isn't a -problem in any system). How Cody remembers this minor detail more than three -years ago is something that many people might wonder but he also once told us -that if someone moves something of his even a millimetre from where it was he -knows it so he might be called unusual (and he argues, with pride, eccentric :-) -) :-) +`Makefile` later on but it doesn't hurt to keep it in and this way it isn't a +problem in any system). Cody also added the [run_clock.alt.sh](%%REPO_URL%%/2020/endoh3/run_clock.alt.sh) script which is analogous to the [run_clock.sh](%%REPO_URL%%/2020/endoh3/run_clock.sh) but for the @@ -5909,45 +5888,9 @@ alternate code provided by the author, Yusuke. ### Winning entry source code: [prog.c](%%REPO_URL%%/2020/ferguson1//prog.c) -[Cody](#cody), with intentional irony here :-), fixed formatting, links and typos in -various files. - -He improved the [termcaps.c test utility](%%REPO_URL%%/2020/ferguson1/termcaps.c), bug fixed -[play.sh](%%REPO_URL%%/2020/ferguson1/play.sh), fixed other scripts and the Makefile, changed -some files to be markdown (and fixed problems that he caused in doing so :-) ), -fixed typos and formatting and he also fixed some issues that occurred when -files were renamed to `.html` from `.markdown`. - -Most importantly he also added some corrections to the vital [Double +Just for awareness, here: [Cody](#cody) made some corrections to the vital [Double layered chocolate fudge cake recipe](2020/ferguson1/chocolate-cake.html) :-) - - - -
    -## Winning entry: [2020/ferguson2](2020/ferguson2/index.html) -### Winning entry source code: [prog.c](%%REPO_URL%%/2020/ferguson2//prog.c) -
    - -[Cody](#cody), with intentional irony here :-), fixed formatting, links and typos in -various files. - -He also added the [try.sh](%%REPO_URL%%/2020/ferguson2/try.sh) script. - -He also added the [alternate code](2020/ferguson2/index.html#alternate-code) and the -[try.alt.sh](%%REPO_URL%%/2020/ferguson2/try.alt.sh) script. - -The try scripts involved the addition of a text file, -[key.txt](2020/ferguson2/key.txt) which has the key of the file the judges -added in [try.this.txt](2020/ferguson2/try.this.txt) which itself was based on -something the author (Cody :-) ) submitted in the first place. - -He also fixed some issues that occurred when files were renamed to `.html` from -`.markdown`. - -Yes the irony here is as rich as the chocolate cake: the question is do you know -how rich it is? If not and you like chocolate I (that is Cody :-) ) highly -recommend you give it a go! :-) You're welcome to ask me questions if you wish -and I encourage you to do so as the cake is quite picky! +Other fixes were made but as it's his entry it's not worth noting.
    @@ -5988,7 +5931,7 @@ the user has installed the appropriate library with `/opt/local`). Cody also fixed the script [makegif.sh](%%REPO_URL%%/2020/kurdyukov2/makegif.sh) in a variety -of ways: shellcheck(1), make sure the program is compiled first (allowing one to +of ways: `shellcheck(1)`, make sure the program is compiled first (allowing one to specify which compiler to use with `CC=foo ./makegif.sh ...`), checking that `convert(1)` is found and that it worked properly (linking to the proper FAQ entry if not installed or it fails). @@ -6108,7 +6051,7 @@ There were some other fixes as well including mass typo fixes in the Makefiles (though that usually does not mean it is worth a thank you note it might be worth noting in this case). Other times it was enabling or disabling the optimiser to fix an entry, sometimes causing other problems that also had to be -fixed, a good example being [1986/marshall](#1986marshall-readmemd) (see the +fixed, a good example being [1986/marshall](#1986_marshall) (see the [compilers.html](1986/marshall/compilers.html) for the amusing details and all that had to be done to fix it). @@ -6117,11 +6060,11 @@ but it is inconsistent with the rest of the `${foo}` tools even if by tradition it is `$(MAKE)`. Cody also added missing variables like `BASH` and `PDFLATEX` to the -[var.mk](var.mk) file and removed another that was deemed problematic or +[var.mk](%%REPO_URL%%/var.mk) file and removed another that was deemed problematic or undesired. Other variable names had typos in them. In at least one case, like the [top level Makefile](%%REPO_URL%%/Makefile), where raw -commands that are in [var.mk](var.mk) were used, Cody updated them to use the +commands that are in [var.mk](%%REPO_URL%%/var.mk) were used, Cody updated them to use the variables. A comment was missing for the `diff_alt_orig` rule in all the Makefiles and diff --git a/tmp/manifest.csv b/tmp/manifest.csv index 98f3eb78e..7a54584a2 100644 --- a/tmp/manifest.csv +++ b/tmp/manifest.csv @@ -2857,7 +2857,7 @@ 2012,zeitak,anonymous.c,40,true,c,true,1984/anonymous source 2012,zeitak,zeitak.alt.c,40,true,c,true,alternate source code 2012,zeitak,zeitak.orig.c,50,true,c,true,original source code -2012,zeitak,test.sh,100,true,shellscript,true,test tool +2012,zeitak,try.sh,100,true,shellscript,true,script to try entry 2012,zeitak,correct.java,150,false,java,true,example Java source with correct brace (supposedly :-) ) 2012,zeitak,incorrect.1.quote.c,150,true,c,true,example C source with incorrect quote 2012,zeitak,incorrect.3.quotes.c,150,true,c,true,example C source with incorrect quote @@ -3036,7 +3036,7 @@ 2013,endoh4,Makefile,30,true,makefile,true,entry Makefile 2013,endoh4,endoh4.orig.c,50,false,c,true,original source code 2013,endoh4,cube.txt,100,true,text,false,3D object coordinates -2013,endoh4,endoh4.sh,100,true,shellscript,true,script to try entry +2013,endoh4,endoh4.sh,100,true,shellscript,true,script to run entry without cursor 2013,endoh4,solids/antiprism/a04-square-antiprism.txt,200,true,text,false,3D object coordinates 2013,endoh4,solids/antiprism/a05-pentagonal-antiprism.txt,200,true,text,false,3D object coordinates 2013,endoh4,solids/antiprism/a06-hexagonal-antiprism.txt,200,true,text,false,3D object coordinates diff --git a/tmp/manifest.numbers b/tmp/manifest.numbers index ac7d54443..3df83d936 100644 Binary files a/tmp/manifest.numbers and b/tmp/manifest.numbers differ diff --git a/tmp/path_list.found.txt b/tmp/path_list.found.txt index 8458cbf32..11df5d3b6 100644 --- a/tmp/path_list.found.txt +++ b/tmp/path_list.found.txt @@ -2869,7 +2869,7 @@ 2012/zeitak/incorrect.single.quote.c 2012/zeitak/incorrect.txt 2012/zeitak/index.html -2012/zeitak/test.sh +2012/zeitak/try.sh 2012/zeitak/zeitak.alt.c 2012/zeitak/zeitak.c 2012/zeitak/zeitak.orig.c diff --git a/tmp/path_list.manifest.txt b/tmp/path_list.manifest.txt index 8458cbf32..11df5d3b6 100644 --- a/tmp/path_list.manifest.txt +++ b/tmp/path_list.manifest.txt @@ -2869,7 +2869,7 @@ 2012/zeitak/incorrect.single.quote.c 2012/zeitak/incorrect.txt 2012/zeitak/index.html -2012/zeitak/test.sh +2012/zeitak/try.sh 2012/zeitak/zeitak.alt.c 2012/zeitak/zeitak.c 2012/zeitak/zeitak.orig.c diff --git a/tmp/path_list.required.txt b/tmp/path_list.required.txt index e9e048b4a..ffd63ff46 100644 --- a/tmp/path_list.required.txt +++ b/tmp/path_list.required.txt @@ -1983,7 +1983,7 @@ 2012/zeitak/incorrect.quote-esc.c 2012/zeitak/incorrect.single.quote.c 2012/zeitak/incorrect.txt -2012/zeitak/test.sh +2012/zeitak/try.sh 2012/zeitak/zeitak.alt.c 2012/zeitak/zeitak.c 2012/zeitak/zeitak.orig.c