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:
1 parent
23f7ac0a49
commit
ac41f07a83
92 files changed
+1326
-761
No files matched your search
@@ -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
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in new issue
Block a user