Improvements and fixes to 2013/dlowe

The README.md format was messed up (extraneous and erroneous '```'s) due
to the nightmare (or perhaps daymare :-) ) of the many merging conflicts
of yesterday which required repeatedly resolving conflicts in GitHub.

I also renamed 'slen.sh' to 'sflen.sh' as it shows the sparkle OF the
length of all the files rather than a sparkle length. References to
slen.sh have been changed to sflen.sh instead.

The demo.sh script and the sflen.sh script now run:

    make all || exit 1

before proceeding. It does not do make clobber before because this only
clutters the output and is unnecessary if everything is already
compiled.

Oh and just for those who wonder if daymare is or is not really a word:
it is but I redefined it; literally it refers to a frightening hallucinatory
experience whilst awake (though perhaps GitHub was hallucinating :-) that
there were conflicts (well there were but there shouldn't have been)).
This commit is contained in:
Cody Boone Ferguson committed 2023-10-13 04:20:08 -07:00
1 parent 8d8eb98ef6
commit e4a024b329
4 files changed
+18 -26

No files matched your search

+7 -17
View File
@@ -24,17 +24,9 @@ make
./dlowe 16 32 64 128 ./dlowe 16 32 64 128
./dlowe 16 32 64 128 256 ./dlowe 16 32 64 128 256
./dlowe 16 32 64 128 256 512 ./dlowe 16 32 64 128 256 512
echo "sparkline of file sizes: $(wc -c * | awk '{print $1}' | xargs ./dlowe)" # or ./slen.sh
./dlowe 0 ./dlowe 0
echo "sparkline of file sizes: $(wc -c * | awk '{print $1}' | xargs ./dlowe)" # or ./slen.sh echo "sparkline of file sizes: $(wc -c * | awk '{print $1}' | xargs ./dlowe)" # or ./sflen.sh
```
./dlowe 0
echo "sparkline of file sizes: $(wc -c * | awk '{print $1}' | xargs ./dlowe)" # or ./slen.sh
``` ```
Alternatively, for the lazy or those short on time, try: Alternatively, for the lazy or those short on time, try:
@@ -51,10 +43,9 @@ echo 'IOCCC 2013' > ioccc.txt
rm -f ioccc.txt rm -f ioccc.txt
``` ```
? ?
To make it simpler to see try showing just the last two lines: To make it simpler to see try showing just the different line like:
```sh ```sh
./demo.sh | tail -n 2 > 1.txt ./demo.sh | tail -n 2 > 1.txt
@@ -79,8 +70,8 @@ something funny (or will it ? :-) ) and when will it do nothing?
We liked how this entry used Unicode, specifically UTF-8, in a somewhat obfuscated way. We liked how this entry used Unicode, specifically UTF-8, in a somewhat obfuscated way.
Also, why doesn't it crash, and produces a correct output when called with one argument Also, why doesn't it crash but instead produces a correct output when called
or when all arguments are equal? with one argument or when all arguments are equal?
For extra fun, compile and run [fun.c](fun.c): For extra fun, compile and run [fun.c](fun.c):
@@ -106,7 +97,7 @@ and with clang (3.3), we get
-2147483648 0 2147483647 -2147483648 0 2147483647
``` ```
and with Apple clang version 15.0.0 (clang-1500.0.40.1) we get: and with Apple clang version 15.0.0 (clang-1500.0.40.1) in 2023, we get:
``` ```
1840985120 -2033041452 35979112 1840985120 -2033041452 35979112
@@ -117,7 +108,6 @@ Which one is correct? :)
NOTE: `make all` will compile [fun.c](fun.c) but to provide a different compiler NOTE: `make all` will compile [fun.c](fun.c) but to provide a different compiler
you can do something like: you can do something like:
```sh ```sh
make CC=clang fun make CC=clang fun
``` ```
@@ -140,10 +130,10 @@ $ echo "sparkline of file lengths: $(wc -c * | awk '{print $1}' | xargs ./sparkl
sparkline of file sizes: ▁▁▁▃▃▂▁▂▁▁▉ sparkline of file sizes: ▁▁▁▃▃▂▁▂▁▁▉
``` ```
NOTE: this has been provided in [slen.sh](slen.sh) so you can try: NOTE: this has been provided in [sflen.sh](sflen.sh) so you can try:
```sh ```sh
./slen.sh ./sflen.sh
``` ```
instead. instead.
+3 -4
View File
@@ -1,7 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
make clobber all || exit 1 make all || exit 1
echo "$ ./dlowe 0 1 2 3 4 5 6 7" echo "$ ./dlowe 0 1 2 3 4 5 6 7"
./dlowe 0 1 2 3 4 5 6 7 ./dlowe 0 1 2 3 4 5 6 7
echo echo
@@ -17,5 +16,5 @@ echo
echo "$ ./dlowe 0" echo "$ ./dlowe 0"
./dlowe 0 ./dlowe 0
echo echo
echo "$ ./slen.sh" echo "$ ./sflen.sh"
./slen.sh ./sflen.sh
@@ -1,3 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
make all || exit 1
ln -sf dlowe sparkl
echo "sparkline of file lengths: $(wc -c ./* | awk '{print $1}' | xargs ./sparkl)" echo "sparkline of file lengths: $(wc -c ./* | awk '{print $1}' | xargs ./sparkl)"
+6 -5
View File
@@ -1641,15 +1641,16 @@ Cody added the source code that we suggested one should compile and run with
different compilers as [fun.c](2013/dlowe/fun.c). He modified the Makefile so different compilers as [fun.c](2013/dlowe/fun.c). He modified the Makefile so
that running `make all` will compile it, saving you the effort. that running `make all` will compile it, saving you the effort.
He also provided the script [slen.sh](2013/dlowe/slen.sh) which is based on the He also provided the script [sflen.sh](2013/dlowe/sflen.sh), fixing it for
author's remarks, giving a script that shows the spark line of the file lengths shellcheck, which is based on the author's remarks, giving a script that shows
(as in `wc -c`), fixing it for shellcheck. These fixes were applied in the the spark line of the file lengths (as in `wc -c`). These fixes were applied in
author's remarks as well. the author's remarks as well.
Since the author called the program `sparkl` Cody modified the Makefile so that Since the author called the program `sparkl` Cody modified the Makefile so that
running `make all` will create a symlink to `dlowe` as `sparkl`. Running `make running `make all` will create a symlink to `dlowe` as `sparkl`. Running `make
clobber` will delete both and running `make clobber all` will ensure that the clobber` will delete both and running `make clobber all` will ensure that the
symlink is created. symlink is created. The `sflen.sh` script also explicitly makes sure to create
the symlink as it uses it, even though it runs `make clobber all`.
Cody also added the [demo.sh](2013/dlowe/demo.sh) script to more easily try the Cody also added the [demo.sh](2013/dlowe/demo.sh) script to more easily try the
program. program.