Should be in thanks file as it updates what I originally fixed (maybe my
changing the implicit ints to 'FILE *'s only worked for arm64 for some
reason but I don't know): not in bugs.md file.
This script automates through a pipeline some of the input suggested in
the README.md. The README.md still has some of what try.sh has because
it shows that you can do it entering line by line.
The files goto.c and goto.txt were also added. The first one is a short
file that is easy to see how many 'goto's there are and the goto.txt
file has seven 'goto's and one 'Goto' to demonstrate that the program is
case-sensitive.
The .gitignore file was updated with 'goto' though the Makefile does not
have (of course) a 'goto' rule as it's only there to have a C file which
is easy to see how many 'goto's there are.
The script runs a variety of commands to show how it can fold files
(mostly itself) into different column lengths but it also shows how that
folded code can recreate the original (uses diff -s).
It also asks a question that was in the try section as well.
When moving honour roll to the end of the file some things that refer to
'below' have to be changed to 'above'. It's possible more need to be
found but I've not looked at it yet. I haven't actually gone through the
file (that can come later); I just had the file open in GitHub and my
eyes zoomed in on the error.
The alt code was just a patched (by Yusuke Endoh) version (two strings
were strdup()d) that still required -traditional-cpp. He is still
credited in the thanks file but one can do make diff_orig_prog to see
what was changed to make it not require -traditional-cpp and Yusuke's
fix is there too. The thanks file details what I had to do to make it
work without -traditional-cpp and his change is still there as well. It
seemed to serve no purpose to have an alt version that requires one to
use -traditional-cpp when one can just look at the original code if they
want to see what it was like back in 1986.
This script runs the two commands suggested in order to get it to output
cleanly. It is suggested other systems might need another set of
characters but one can also get away with just using ./stein so this is
also done but at the end of the script to not cause any problems (it
doesn't show a newline at output).
The entry won best one liner but (in 1986 they could be longer) but to
make mail and news happy it was split to three lines. As it's not
distributed in news or mail now it can be one line. This was only
updated in stein.orig.c (for now?).
Added key.txt which is based on the judges' try.this.txt file (which was
based on something I originally submitted) which only has the key rather
than the input. This file is then used by try.sh and try.alt.sh.
Pass -v to recode now so that one can see the settings used and in a
nice way.
Removed the original sicherman.alt.c (which was the original code that
requires -traditional-cpp or an older compiler) and make
sicherman.alt2.c it instead which is a slight modification of
sicherman.c: it has two args to main() in case some compilers (like
clang) eventually object to having one arg (like it does for 4 args and
claims it does for 1 even though it does not). Since the sicherman.alt.c
is built automatically if compilation fails in the sicherman rule it
will compile to sicherman. However if it is built manually like 'make
alt' then it's built as sicherman.alt. This makes it easier to use but
also allows one to build the alt version should they wish and not have
it overwrite sicherman.
The try.alt.sh script was added in the case of manual compilation of
sicherman.alt.c.
The program works as a shell script too so rather than having to do
sh applin.c
one can do
./applin.c
though of course they could also do
sh applin.c
if they wanted to.
Since the 'to use' shows './applin' the 'try' no longer shows it.
Instead it just shows './applin.c'.
The Makefile was also modified to have a sicherman.alt rule as it
requires -traditional-cpp. There is an argument that this should be
removed and instead the alt2 version (which is compiled if a compiler
fails to compile sicherman.c because of the 'wrong' number of args to
main() - one arg) would become the alt version because if someone wants
to try the original code they can look at sicherman.orig.c. This can be
done another time if it's worth doing (which I think it might be).
The script has fun with reversing bits too through rev(1) (if
installed).
The script calls primes.sh even if primes(6) is not installed as that
script will check that it's installed and will tell one where to get it
if it's not. It only uses the default value, however, so primes.sh is
still shown in the README.md file.
Now contains old hint file (which is a copy of README.md) and the
updated README.md file. This makes it match correctly. This has not yet
been removed from the todo file as other things are also being removed
from the todo file and I'd rather do those changes together as a single
commit of things completed.
Minor update to thanks file wrt this entry.
The Makefile also has been updated with a new rule to compile the C++
code the author provided which can preprocess the output of the program
to make it more acceptable to some compilers.
Format/typo check README.md file.
This should complete 2020! There might be another change in another year
but besides that and the YYYY/README.md files the review of all entries
can be mostly considered done (mostly because I will probably do a very
quick pass but this pass is not important one way or another).
These files in particular were previously to be downloaded prior to use
of the program (or try section). These files have now been downloaded
and added to the repo.
Format/typo check README.md file.
Updated bugs.md with features/limitations.
The try.sh script tries to find md5sum and if it does not succeed it
tries for openssl. If it is openssl it uses the subcommand md5;
otherwise it just uses md5sum. Whatever the case if either is found it
writes the checksum of prog.c to md5.txt and then it uses prog to write
the checksum to prog.md5.txt. Then it uses diff -s on the two. If
neither tool is found it just skips that check.
Format/typo check README.md file.
The try.sh script does a number of things. First it checks if either
play(1) or aplay(1) are installed. If neither are installed it warns the
user and tells them they will have to play the WAV files manually (it'll
also refer them to the FAQ about SoX which is where play(1) comes from).
If either are installed it'll use that program (in order given above).
After setting that up it converts pi.wav to the digits and then plays
pi.wav (if possible). Then it does the same with jenny (see README.md
for details). Finally it does it for 10666-28 (the closest that
resembles IOCCC-28). It also plays one (if possible, obviously) from
stdin (written from the program).
Updated bugs.md with a limitation the author noted.
Format/typo checked README.md file.
Updated .gitignore.
The try.sh script is for the original entry. The try.alt.sh is of course
for the alt version that I only recently made.
Removed html files recode.html and chocolate-cake.html (the horror! But
there is the markdown file so all is good... or would be if it wasn't
for the fact it's enciphered as a fun way to experience the entry .. or
else otherwise a frustration if there wasn't
2020/ferguson1/chocolate-cake.md? :-) ).
Updated .gitignore.
Minor updates to chocolate cake file: but of course for most people they
might want 2020/ferguson1/chocolate-cake.md instead.
This should be all that needs to be done for 2020/ferguson2 - for now
anyway. The documentation has not been checked for typos/formatting but
that might happen another time.
Updated chocolate-cake.md file with some added notes.
Added PDF file ioccc-and-chocolate.pdf which was downloaded from a
website I originally linked to in chocolate-cake.md.
Removed html files based on the markdown files as the markdown files are
the source of them and this is being done differently now. In other
words index.html and inventory.html have not been removed, just those
that were created by me (or from what I wrote).
This does not format fix anything as I can always do that later. It is
after all my entry.
Minor fix in play.sh.
Minor update in bugs.md.
I believe this completes the review of 2020/ferguson1 but it's entirely
possible (almost certain) that things could be cleaned up more. However
in order to get through the rest of 2020 I am only doing quick passes
over my entries.
Why a try.sh for this? It shows that you can also automate the play (it
happens to come from the author's remarks, however, so there's that
too). Then it tells you to be serious by playing with a friend, either
real or imagined, rather than doing something so silly.
Update bugs.md with a INABIAF section.
The README.md file has been format/typo checked.
The alt code is so one can more easily filter the long output: it prints
a newline after each number is printed. The try.alt.sh script uses this.
Force -O0: the author stated that with clang they got correct output for
[0123s] but with GCC 6 they only got that with level 0. Since 0 works
with clang and since the author stated that the compilers used were
picky I changed it to level 0. Similarly and for the same reason I
changed the C standard to gnu11 from gnu17.
Format/typo check README.md file.
Updated bugs.md: noted that the max file size is 1GB.
I would like to give two quotes from the person this entry was dedicated
to:
'When you are about to jump, you are all alone and have to make your own
decisions. Up there, it's all "up yours".'
and
'I will move to Copenhagen and apply for Swedish citizenship.'
simply because they're funny and ironic (and one is quoted by the
author). These might be found somewhere in this commit.
This is not strictly necessary any more than some of the others but two
entries use this tool (at least since I added them back - they were
missing) and it seems better to have it this way.
Add 2018/vokes/example-1.txt and 2018/vokes/example-2.txt as the author
refers to the files (and the try.sh uses them in the same way). This is
important so that the entry can be by itself (which is being
considered).
The README.md file has been format/typo checked.
The bugs.md has been updated but it refers to two sections in the
README.md file as there is a lot to include.
The optimiser must be disabled due to it otherwise crashing in macOS in
some invocations. This has been added to the Makefile, the use of -O0 is
forced and a note has been added to the README.md file.
The bugs.md file has been updated on details of how it uses gets() and
that text has been removed from the thanks file.
Minor format fixes in README.md.
The script added makes use of the author's script (that I added as
mkdict.sh for easier use) after first trying to find a dictionary file.
But one can override the dictionary file with the DICT environmental
variable.
This entry should now truly be done.
The try.sh script runs the program on the source file, the README.md and
the Makefile in a loop that runs four times. It has one loop so that
there is a better chance that it won't show the same output on the same
file more than once though it's certainly possible that it will.
The optimiser had been left disabled by accident and this has been
restored.