Add new file to 2024/ferguson1
The gotos.txt file (manifest updated) shows the line changes in a single run of the program. Capitalised some text. Changed width and height attributes in images - they were too hard to see otherwise (for those of us with poor vision it's still hard on a mobile device but it was almost impossible to see on the computer for me - now it scales better, for some definitions of 'better'). Rebuilt html files.
This commit is contained in:
1 parent
964dd3c4db
commit
c240bd216e
6 files changed
+217
-67
No files matched your search
@@ -101,6 +101,14 @@
|
|||||||
"display_via_github" : true,
|
"display_via_github" : true,
|
||||||
"entry_text" : "hints on how to deobfuscate"
|
"entry_text" : "hints on how to deobfuscate"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"file_path" : "gotos.txt",
|
||||||
|
"inventory_order" : 100,
|
||||||
|
"OK_to_edit" : true,
|
||||||
|
"display_as" : "text",
|
||||||
|
"display_via_github" : true,
|
||||||
|
"entry_text" : "text file showing all the line changes in a run"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"file_path" : "lencount.c",
|
"file_path" : "lencount.c",
|
||||||
"inventory_order" : 100,
|
"inventory_order" : 100,
|
||||||
|
|||||||
+87
-34
@@ -53,39 +53,35 @@ inside this C code. :-)
|
|||||||
|
|
||||||
## Author's remarks:
|
## Author's remarks:
|
||||||
|
|
||||||
<div id="devil">
|
|
||||||
### A Pact With the Devil On the Oregon Trail (...and his 134 regrets of goto)
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr style="width:10%;text-align:left;margin-left:0">
|
|
||||||
|
|
||||||
> Fun fact: after winning this, the author played the game in gdb from start to
|
> Fun fact: after winning this, the author played the game in gdb from start to
|
||||||
finish and not counting macros but counting all function calls (not libc
|
finish and not counting macros but counting all function calls (not libc
|
||||||
functions, functions in prog.c), there were a total of **985** (!) line jumps.
|
functions just the few functions in prog.c), there were a total of **985** (!)
|
||||||
The prog.c, counting `#include`s, `#define`s, functions and some lines that have
|
line jumps. The prog.c, counting `#include`s, `#define`s, functions and some
|
||||||
only braces, as well as 14 blank lines, has only 85 lines. A very tiny fraction
|
lines that have only braces, as well as 14 blank lines, has only 85 lines. A
|
||||||
of the time a line might be repeated in a row ONCE but that does not really matter.
|
very tiny fraction of the time a line might be repeated in a row ONCE but that
|
||||||
|
does not really matter.
|
||||||
|
|
||||||
**NOTE**: I actually submitted two versions. This one is not encrypted. The
|
**NOTE**: I actually submitted two versions. This one is not encrypted. The
|
||||||
encrypted one even encrypted emojis without having to decrypt them in order to
|
encrypted one even encrypted emojis without having to decrypt them in order to
|
||||||
print them (and everything else). I have kept references to encryption in this
|
print them (and everything else). I have kept references to encryption in this
|
||||||
file even after publication. I do have a copy of it if anyone is interested.
|
file even after publication. I do have a copy of it if anyone is interested.
|
||||||
|
|
||||||
<hr style="width:10%;text-align:left;margin-left:0">
|
<div id="devil">
|
||||||
|
### A Pact With the Devil On the Oregon Trail (...and his 134 regrets of goto)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
The _Go To Hell In A Handcart Travel Company_ **PROUDLY** welcomes all sinners to
|
||||||
The **Go To Hell In A Handcart Travel Company** PROUDLY welcomes all sinners to
|
our **GREATEST** destination yet, with:
|
||||||
our GREATEST destination yet, with:
|
|
||||||
|
|
||||||
<img src="devil.png"
|
<img src="devil.png"
|
||||||
alt="A Pact With the Devil On the Oregon Trail - Devil driving wagon"
|
alt="A Pact With the Devil On the Oregon Trail - Devil driving wagon"
|
||||||
width=640 height=640>
|
width=1024 height=1024>
|
||||||
|
|
||||||
Here is our travel guide:
|
Here is our very sincere travel guide:
|
||||||
|
|
||||||
<img src="travelguide.jpg"
|
<img src="travelguide.jpg"
|
||||||
alt="Hell In A Handcart Travel Company Oregon Trail travel guide"
|
alt="Hell In A Handcart Travel Company Oregon Trail travel guide"
|
||||||
width=640 height=720>
|
width=1536 height=1684>
|
||||||
|
|
||||||
But before I help any sinners embark on this once in a lifetime journey, some
|
But before I help any sinners embark on this once in a lifetime journey, some
|
||||||
travellers might wish to look at the [commentary on the jokes](#jokes) (and
|
travellers might wish to look at the [commentary on the jokes](#jokes) (and
|
||||||
@@ -153,7 +149,8 @@ seen any suggestion of them before, one because it's absolutely contrary to how
|
|||||||
it works in C, namely near 200 NUL terminated `char *`s in a single flat `char
|
it works in C, namely near 200 NUL terminated `char *`s in a single flat `char
|
||||||
*` - no, not an array of `char *[]`).
|
*` - no, not an array of `char *[]`).
|
||||||
|
|
||||||
See [obfuscation.html](obfuscation.html) and my [concluding remarks](#conclusion) for
|
See [obfuscation.html](obfuscation.html) and my [concluding
|
||||||
|
remarks](#conclusions) for
|
||||||
more details on just how many `goto`s I have but beware of monsters. But be careful
|
more details on just how many `goto`s I have but beware of monsters. But be careful
|
||||||
if you have a heart condition. And if you're a computer scientist make sure
|
if you have a heart condition. And if you're a computer scientist make sure
|
||||||
you're not at risk of stroke.
|
you're not at risk of stroke.
|
||||||
@@ -1384,7 +1381,7 @@ the fact that original Oregon Trail (and my game is even worse) is a goto hell
|
|||||||
spaghetti code and my joke in the [obfuscation.html](obfuscation.html) file (not to
|
spaghetti code and my joke in the [obfuscation.html](obfuscation.html) file (not to
|
||||||
mention the joke of using the obscene amount of `goto`s in a single small
|
mention the joke of using the obscene amount of `goto`s in a single small
|
||||||
program (see the obfuscation file for more on that as well as [concluding
|
program (see the obfuscation file for more on that as well as [concluding
|
||||||
remarks](#conclusion)).
|
remarks](#conclusions)).
|
||||||
|
|
||||||
The message is full of irony for added effect, namely the 'WELCOME TO HELL!' and
|
The message is full of irony for added effect, namely the 'WELCOME TO HELL!' and
|
||||||
calling it your forever home, plus god wishing you a prosperous life ahead.
|
calling it your forever home, plus god wishing you a prosperous life ahead.
|
||||||
@@ -3245,8 +3242,9 @@ ineffable.
|
|||||||
|
|
||||||
Actually I wanted to see what it was like. It was VERY amusing - but only
|
Actually I wanted to see what it was like. It was VERY amusing - but only
|
||||||
because I did not have to debug it. For the submission I included line changes
|
because I did not have to debug it. For the submission I included line changes
|
||||||
for JUST the third prompt. It looked like:
|
for JUST the third prompt. Yes, what would only take a few seconds of play. It
|
||||||
time (mere hours left) but to get to JUST the third prompt this is the lines it
|
looked like this (I only did the third prompt as I had mere hours left to
|
||||||
|
finish):
|
||||||
|
|
||||||
```
|
```
|
||||||
19 20 21 32 69 82 34 33 34 47 45 47 50 83 34 33 34 47 45 47 50 83 34 33 34
|
19 20 21 32 69 82 34 33 34 47 45 47 50 83 34 33 34 47 45 47 50 83 34 33 34
|
||||||
@@ -3258,15 +3256,19 @@ I'm a dragon. I'm not a dragon. I have a secret for you: dragons don't exist.
|
|||||||
Except on the Oregon Trail.
|
Except on the Oregon Trail.
|
||||||
|
|
||||||
I was right too: the entire game is worse, far far worse. After this won I did a
|
I was right too: the entire game is worse, far far worse. After this won I did a
|
||||||
full sequence. This is from start to finish and I include it for your amusement.
|
full sequence. This is from start to finish and I include it for your amusement
|
||||||
Or horror. There are a few times where the line is the same but that only shows
|
(see [gotos.txt](gotos.txt)). Or horror. There are a few times where the line
|
||||||
how very often the line changes. It is a total of 985 changes, counting
|
is the same but that only shows how very often the line changes. It is a total
|
||||||
function calls (i.e. each call to one of the few functions is a jump); calls to
|
of **985** (!) changes, counting function calls (i.e. each call to one of the few
|
||||||
the macros are not counted.
|
functions is a jump); calls to the macros are not counted.
|
||||||
|
|
||||||
This is in a program that is JUST 85 lines! A program that has only 85 lines
|
This is in a program that is **JUST 85 (!) lines**! A program that has only 85 lines
|
||||||
COUNTING the `#include`s, `#define`s, other functions and 14 blank lines that
|
COUNTING the `#include`s, `#define`s, other functions and 14 blank lines that
|
||||||
jumps 985 times is astonishing.
|
jumps 985 times is astonishing. Of course that's not the only technique but the
|
||||||
|
title of the award and the judges' remarks are rather fitting as it is
|
||||||
|
diabolical to follow this code (and the theme of the game fits as well); the
|
||||||
|
[obfuscation.html](obfuscation.html) shows even more on this - and the other
|
||||||
|
things I did as well.
|
||||||
|
|
||||||
> I have yet to see a single study that supported the supposition that GOTOs are
|
> I have yet to see a single study that supported the supposition that GOTOs are
|
||||||
harmful (I presume this is not because nobody has tried). Nonetheless, people
|
harmful (I presume this is not because nobody has tried). Nonetheless, people
|
||||||
@@ -3278,14 +3280,17 @@ Well after a bit more than 38 years I have finally provided exactly what Frank
|
|||||||
said was missing. And it was about time. Not that it didn't happen before. But
|
said was missing. And it was about time. Not that it didn't happen before. But
|
||||||
he was wrong.
|
he was wrong.
|
||||||
|
|
||||||
It is not about not trying. But even IF he was right, he
|
It is not about not trying. But even IF he WAS right, he
|
||||||
sure is WRONG NOW. Anyone who thinks otherwise needs to try and debug
|
sure as hell is WRONG NOW. Anyone who thinks otherwise needs to try and debug
|
||||||
my program - or maintain it. Or write it.
|
my program - or maintain it. Or write it.
|
||||||
|
|
||||||
It would have been SO MUCH EASIER if I did not use 134 `goto`s. Actually, even a
|
It would have been SO MUCH EASIER if I did not use 134 `goto`s. Actually, even a
|
||||||
tiny portion of that would make it harder. Nobody, whether they're in their
|
tiny portion of that would make it harder. Nobody, whether they're in their
|
||||||
right mind or not, would WANT to maintain this, or something even close to it.
|
right mind or not, would WANT to maintain this, or something even close to it.
|
||||||
Feel free to pass on judgement to me. I welcome it!
|
Feel free to pass on judgement to me. I welcome it! You have to be mad and
|
||||||
|
embrace it to do this. I went full out and if I didn't have to do other things
|
||||||
|
(or felt like fewer events would be worth it) I would have done even more
|
||||||
|
`goto`s for this very reason.
|
||||||
|
|
||||||
Even flex/bison code, which as far as I am aware uses FAR fewer `goto`s, is
|
Even flex/bison code, which as far as I am aware uses FAR fewer `goto`s, is
|
||||||
notorious for `goto`s and is quite hard to follow. It would be a nightmare to
|
notorious for `goto`s and is quite hard to follow. It would be a nightmare to
|
||||||
@@ -3295,7 +3300,7 @@ Okay, yes, I admit it: my abuse is extreme.
|
|||||||
|
|
||||||
That doesn't matter. As I remind everyone later, Apple caused a security hole
|
That doesn't matter. As I remind everyone later, Apple caused a security hole
|
||||||
because of a SINGLE misplaced `goto`. Mine is 133 more than that - and it works.
|
because of a SINGLE misplaced `goto`. Mine is 133 more than that - and it works.
|
||||||
It shouldn't.
|
It shouldn't. But of course it does.
|
||||||
|
|
||||||
> Then they turn around and say, 'See, the program with GOTOs is more complex.'
|
> Then they turn around and say, 'See, the program with GOTOs is more complex.'
|
||||||
In short, the belief that GOTOs are harmful appears to have become a religious
|
In short, the belief that GOTOs are harmful appears to have become a religious
|
||||||
@@ -3304,7 +3309,7 @@ doctrine, unassailable by evidence.
|
|||||||
Well, Frank, I hope you appreciate the evidence now.
|
Well, Frank, I hope you appreciate the evidence now.
|
||||||
|
|
||||||
I could go on but I don't want to criticise, as I said somewhere, and it's not
|
I could go on but I don't want to criticise, as I said somewhere, and it's not
|
||||||
really important. My point was that where 1987/hines IS INDEED a beautiful
|
really important. My point was that whereas 1987/hines IS INDEED a beautiful
|
||||||
counter-example of this letter, mine takes it much further. This program is not
|
counter-example of this letter, mine takes it much further. This program is not
|
||||||
something anyone would want to maintain - presumably even Frank.
|
something anyone would want to maintain - presumably even Frank.
|
||||||
|
|
||||||
@@ -3321,7 +3326,8 @@ I would have used git bisect but it would have been a lot of time lost, if I had
|
|||||||
made even a few more commits. As it is it took a full two months and I BARELY
|
made even a few more commits. As it is it took a full two months and I BARELY
|
||||||
finished this. In fact I finished it within hours of the contest closing! It was
|
finished this. In fact I finished it within hours of the contest closing! It was
|
||||||
not even 12 hours before closing time. I barely made it. Part of that is I added
|
not even 12 hours before closing time. I barely made it. Part of that is I added
|
||||||
even more `goto`s, despite the fact I had reached 2503 in size.
|
even more `goto`s, despite the fact I had reached 2503 in size, with careful
|
||||||
|
size optimisation.
|
||||||
|
|
||||||
Countless times I came up with ways to do more, at least where it was possible,
|
Countless times I came up with ways to do more, at least where it was possible,
|
||||||
such as freeing space so I could change some `break;`s to a `goto Z;` as `Z:`
|
such as freeing space so I could change some `break;`s to a `goto Z;` as `Z:`
|
||||||
@@ -3331,6 +3337,22 @@ said, I could not really move any more code if I wanted to, even if I had more
|
|||||||
space free. Those very few places where the code could in theory be moved are
|
space free. Those very few places where the code could in theory be moved are
|
||||||
already controlled by goto.
|
already controlled by goto.
|
||||||
|
|
||||||
|
In fact I could have done more `goto`s in this version but I wanted to help the
|
||||||
|
judges out in judging - that and it was easier to verify things are correct.
|
||||||
|
`iocccsize` reports on prog.c 2457 and after I won this I kind of wish I did
|
||||||
|
take it even further just to mess with everyone even more.
|
||||||
|
|
||||||
|
But as I said elsewhere basically everything is in the wrong place so what even
|
||||||
|
would be the point in doing that? It would probably not make it harder to follow
|
||||||
|
(well it would but still would there be a point in it?); it would just make it
|
||||||
|
even more absurd: the amount of spaghetti code makes it nigh impossible to
|
||||||
|
follow and I'm happy to have smashed the record of 24 by 110 `goto`s, even if I
|
||||||
|
now wish I had gone even further.
|
||||||
|
|
||||||
|
Nonetheless the 134 is what won so that's what I'll live by (and I doubt it'll
|
||||||
|
be broken as this kind of trick will, as the general remarks about the entries
|
||||||
|
note, not be as worthy, even if `goto`s are alas, not banned outright).
|
||||||
|
|
||||||
Anyway, as I noted in [obfuscation.html](obfuscation.html), no initialisation is
|
Anyway, as I noted in [obfuscation.html](obfuscation.html), no initialisation is
|
||||||
skipped in my jumps and that is what causes `goto` to invoke UB.
|
skipped in my jumps and that is what causes `goto` to invoke UB.
|
||||||
|
|
||||||
@@ -3590,6 +3612,37 @@ would be worse with The Chronicles of Narnia. Probably most stories you'll run
|
|||||||
into issues without some code modifications (have fun!!). But hopefully this
|
into issues without some code modifications (have fun!!). But hopefully this
|
||||||
helps you appreciate the careful design even more.
|
helps you appreciate the careful design even more.
|
||||||
|
|
||||||
|
### Dedications and thanks
|
||||||
|
|
||||||
|
I dedicate this to all the poor souls who suffered in the [Salem Witchcraft
|
||||||
|
Trials](https://en.wikipedia.org/wiki/Salem_witch_trials), the [Great Molasses
|
||||||
|
Flood](https://en.wikipedia.org/wiki/Great_Molasses_Flood) as well as all those
|
||||||
|
who died on the [Oregon Trail](https://en.wikipedia.org/wiki/Oregon_Trail).
|
||||||
|
|
||||||
|
Oh and those who were eaten by [Dragons](https://en.wikipedia.org/wiki/Dragon),
|
||||||
|
attacked by [Werewolves](https://en.wikipedia.org/wiki/Werewolf) or bitten by a
|
||||||
|
[Vampire](https://en.wikipedia.org/wiki/Vampire) (fun or not so fun fact: there
|
||||||
|
is a disease that has some of the similarities to vampirism, so much so that
|
||||||
|
it's known also as the vampire disease:
|
||||||
|
[porphyria](https://medicover-genetics.com/porphyria-the-facts-behind-the-so-called-vampire-disease/).
|
||||||
|
Plus [Blackbeard's](https://en.wikipedia.org/wiki/Blackbeard) victims. Oh and
|
||||||
|
yes anyone attacked by the [Flying
|
||||||
|
Spaghetti Monster (FSM)](https://en.wikipedia.org/wiki/Flying_Spaghetti_Monster)
|
||||||
|
or those who were tricked by the [BBC April Fool's prank of the
|
||||||
|
Spaghetti
|
||||||
|
tree](http://news.bbc.co.uk/onthisday/hi/dates/stories/april/1/newsid_2819000/2819261.stm)
|
||||||
|
on the [Panorama programme](https://www.bbc.co.uk/programmes/b006t14n) in 1957.
|
||||||
|
Bless you all (probably by the [devil on the Oregon
|
||||||
|
Trail](https://www.ioccc.org/2024/ferguson1/index.html)).
|
||||||
|
|
||||||
|
On a more serious note I also dedicate this to my lovely Mum Dianne and
|
||||||
|
my dear cousin Dani plus my great friend Martijn Schoemaker who gave me my first
|
||||||
|
real opportunity (a MUD) to get great at C back in the early 2000s and who
|
||||||
|
reminded me of the IOCCC so many years ago now.
|
||||||
|
|
||||||
|
Also thanks to my friends for putting up with my slow responses (and in some
|
||||||
|
cases no response at all) as I was working on this.
|
||||||
|
|
||||||
|
|
||||||
#### P.S. select remarks made to the IOCCC Judges
|
#### P.S. select remarks made to the IOCCC Judges
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
19 20 21 32 15 13 15 68 81 34 33 15 13 15 34 13 49 47 49 52 82 34 33 15 13
|
||||||
|
15 34 13 49 47 49 52 82 34 33 15 13 15 34 13 49 47 49 52 82 34 33 15 13 15
|
||||||
|
34 13 49 47 49 52 82 34 33 15 13 15 34 13 49 47 49 52 82 18 19 13 19 21 78
|
||||||
|
27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30 78 63 82 15 13 15 13 53 56
|
||||||
|
30 16 32 27 15 13 15 27 32 57 59 57 58 57 59 81 15 13 15 81 71 74 72 74 76
|
||||||
|
27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30 78 63 82 15 13 15 13 52 57
|
||||||
|
59 57 58 57 59 64 15 13 15 19 64 81 71 74 72 74 76 27 54 29 55 52 55 52 55
|
||||||
|
52 55 52 55 52 30 13 30 15 13 15 13 52 57 59 57 58 57 59 64 15 13 15 19 64
|
||||||
|
81 71 74 72 74 76 27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30 15 13 15
|
||||||
|
13 68 81 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39 41 39
|
||||||
|
41 43 52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39 41
|
||||||
|
39 41 43 52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39
|
||||||
|
41 39 41 43 52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41
|
||||||
|
39 41 39 41 43 52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39
|
||||||
|
41 39 41 39 41 43 52 82 18 55 29 55 29 29 55 29 29 55 29 29 55 29 29 55 29
|
||||||
|
19 13 19 57 59 57 58 57 59 81 71 74 72 74 76 27 54 29 55 52 55 52 55 52 55
|
||||||
|
52 55 52 30 13 30 15 13 15 13 52 57 59 57 58 57 59 60 15 13 15 60 81 71 74
|
||||||
|
72 74 76 27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30 15 13 15 13 52 57
|
||||||
|
59 57 58 57 59 64 15 13 15 19 64 81 71 74 72 74 76 27 54 29 55 52 55 52 55
|
||||||
|
52 55 52 55 52 30 13 30 78 63 82 15 13 15 13 52 57 59 57 58 57 59 64 15 13
|
||||||
|
15 19 64 81 54 15 13 15 54 15 13 15 15 13 15 83 15 13 15 27 54 29 55 52 55
|
||||||
|
52 55 52 55 52 55 52 30 13 30 78 63 82 15 13 15 13 52 57 59 57 58 57 59 64
|
||||||
|
15 13 15 64 81 83 68 71 15 13 15 74 72 74 76 27 54 29 55 52 55 52 55 52 55
|
||||||
|
52 55 52 30 13 30 78 63 82 15 13 15 13 52 57 59 57 58 57 59 64 15 13 15 64
|
||||||
|
81 83 68 71 74 72 74 76 27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30 78
|
||||||
|
63 82 15 13 15 13 52 57 59 57 58 57 59 61 15 13 15 61 81 83 68 71 15 13 15
|
||||||
|
74 72 74 76 27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30 15 13 15 13 68
|
||||||
|
81 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39 41 39 41 43
|
||||||
|
52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39 41 39 41
|
||||||
|
43 52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39 41 39
|
||||||
|
41 43 52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39 41
|
||||||
|
39 41 43 52 82 34 33 15 13 15 34 13 36 39 41 39 39 41 39 41 39 41 39 41 39
|
||||||
|
41 39 41 43 52 82 18 55 29 55 29 29 55 29 29 55 29 29 55 29 29 55 29 19 13
|
||||||
|
19 57 59 57 58 57 59 81 15 13 15 81 83 68 71 74 72 74 76 27 54 29 55 52 55
|
||||||
|
52 55 52 55 52 55 52 30 13 30 15 13 15 13 52 57 59 57 58 57 59 65 15 13 15
|
||||||
|
65 81 83 68 71 74 72 74 76 27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30
|
||||||
|
15 13 15 13 52 57 59 57 58 57 59 60 15 13 15 60 81 83 68 69 70 71 15 13 15
|
||||||
|
74 72 74 76 27 54 29 55 52 55 52 55 52 55 52 55 52 30 13 30 15 13 15 13 52
|
||||||
|
57 59 57 58 57 59 64 15 13 15 19 64 81 83 68 71 15 13 15 74 72 74 76 27 83
|
||||||
|
26 21 15 13 15 15 13 15 24 85
|
||||||
+80
-31
@@ -495,32 +495,31 @@ by <a href="https://en.wikipedia.org/wiki/The_Oregon_Trail_(series)">Oregon Trai
|
|||||||
how well prepared you are, you will have a devil of a time jumping around
|
how well prepared you are, you will have a devil of a time jumping around
|
||||||
inside this C code. :-)</p>
|
inside this C code. :-)</p>
|
||||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||||
<div id="devil">
|
|
||||||
<h3 id="a-pact-with-the-devil-on-the-oregon-trail-and-his-134-regrets-of-goto">A Pact With the Devil On the Oregon Trail (…and his 134 regrets of goto)</h3>
|
|
||||||
</div>
|
|
||||||
<hr style="width:10%;text-align:left;margin-left:0">
|
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>Fun fact: after winning this, the author played the game in gdb from start to
|
<p>Fun fact: after winning this, the author played the game in gdb from start to
|
||||||
finish and not counting macros but counting all function calls (not libc
|
finish and not counting macros but counting all function calls (not libc
|
||||||
functions, functions in prog.c), there were a total of <strong>985</strong> (!) line jumps.
|
functions just the few functions in prog.c), there were a total of <strong>985</strong> (!)
|
||||||
The prog.c, counting <code>#include</code>s, <code>#define</code>s, functions and some lines that have
|
line jumps. The prog.c, counting <code>#include</code>s, <code>#define</code>s, functions and some
|
||||||
only braces, as well as 14 blank lines, has only 85 lines. A very tiny fraction
|
lines that have only braces, as well as 14 blank lines, has only 85 lines. A
|
||||||
of the time a line might be repeated in a row ONCE but that does not really matter.</p>
|
very tiny fraction of the time a line might be repeated in a row ONCE but that
|
||||||
|
does not really matter.</p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<p><strong>NOTE</strong>: I actually submitted two versions. This one is not encrypted. The
|
<p><strong>NOTE</strong>: I actually submitted two versions. This one is not encrypted. The
|
||||||
encrypted one even encrypted emojis without having to decrypt them in order to
|
encrypted one even encrypted emojis without having to decrypt them in order to
|
||||||
print them (and everything else). I have kept references to encryption in this
|
print them (and everything else). I have kept references to encryption in this
|
||||||
file even after publication. I do have a copy of it if anyone is interested.</p>
|
file even after publication. I do have a copy of it if anyone is interested.</p>
|
||||||
<hr style="width:10%;text-align:left;margin-left:0">
|
<div id="devil">
|
||||||
<p>The <strong>Go To Hell In A Handcart Travel Company</strong> PROUDLY welcomes all sinners to
|
<h3 id="a-pact-with-the-devil-on-the-oregon-trail-and-his-134-regrets-of-goto">A Pact With the Devil On the Oregon Trail (…and his 134 regrets of goto)</h3>
|
||||||
our GREATEST destination yet, with:</p>
|
</div>
|
||||||
|
<p>The <em>Go To Hell In A Handcart Travel Company</em> <strong>PROUDLY</strong> welcomes all sinners to
|
||||||
|
our <strong>GREATEST</strong> destination yet, with:</p>
|
||||||
<p><img src="devil.png"
|
<p><img src="devil.png"
|
||||||
alt="A Pact With the Devil On the Oregon Trail - Devil driving wagon"
|
alt="A Pact With the Devil On the Oregon Trail - Devil driving wagon"
|
||||||
width=640 height=640></p>
|
width=1024 height=1024></p>
|
||||||
<p>Here is our travel guide:</p>
|
<p>Here is our very sincere travel guide:</p>
|
||||||
<p><img src="travelguide.jpg"
|
<p><img src="travelguide.jpg"
|
||||||
alt="Hell In A Handcart Travel Company Oregon Trail travel guide"
|
alt="Hell In A Handcart Travel Company Oregon Trail travel guide"
|
||||||
width=640 height=720></p>
|
width=1536 height=1684></p>
|
||||||
<p>But before I help any sinners embark on this once in a lifetime journey, some
|
<p>But before I help any sinners embark on this once in a lifetime journey, some
|
||||||
travellers might wish to look at the <a href="#jokes">commentary on the jokes</a> (and
|
travellers might wish to look at the <a href="#jokes">commentary on the jokes</a> (and
|
||||||
possibly the <a href="#disclaimer">disclaimer</a>) as well as the <a href="#humour">humour</a>
|
possibly the <a href="#disclaimer">disclaimer</a>) as well as the <a href="#humour">humour</a>
|
||||||
@@ -576,7 +575,8 @@ things I have done - and some are really quite unique and cool, or at least I
|
|||||||
think they are unique (I have never seen these things before nor have I even
|
think they are unique (I have never seen these things before nor have I even
|
||||||
seen any suggestion of them before, one because it’s absolutely contrary to how
|
seen any suggestion of them before, one because it’s absolutely contrary to how
|
||||||
it works in C, namely near 200 NUL terminated <code>char *</code>s in a single flat <code>char *</code> - no, not an array of <code>char *[]</code>).</p>
|
it works in C, namely near 200 NUL terminated <code>char *</code>s in a single flat <code>char *</code> - no, not an array of <code>char *[]</code>).</p>
|
||||||
<p>See <a href="obfuscation.html">obfuscation.html</a> and my <a href="#conclusion">concluding remarks</a> for
|
<p>See <a href="obfuscation.html">obfuscation.html</a> and my <a href="#conclusions">concluding
|
||||||
|
remarks</a> for
|
||||||
more details on just how many <code>goto</code>s I have but beware of monsters. But be careful
|
more details on just how many <code>goto</code>s I have but beware of monsters. But be careful
|
||||||
if you have a heart condition. And if you’re a computer scientist make sure
|
if you have a heart condition. And if you’re a computer scientist make sure
|
||||||
you’re not at risk of stroke.</p>
|
you’re not at risk of stroke.</p>
|
||||||
@@ -1556,7 +1556,7 @@ winning the game (what is winning in this case? - see below). This is a play on
|
|||||||
the fact that original Oregon Trail (and my game is even worse) is a goto hell
|
the fact that original Oregon Trail (and my game is even worse) is a goto hell
|
||||||
spaghetti code and my joke in the <a href="obfuscation.html">obfuscation.html</a> file (not to
|
spaghetti code and my joke in the <a href="obfuscation.html">obfuscation.html</a> file (not to
|
||||||
mention the joke of using the obscene amount of <code>goto</code>s in a single small
|
mention the joke of using the obscene amount of <code>goto</code>s in a single small
|
||||||
program (see the obfuscation file for more on that as well as <a href="#conclusion">concluding
|
program (see the obfuscation file for more on that as well as <a href="#conclusions">concluding
|
||||||
remarks</a>).</p>
|
remarks</a>).</p>
|
||||||
<p>The message is full of irony for added effect, namely the ‘WELCOME TO HELL!’ and
|
<p>The message is full of irony for added effect, namely the ‘WELCOME TO HELL!’ and
|
||||||
calling it your forever home, plus god wishing you a prosperous life ahead.</p>
|
calling it your forever home, plus god wishing you a prosperous life ahead.</p>
|
||||||
@@ -3081,22 +3081,27 @@ traits I do not even know how to describe. Perhaps they would be utterly
|
|||||||
ineffable.</p>
|
ineffable.</p>
|
||||||
<p>Actually I wanted to see what it was like. It was VERY amusing - but only
|
<p>Actually I wanted to see what it was like. It was VERY amusing - but only
|
||||||
because I did not have to debug it. For the submission I included line changes
|
because I did not have to debug it. For the submission I included line changes
|
||||||
for JUST the third prompt. It looked like:
|
for JUST the third prompt. Yes, what would only take a few seconds of play. It
|
||||||
time (mere hours left) but to get to JUST the third prompt this is the lines it</p>
|
looked like this (I only did the third prompt as I had mere hours left to
|
||||||
|
finish):</p>
|
||||||
<pre><code> 19 20 21 32 69 82 34 33 34 47 45 47 50 83 34 33 34 47 45 47 50 83 34 33 34</code></pre>
|
<pre><code> 19 20 21 32 69 82 34 33 34 47 45 47 50 83 34 33 34 47 45 47 50 83 34 33 34</code></pre>
|
||||||
<p>I said the game loop is almost certainly much worse, especially those two for
|
<p>I said the game loop is almost certainly much worse, especially those two for
|
||||||
loops I mentioned, but there is much much more. If this is easier to follow then
|
loops I mentioned, but there is much much more. If this is easier to follow then
|
||||||
I’m a dragon. I’m not a dragon. I have a secret for you: dragons don’t exist.
|
I’m a dragon. I’m not a dragon. I have a secret for you: dragons don’t exist.
|
||||||
Except on the Oregon Trail.</p>
|
Except on the Oregon Trail.</p>
|
||||||
<p>I was right too: the entire game is worse, far far worse. After this won I did a
|
<p>I was right too: the entire game is worse, far far worse. After this won I did a
|
||||||
full sequence. This is from start to finish and I include it for your amusement.
|
full sequence. This is from start to finish and I include it for your amusement
|
||||||
Or horror. There are a few times where the line is the same but that only shows
|
(see <a href="gotos.txt">gotos.txt</a>). Or horror. There are a few times where the line
|
||||||
how very often the line changes. It is a total of 985 changes, counting
|
is the same but that only shows how very often the line changes. It is a total
|
||||||
function calls (i.e. each call to one of the few functions is a jump); calls to
|
of <strong>985</strong> (!) changes, counting function calls (i.e. each call to one of the few
|
||||||
the macros are not counted.</p>
|
functions is a jump); calls to the macros are not counted.</p>
|
||||||
<p>This is in a program that is JUST 85 lines! A program that has only 85 lines
|
<p>This is in a program that is <strong>JUST 85 (!) lines</strong>! A program that has only 85 lines
|
||||||
COUNTING the <code>#include</code>s, <code>#define</code>s, other functions and 14 blank lines that
|
COUNTING the <code>#include</code>s, <code>#define</code>s, other functions and 14 blank lines that
|
||||||
jumps 985 times is astonishing.</p>
|
jumps 985 times is astonishing. Of course that’s not the only technique but the
|
||||||
|
title of the award and the judges’ remarks are rather fitting as it is
|
||||||
|
diabolical to follow this code (and the theme of the game fits as well); the
|
||||||
|
<a href="obfuscation.html">obfuscation.html</a> shows even more on this - and the other
|
||||||
|
things I did as well.</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>I have yet to see a single study that supported the supposition that GOTOs are
|
<p>I have yet to see a single study that supported the supposition that GOTOs are
|
||||||
harmful (I presume this is not because nobody has tried). Nonetheless, people
|
harmful (I presume this is not because nobody has tried). Nonetheless, people
|
||||||
@@ -3107,20 +3112,23 @@ dismiss any statement opposing it.</p>
|
|||||||
<p>Well after a bit more than 38 years I have finally provided exactly what Frank
|
<p>Well after a bit more than 38 years I have finally provided exactly what Frank
|
||||||
said was missing. And it was about time. Not that it didn’t happen before. But
|
said was missing. And it was about time. Not that it didn’t happen before. But
|
||||||
he was wrong.</p>
|
he was wrong.</p>
|
||||||
<p>It is not about not trying. But even IF he was right, he
|
<p>It is not about not trying. But even IF he WAS right, he
|
||||||
sure is WRONG NOW. Anyone who thinks otherwise needs to try and debug
|
sure as hell is WRONG NOW. Anyone who thinks otherwise needs to try and debug
|
||||||
my program - or maintain it. Or write it.</p>
|
my program - or maintain it. Or write it.</p>
|
||||||
<p>It would have been SO MUCH EASIER if I did not use 134 <code>goto</code>s. Actually, even a
|
<p>It would have been SO MUCH EASIER if I did not use 134 <code>goto</code>s. Actually, even a
|
||||||
tiny portion of that would make it harder. Nobody, whether they’re in their
|
tiny portion of that would make it harder. Nobody, whether they’re in their
|
||||||
right mind or not, would WANT to maintain this, or something even close to it.
|
right mind or not, would WANT to maintain this, or something even close to it.
|
||||||
Feel free to pass on judgement to me. I welcome it!</p>
|
Feel free to pass on judgement to me. I welcome it! You have to be mad and
|
||||||
|
embrace it to do this. I went full out and if I didn’t have to do other things
|
||||||
|
(or felt like fewer events would be worth it) I would have done even more
|
||||||
|
<code>goto</code>s for this very reason.</p>
|
||||||
<p>Even flex/bison code, which as far as I am aware uses FAR fewer <code>goto</code>s, is
|
<p>Even flex/bison code, which as far as I am aware uses FAR fewer <code>goto</code>s, is
|
||||||
notorious for <code>goto</code>s and is quite hard to follow. It would be a nightmare to
|
notorious for <code>goto</code>s and is quite hard to follow. It would be a nightmare to
|
||||||
try and maintain without the .l/.y source files.</p>
|
try and maintain without the .l/.y source files.</p>
|
||||||
<p>Okay, yes, I admit it: my abuse is extreme.</p>
|
<p>Okay, yes, I admit it: my abuse is extreme.</p>
|
||||||
<p>That doesn’t matter. As I remind everyone later, Apple caused a security hole
|
<p>That doesn’t matter. As I remind everyone later, Apple caused a security hole
|
||||||
because of a SINGLE misplaced <code>goto</code>. Mine is 133 more than that - and it works.
|
because of a SINGLE misplaced <code>goto</code>. Mine is 133 more than that - and it works.
|
||||||
It shouldn’t.</p>
|
It shouldn’t. But of course it does.</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>Then they turn around and say, ‘See, the program with GOTOs is more complex.’
|
<p>Then they turn around and say, ‘See, the program with GOTOs is more complex.’
|
||||||
In short, the belief that GOTOs are harmful appears to have become a religious
|
In short, the belief that GOTOs are harmful appears to have become a religious
|
||||||
@@ -3128,7 +3136,7 @@ doctrine, unassailable by evidence.</p>
|
|||||||
</blockquote>
|
</blockquote>
|
||||||
<p>Well, Frank, I hope you appreciate the evidence now.</p>
|
<p>Well, Frank, I hope you appreciate the evidence now.</p>
|
||||||
<p>I could go on but I don’t want to criticise, as I said somewhere, and it’s not
|
<p>I could go on but I don’t want to criticise, as I said somewhere, and it’s not
|
||||||
really important. My point was that where 1987/hines IS INDEED a beautiful
|
really important. My point was that whereas 1987/hines IS INDEED a beautiful
|
||||||
counter-example of this letter, mine takes it much further. This program is not
|
counter-example of this letter, mine takes it much further. This program is not
|
||||||
something anyone would want to maintain - presumably even Frank.</p>
|
something anyone would want to maintain - presumably even Frank.</p>
|
||||||
<p>I think everyone gets the idea. The fact I did all this WITHOUT invoking UB or
|
<p>I think everyone gets the idea. The fact I did all this WITHOUT invoking UB or
|
||||||
@@ -3142,7 +3150,8 @@ case. I might have had to start over.</p>
|
|||||||
made even a few more commits. As it is it took a full two months and I BARELY
|
made even a few more commits. As it is it took a full two months and I BARELY
|
||||||
finished this. In fact I finished it within hours of the contest closing! It was
|
finished this. In fact I finished it within hours of the contest closing! It was
|
||||||
not even 12 hours before closing time. I barely made it. Part of that is I added
|
not even 12 hours before closing time. I barely made it. Part of that is I added
|
||||||
even more <code>goto</code>s, despite the fact I had reached 2503 in size.</p>
|
even more <code>goto</code>s, despite the fact I had reached 2503 in size, with careful
|
||||||
|
size optimisation.</p>
|
||||||
<p>Countless times I came up with ways to do more, at least where it was possible,
|
<p>Countless times I came up with ways to do more, at least where it was possible,
|
||||||
such as freeing space so I could change some <code>break;</code>s to a <code>goto Z;</code> as <code>Z:</code>
|
such as freeing space so I could change some <code>break;</code>s to a <code>goto Z;</code> as <code>Z:</code>
|
||||||
was already there. The only other times this happened is before I had changed
|
was already there. The only other times this happened is before I had changed
|
||||||
@@ -3150,6 +3159,19 @@ the code so much that you can no longer trust what a block of code is. Like I
|
|||||||
said, I could not really move any more code if I wanted to, even if I had more
|
said, I could not really move any more code if I wanted to, even if I had more
|
||||||
space free. Those very few places where the code could in theory be moved are
|
space free. Those very few places where the code could in theory be moved are
|
||||||
already controlled by goto.</p>
|
already controlled by goto.</p>
|
||||||
|
<p>In fact I could have done more <code>goto</code>s in this version but I wanted to help the
|
||||||
|
judges out in judging - that and it was easier to verify things are correct.
|
||||||
|
<code>iocccsize</code> reports on prog.c 2457 and after I won this I kind of wish I did
|
||||||
|
take it even further just to mess with everyone even more.</p>
|
||||||
|
<p>But as I said elsewhere basically everything is in the wrong place so what even
|
||||||
|
would be the point in doing that? It would probably not make it harder to follow
|
||||||
|
(well it would but still would there be a point in it?); it would just make it
|
||||||
|
even more absurd: the amount of spaghetti code makes it nigh impossible to
|
||||||
|
follow and I’m happy to have smashed the record of 24 by 110 <code>goto</code>s, even if I
|
||||||
|
now wish I had gone even further.</p>
|
||||||
|
<p>Nonetheless the 134 is what won so that’s what I’ll live by (and I doubt it’ll
|
||||||
|
be broken as this kind of trick will, as the general remarks about the entries
|
||||||
|
note, not be as worthy, even if <code>goto</code>s are alas, not banned outright).</p>
|
||||||
<p>Anyway, as I noted in <a href="obfuscation.html">obfuscation.html</a>, no initialisation is
|
<p>Anyway, as I noted in <a href="obfuscation.html">obfuscation.html</a>, no initialisation is
|
||||||
skipped in my jumps and that is what causes <code>goto</code> to invoke UB.</p>
|
skipped in my jumps and that is what causes <code>goto</code> to invoke UB.</p>
|
||||||
<p>Everything is file scope. And in any case, when I do jump to a place, everything
|
<p>Everything is file scope. And in any case, when I do jump to a place, everything
|
||||||
@@ -3357,6 +3379,32 @@ every way, probably even if there wasn’t code that seems dead (or is dead) - a
|
|||||||
even worse as I have not even revealed everything with that. I don’t even think
|
even worse as I have not even revealed everything with that. I don’t even think
|
||||||
<strong>I</strong> could change this to not use <code>goto</code>s without breaking it! But what I do
|
<strong>I</strong> could change this to not use <code>goto</code>s without breaking it! But what I do
|
||||||
know is it works exactly as intended. But it shouldn’t. It really shouldn’t.</p>
|
know is it works exactly as intended. But it shouldn’t. It really shouldn’t.</p>
|
||||||
|
<h3 id="dedications-and-thanks">Dedications and thanks</h3>
|
||||||
|
<p>I dedicate this to all the poor souls who suffered in the <a href="https://en.wikipedia.org/wiki/Salem_witch_trials">Salem Witchcraft
|
||||||
|
Trials</a>, the <a href="https://en.wikipedia.org/wiki/Great_Molasses_Flood">Great Molasses
|
||||||
|
Flood</a> as well as all those
|
||||||
|
who died on the <a href="https://en.wikipedia.org/wiki/Oregon_Trail">Oregon Trail</a>.</p>
|
||||||
|
<p>Oh and those who were eaten by <a href="https://en.wikipedia.org/wiki/Dragon">Dragons</a>,
|
||||||
|
attacked by <a href="https://en.wikipedia.org/wiki/Werewolf">Werewolves</a> or bitten by a
|
||||||
|
<a href="https://en.wikipedia.org/wiki/Vampire">Vampire</a> (fun or not so fun fact: there
|
||||||
|
is a disease that has some of the similarities to vampirism, so much so that
|
||||||
|
it’s known also as the vampire disease:
|
||||||
|
<a href="https://medicover-genetics.com/porphyria-the-facts-behind-the-so-called-vampire-disease/">porphyria</a>.
|
||||||
|
Plus <a href="https://en.wikipedia.org/wiki/Blackbeard">Blackbeard’s</a> victims. Oh and
|
||||||
|
yes anyone attacked by the <a href="https://en.wikipedia.org/wiki/Flying_Spaghetti_Monster">Flying
|
||||||
|
Spaghetti Monster (FSM)</a>
|
||||||
|
or those who were tricked by the <a href="http://news.bbc.co.uk/onthisday/hi/dates/stories/april/1/newsid_2819000/2819261.stm">BBC April Fool’s prank of the
|
||||||
|
Spaghetti
|
||||||
|
tree</a>
|
||||||
|
on the <a href="https://www.bbc.co.uk/programmes/b006t14n">Panorama programme</a> in 1957.
|
||||||
|
Bless you all (probably by the <a href="https://www.ioccc.org/2024/ferguson1/index.html">devil on the Oregon
|
||||||
|
Trail</a>).</p>
|
||||||
|
<p>On a more serious note I also dedicate this to my lovely Mum Dianne and
|
||||||
|
my dear cousin Dani plus my great friend Martijn Schoemaker who gave me my first
|
||||||
|
real opportunity (a MUD) to get great at C back in the early 2000s and who
|
||||||
|
reminded me of the IOCCC so many years ago now.</p>
|
||||||
|
<p>Also thanks to my friends for putting up with my slow responses (and in some
|
||||||
|
cases no response at all) as I was working on this.</p>
|
||||||
<h4 id="p.s.-select-remarks-made-to-the-ioccc-judges">P.S. select remarks made to the IOCCC Judges</h4>
|
<h4 id="p.s.-select-remarks-made-to-the-ioccc-judges">P.S. select remarks made to the IOCCC Judges</h4>
|
||||||
<p>A hilarious truth is that to write less can take drastically more time than to
|
<p>A hilarious truth is that to write less can take drastically more time than to
|
||||||
write more and unfortunately I am running out of time quickly. Writing this game
|
write more and unfortunately I am running out of time quickly. Writing this game
|
||||||
@@ -3664,6 +3712,7 @@ helps you appreciate the careful design even more.<a href="#fnref2" class="footn
|
|||||||
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/byteread.c">byteread.c</a> - prints out the strings without locations</li>
|
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/byteread.c">byteread.c</a> - prints out the strings without locations</li>
|
||||||
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/bytetest.c">bytetest.c</a> - prints every string extracted from data</li>
|
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/bytetest.c">bytetest.c</a> - prints every string extracted from data</li>
|
||||||
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/deobfuscation.html">deobfuscation.html</a> - hints on how to deobfuscate</li>
|
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/deobfuscation.html">deobfuscation.html</a> - hints on how to deobfuscate</li>
|
||||||
|
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/gotos.txt">gotos.txt</a> - text file showing all the line changes in a run</li>
|
||||||
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/lencount.c">lencount.c</a> - counts strings and reports longest one</li>
|
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/lencount.c">lencount.c</a> - counts strings and reports longest one</li>
|
||||||
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/mbcheck.c">mbcheck.c</a> - show location of multibyte characters</li>
|
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/mbcheck.c">mbcheck.c</a> - show location of multibyte characters</li>
|
||||||
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/obfuscation.html">obfuscation.html</a> - obfuscation information</li>
|
<li><a href="https://github.com/ioccc-src/winner/blob/master/2024/ferguson1/obfuscation.html">obfuscation.html</a> - obfuscation information</li>
|
||||||
|
|||||||
@@ -692,7 +692,7 @@ pRNG).</p>
|
|||||||
that the Devil wishes they were too:</p>
|
that the Devil wishes they were too:</p>
|
||||||
<p><img src="gotos.png"
|
<p><img src="gotos.png"
|
||||||
alt="image of Devil being strangled to death by spaghetti, regretting the pact"
|
alt="image of Devil being strangled to death by spaghetti, regretting the pact"
|
||||||
width=640 height=640></p>
|
width=1024 height=1024></p>
|
||||||
<p>I have shown JUST HOW LUDICROUS <code>goto</code>s really are and JUST HOW MUCH STRUCTURE
|
<p>I have shown JUST HOW LUDICROUS <code>goto</code>s really are and JUST HOW MUCH STRUCTURE
|
||||||
AND MAINTAINABILITY is lost with <code>goto</code>s: a goal of the contest met simply by
|
AND MAINTAINABILITY is lost with <code>goto</code>s: a goal of the contest met simply by
|
||||||
one thing taken to absurd levels. But if this is not the worst or best abuse of
|
one thing taken to absurd levels. But if this is not the worst or best abuse of
|
||||||
|
|||||||
@@ -292,7 +292,7 @@ that the Devil wishes they were too:
|
|||||||
|
|
||||||
<img src="gotos.png"
|
<img src="gotos.png"
|
||||||
alt="image of Devil being strangled to death by spaghetti, regretting the pact"
|
alt="image of Devil being strangled to death by spaghetti, regretting the pact"
|
||||||
width=640 height=640>
|
width=1024 height=1024>
|
||||||
|
|
||||||
I have shown JUST HOW LUDICROUS `goto`s really are and JUST HOW MUCH STRUCTURE
|
I have shown JUST HOW LUDICROUS `goto`s really are and JUST HOW MUCH STRUCTURE
|
||||||
AND MAINTAINABILITY is lost with `goto`s: a goal of the contest met simply by
|
AND MAINTAINABILITY is lost with `goto`s: a goal of the contest met simply by
|
||||||
|
|||||||
Reference in new issue
Block a user