add notices to those who wish for a greater challenge
We add the following level-3 header to help people identify text they may wish to skip if they wish for a greater challenge: ``` ``` After that notice we add: ``` **If you want a greater challenge, don't read any further**: just try to understand the program via the source. If you get stuck, come back and read below for additional hints and information. ``` And sometimes follow with: ``` ``` Or sometimes follow with: ``` ``` Where the alt code impacts a "greater challenge", we add instead: ``` **If you want a greater challenge, don't read any further**: just try to understand the program without looking at the Alternate code. If you get stuck, come back and look at the Alternate code. ``` And where a given command impacts a "greater challenge", we add instead: ``` **If you want a greater challenge, don't read any further**: just try to understand the program without running the command below. If you get stuck, come back and run the following command: ``` Perform `make www` to perform the above and test under macOS.
This commit is contained in:
1 parent
7af7a80cca
commit
2e2ae5f132
112 files changed
+845
-216
No files matched your search
@@ -228,10 +228,19 @@ This allows for a convenient test suite:
|
||||
```
|
||||
|
||||
|
||||
### NOTICE to those who wish for a greater challenge
|
||||
|
||||
**If you want a greater challenge, don't read any further**:
|
||||
just try to understand the program via the source.
|
||||
|
||||
If you get stuck, come back and read below for additional hints and information.
|
||||
|
||||
|
||||
### Obfuscation:
|
||||
|
||||
If you do not want to puzzle out how it works, see [obfuscation.html](obfuscation.html).
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
@@ -528,6 +528,10 @@ To stifle these complaints:</p>
|
||||
This allows for a convenient test suite:</p>
|
||||
<pre><code> ln -sf prog eprog
|
||||
PATH=. eprog < test.in | diff - test.out</code></pre>
|
||||
<h3 id="notice-to-those-who-wish-for-a-greater-challenge">NOTICE to those who wish for a greater challenge</h3>
|
||||
<p><strong>If you want a greater challenge, don’t read any further</strong>:
|
||||
just try to understand the program via the source.</p>
|
||||
<p>If you get stuck, come back and read below for additional hints and information.</p>
|
||||
<h3 id="obfuscation">Obfuscation:</h3>
|
||||
<p>If you do not want to puzzle out how it works, see <a href="obfuscation.html">obfuscation.html</a>.</p>
|
||||
<!--
|
||||
|
||||
@@ -204,6 +204,14 @@ X86 architectures indeed SSE/AVX is used for the long longs. Following is some
|
||||
obfuscation information, So if you want to play tough, stop reading at this point.
|
||||
|
||||
|
||||
### NOTICE to those who wish for a greater challenge
|
||||
|
||||
**If you want a greater challenge, don't read any further**:
|
||||
just try to understand the program via the source.
|
||||
|
||||
If you get stuck, come back and read below for additional hints and information.
|
||||
|
||||
|
||||
### Portable SIMD programming:
|
||||
|
||||
So how is this done? Quite simply by using the whole `long long` arithmetic's
|
||||
|
||||
@@ -527,6 +527,10 @@ in a portable way without ever using any SSE/AVX or other non-portable compiler
|
||||
inline functions! The irony though, is that when compiling the program on modern
|
||||
X86 architectures indeed SSE/AVX is used for the long longs. Following is some
|
||||
obfuscation information, So if you want to play tough, stop reading at this point.</p>
|
||||
<h3 id="notice-to-those-who-wish-for-a-greater-challenge">NOTICE to those who wish for a greater challenge</h3>
|
||||
<p><strong>If you want a greater challenge, don’t read any further</strong>:
|
||||
just try to understand the program via the source.</p>
|
||||
<p>If you get stuck, come back and read below for additional hints and information.</p>
|
||||
<h3 id="portable-simd-programming">Portable SIMD programming:</h3>
|
||||
<p>So how is this done? Quite simply by using the whole <code>long long</code> arithmetic’s
|
||||
capability. I think the C99 standard assures us that <code>long long</code> has at least 64
|
||||
|
||||
+10
-2
@@ -64,7 +64,15 @@ the source code from all angles..
|
||||
* Find `main()` function.
|
||||
|
||||
|
||||
### Spoiler
|
||||
### NOTICE to those who wish for a greater challenge
|
||||
|
||||
**If you want a greater challenge, don't read any further**:
|
||||
just try to understand the program via the source.
|
||||
|
||||
If you get stuck, come back and read below for additional hints and information.
|
||||
|
||||
|
||||
### What this entry does:
|
||||
|
||||
This program is a joke PDP-11 emulator. ("ll-dpd" is embedded in the code.
|
||||
Read it upside down.)
|
||||
@@ -80,7 +88,7 @@ You got it? This program is supposed to be used in this way:
|
||||
You can enjoy the legendary winning entry of the first IOCCC, again.
|
||||
|
||||
|
||||
### Internal
|
||||
### How this entry works:
|
||||
|
||||
This program uses `__attribute__((constructor))`, which is a GCC extension, to
|
||||
hijack the `main()` function call. And then it interprets `main()` as an
|
||||
|
||||
@@ -438,7 +438,11 @@ the same reason. But I believe it is reasonably portable.</li>
|
||||
the source code from all angles..</li>
|
||||
<li>Find <code>main()</code> function.</li>
|
||||
</ul>
|
||||
<h3 id="spoiler">Spoiler</h3>
|
||||
<h3 id="notice-to-those-who-wish-for-a-greater-challenge">NOTICE to those who wish for a greater challenge</h3>
|
||||
<p><strong>If you want a greater challenge, don’t read any further</strong>:
|
||||
just try to understand the program via the source.</p>
|
||||
<p>If you get stuck, come back and read below for additional hints and information.</p>
|
||||
<h3 id="what-this-entry-does">What this entry does:</h3>
|
||||
<p>This program is a joke PDP-11 emulator. (“ll-dpd” is embedded in the code.
|
||||
Read it upside down.)</p>
|
||||
<p>You got it? This program is supposed to be used in this way:</p>
|
||||
@@ -446,7 +450,7 @@ Read it upside down.)</p>
|
||||
clang -o prog prog.c mullender.c
|
||||
./prog</code></pre>
|
||||
<p>You can enjoy the legendary winning entry of the first IOCCC, again.</p>
|
||||
<h3 id="internal">Internal</h3>
|
||||
<h3 id="how-this-entry-works">How this entry works:</h3>
|
||||
<p>This program uses <code>__attribute__((constructor))</code>, which is a GCC extension, to
|
||||
hijack the <code>main()</code> function call. And then it interprets <code>main()</code> as an
|
||||
instruction sequence.</p>
|
||||
|
||||
Reference in new issue
Block a user