Merge pull request #1017 from xexyl/1989-fubar-note

This commit is contained in:
Landon Curt Noll authored and GitHub committed 2023-10-07 12:39:54 -07:00
commit 4f17d07a40
6 files changed
+80 -14

No files matched your search

+4 -1
View File
@@ -33,10 +33,13 @@ Run this with a single digit argument (or wait a long time).
The blank line at the beginning of the source is mandatory.
Do you know why?
NOTE: don't try running [ouroboros.c](ouroboros.c) (note that it's executable)
NOTE: don't try running `ouroboros.c` (note that it's executable)
directly with an arg as it'll turn into an infinite loop. The same will happen
with larger numbers.
NOTE: the file `ouroboros.c` is created by the program itself so this is why it
is not in the repository.
## Author's remarks:
In a nutshell, this is probably the slowest and most
+1 -1
View File
@@ -38,7 +38,7 @@ include ../../var.mk
# Common C compiler warnings to silence
#
CSILENCE= -Wno-error -Wno-implicit-function-declaration -Wno-macro-redefined \
CSILENCE= -Wno-error -Wno-implicit-function-declaration \
-Wno-strict-prototypes
# Common C compiler warning flags
+1 -7
View File
@@ -1,16 +1,10 @@
# Most Portable Output
Thaddaeus Frogley
Creature Labs
164 Hornbeams
Harlow, Essex
UK
Gavin Buttimore
Creature Labs
9 Elizabeth Way
Cambridge
UK, CB4 1DE
UK
## To build:
+1 -1
View File
@@ -208,7 +208,7 @@ Just say
* Algorithmically, it incorporates the following
- (inverse) Burrows-Wheeler transform (used also e.g. in bzip2)
- data compression (really expansion :-), run-lenght-encoding,
- data compression (really expansion :-), run-length-encoding,
unary coding (this is why it is expansion rather than compression)
- approximate string matching
- dynamic programming to compute the edit distance
+63 -1
View File
@@ -736,7 +736,69 @@ work but it only works with gcc. Cody removed the warnings of `gets()`.
Unfortunately due to the way the entry works and the fact that other compilers
like clang have different warnings and errors this simply does not work with
them. Can you help us?
them.
Some tips from Cody:
This entry relies on specific compiler warnings. With gcc it will look something
like:
```
[...]
lush.c: In function 'main':
lush.c:40: warning: "f" redefined
40 | main
|
lush.c:1: note: this is the location of the previous definition
1 | #define gets(_) fgets((_),999,stdin)
|
lush.c:42: warning: "f" redefined
42 | #define f 001:
|
lush.c:40: note: this is the location of the previous definition
40 | main
|
lush.c:44: warning: "f" redefined
44 | #define f 100:
|
lush.c:42: note: this is the location of the previous definition
42 | #define f 001:
|
lush.c:45: warning: "f" redefined
45 | _[i--
|
lush.c:44: note: this is the location of the previous definition
44 | #define f 100:
|
lush.c:46: warning: "f" redefined
46 | #define f 126:
|
lush.c:45: note: this is the location of the previous definition
45 | _[i--
|
```
Now one can use `sed` to get the `warning:` line correct but there is more to it
than that. For instance this is what it looks like with clang:
```
lush.c:40:9: warning: 'f' macro redefined [-Wmacro-redefined]
#define f 001:
^
lush.c:1:9: note: previous definition is here
#define f 000:
^
lush.c:42:9: warning: 'f' macro redefined [-Wmacro-redefined]
#define f 100:
^
lush.c:40:9: note: previous definition is here
#define f 001:
^
```
As you might see the part under the `warning:` line is different.
Can you help us?
## [1992/westley](1992/westley/westley.c) ([README.md](1992/westley/README.md))
## STATUS: INABIAF - please **DO NOT** fix
+10 -3
View File
@@ -642,6 +642,9 @@ it moves towards the right but if you click the mouse it goes back.
Yusuke supplied a patch which makes this work with gcc. Due to how it works (see
Judges' remarks in the README.md file) this will not work with clang.
Cody also provided the `runme.sh` script to demonstrate it as using make was
problematic.
Cody made it use `fgets()` instead of `gets()` to prevent annoying warnings
getting in the way (in linux linking in a binary with `gets()` produces a
warning that might get in the way with this entry and in macOS at runtime it
@@ -652,8 +655,10 @@ with clang due to different compiler messages.
Cody later improved the `fgets()` change to look more like the original i.e. it
now uses a redefined `gets()`. This did require modifying the line number with
`#line 1` under the macro `gets()`. Still this cannot work with clang due to
different compiler messages. See [bugs.md](/bugs.md) for details.
`#line 1` under the macro `gets()`.
Still this cannot work with clang due to different compiler messages. See
[bugs.md](/bugs.md) for details.
## [1992/nathan](1992/nathan/nathan.c) ([README.md](1992/nathan/README.md))
@@ -795,7 +800,9 @@ Cody fixed this so that it would work with macOS. Once it could compile it
additionally segfaulted under macOS which he also fixed. Cody also provided the
[Alternate code](1995/cdua/cdua.alt.c) for fun :-) ) (in particular to make it
easier to see the program do what it does in systems that are too fast ... if
there is such a thing anyway :-) ).
there is such a thing anyway :-) ). See the README.md for details on this.
## [1995/garry](1995/garry/garry.c) ([README.md](1995/garry/README.md]))