force use of pandoc version >= 3.1.12.2
The `bin/pandoc-wrapper.sh` tool will verify that the ssytem has a recent enough version of `pandoc(1)`. We explain why we insist on `pandoc(1)`. version >= 3.1.12.2 in comments where the $PANDOC_MIN_VERSION is set. Added `--wrap=preserve` as a default argument to `pandoc(1)`. While this change will impact every HTML file generated, we believe this will improve the ability of someone to look at the generated HTML and correlate with the original markdown. Changed `bin/pandoc-wrapper.sh` VERSION from "1.4.2 2024-03-17" to "1.4.3 2024-03-18". Performed `make www` to achieve all of the above and to generate HTML using the new `--wrap=preserve` `pandoc(1)` mode.
This commit is contained in:
1 parent
9eb7a54e9f
commit
b0b212acb1
402 files changed
+37061
-55132
No files matched your search
@@ -120,14 +120,12 @@
|
||||
<!-- END: this line ends content from: inc/before-content.default.html -->
|
||||
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||||
|
||||
<p>The <code>sorta</code> scripts described below can sorta be found in
|
||||
this directory.</p>
|
||||
<p>The <code>sorta</code> scripts described below can sorta be found in this directory.</p>
|
||||
<h1 id="sorta.i22"><a href="sorta.i2+2">sorta.i2+2</a></h1>
|
||||
<pre><code>2 2+#` [ about as basic as you can get ]ld</code></pre>
|
||||
<p>This script takes 2, adds 2 to it, and prints the result (with a
|
||||
newline). I get 5 on the hand-held Sinclair under ZYNIX. Let me know if
|
||||
your machine produces a different result so that I can send you
|
||||
patches.</p>
|
||||
your machine produces a different result so that I can send you patches.</p>
|
||||
<h1 id="sorta.iarg0"><a href="sorta.iarg0">sorta.iarg0</a></h1>
|
||||
<pre><code>0A` [ take arg 0, print it ]</code></pre>
|
||||
<p>This is self-explanatory.</p>
|
||||
@@ -165,32 +163,27 @@ D # " in binary is "T 1=2 `ld
|
||||
1=D 1s# " & "T 1s#T " is "T &D& #T$ld " (" 1=2 ")"T `ld
|
||||
1=D 1s# " | "T 1s#T " is "T D&1sD&& #T$ld " (" 1=2 ")"T `ld
|
||||
1=D 1s# " ^ "T 1s#T " is "T 1=D&2sD&1sD&&&D& #T$ld " (" 1=2 ")"T `ld</code></pre>
|
||||
<p><code>icalc</code> shows off <code>SORTA</code>’s understanding of
|
||||
integer arithmetic. You can run it with up to two arguments; the
|
||||
arguments have default values of 27182 and 3145. Notice that
|
||||
<code>SORTA</code> doesn’t have a language primitive for converting a
|
||||
string to a number, yet <code>icalc</code> is performing arithmetic on
|
||||
its arguments. Can you see how? (Hint: Try
|
||||
<code>./sorta "2 2+" 3 < sorta.icalc</code>. Look at program A.)
|
||||
<code>icalc</code> also provides a useful binary output routine, and if
|
||||
you can’t remember offhand that
|
||||
<code>D2sD3s&2sD&1sD&&&D&</code> means XOR, you
|
||||
can just look it up here.</p>
|
||||
<p><code>icalc</code> shows off <code>SORTA</code>’s understanding of integer arithmetic. You can run
|
||||
it with up to two arguments; the arguments have default values of 27182
|
||||
and 3145. Notice that <code>SORTA</code> doesn’t have a language primitive for
|
||||
converting a string to a number, yet <code>icalc</code> is performing arithmetic on
|
||||
its arguments. Can you see how? (Hint: Try <code>./sorta "2 2+" 3 < sorta.icalc</code>.
|
||||
Look at program A.) <code>icalc</code> also provides a useful binary output routine,
|
||||
and if you can’t remember offhand that <code>D2sD3s&2sD&1sD&&&D&</code> means XOR,
|
||||
you can just look it up here.</p>
|
||||
<h1 id="sorta.idup"><a href="sorta.idup">sorta.idup</a></h1>
|
||||
<pre><code>[ld#1_+1=y]:x
|
||||
[uD1+=x]:y
|
||||
0""1=y`</code></pre>
|
||||
<p>This script prints out the maximum file descriptor available from
|
||||
repeated <code>dup(2)</code>s—usually <code>NOFILE - 1</code>. Can you
|
||||
see how it works?</p>
|
||||
repeated <code>dup(2)</code>s—usually <code>NOFILE - 1</code>. Can you see how it works?</p>
|
||||
<h1 id="sorta.iecho"><a href="sorta.iecho">sorta.iecho</a></h1>
|
||||
<pre><code>[" "$ld]:sld [ print a space ]ld
|
||||
[1s1+DA$ld1s1_+D=sD=x]:xld [ given n (argc-n), print args ]ld
|
||||
0a1_+D=x""` [ simulation of /bin/echo ]ld</code></pre>
|
||||
<p>This is a clone of <code>/bin/echo</code>, minus any argument
|
||||
processing and escape interpretation. (Note that, unlike some shells’
|
||||
echo, <code>/bin/echo</code> prints a newline even with no arguments.)
|
||||
Try <code>./sorta foo bar < iecho</code>.</p>
|
||||
<p>This is a clone of <code>/bin/echo</code>, minus any argument processing and escape
|
||||
interpretation. (Note that, unlike some shells’ echo, <code>/bin/echo</code> prints a
|
||||
newline even with no arguments.) Try <code>./sorta foo bar < iecho</code>.</p>
|
||||
<h1 id="sorta.ifact1"><a href="sorta.ifact1">sorta.ifact1</a></h1>
|
||||
<pre><code>1#`ld2*#`ld3*#`ld4*#`ld5*#`ld6*#`ld7*#`ld8*#`ld9*#`ld10*#`ld</code></pre>
|
||||
<p>This is a very straightforward factorial program: Take 1, print it,
|
||||
@@ -199,25 +192,21 @@ multiply by 2, print it, multiply by 3, print it, etc.</p>
|
||||
<pre><code>[1+D2s*#`ld1s]:f
|
||||
1 0
|
||||
1=f 1=f 1=f 1=f 1=f 1=f 1=f 1=f 1=f 1=f</code></pre>
|
||||
<p><code>ifact1</code> does a lot of repeated work. <code>ifact2</code>
|
||||
takes advantage of this by keeping the current <code>n!</code>
|
||||
<code>n</code> on the stack. Each call to routine <code>f (1=f)</code>
|
||||
increments <code>n</code> by <code>1</code> and prints out the
|
||||
factorial.</p>
|
||||
<p><code>ifact1</code> does a lot of repeated work. <code>ifact2</code> takes advantage of this by
|
||||
keeping the current <code>n!</code> <code>n</code> on the stack. Each call to routine <code>f (1=f)</code>
|
||||
increments <code>n</code> by <code>1</code> and prints out the factorial.</p>
|
||||
<h1 id="sorta.ifact3"><a href="sorta.ifact3">sorta.ifact3</a></h1>
|
||||
<pre><code>[1+D2s*#`ld1s]:f [ given (n-1)! (n-1), print n!, put n! n ]
|
||||
[2s1=f2s1_+D0>=x]:x [ given n n! x, print (n+1)! through (n+x)! ]
|
||||
0 1 10 1=x</code></pre>
|
||||
<p>Finally, <code>ifact3</code> removes all the redundancy from
|
||||
<code>ifact2</code>, and exhibits proper documentation of stack
|
||||
routines. You can replace the <code>10</code> by anything in this
|
||||
version.</p>
|
||||
<p>Finally, <code>ifact3</code> removes all the redundancy from <code>ifact2</code>, and exhibits
|
||||
proper documentation of stack routines. You can replace the <code>10</code> by
|
||||
anything in this version.</p>
|
||||
<h1 id="sorta.iio"><a href="sorta.iio">sorta.iio</a></h1>
|
||||
<pre><code> [ a simple example of interpreting code on the fly ]ld
|
||||
|
||||
["] "2 2+":xT ["]T " produces "T 1=x#T " which should be 4."T`</code></pre>
|
||||
<p>Notice that <code>"2 2+"</code> is a literal string inside the
|
||||
program.</p>
|
||||
<p>Notice that <code>"2 2+"</code> is a literal string inside the program.</p>
|
||||
<h1 id="sorta.irot13"><a href="sorta.irot13">sorta.irot13</a></h1>
|
||||
<pre><code>"[] [.tr] "
|
||||
["]".[a-m][n-z][A-M][N-Z]"[" ]TTT ["]".[n-z][a-m][N-Z][A-M]"[" ]TTT
|
||||
@@ -228,15 +217,13 @@ a2_+=g
|
||||
1A 0 [ that 0 is for RDONLY ]ld
|
||||
0 'o D0 1s>=hld
|
||||
0Ou1=x [ in a more complex spawner, this would be done under a fork ]ld</code></pre>
|
||||
<p>Despite its name, <code>irot13</code> is meant to show how to exec a
|
||||
program with redirection from within <code>sorta</code>. You run it as
|
||||
<code>./sorta blah < irot13</code>; it opens <code>blah</code> and
|
||||
runs a (BSD-style) <code>tr</code> command to rotate all letters by 13
|
||||
spots. <code>1A 0 0 o</code> opens <code>argv[1]</code>; the
|
||||
<code>'</code> keeps the filename around for subroutine <code>h</code>
|
||||
to print a nice error message if necessary. <code>0Ou</code> closes
|
||||
stdout and replaces it with the new descriptor. Finally, subroutine
|
||||
<code>x</code> executes the <code>tr</code>.</p>
|
||||
<p>Despite its name, <code>irot13</code> is meant to show how to exec a program with
|
||||
redirection from within <code>sorta</code>. You run it as <code>./sorta blah < irot13</code>; it
|
||||
opens <code>blah</code> and runs a (BSD-style) <code>tr</code> command to rotate all letters by 13
|
||||
spots. <code>1A 0 0 o</code> opens <code>argv[1]</code>; the <code>'</code> keeps the filename around for
|
||||
subroutine <code>h</code> to print a nice error message if necessary. <code>0Ou</code> closes
|
||||
stdout and replaces it with the new descriptor. Finally, subroutine <code>x</code>
|
||||
executes the <code>tr</code>.</p>
|
||||
<h1 id="sorta.isleep"><a href="sorta.isleep">sorta.isleep</a></h1>
|
||||
<pre><code>["" "+sleep" "+5" "sleep" !q]:S [F0>1_+=S]:s
|
||||
"forking sleep 5..."`ld
|
||||
@@ -248,10 +235,9 @@ w
|
||||
<h1 id="sorta.itailrec"><a href="sorta.itailrec">sorta.itailrec</a></h1>
|
||||
<pre><code>[3*#" "T$ldD=f]:f
|
||||
1=f</code></pre>
|
||||
<p>The sole purpose of this script is to prove that <code>sorta</code>
|
||||
can do infinite tail recursion (in this case, in program
|
||||
<code>f</code>). Do <code>./sorta < itailrec | more</code> and watch
|
||||
the powers of 3 (mod your computer’s word size) flow by.</p>
|
||||
<p>The sole purpose of this script is to prove that <code>sorta</code> can do infinite
|
||||
tail recursion (in this case, in program <code>f</code>). Do <code>./sorta < itailrec | more</code>
|
||||
and watch the powers of 3 (mod your computer’s word size) flow by.</p>
|
||||
<h1 id="sorta.iwhosort"><a href="sorta.iwhosort">sorta.iwhosort</a></h1>
|
||||
<pre><code>[0Ou "" "+-u" "sort" !q]:S [F0>1_+=S]:s
|
||||
[1Ou "" "+-u" "who" !q]:W [F0>1_+=W]:w
|
||||
|
||||
Reference in new issue
Block a user