Merge pull request #2325 from xexyl/isaak88

This commit is contained in:
Landon Curt Noll authored and GitHub committed 2024-05-06 10:09:46 -07:00
commit 6f17560440
14 files changed
+134 -150

No files matched your search

+5 -5
View File
@@ -42,12 +42,12 @@
"entry_text" : "original source" "entry_text" : "original source"
}, },
{ {
"file_path" : "isaak.encode", "file_path" : "isaak.output.txt",
"inventory_order" : 180, "inventory_order" : 180,
"OK_to_edit" : true, "OK_to_edit" : false,
"display_as" : "xxencode", "display_as" : "text",
"display_via_github" : true, "display_via_github" : false,
"entry_text" : "uuencoded sample output" "entry_text" : "program output"
}, },
{ {
"file_path" : "1988_isaak.tar.bz2", "file_path" : "1988_isaak.tar.bz2",
+20 -17
View File
@@ -18,8 +18,9 @@ code](#alternate-code) below.
## Alternate code: ## Alternate code:
The original version of this code is in [isaak.alt.c](%%REPO_URL%%/1988/isaak/isaak.alt.c). The original version of this code is in
The original entry starts with the line: [isaak.alt.c](%%REPO_URL%%/1988/isaak/isaak.alt.c), with a minor fix so that it
will compile. The original entry starts with the line:
``` <!---c--> ``` <!---c-->
main(){}; main(){};
@@ -29,10 +30,11 @@ This works on some systems. Why? Note that `#include <stdio.h>` is given on
the last line. Why is this needed? Note the unusual calls to `sprintf(3)`. the last line. Why is this needed? Note the unusual calls to `sprintf(3)`.
This version also relied on being able to define `#define` to something else and This version also relied on being able to define `#define` to something else and
using that macro for `#define`. using that macro for `#define`. This was fixed, however, so that you can at
least compile it in modern systems.
This version will not likely work on modern systems if you can even get it to This version will not likely work on modern systems even though you should be
compile. able to compile it.
### Alternate build: ### Alternate build:
@@ -41,6 +43,9 @@ compile.
make alt make alt
``` ```
### Alternate use:
Use `isaak.alt` as you would `isaak` above. Use `isaak.alt` as you would `isaak` above.
@@ -49,11 +54,13 @@ Use `isaak.alt` as you would `isaak` above.
The program relies heavily on ASCII. Don't even think of running it on The program relies heavily on ASCII. Don't even think of running it on
an EBCDIC machine. an EBCDIC machine.
### Historical notes about the original entry:
NOTE: If you named the file anything other than [isaak.c](%%REPO_URL%%/1988/isaak/isaak.c), you had to ### Historical notes about the original entry
change the `#include` on line 6. This limitation has been fixed by using the
`__FILE__` macro. NOTE: If you named the file anything other than `isaak.c`, you had to
change the `#include` on line 6. This limitation has been fixed in
[isaak.c](%%REPO_URL%%/1988/isaak/isaak.c) and
[isaak.alt.c](%%REPO_URL%%/1988/isaak/isaak.alt.c) by using the `__FILE__` macro.
NOTE: The use of null comments to separate macros to construct different tokens NOTE: The use of null comments to separate macros to construct different tokens
from a single macro (e.g., `"O/**/O"` creates either `++` or `--` by defining from a single macro (e.g., `"O/**/O"` creates either `++` or `--` by defining
@@ -62,15 +69,11 @@ from a single macro (e.g., `"O/**/O"` creates either `++` or `--` by defining
NOTE: Most System V machines were not be able to execute this program correctly NOTE: Most System V machines were not be able to execute this program correctly
due to the fact that BSD style systems have an `sprintf(3)` that returns a `char due to the fact that BSD style systems have an `sprintf(3)` that returns a `char
*`. Due to the above problems, we placed the output of this program in the *`. Due to the above problems, we placed the output of this program in the
file: isaak.encode. To read this file do. file [isaak.output.txt](isaak.output.txt).
``` <!---sh--> Since this was fixed, this file is not strictly necessary, but we keep it for
uudecode < isaak.encode historical purposes (decoded as it used to be uuencoded). See the
cat isaak.output [isaak.orig.c](%%REPO_URL%%/1988/isaak/isaak.orig.c) for the original source.
```
Since this was fixed, this file is not strictly necessary. See the
[isaak.alt.c](%%REPO_URL%%/1988/isaak/isaak.alt.c) for the original source.
FYI: We are likely to be more strict about portability in the future. FYI: We are likely to be more strict about portability in the future.
+18 -15
View File
@@ -403,35 +403,38 @@ code</a> below.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</h2>
<pre><code> ./isaak</code></pre> <pre><code> ./isaak</code></pre>
<h2 id="alternate-code">Alternate code:</h2> <h2 id="alternate-code">Alternate code:</h2>
<p>The original version of this code is in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">isaak.alt.c</a>. <p>The original version of this code is in
The original entry starts with the line:</p> <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">isaak.alt.c</a>, with a minor fix so that it
will compile. The original entry starts with the line:</p>
<pre><code> main(){};</code></pre> <pre><code> main(){};</code></pre>
<p>This works on some systems. Why? Note that <code>#include &lt;stdio.h&gt;</code> is given on <p>This works on some systems. Why? Note that <code>#include &lt;stdio.h&gt;</code> is given on
the last line. Why is this needed? Note the unusual calls to <code>sprintf(3)</code>.</p> the last line. Why is this needed? Note the unusual calls to <code>sprintf(3)</code>.</p>
<p>This version also relied on being able to define <code>#define</code> to something else and <p>This version also relied on being able to define <code>#define</code> to something else and
using that macro for <code>#define</code>.</p> using that macro for <code>#define</code>. This was fixed, however, so that you can at
<p>This version will not likely work on modern systems if you can even get it to least compile it in modern systems.</p>
compile.</p> <p>This version will not likely work on modern systems even though you should be
able to compile it.</p>
<h3 id="alternate-build">Alternate build:</h3> <h3 id="alternate-build">Alternate build:</h3>
<pre><code> make alt</code></pre> <pre><code> make alt</code></pre>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>isaak.alt</code> as you would <code>isaak</code> above.</p> <p>Use <code>isaak.alt</code> as you would <code>isaak</code> above.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
<p>The program relies heavily on ASCII. Don’t even think of running it on <p>The program relies heavily on ASCII. Don’t even think of running it on
an EBCDIC machine.</p> an EBCDIC machine.</p>
<h3 id="historical-notes-about-the-original-entry">Historical notes about the original entry:</h3> <h3 id="historical-notes-about-the-original-entry">Historical notes about the original entry</h3>
<p>NOTE: If you named the file anything other than <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.c">isaak.c</a>, you had to <p>NOTE: If you named the file anything other than <code>isaak.c</code>, you had to
change the <code>#include</code> on line 6. This limitation has been fixed by using the change the <code>#include</code> on line 6. This limitation has been fixed in
<code>__FILE__</code> macro.</p> <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.c">isaak.c</a> and
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">isaak.alt.c</a> by using the <code>__FILE__</code> macro.</p>
<p>NOTE: The use of null comments to separate macros to construct different tokens <p>NOTE: The use of null comments to separate macros to construct different tokens
from a single macro (e.g., <code>"O/**/O"</code> creates either <code>++</code> or <code>--</code> by defining from a single macro (e.g., <code>"O/**/O"</code> creates either <code>++</code> or <code>--</code> by defining
<code>O</code> to be <code>+</code> or <code>-</code>) may cause some strict ANSI C preprocessors to object.</p> <code>O</code> to be <code>+</code> or <code>-</code>) may cause some strict ANSI C preprocessors to object.</p>
<p>NOTE: Most System V machines were not be able to execute this program correctly <p>NOTE: Most System V machines were not be able to execute this program correctly
due to the fact that BSD style systems have an <code>sprintf(3)</code> that returns a <code>char *</code>. Due to the above problems, we placed the output of this program in the due to the fact that BSD style systems have an <code>sprintf(3)</code> that returns a <code>char *</code>. Due to the above problems, we placed the output of this program in the
file: isaak.encode. To read this file do.</p> file <a href="isaak.output.txt">isaak.output.txt</a>.</p>
<pre><code> uudecode &lt; isaak.encode <p>Since this was fixed, this file is not strictly necessary, but we keep it for
cat isaak.output</code></pre> historical purposes (decoded as it used to be uuencoded). See the
<p>Since this was fixed, this file is not strictly necessary. See the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.orig.c">isaak.orig.c</a> for the original source.</p>
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">isaak.alt.c</a> for the original source.</p>
<p>FYI: We are likely to be more strict about portability in the future.</p> <p>FYI: We are likely to be more strict about portability in the future.</p>
<h2 id="authors-remarks">Author’s remarks:</h2> <h2 id="authors-remarks">Author’s remarks:</h2>
<p>No remarks were provided by the author.</p> <p>No remarks were provided by the author.</p>
@@ -464,7 +467,7 @@ file: isaak.encode. To read this file do.</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/Makefile">Makefile</a> - entry Makefile</li> <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">isaak.alt.c</a> - alternate code</li> <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">isaak.alt.c</a> - alternate code</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.orig.c">isaak.orig.c</a> - original source</li> <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.orig.c">isaak.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.encode">isaak.encode</a> - uuencoded sample output</li> <li><a href="isaak.output.txt">isaak.output.txt</a> - program output</li>
</ul> </ul>
<h2 id="secondary-files">Secondary files</h2> <h2 id="secondary-files">Secondary files</h2>
<ul> <ul>
+19 -18
View File
@@ -1,10 +1,9 @@
main(){} main(){};
#define P define #define U
#P U ifdef #define main Si
#P main Si #if U defined(y)
#U y
#undef y #undef y
#include "isaak.c" #include __FILE__
Pb Pb
#else #else
char*K="4499999;8 9+jW*':'TZhD m:*h.4-j'9(z7Q>r*:G#FS]mATIdMZY^HaKFZZ\ char*K="4499999;8 9+jW*':'TZhD m:*h.4-j'9(z7Q>r*:G#FS]mATIdMZY^HaKFZZ\
@@ -12,23 +11,25 @@ JyJw:X49@eJj1,Z'\\c^jGU@IXTF@9P2i:gAZx0pD*W3\\<ZZs1:.~Z8U:P<\\:ZOI0GBPZ7",*H
,S[5202],*B="oA9BA6iN`]`Ph>5F4::M6A69@6I{g[Za__]NPV``aV\177E4C5CG;4C<BEJG;\ ,S[5202],*B="oA9BA6iN`]`Ph>5F4::M6A69@6I{g[Za__]NPV``aV\177E4C5CG;4C<BEJG;\
?LGlSZ[Y_!oYi@uXPzLFyPOYP][]`RTaQo86564CAHCG4ES",*F,N;int Bk,V;Y ?LGlSZ[Y_!oYi@uXPzLFyPOYP][]`RTaQo86564CAHCG4ES",*F,N;int Bk,V;Y
#endif #endif
#P C K/16-2 #define C K/16-2
(){char*H;F O= -263;for(H="$+---+|||";*++H;)*(F O=(*H+5&129)+1)= *H;F #define Pa(x,y) x##y
#P W sprintf( #define P(x,y) Pa(x,y)
O= -132;}I/**/r(){if((N= *I O/**/O%(21 O -5)+81 O 16)==107)N+= (){char*H;F P(O,=) -263;for(H="$+---+|||";*++H;)*(F P(O,=)(*H+5&129)+1)= *H;F
#define W sprintf(
P(O,=)-132;}P(I,r)(){if((N= *I P(O,O)%(21 O -5)+81 O 16)==107)N+=
#undef I #undef I
*K++&15;*F++ =N;return*K;} *K++&15;*F++ =N;return*K;}
#undef O #undef O
#P I K #define I K
#P O + #define O +
#U N #if U defined(N)
exit(N){F=W H=S,"%5060d")+385;while(Br(),++B,Kr())F+=(N= exit(N){W H=S,"%5060d");F=S+385;while(Br(),++B,Kr())F+=(N=
*B++/26-1)?(")21["[N]-46)*N*4-22:-3194;while(*--K!=9){while(!(*++H+5&64)); *B++/26-1)?(")21["[N]-46)*N*4-22:-3194;while(*--K!=9){while(!(*++H+5&64));
F=(40-"(\206/"[((H-S)%130+45)/57]<<3)+H;*F++= *H++;*F= F=(40-"(\206/"[((H-S)%130+45)/57]<<3)+H;*F++= *H++;*F=
*H==106?32:*H;Y();W W F-131,"%-3d",++Bk)+260,"%3d",V+= *H==106?32:*H;Y();W F-131,"%-3d",++Bk); W F+129,"%3d",V+=
*C?*C:"hijpqv"[*--C]-106);Pb();}for(H=S;*H||(int)_exit(0);H+=130)write(1,1+W *C?*C:"hijpqv"[*--C]-106);Pb();}for(H=S;*H||(_exit(0),0);H+=130)write(1,F+4,W
F+3,"%c%-73.73s\n",0,H),74);} F+3,"%c%-73.73s\n",0,H)-1);}
#endif #endif
#undef U #undef U
#P U ifndef #define U !
#include <stdio.h> #include <stdio.h>
-68
View File
@@ -1,68 +0,0 @@
begin 666 isaak.output
M*RTM+2L@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" K+2TM*PI\,2 @?" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @('PR("!\"GQ(("!\(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @?$AE('P*?" @
M,7P@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @("!\(" T? HK+2TM*RTM+2L@(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" K+2TM*RTM+2LM+2TK+2TM
M*RTM+2LM+2TK"GPS("!\-" @?" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @('PU("!\-B @?#<@('PX("!\.2 @?#$P('P*?$QI('Q"
M92!\(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @?$(@
M('Q#("!\3B @?$\@('Q&("!\3F4@? I\(" W?" @.7P@(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @("!\(#$Q?" Q,GP@,31\(#$V?" Q
M.7P@,C!\"BLM+2TK+2TM*R @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @("LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2L*?#$Q('PQ,B!\
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @?#$S('PQ
M-"!\,34@?#$V('PQ-R!\,3@@? I\3F$@?$UG('P@(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @("!\06P@?%-I('Q0("!\4R @?$-L('Q!
M<B!\"GP@,C-\(#(T?" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @('P@,C=\(#(X?" S,7P@,S)\(#,U?" T,'P**RTM+2LM+2TK+2TM
M*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK
M+2TM*RTM+2LM+2TK+2TM*PI\,3D@?#(P('PR,2!\,C(@?#(S('PR-"!\,C4@
M?#(V('PR-R!\,C@@?#(Y('PS,"!\,S$@?#,R('PS,R!\,S0@?#,U('PS-B!\
M"GQ+("!\0V$@?%-C('Q4:2!\5B @?$-R('Q-;B!\1F4@?$-O('Q.:2!\0W4@
M?%IN('Q'82!\1V4@?$%S('Q392!\0G(@?$MR('P*?" S.7P@-#!\(#0U?" T
M.'P@-3%\(#4R?" U-7P@-39\(#4Y?" U.7P@-C1\(#8U?" W,'P@-S-\(#<U
M?" W.7P@.#!\(#@T? HK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM
M+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK"GPS
M-R!\,S@@?#,Y('PT,"!\-#$@?#0R('PT,R!\-#0@?#0U('PT-B!\-#<@?#0X
M('PT.2!\-3 @?#4Q('PU,B!\-3,@?#4T('P*?%)B('Q3<B!\62 @?%IR('Q.
M8B!\36\@?%1C('Q2=2!\4F@@?%!D('Q!9R!\0V0@?$EN('Q3;B!\4V(@?%1E
M('Q)("!\6&4@? I\(#@U?" X.'P@.#E\(#DQ?" Y,WP@.39\(#DY?#$P,7PQ
M,#-\,3 V?#$P.'PQ,3)\,3$U?#$Q.7PQ,C)\,3(X?#$R-WPQ,S%\"BLM+2TK
M+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM
M+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2L*?#4U('PU-B!\-3<@?#<R('PW,R!\
M-S0@?#<U('PW-B!\-S<@?#<X('PW.2!\.# @?#@Q('PX,B!\.#,@?#@T('PX
M-2!\.#8@? I\0W,@?$)A('Q,82!\2&8@?%1A('Q7("!\4F4@?$]S('Q)<B!\
M4'0@?$%U('Q(9R!\5&P@?%!B('Q":2!\4&\@?$%T('Q2;B!\"GPQ,S-\,3,W
M?#$S.7PQ-SA\,3@Q?#$X-'PQ.#9\,3DP?#$Y,GPQ.35\,3DW?#(P,7PR,#1\
M,C W?#(P.7PR,#E\,C$P?#(R,GP**RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM
M*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK
M+2TM*PI\.#<@?#@X('PX.2!\,3 T?#$P-7P@(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @"GQ&<B!\4F$@?$%C
M('Q29B!\2&$@?" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" *?#(R,WPR,C9\,C(W?#(V,7PR-C!\(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M( HK+2TM*RTM+2LM+2TK+2TM*RTM+2L@(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @"B @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" *(" @(" @(" K+2TM*RTM+2LM+2TK+2TM*RTM+2LM
M+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2L@(" @(" @( H@
M(" @(" @('PU."!\-3D@?#8P('PV,2!\-C(@?#8S('PV-"!\-C4@?#8V('PV
M-R!\-C@@?#8Y('PW,"!\-S$@?" @(" @(" @"B @(" @(" @?$-E('Q0<B!\
M3F0@?%!M('Q3;2!\174@?$=D('Q48B!\1'D@?$AO('Q%<B!\5&T@?%EB('Q,
M=2!\(" @(" @(" *(" @(" @("!\,30P?#$T,7PQ-#1\,30U?#$U,'PQ-3)\
M,34W?#$U.7PQ-C)\,38U?#$V-WPQ-CE\,3<S?#$W-7P@(" @(" @( H@(" @
M(" @("LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK
M+2TM*RTM+2LM+2TK+2TM*R @(" @(" @"B @(" @(" @?#DP('PY,2!\.3(@
M?#DS('PY-"!\.34@?#DV('PY-R!\.3@@?#DY('PQ,#!\,3 Q?#$P,GPQ,#-\
M(" @(" @(" *(" @(" @("!\5&@@?%!A('Q5("!\3G @?%!U('Q!;2!\0VT@
M?$)K('Q#9B!\17,@?$9M('Q-9"!\3F\@?$QR('P@(" @(" @( H@(" @(" @
M('PR,S)\,C,Q?#(S.'PR,S=\,C0T?#(T,WPR-#=\,C0W?#(U,7PR-31\,C4W
M?#(U-GPR-31\,C4W?" @(" @(" @"B @(" @(" @*RTM+2LM+2TK+2TM*RTM
M+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK+2TM*RTM+2LM+2TK(" @
&(" @(" *
end
+39
View File
@@ -0,0 +1,39 @@
+---+ +---+
|1 | |2 |
|H | |He |
| 1| | 4|
+---+---+ +---+---+---+---+---+---+
|3 |4 | |5 |6 |7 |8 |9 |10 |
|Li |Be | |B |C |N |O |F |Ne |
| 7| 9| | 11| 12| 14| 16| 19| 20|
+---+---+ +---+---+---+---+---+---+
|11 |12 | |13 |14 |15 |16 |17 |18 |
|Na |Mg | |Al |Si |P |S |Cl |Ar |
| 23| 24| | 27| 28| 31| 32| 35| 40|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|19 |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |30 |31 |32 |33 |34 |35 |36 |
|K |Ca |Sc |Ti |V |Cr |Mn |Fe |Co |Ni |Cu |Zn |Ga |Ge |As |Se |Br |Kr |
| 39| 40| 45| 48| 51| 52| 55| 56| 59| 59| 64| 65| 70| 73| 75| 79| 80| 84|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|37 |38 |39 |40 |41 |42 |43 |44 |45 |46 |47 |48 |49 |50 |51 |52 |53 |54 |
|Rb |Sr |Y |Zr |Nb |Mo |Tc |Ru |Rh |Pd |Ag |Cd |In |Sn |Sb |Te |I |Xe |
| 85| 88| 89| 91| 93| 96| 99|101|103|106|108|112|115|119|122|128|127|131|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|55 |56 |57 |72 |73 |74 |75 |76 |77 |78 |79 |80 |81 |82 |83 |84 |85 |86 |
|Cs |Ba |La |Hf |Ta |W |Re |Os |Ir |Pt |Au |Hg |Tl |Pb |Bi |Po |At |Rn |
|133|137|139|178|181|184|186|190|192|195|197|201|204|207|209|209|210|222|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|87 |88 |89 |104|105|
|Fr |Ra |Ac |Rf |Ha |
|223|226|227|261|260|
+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|58 |59 |60 |61 |62 |63 |64 |65 |66 |67 |68 |69 |70 |71 |
|Ce |Pr |Nd |Pm |Sm |Eu |Gd |Tb |Dy |Ho |Er |Tm |Yb |Lu |
|140|141|144|145|150|152|157|159|162|165|167|169|173|175|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|90 |91 |92 |93 |94 |95 |96 |97 |98 |99 |100|101|102|103|
|Th |Pa |U |Np |Pu |Am |Cm |Bk |Cf |Es |Fm |Md |No |Lr |
|232|231|238|237|244|243|247|247|251|254|257|256|254|257|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+14 -11
View File
@@ -911,8 +911,8 @@ including making it no longer require <code>-traditional-cpp</code>. Fixing
to compare the fix from the original entry. There was another problem to resolve to compare the fix from the original entry. There was another problem to resolve
as well, however.</p> as well, however.</p>
<p>First of all, as noted above, the entry required <code>-traditional-cpp</code> (which <p>First of all, as noted above, the entry required <code>-traditional-cpp</code> (which
<del>not all compilers support</del> <code>clang</code> does not support). It needed <code>clang</code> does not support). It needed that option in modern systems because of
that option in modern systems because of two things it did:</p> two things it did:</p>
<pre><code> #define a(x)get/***/x/***/id()) <pre><code> #define a(x)get/***/x/***/id())
/* ... */ /* ... */
@@ -922,10 +922,10 @@ that option in modern systems because of two things it did:</p>
/* ... */ /* ... */
case_2:L(!--V){O/*/*/c*c+c);wait(A+c*c-c);L(!Z)f(A,&quot;\n&quot;,c);return(A*getgid());};C++;</code></pre> case_2:L(!--V){O/*/*/c*c+c);wait(A+c*c-c);L(!Z)f(A,&quot;\n&quot;,c);return(A*getgid());};C++;</code></pre>
<p>This macro, <code>a</code>, formed the functions (the names) <code>getuid()</code> and <code>getgid()</code>, but <p>This macro, <code>a</code>, formed the function names <code>getuid()</code> and <code>getgid()</code>, but
this no longer works. The code still uses the macro <code>a</code> to form the names but this no longer works. The code still uses the macro <code>a</code> to form the names but
it’s done differently, using the C token paste operator <code>##</code>. It’s done like it’s done differently, using the C token paste operator <code>##</code>. It’s done like
thus:</p> this:</p>
<pre><code> --- i/1988/dale/dale.c <pre><code> --- i/1988/dale/dale.c
+++ w/1988/dale/dale.c +++ w/1988/dale/dale.c
@@ -9,18 +9,18 @@ @@ -9,18 +9,18 @@
@@ -953,24 +953,27 @@ modern compilers do not allow directives like:</p>
#define O close( #define O close(
/* ... */</code></pre> /* ... */</code></pre>
<p>However, to keep the entry as close to as possible in look, Cody kept the <code>_</code> <p>However, to keep the entry as close to as possible in look, Cody kept the <code>_</code>
macro in place it’s just no longer used.</p> macro in place but it’s no longer used.</p>
<p>See the index.html file for details on the original code, provided as an alt
version in case you have an older compiler or wish to try <code>-traditional-cpp</code>.</p>
<p>Cody also provided the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/dale/try.sh">try.sh</a> script.</p> <p>Cody also provided the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/dale/try.sh">try.sh</a> script.</p>
<div id="1988_isaak"> <div id="1988_isaak">
<h2 id="isaak"><a href="1988/isaak/index.html">1988/isaak</a></h2> <h2 id="isaak"><a href="1988/isaak/index.html">1988/isaak</a></h2>
<h3 id="source-code-isaak.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.c">isaak.c</a></h3> <h3 id="source-code-isaak.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.c">isaak.c</a></h3>
</div> </div>
<p><a href="#cody">Cody</a> fixed this to work for modern systems. The problem was that the important <p><a href="#cody">Cody</a> fixed this to work for modern systems. The problem was that the important
function, a redefinition of <code>exit()</code>, was not being called in <code>main()</code>. The function, a redefinition of <code>exit(3)</code>, was not being called in <code>main()</code>. Earlier
original version is in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">1988/isaak/isaak.alt.c</a>. See the fixes that let it compile, but not work with modern systems, can be found in
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/isaak/isaak.alt.c">1988/isaak/isaak.alt.c</a>. See the
index.html file for more details.</p> index.html file for more details.</p>
<p>Cody also uudecoded and removed the file <code>isaak.encode</code>, putting the output in
<code>isaak.output.txt</code>. This was done strictly for historical remarks that can be
found in the index.html file.</p>
<div id="1988_litmaath"> <div id="1988_litmaath">
<h2 id="litmaath"><a href="1988/litmaath/index.html">1988/litmaath</a></h2> <h2 id="litmaath"><a href="1988/litmaath/index.html">1988/litmaath</a></h2>
<h3 id="source-code-litmaath.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/litmaath/litmaath.c">litmaath.c</a></h3> <h3 id="source-code-litmaath.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/litmaath/litmaath.c">litmaath.c</a></h3>
</div> </div>
<p><a href="#cody">Cody</a> added the alt code which is code that we suggested at the time of <p><a href="#cody">Cody</a> added the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/litmaath/litmaath.alt.c">alt code</a>
publication, in the remarks, to help understand the entry, and for fun.</p> which is code that we suggested at the time of publication, in the remarks, to
help understand the entry, and for fun.</p>
<div id="1988_phillipps"> <div id="1988_phillipps">
<h2 id="phillipps"><a href="1988/phillipps/index.html">1988/phillipps</a></h2> <h2 id="phillipps"><a href="1988/phillipps/index.html">1988/phillipps</a></h2>
<h3 id="source-code-phillipps.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/phillipps/phillipps.c">phillipps.c</a></h3> <h3 id="source-code-phillipps.c">Source code: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/phillipps/phillipps.c">phillipps.c</a></h3>
+15 -12
View File
@@ -762,8 +762,8 @@ to compare the fix from the original entry. There was another problem to resolve
as well, however. as well, however.
First of all, as noted above, the entry required `-traditional-cpp` (which First of all, as noted above, the entry required `-traditional-cpp` (which
<del>not all compilers support</del> `clang` does not support). It needed `clang` does not support). It needed that option in modern systems because of
that option in modern systems because of two things it did: two things it did:
``` <!---c--> ``` <!---c-->
#define a(x)get/***/x/***/id()) #define a(x)get/***/x/***/id())
@@ -777,10 +777,10 @@ that option in modern systems because of two things it did:
case_2:L(!--V){O/*/*/c*c+c);wait(A+c*c-c);L(!Z)f(A,"\n",c);return(A*getgid());};C++; case_2:L(!--V){O/*/*/c*c+c);wait(A+c*c-c);L(!Z)f(A,"\n",c);return(A*getgid());};C++;
``` ```
This macro, `a`, formed the functions (the names) `getuid()` and `getgid()`, but This macro, `a`, formed the function names `getuid()` and `getgid()`, but
this no longer works. The code still uses the macro `a` to form the names but this no longer works. The code still uses the macro `a` to form the names but
it's done differently, using the C token paste operator `##`. It's done like it's done differently, using the C token paste operator `##`. It's done like
thus: this:
``` <!---diff--> ``` <!---diff-->
--- i/1988/dale/dale.c --- i/1988/dale/dale.c
@@ -825,10 +825,7 @@ so Cody changed the lines to be in the form of:
``` ```
However, to keep the entry as close to as possible in look, Cody kept the `_` However, to keep the entry as close to as possible in look, Cody kept the `_`
macro in place it's just no longer used. macro in place but it's no longer used.
See the index.html file for details on the original code, provided as an alt
version in case you have an older compiler or wish to try `-traditional-cpp`.
Cody also provided the [try.sh](%%REPO_URL%%/1988/dale/try.sh) script. Cody also provided the [try.sh](%%REPO_URL%%/1988/dale/try.sh) script.
@@ -839,18 +836,24 @@ Cody also provided the [try.sh](%%REPO_URL%%/1988/dale/try.sh) script.
</div> </div>
[Cody](#cody) fixed this to work for modern systems. The problem was that the important [Cody](#cody) fixed this to work for modern systems. The problem was that the important
function, a redefinition of `exit()`, was not being called in `main()`. The function, a redefinition of `exit(3)`, was not being called in `main()`. Earlier
original version is in [1988/isaak/isaak.alt.c](%%REPO_URL%%/1988/isaak/isaak.alt.c). See the fixes that let it compile, but not work with modern systems, can be found in
[1988/isaak/isaak.alt.c](%%REPO_URL%%/1988/isaak/isaak.alt.c). See the
index.html file for more details. index.html file for more details.
Cody also uudecoded and removed the file `isaak.encode`, putting the output in
`isaak.output.txt`. This was done strictly for historical remarks that can be
found in the index.html file.
<div id="1988_litmaath"> <div id="1988_litmaath">
## [1988/litmaath](1988/litmaath/index.html) ## [1988/litmaath](1988/litmaath/index.html)
### Source code: [litmaath.c](%%REPO_URL%%/1988/litmaath/litmaath.c) ### Source code: [litmaath.c](%%REPO_URL%%/1988/litmaath/litmaath.c)
</div> </div>
[Cody](#cody) added the alt code which is code that we suggested at the time of [Cody](#cody) added the [alt code](%%REPO_URL%%/1988/litmaath/litmaath.alt.c)
publication, in the remarks, to help understand the entry, and for fun. which is code that we suggested at the time of publication, in the remarks, to
help understand the entry, and for fun.
<div id="1988_phillipps"> <div id="1988_phillipps">
+1 -1
View File
@@ -278,7 +278,7 @@
1988,isaak,Makefile,30,true,makefile,true,entry Makefile 1988,isaak,Makefile,30,true,makefile,true,entry Makefile
1988,isaak,isaak.alt.c,40,true,c,true,alternate code 1988,isaak,isaak.alt.c,40,true,c,true,alternate code
1988,isaak,isaak.orig.c,50,false,c,true,original source 1988,isaak,isaak.orig.c,50,false,c,true,original source
1988,isaak,isaak.encode,180,true,xxencode,true,uuencoded sample output 1988,isaak,isaak.output.txt,180,false,text,false,program output
1988,isaak,1988_isaak.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1988,isaak,1988_isaak.tar.bz2,1415926535,false,tbz2,false,download entry tarball
1988,isaak,README.md,4000000000,true,markdown,true,markdown source for this web page 1988,isaak,README.md,4000000000,true,markdown,true,markdown source for this web page
1988,isaak,.entry.json,4000000000,true,json,true,entry summary and manifest in JSON 1988,isaak,.entry.json,4000000000,true,json,true,entry summary and manifest in JSON
1 # year dir file_path inventory_order OK_to_edit display_as display_via_github entry_text
278 1988 isaak Makefile 30 true makefile true entry Makefile
279 1988 isaak isaak.alt.c 40 true c true alternate code
280 1988 isaak isaak.orig.c 50 false c true original source
281 1988 isaak isaak.encode isaak.output.txt 180 true false xxencode text true false uuencoded sample output program output
282 1988 isaak 1988_isaak.tar.bz2 1415926535 false tbz2 false download entry tarball
283 1988 isaak README.md 4000000000 true markdown true markdown source for this web page
284 1988 isaak .entry.json 4000000000 true json true entry summary and manifest in JSON
Binary file not shown.
+1
View File
@@ -83,6 +83,7 @@
1988/isaak/.path 1988/isaak/.path
1988/isaak/1988_isaak.tar.bz2 1988/isaak/1988_isaak.tar.bz2
1988/isaak/index.html 1988/isaak/index.html
1988/isaak/isaak.output.txt
1988/litmaath/.path 1988/litmaath/.path
1988/litmaath/1988_litmaath.tar.bz2 1988/litmaath/1988_litmaath.tar.bz2
1988/litmaath/index.html 1988/litmaath/index.html
+1 -1
View File
@@ -282,8 +282,8 @@
1988/isaak/index.html 1988/isaak/index.html
1988/isaak/isaak.alt.c 1988/isaak/isaak.alt.c
1988/isaak/isaak.c 1988/isaak/isaak.c
1988/isaak/isaak.encode
1988/isaak/isaak.orig.c 1988/isaak/isaak.orig.c
1988/isaak/isaak.output.txt
1988/litmaath/.entry.json 1988/litmaath/.entry.json
1988/litmaath/.gitignore 1988/litmaath/.gitignore
1988/litmaath/.path 1988/litmaath/.path
+1 -1
View File
@@ -282,8 +282,8 @@
1988/isaak/index.html 1988/isaak/index.html
1988/isaak/isaak.alt.c 1988/isaak/isaak.alt.c
1988/isaak/isaak.c 1988/isaak/isaak.c
1988/isaak/isaak.encode
1988/isaak/isaak.orig.c 1988/isaak/isaak.orig.c
1988/isaak/isaak.output.txt
1988/litmaath/.entry.json 1988/litmaath/.entry.json
1988/litmaath/.gitignore 1988/litmaath/.gitignore
1988/litmaath/.path 1988/litmaath/.path
-1
View File
@@ -197,7 +197,6 @@
1988/isaak/README.md 1988/isaak/README.md
1988/isaak/isaak.alt.c 1988/isaak/isaak.alt.c
1988/isaak/isaak.c 1988/isaak/isaak.c
1988/isaak/isaak.encode
1988/isaak/isaak.orig.c 1988/isaak/isaak.orig.c
1988/litmaath/.entry.json 1988/litmaath/.entry.json
1988/litmaath/.gitignore 1988/litmaath/.gitignore