move fix thanks a file, update top level html links, rename CONTRIBUTING.md

The fix thank you's have been moved from `README.md` to
`thanks-for-fixes.md`.

**WARNING**: Some mistakes may have been made in doing this.
We presume later changes by others will correct any issues.

The `CONTRIBUTING.md` was renamed `how-to-enter.md`.

A 3rd line of links was added to top level html such as
`contact.html`, `index.html`, `judges.html`, `winners.html`,
and `years.html`.

Improved blank line use in a number (but not all) `README.md` files.
This commit is contained in:
Landon Curt Noll committed 2023-06-06 16:59:53 -07:00
1 parent 23f7ac0a49
commit ac41f07a83
92 files changed
+1326 -761

No files matched your search

+3 -8
View File
@@ -3,20 +3,13 @@
Daniel J. Bernstein
New York University
## To build:
```sh
make all
```
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this for modern
systems. There were two invalid operands to binary expression (`char *` and
`void` and `int` and `void`) to resolve and additionally a mis-feature of the C
pre-processor which no longer works had to be changed as well in order to get
this to compile. In particular the macro `C`, defined as `C =G` to make `+=` and
similar operators no longer works. The invalid operands to binary expressions
were resolved with the comma operator. Thank you Cody for your assistance!
## Try:
@@ -44,6 +37,7 @@ this entry.
To have a chance to compile under a modern CPP, we had to
replace `#D` with `#define`.
## Author's remarks:
This is an interpreter for the programming language SORTA, a systems
@@ -184,6 +178,7 @@ matching, reading from files into strings, and encrypting the string
pool to further confuse the judges. I don't think I can fit this into
the size limit, unfortunately.
## Copyright and CC BY-SA 4.0 License:
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
+11 -15
View File
@@ -5,12 +5,14 @@ Greece
<https://www.spinellis.gr/>
Mastodon: <https://mstdn.social/@DSpinellis>
## To build:
```sh
make all
```
## To run:
```sh
@@ -18,18 +20,10 @@ make all
./a.out 2>/dev/null
```
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed a segfault that
prevented this entry from working at all and made an alternate version
that works with `clang`. The alternate code, described below, is what is needed
for clang. Reading it might be instructive even if you have gcc.
The segfault which was always triggered was due to the code `*q>' '&&(*q)--;`.
This seems odd at first glance but it's pointing to `s` which was read-only
memory as a `char *s`. It's now a `char s[]`.
Thank you Cody for your assistance!
NOTE: for `clang` you'll likely have to use the alternate code described below.
@@ -42,6 +36,7 @@ something funny.
These are a mild nuisance but are considered a feature not a bug. We challenge
you to fix it for learning if you wish. See also [bugs.md](/bugs.md).
## Try:
With gcc, make and run as follows:
@@ -66,13 +61,15 @@ What happens if you give the program a C program like itself? Try:
You'll get errors yes but what does the generated file look like? What about
other types of files?
### Alternative code:
The alternative code, provided by Cody, allows this entry to work successfully
The alternative code allows this entry to work successfully
even with clang. He notes that unfortunately it's something of a hack or maybe
even a kludge. This however seems important because it works well and allows for
not messing with the `s` string which is quite complicated. For all Cody knows
even changing the length could break functionality and indeed the length would
not messing with the `s` string which is quite complicated.
Even changing the length could break functionality and indeed the length would
have to be longer for this to work with clang.
How does it work? The code (which you will see in [dds.c](dds.c)) does a `return
@@ -83,8 +80,8 @@ that the compilation failed with clang (because it didn't use `make` so no
[LANDER.BAS](LANDER.BAS)) due to a return from `main()` without a return value
and the use of functions not yet declared.
Now as noted since the string `s` is complicated and because Cody did not want
to inadvertently mess something up he changed that code to `system("make a");`
Now as noted since the string `s` is complicated and to not
inadvertently mess something up he changed that code to `system("make a");`
and then added the right rule to the Makefile. Thus for the alternative version
you now need both `make` and `cc`. If you use gcc you may change the system()
call to what was given in this description to get a more authentic feel. If you
@@ -97,8 +94,6 @@ make clobber alt
./a 2>/dev/null
```
Thank you Cody for your assistance!
## Judges' remarks:
@@ -170,6 +165,7 @@ decision tree is implemented in order to match the statements. (Of
course the `s` string is encoded by adding one to every character of it just
to confuse you).
## Copyright and CC BY-SA 4.0 License:
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
+4 -8
View File
@@ -7,20 +7,13 @@ St. Paul, MN 55104
US
<http://www.westley.org>
## To build:
```sh
make all
```
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed a segfault in
this program which prevented it from working. The problem was that the read-only
char array `char *z[]` was being written to. The fix was to change it to `char
z[][100]` in two spots (see if you can determine why two places, not one!). Why
100 when the longest string is < 100? Because a shorter value caused strange
output and it's easier to just choose a larger value that works without having
to find the correct value. Thank you Cody for your assistance!
## To run:
Make and run as follows:
@@ -110,6 +103,7 @@ ttt: I win!
Redirects stderr to `/dev/null` by default. If you need errors or warnings use
`-e`.
## Judges' remarks:
Can you figure out why the board looks different than the
@@ -136,6 +130,7 @@ you can win tic-tac-toe, that there can be acceptable draws.
Try not to cheat (even though it's very easy :-) ), the computer has not learned
how to catch you doing it.
## Author's remarks:
A tic-tac-toe self-modifying program that "learns". This C program
@@ -267,6 +262,7 @@ If you want a program that never loses, simply replace the string
sbhaq. N grzcyngr vf fpnaarq sebz obggbz gb gbc, evtug gb yrsg
(v.r. zbir 9 vf grfgrq svefg, gura 8, qbja gb zbir 1).
## Copyright and CC BY-SA 4.0 License:
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.