diff options
Diffstat (limited to 'Master/texmf-dist/source/generic/knuth/errata/errata.tex')
-rw-r--r-- | Master/texmf-dist/source/generic/knuth/errata/errata.tex | 1802 |
1 files changed, 0 insertions, 1802 deletions
diff --git a/Master/texmf-dist/source/generic/knuth/errata/errata.tex b/Master/texmf-dist/source/generic/knuth/errata/errata.tex deleted file mode 100644 index 3a0d367f0ca..00000000000 --- a/Master/texmf-dist/source/generic/knuth/errata/errata.tex +++ /dev/null @@ -1,1802 +0,0 @@ -% Bugs (sigh) in Computers \& Typesetting --- the most recent errata - -\tracingpages=1 -\input manmac -\def\.#1{\hbox{\tt#1}} -\font\sltt=cmsltt10 -\font\niness=cmss9 -\font\ninessi=cmssi9 -\proofmodefalse -\raggedbottom -\output{\hsize=29pc \onepageout{\unvbox255\kern-\dimen@ \vfil}} - -\def\today{\number\day\ - \ifcase\month\or - Jan\or Feb\or Mar\or Apr\or May\or Jun\or - Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi - \ \number\year} - -\def\cutpar{{\parfillskip=0pt\endgraf}} - -\def\rhead{Bugs in {\tensl Computers \& Typesetting as of \today}} -\def\bugonpage#1(#2) \par{\bigbreak\tenpoint - \hrule width\hsize - \line{\lower3.5pt\vbox to13pt{}Page #1\hfil(#2)}\hrule width\hsize - \nobreak\medskip} -\def\buginvol#1(#2) \par{\bigbreak\penalty-1000\tenpoint - \hrule width\hsize - \line{\lower3.5pt\vbox to13pt{}Volume #1\hfil(#2)}\hrule width\hsize - \nobreak\medskip} -\def\slMF{{\manual 89:;}\-{\manual <=>:}} % slant the logo -\def\0{\raise.7ex\hbox{$\scriptstyle\#$}} -\newcount\nn -\newdimen\nsize \newdimen\msize \newdimen\ninept \ninept=9pt -\newbox\eqbox \setbox\eqbox=\hbox{\kern2pt\eightrm=\kern2pt} - -\tenpoint -\noindent This is a list of all substantial corrections made to {\sl Computers -\& Typesetting\/} since the beginning of 2014. -(More precisely, it lists errors corrected -since the 19th printing of Volume~A, the 9th printing -of Volume~B, the 8th printing of Volume~C, the 6th printing of Volume~D, -and the 7th printing of Volume~E. % 2012 for A-D, 2013 for E -But it omits changes that are ``purely cosmetic.'') -Corrections made to the softcover version of {\sl The \TeX book\/}, -beginning with its 32nd printing, are -the same as corrections to Volume~A\null. Corrections to the softcover -version of {\sl The \slMF\kern1ptbook}, beginning with its 11th printing, -are the same as corrections to Volume~C\null. Changes to the mini-indexes -and master indexes of Volumes B, D, and~E are not shown here unless they are -not obviously derivable from what has been shown. Some (or all) of these -errors have been corrected in the most recent printings. -\looseness=-1 - -% volume A - -\bugonpage A34, line 3 from the bottom (01/09/20) - -\ninepoint\noindent -not, you can say -`\.{I\char`\\errorcontextlines=100} \.{\char`\\oops}' and try again. \ (That -will usually\cutpar - -\bugonpage A43, line 6 (07/24/14) - -\tenpoint\noindent -keyboard, or that have been -pre\"empted for formatting? - -\bugonpage A49, cummings quote (08/03/19) - -(delete the period at the end of the line) - -\bugonpage A66, line 3 from the bottom (08/26/17) - -\ninepoint -Such displays of box contents will be discussed further in -Chapters 12 and~27.\cutpar - -\bugonpage A105, lines 9--16 (01/16/21) - -\ddanger If you say \.{\char`\\vadjust\char`\{}$\langle\,$vertical -mode material$\,\rangle$\.{\char`\}} within a -paragraph, \TeX\ will use internal vertical mode to insert the specified -material into the vertical -list that encloses the paragraph, immediately after whatever line -contained the position of the \.{\char`\\vadjust}. For example, you can say -`\.{\char`\\vadjust\char`\{\char`\\kern1pt\char`\}}' -to increase the amount of space between lines of a -paragraph if those lines would otherwise come out too close together. \ (The -\vadjust{\kern1pt}author -did that in the current line, just to illustrate what happens.) \ Also, -if you want to make sure that a page break will occur immediately after a -certain line, you can say `\.{\char`\\vadjust\char`\{\char`\\eject\char`\}}' -anywhere in that line. - -\bugonpage A122, lines 3--8 (11/24/19) - -\ninepoint\noindent -\.{\char`\\count255}, \.{\char`\\dimen255}, \.{\char`\\skip255}, -\.{\char`\\muskip255}, and \.{\char`\\toks255} are -traditionally kept available for such purposes. Furthermore, plain \TeX\ -reserves \.{\char`\\dimen0} to \.{\char`\\dimen9}, -\.{\char`\\skip0} to \.{\char`\\skip9}, \.{\char`\\muskip0} to -\.{\char`\\muskip9}, and \.{\char`\\box0} to \.{\char`\\box9} -for ``scratchwork''; these registers -are never allocated by the \.{\char`\\new...}\null\ operations. We have seen that -\.{\char`\\count0} through \.{\char`\\count9} are special, -and \.{\char`\\box255} also turns out to -be special; so those registers should be avoided unless you know what you -are doing. - -\bugonpage A155, line 8 from the bottom (01/17/21) - -\ninepoint\indent -\.{\char`\\mathopen\char`\{\char`\\hbox\char`\{\char`\$\char`\\left\char`\#1}% -$\langle\,$strut$\,\rangle$\.{\char`\\right.\char`\$\char`\}\char`\}} - -\bugonpage A155, the bottom six lines (12/10/18) - -\ninepoint\noindent -dividual symbols; \.{\char`\\left}$\,\ldots\,$\.{\char`\\right} -constructions are treated as ``inner'' subformulas, which means that -they will be surrounded by additional space in certain circumstances. -All other subformulas are generally treated as ordinary symbols, -whether they are formed by \.{\char`\\overline} or -\.{\char`\\hbox} or \.{\char`\\vcenter} or -by simply being enclosed in braces. Thus, \.{\char`\\mathord} isn't really -a necessary part of the \TeX\ language; instead of typing -`\.{\char`\$1\char`\\mathord,234\char`\$}' you can get the same -effect from `\.{\char`\$1\char`\{,\char`\}234\char`\$}'. - -\bugonpage A158, line 19 (12/10/18) - -\ninepoint\indent -Inner\quad is an inner atom produced by - `\.{\char`\\left}$\,\ldots\,$\.{\char`\\right}'; - -\bugonpage A170, lines 18 and 19 (12/10/18) - -\ninepoint\noindent -subformulas delimited by \.{\char`\\left} and \.{\char`\\right} -are treated as type~Inner. The following table is -used to determine the spacing between pairs of adjacent atoms: - -\bugonpage A171, line 19 from the bottom (06/15/19) - -\ninepoint\noindent -formula produces a result essentially equivalent to -`\.{\char`\\left(}$\langle\,$subformula$\,\rangle$\.{\char`\\right)}', -when\cutpar - -\bugonpage A215, line 16 from the bottom becomes two lines (10/13/20) - -\ninepoint -\item\bull Just after a token such as \.{\char`\$}$_3$ -that begins math mode, to see if -another token of category 3 follows. - -\bugonpage A222, lines 21--23 (01/16/21) - -\ninepoint -\halign{\indent#\hfil&\quad(see Chapter #)\hfil\cr -\.{\char`\\hbox}$\langle\,$box specification$\,\rangle$% - \.{\char`\{}$\langle\,$horizontal mode material$\,\rangle$\.{\char`\}}&12\cr -\.{\char`\\vbox}$\langle\,$box specification$\,\rangle$% - \.{\char`\{}$\langle\,$vertical mode material$\,\rangle$\.{\char`\}}&12\cr -\.{\char`\\vtop}$\langle\,$box specification$\,\rangle$% - \.{\char`\{}$\langle\,$vertical mode material$\,\rangle$\.{\char`\}}&12\cr -} - -\bugonpage A222, lines 11--13 from the bottom (01/16/21) - -\ninepoint\noindent -ter~15. The \.{\char`\\vsplit} operation -is also explained in Chapter~15. In math modes an additional -type of box is available: -\.{\char`\\vcenter}$\langle\,$box specification$\,\rangle$% - \.{\char`\{}$\langle\,$vertical mode material$\,\rangle$\.{\char`\}} -(see Chapter~17). - -\bugonpage A232, line 14 (01/10/21) - -\ninepoint\noindent -tabs outside; `\.{\char`\\global\char`\\settabs}' will not do what -you might think it should. - -\bugonpage A233, lines 3--5 (04/27/15) - -\tenpoint\noindent -Only two tabs are set in this case, because only two \.{\char`\&}'s -appear in the sample line. \ (A sample line usually -ends with~\.{\char`\&\char`\\cr}, as it does here, -because text material between the last tab and \.{\char`\\cr} -isn't used for anything.) - -\bugonpage A252, lines 5--7 (12/25/20) - -\ninepoint\noindent -blank, and -the footline is normally a centered page number, but you can specify any -headline and footline that you want by changing the token lists -\.{\char`\\headline} and \.{\char`\\footline}. For example, - -\bugonpage A253, lines 7--9 from the bottom (10/27/20) - -\ninepoint\indent -\.{\char`\\everypar} or \.{\char`\\errhelp}, except that \TeX\ -retains the begin-group symbol~`\.{\char`\{}' at the beginning -and the end-group symbol~`\.{\char`\}}' at the end. These -grouping characters -help to keep the output routine from interfering with what -\TeX\ was doing\cutpar - -\bugonpage A256, line 19 (08/28/15) - -\ninepoint\indent -\tt \char`\\baselineskip=24pt \char`\\lineskiplimit=0pt - -\bugonpage A277, lines 9 and 10 from the bottom (08/26/17) - -\ninepoint\indent -$\langle\,$hyphenation assignment$\,\rangle$\is - \.{\char`\\hyphenation}$\langle\,$filler$\,\rangle$% - \.{\char`\{}$\langle\,$hyphenations$\,\rangle$\.{\char`\}}\par -\qquad \alt \.{\char`\\patterns}$\langle\,$filler$\,\rangle$% - \.{\char`\{}$\langle\,$patterns$\,\rangle$\.{\char`\}} - -\bugonpage A286, bottom two lines {(and affecting the top lines -of page 287)} (08/26/17) - -\ninepoint\noindent -stands for zero or more \<assignment> -commands other than \.{\char`\\setbox}, possibly with \<filler>. -If the assignments are not followed by a \<character>, where -\<character> stands\cutpar - -\bugonpage A287, lines 11--17 (04/22/20) - -\ninepoint -\textindent{$\bull$} \.{\char`\\discretionary}% - \<disc text>\<disc text>\<disc text>.\enskip -A \<disc text> has the form -`\<filler>\.{\char`\{}\<horizontal mode material>\.{\char`\}}', -where the material is processed in restricted horizontal mode and -should contain only fixed-width things. -More precisely, the horizontal list formed by each -\<disc text> must consist only of characters, ligatures, -kerns, boxes, and rules; there should be no glue or penalty items, etc. -This command appends a discretionary item to the current list; see -Chapter~14 for the meaning of a discretionary item. The space factor is -not changed. - -\bugonpage A292, lines 8--10 (04/22/20) - -\ninepoint -\textindent{$\bull$} \.{\char`\\discretionary}% - \<disc text>\<disc text>\<disc text>.\enskip -This command has the same effect as in horizontal mode (see Chapter~25), but the -third \<disc text> must produce an empty list. - -\bugonpage A299, line 11 from the bottom (11/01/20) - -\ninepoint\noindent -is corrupted or was prepared for a different version of \TeX. - -\bugonpage A305, bottom line (06/30/20) - -\ninepoint\indent -\tt \char`\\setbox0=\char`\\hbox\char`\{\char`\#1\char`\}% -\char`\\advance\char`\\dimen0 by -\char`\\wd0 \char`\}\rm. - -\bugonpage A309, line 2 becomes two lines (12/06/20) - -\ninepoint\noindent -represent text entered from the user's terminal, or with -`\.{<insert>}', when they -represent text inserted during error recovery). - -\bugonpage A316, lines 17 and 18 from the bottom (09/03/15) - -\ninepoint\noindent -(The next line must also not be too tall.) -Here \.{\char`\\specialstar} is a box of height zero and depth -\.{\char`\\strutdepth}, -and it puts an asterisk in the left margin: - -\bugonpage A320, lines 5--9 from the bottom (06/27/15) - -\ninepoint\noindent -{\bf 17.21.}\enspace Assigning \.{\char`\\delcode\char`\`\char`\{} -would not work to allow `\.{\char`\\left\char`\{}', because -the brace has category~1 and isn't a legal \<delim>. -Allowing brace delimiters would be a bad idea because it would -mess up other constructions, such as arguments to macros, and -components of alignments. Moreover, a user who -gets away with `\.{\char`\\left\char`\{}' -is likely to try also `\.{\char`\\bigl\char`\{}', which -fails miserably. - -\bugonpage A326, line 12 (08/26/17) - -\ninepoint\noindent -its natural width. The \.{\char`\\hbox} version also invokes -\.{\char`\\everyhbox} and \.{\char`\\everymath}. - -\bugonpage A329, line 3 of answer 20.7 (05/15/19) - -\ninepoint\noindent -the three tokens \.{!1}, \.{\char`\#2}, \.{[}$_1$; the -\<replacement text> consists of the six tokens -\.{\char`\{}$_1$, \.{\char`\#}$_6$,\cutpar - -\bugonpage A329, line 6 of answer 20.7 (05/15/19) - -\ninepoint\noindent -is otherwise irrelevant. Thus, `\.{\char`\\def\char`\\!!1\char`\#2\char - `\#[\char`\{\char`\#\char`\#]!!\char`\#2]}' -would produce an essentially\cutpar - -\bugonpage A329, line 5 from the bottom of answer 20.7 (05/15/19) - -\ninepoint\indent -\.{!1<-x} - -\bugonpage A329, bottom line of answer 20.7 (05/15/19) - -\ninepoint\noindent -final parameter in the parameter text; -`\.{!1}' would have been rendered `\.{\char`\#1}'. - -\bugonpage A332, lines 13 and 14 (08/26/17) - -\ninepoint\noindent -{\bf 21.10.}\enspace If you say -`\.{\char`\{\char`\\let}\stretch -\.{\char`\\the=0\char`\\edef}\stretch -\.{\char`\\next}\stretch -\.{\char`\{\char`\\write}\stretch -\.{\char`\\cont}\stretch -\.{\char`\{}\<token list>\.{\char`\}\char`\}\char`\\next}\stretch -\.{\char`\}}', -the \.{\char`\\write} will be exercuted after -\.{\char`\\edef} expands everything except \.{\char`\\the}. - -\bugonpage A332, bottom line (11/15/19) - -\ninepoint\indent\quad -\tt \char`\\+\char`\&\char`\{\char`\\bf end\char`\};\char`\\cr \ - \char`\%\ note that the semicolon isn't bold - -\bugonpage A342, lines 12 and 13 (08/14/20) - -\tenpoint\noindent -of plain \TeX\ format; but some of them are primitive (built in), -such as `\.{\char`\\par}' (end of -paragraph), `\.{\char`\\noindent}' (beginning of -non-indented paragraph), and `\.{\char`\/}' (italic\cutpar - -\bugonpage A345, lines 10--13 from the bottom (06/27/15) - -\ninepoint\noindent -Braces are used for grouping, when supplying -arguments to macros; so they cannot also be used as math delimiters, or as -arguments to macros such as \.{\char`\\big}. (One could change their catcodes -to~12, and use some other pair of characters for grouping; but that -would not be plain \TeX.) - -\bugonpage A346, lines 10--22 (11/24/19) - -\ninepoint\noindent -number identification.) \ (2)~The registers -\.{\char`\\count255}, \.{\char`\\dimen255}, \.{\char`\\skip255}, -\.{\char`\\toks255}, and \.{\char`\\muskip255} -are freely available in the same way. -\ (3)~All assignments to the scratch registers whose numbers are -1,~3, 5, 7, and~9 should be \.{\char`\\global}; all assignments to the -other scratch registers (0,~2, 4, 6, 8,~255) should be non-\.{\char`\\global}. -\ (This prevents the phenomenon of ``save stack buildup'' discussed -in Chapter~27.) -\ (4)~Furthermore, it's possible to -use any register in a group, if you ensure that \TeX's grouping -mechanism will restore the register when you're done with the group, and -if you are certain that other macros will not make global assignments -to that register when you need it. \ (5)~But when a register is used -by several macros, or over long spans of time, it should be allocated -by \.{\char`\\newcount}, \.{\char`\\newdimen}, \.{\char`\\newbox}, -etc. \ (6)~Similar remarks -apply to input/output streams used by \.{\char`\\read} and \.{\char`\\write}, -to math families used by \.{\char`\\fam}, to sets of hyphenation rules used by -\.{\char`\\language}, and to insertions (which require -\.{\char`\\box}, \.{\char`\\count}, \.{\char`\\dimen}, -and \.{\char`\\skip} registers all having the -same number).\looseness=-1 - -\bugonpage A347, line 6 (06/30/20) - -\ninepoint\noindent -\tt \char`\\def\char`\\wlog\char`\{\char`\\immediate\char`\\write-1 \char`\} -\ \char`\%\ this will write on log file (only) - -\bugonpage A347, line 10 (11/24/19) - -\ninepoint\noindent -\tt \char`\\outer\char`\\def\char`\\newmuskip\char`\{\char`\\alloc@3% -\char`\\muskip\char`\\muskipdef\char`\\@cclv\char`\} - -\bugonpage A347, line 14 (11/24/19) - -\ninepoint\noindent -\tt \char`\\outer\char`\\def\char`\\newtoks\char`\{\char`\\alloc@5% -\char`\\toks\char`\\toksdef\char`\\@cclv\char`\} - -\bugonpage A350, lines 15 and 16 from the bottom (01/17/21) - -\ninepoint\noindent -format; it shouldn't cost much for people to acquire all the -fonts of plain \TeX\ in addition to the ones that they really want. Second, it -is desirable on many computer systems to\cutpar - -\bugonpage A364, line 5 from the bottom (01/14/21) - -\ninepoint\noindent -\tt \char`\\def\char`\\fmtversion\char`\{3.1415926535\char`\} -\ \char`\%\ identifies the current format - -\bugonpage A370, lines 11 and 12 (08/26/17) - -\ninepoint\noindent -close as possible to the ASCII conventions. -\ (b)~Make sure that codes \oct{041}--\oct{046}, \oct{060}--\oct{071}, -\oct{136}, \oct{141}--\oct{146}, and \oct{160}--\oct{171} are present and that -each unrepresentable in-\cutpar - -\bugonpage A373, lines 21 and 22 (01/17/21) - -\ninepoint\noindent -and \.{\char`\\if...\char`\\fi} -tests, as well as special operations like \.{\char`\\the} -and \.{\char`\\input}, while the -latter category includes the primitive commands listed in Chapters~24--26. -The expansion of\cutpar - -\bugonpage A375, bottom three lines (06/30/20) - -\ninepoint\noindent -|$$\generaldisplay$$| to be invoked, with |\eq| defined to be $\alpha$. -Furthermore, when an equation number~$\beta$ is present, it should be stored -in |\eqn|, and the test |\ifeqno| should be true. -In such cases |\ifleqno| should distinguish |\leqno| from |\eqno|. -Here\cutpar - -\bugonpage A398, lines 4 and 5 (08/26/17) - -\ninepoint\indent -|\setbox2=\lastbox \setbox\footins=\vbox{\box2}|\par -\smallskip\noindent -since |\lastbox| will be the result of\/ |\rigidbalance|, which is an hbox. - -\bugonpage A407, line 5 from the bottom (06/30/20) - -\ninepoint\noindent\quad -| \interlinepenalty5000\def\par{\endgraf\penalty5000 }}| - -\bugonpage A413, line 11 from the bottom (05/14/19) - -\ninepoint\indent -The computer file |texbook.tex| that generated {\sl The \TeX book\/} begins -with a\cutpar - -\bugonpage A418, line 4 (05/14/19) - -\ninepoint\noindent -\TeX\ commands -that look like this in the file |texbook.tex|: - -\bugonpage A420, line 11 (06/30/20) - -\ninepoint\noindent -|\def\bull{\vrule height.9ex width.8ex depth-.1ex \relax} % square bullet| - -\bugonpage A423, line 16 (06/30/20) - -\ninepoint\noindent -| \vrule height6pt depth2pt width0pt \relax} % a strut for \insert\margin| - -\bugonpage A445, lines 10--14 (12/10/18) - -\ninepoint -\textindent{\bf 15e.} Enclose the vbox that was constructed in Rule 15c or 15d by -delimiters $(\lambda,\rho)$ -whose height plus depth is at least $\sigma_{20}$, if $C>T$, and at -least $\sigma_{21}$ otherwise. Shift the delimiters up or down so that they are -vertically centered with respect to the axis. Replace the generalized -fraction by an Ord atom whose nucleus is the resulting sequence of three boxes -($\lambda$, vbox, $\rho$). Go to rule~19. - -\bugonpage A446, the bottom three lines of Rule 19 become four lines (01/10/21) - -\ninepoint\noindent -atom and the right boundary item to -a Close atom. The entire resulting list now becomes the nucleus of an -Inner atom. \ (All of the calculations in this step are done with -$C$ equal to the starting style of the math list; style items in the -middle of the list do not affect the style of the right boundary item.) - -\bugonpage A454, lines 17 and 18 from the bottom (04/13/20) - -\ninepoint\noindent -of the process; the trial word consists of all the letters found in admissible -items, up to a maximum of~63. Notice that all of these letters are in font~$f$. - -\bugonpage A458 and following, selected amendments to the index (01/18/21) - -\eightpoint -|[1]| (progress report), 23, $\underline{119}$.\par -|\aa| ( \aa\ ), {\it52}, $\underline{356}$.\par -|\AA| ( \AA\ ), {\it52}, $\underline{356}$.\par -\<disc text>, $\underline{287}$, 292.\par -\<general text>, $\underline{276}$, 279, 280.\par -\<horizontal mode material>, 278, 285, 287.\par -integral signs, {\sl see\/} |\int|, |\oint|, |\smallint|.\par -\<math mode material>, 287, 289--293.\par -|\null|, 311, {\it312}, {\it316}, {\it332}, {\it335}, $\underline{351}$, {\it354}, {\it360}--{\it362}, {\it419}.\par -|\o| ( \o\ ), {\it52}, $\underline{356}$.\par -|\O| ( \O\ ), {\it52}, $\underline{356}$.\par -programs, for computers, 38, 165, {\it234}.\par -repeating templates, {\sl see\/} periodic preambles.\par -replacement text, {\it200}--{\it204}, 212, 280, 300, 329.\par -right delimiters, {\sl see\/} closings.\par -struts, $\underline{82}$, 125, 131, 142, 155, 178, 245--247, 255, 329, 416, 422, 423.\par -\<vertical mode material>, 278, 280--282, 290. - - -% volume B -\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers -\def\dts{\mathrel{.\,.}} % double dot, used only in math mode - -\bugonpage Bv {(formerly Bvii)}, bottom two lines (01/15/21) - -\eightpoint\noindent -all of those changes. -I~now believe that the final bug was discovered on 22 October 2020 -and removed in version 3.141592653. % on 12 January 2021 -The finder's fee has converged to \$327.68. - -\hsize=35pc - -\bugonpage B2, line 10 from the bottom (01/15/21) - -\ninepoint\noindent\hskip10pt -{\bf define} $\\{banner}\equiv\hbox{\tt\char'23}$% -{\tt This\]is\]TeX,\]Version\]3.141592653\char'23}\quad -$\{\,$printed when \TeX\ starts$\,\}$ - -\bugonpage B4, line 8 of \S7 (04/02/17) - -\tenpoint\noindent -diagnostic information for \.{\char`\\tracingparagraphs}, -\.{\char`\\tracingpages}, and \.{\char`\\tracingrestores}. - -\bugonpage B21, lines 33 and 34 (04/02/17) - -\def\Oct#1{\hbox{\rm\char'23\kern-.2em\it#1\/\kern.05em}} % octal constant -\tenpoint\noindent -$[\Oct{41}\to\Oct{46},\Oct{60}% -\to\Oct{71},\Oct{136},\Oct{141}\to\Oct{146},\Oct{160}\to\Oct{171}]$ must be printable. -Thus, at least 80 printable characters are needed. - -\bugonpage B28, lines 3 and 4 (04/02/17) - -\tenpoint\noindent -not serious since we assume that this -part of the program is system dependent. - -\bugonpage B28, line 2 from the bottom (04/02/17) - -\ninepoint\noindent\quad -{\bf var} $k$: $0\dts23$;\quad$\{\,$index to current digit; we assume - that $\vert n\vert<10^{23}\,\}$ - -\bugonpage B35, line 2 of \S83 becomes two lines (06/27/20) - -\ninepoint\noindent\quad -{\bf loop begin} \\{continue}: {\bf if} $\\{interaction}\ne\\{error\_stop\_mode}$ - {\bf then return};\par -\noindent\qquad -\\{clear\_for\_error\_prompt}; \ \\{prompt\_input}(\.{"?\]"}); - -\bugonpage B36, line 11 of \S84 (07/03/20) - -\ninepoint\noindent\quad -\.{"E"}: {\bf if} $\\{base\_ptr}>0$ {\bf then if} - $\\{input\_stack}[\\{base\_ptr}].\\{name\_field}\ge256$ {\bf then} - -\bugonpage B36, line 5 of \S85 becomes two lines (07/03/20) - -\ninepoint\noindent\quad -{\bf if} $\\{base\_ptr}>0$ {\bf then}\par -\noindent\qquad -{\bf if} $\\{input\_stack}[\\{base\_ptr}].\\{name\_field}\ge256$ {\bf then} -\\{print}(\.{"E\]to\]edit\]your\]file."} - -\bugonpage B40, line 5 from the bottom (08/07/20) - -\ninepoint\noindent\qquad -(\.{"Try\]to\]insert\]an\]instruction\]for\]me\](e.g.,\]% - \char`\`I\char`\\showlists\char`\'),"}) - -\bugonpage B58, lines 2 and 3 of \S136 (10/11/20) - -\tenpoint\noindent -the values corresponding to `\.{\char`\\hbox\char`\{\char`\}}'. -The \\{sub\_type} -field is set to \\{min\_quarterword}, for historic reasons that are no -longer relevant. - -\bugonpage B88, line 16 (10/22/20) - -\tenpoint\noindent -The mode is temporarily set to zero while processing \.{\char`\\write} texts. - -\bugonpage B102, lines 3 and following of \S241 (12/11/20) - -\tenpoint\noindent -information, something special -is needed. The program here simply assumes that suitable values appear in -the global variables \\{sys\_time}, \\{sys\_day}, \\{sys\_month}, and -\\{sys\_year} (which are initialized to noon on 4 July 1776, -in case the implementor is careless). -\smallskip -\ninepoint\noindent -{\bf procedure} \\{fix\_date\_and\_time};\par -\noindent\quad{\bf begin} -$\\{sys\_time}\gets12\ast60$; \ -$\\{sys\_day}\gets4$; \ -$\\{sys\_month}\gets7$; \ -$\\{sys\_year}\gets1776$;\quad -$\{\,$self-evident truths$\,\}$\par -\noindent\quad$\\{time}\gets\\{sys\_time}$;\quad - $\{\,$minutes since midnight$\,\}$\par -\noindent\quad$\\{day}\gets\\{sys\_day}$;\quad$\{\,$day of the month$\,\}$\par -\noindent\quad$\\{month}\gets\\{sys\_month}$;\quad$\{\,$month of the year$\,\}$\par -\noindent\quad$\\{year}\gets\\{sys\_year}$;\quad$\{\,$Anno Domini$\,\}$\par -\noindent\quad{\bf end}; - -\bugonpage B103, replacement for \S246 (12/11/20) - -\tenpoint\noindent -{\bf 246.}\quad Of course we had better declare a few more global variables, -if the previous routines are going to work. -\smallskip -\ninepoint\noindent -$\langle\,$Global variables {\sevenrm\kern.5em13}$\,\rangle+\equiv$\par -\noindent\\{old\_setting}: $0\dts\\{max\_selector}$;\par -\noindent\\{sys\_time}, \\{sys\_day}, \\{sys\_month}, \\{sys\_year}: \\{integer}; -\quad$\{\,$date and time supplied by external system$\,\}$ - -\goodbreak -\bugonpage B122, lines 9 and 10 of \S291 (10/12/20) - -\tenpoint\noindent\quad -The enclosing \.{\char'173} and \.{\char'175} characters of a macro -definition are omitted, but an output routine -will be enclosed in braces. - -\bugonpage B143, lines 2, 3, 4 become four lines (01/15/17) - -\tenpoint\noindent -routines that should be aborted, but we can sketch the -ideas here: For a runaway definition or a runaway balanced text, -we will insert a right brace; for a -runaway preamble, we will insert a special \.{\char`\\cr} token and a right -brace; and for a runaway argument, we will set \\{long\_state} to -\\{outer\_call} and insert \.{\char`\\par}. - -\bugonpage B188, line 8 (04/02/17) - -\ninepoint\noindent -{\bf function} \\{str\_toks}$(b:\\{pool\_pointer})$: \\{pointer};\quad - $\{\,$converts \\{str\_pool}$[b\dts\\{pool\_ptr}-1]$ to a token list$\,\}$ - -\bugonpage B192, line 17 (10/22/20) - -\ninepoint\noindent\quad -{\bf label} \\{found}, \\{continue}, \\{done}, \\{done1}, \\{done2}; - -\bugonpage B192, line 3 of \S474 (10/22/20) - -\ninepoint\noindent\qquad -{\bf begin} \\{continue}: \\{get\_token};\quad$\{\,$set \\{cur\_cmd}, - \\{cur\_chr}, \\{cur\_tok}$\,\}$ - -\bugonpage B193, line 4 of \S476 (05/20/20) - -\ninepoint\noindent\quad -{\bf if} $\\{cur\_tok}<\\{left\_brace\_limit}$ {\bf then} - -\bugonpage B193, line 10 of \S476 becomes two lines (10/22/20) - -\ninepoint\noindent\qquad -\\{help2}(\.{"I\char`\'m\]going\]to\]ignore\]the\]\#\]sign\]you\]just\]used,"})\par -\noindent\qquad -(\.{"as\]well\]as\]the\]token\]that\]followed\]it."}); -\\{error}; {\bf goto} \\{continue}; - -\bugonpage B196, line 5 from the bottom (02/17/18) - -\ninepoint\noindent\qquad\quad -\\{help1}(\.{"This\]\char`\\read\]has\]unbalanced\]braces."}); -$\\{align\_state}\gets1000000$; -$\\{limit}\gets0$; -\\{error}; - -\bugonpage B199, lines 1--3 of \S494 (10/25/20) - -\tenpoint\noindent -{\bf 494.} \ \ Here is a procedure that ignores text until coming to an \.{\char`\\or}, -\.{\char`\\else}, or \.{\char`\\fi} at the current level -of $\.{\char`\\if}\ldots\.{\char`\\fi}$ -nesting. After it has acted, \\{cur\_chr} will indicate the token that -was found, but \\{cur\_tok} will not be set (because this makes the -procedure run faster). - - -\bugonpage B214, lines 2--6 of \S536 (12/11/20) - -\ninepoint\noindent\quad -{\bf begin} \\{wlog}(\\{banner}); -\\{slow\_print}(\\{format\_ident}); -\\{print}(\.{"\]\]"}); -\\{print\_int}(\\{sys\_day}); -\\{print\_char}(\.{"\]"});\par -\noindent\quad -$\\{months}\gets\.{\char`\'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC\char`\'}$;\par -\noindent\quad -{\bf for} $k\gets3\ast\\{sys\_month}-2$ {\bf to} $3\ast\\{sys\_month}$ -{\bf do} \\{wlog}(\\{months}[$k$]);\par -\noindent\quad -\\{print\_char}(\.{"\]"}); -\\{print\_int}(\\{sys\_year}); -\\{print\_char}(\.{"\]"}); -\\{print\_two}(\\{sys\_time} {\bf div} 60); -\\{print\_char}(\.{":"});\par -\noindent\quad -\\{print\_two}(\\{sys\_time} {\bf mod} 60); - -\bugonpage B214, line 2 of \S537 becomes two lines (10/29/20) - -\tenpoint\noindent -command is being processed. -Beware: For historic reasons, this code foolishly conserves a tiny bit -of string pool space; but that can confuse the interactive `\.E' option. - -\bugonpage B214, bottom line (10/29/20) - -\ninepoint\noindent -{\bf if} $\\{name}=\\{str\_ptr}-1$ {\bf then} -\ $\{\,$conserve string pool space (but see note above)$\,\}$ - -\bugonpage B219, lines 18--20 of \S545 (09/19/19) - -\tenpoint\noindent -so-called boundary character of this font; -the value of \\{next\_char} need not lie between \\{bc} and~\\{ec}. -If the very last instruction of the \\{lig\_kern} array has $\\{skip% -\_byte}=255$, -there is a special ligature/kerning program for a boundary character at the -left, beginning at location $256\ast\\{op\_byte}+$\cutpar - -\bugonpage B282, line 1 {(and change lines 20--23 accordingly)} (04/02/17) - -\tenpoint\noindent -{\bf 682.} Each portion of a formula is classified as Ord, Op, Bin, Rel, Open, -Close, Punct, or Inner, for\cutpar - -\bugonpage B299, line 4 from the bottom of \S722 (10/06/20) - -\ninepoint\noindent\qquad\quad -{\bf begin} \\{char\_warning}(\\{cur\_f}, \\{qo}(\\{cur\_c})); -$\\{math\_type}(a)\gets\\{empty}$; -$\\{cur\_i}\gets\\{null\_character}$; - -\bugonpage B318, lines 16 and 17 of \S761 become one (03/25/19) - -\ninepoint\noindent -\\{fraction\_noad}: $s\gets\\{fraction\_noad\_size}$; - -\bugonpage B333, line 5 of \S793 becomes two lines (01/10/20) - -\ninepoint\noindent\quad -$\\{cur\_loop}\gets\\{link}(\\{cur\_loop})$; -$\\{link}(p)\gets\\{new\_glue}(\\{glue\_ptr}(\\{cur\_loop}))$;\par -\noindent\quad -$\\{subtype}(\\{link}(p))\gets\\{tab\_skip\_code}+1$; - -\bugonpage B348, insert a new line after line 5 of \S826 (01/15/17) - -\ninepoint\noindent\qquad -{\bf stat if} $\\{tracing\_paragraphs}>0$ {\bf then} -\\{end\_diagnostic}(\\{true}); \ {\bf tats} - -\bugonpage B348, insert a new line to be the seventh line after the previous change (01/15/17) - -\ninepoint\noindent\qquad -{\bf stat if} $\\{tracing\_paragraphs}>0$ {\bf then} -\\{begin\_diagnostic}; \ {\bf tats} - -\bugonpage B377, line 6 (10/31/20) - -\ninepoint\noindent -\\{hn}: $0\dts64$; \ $\{\,$the number of positions occupied in \\{hc}; - not always a \\{small\_number}$\,\}$ - -\bugonpage B417, mini-index (04/02/17) - -\eightpoint\noindent -The entry `\\{height}, \S981.' here and on many later -odd-numbered pages should be `$\\{height}=\rm macro$, \S135.' - -\bugonpage B522, line 3 of \S1306. (10/25/20) - -\tenpoint\noindent -to be in the range $a\le x\le b$. -System error messages should be suppressed when undumping. - -\bugonpage B533, lines 5--8 of \S1333. (10/15/20) - -\tenpoint\noindent -loop. -(Actually there's one way to get error messages, via \\{prepare\_mag}; -but that can't cause infinite recursion.)\par -\noindent\quad -If \\{final\_cleanup} is bypassed, this program doesn't bother to -close the input files that may still be open. - -\bugonpage B533, line 12 of \S1333. (11/29/20) - -\ninepoint\noindent\quad -{\bf begin} $\langle\,$Finish the extensions{\sevenrm\kern.5em1378}$\,\rangle$; -$\\{new\_line\_char}\gets-1$; - -\bugonpage B534, line 6 of \S1335. (11/29/20) - -\ninepoint\noindent\quad -{\bf begin} $c\gets\\{cur\_chr}$; -{\bf if} $c\ne1$ {\bf then} $\\{new\_line\_char}\gets-1$; - -\bugonpage B537, line 18 of \S1338 becomes two lines (10/05/20) - -\ninepoint\noindent\quad -{\bf begin} \\{clear\_terminal};\par -\noindent\quad -{\bf loop} - -\bugonpage B537, lines 11 and 12 from the bottom of \S1338 - become three lines (04/02/17) - -\ninepoint\noindent\qquad\qquad -{\bf begin goto} \\{breakpoint};\par -\noindent\qquad\qquad\quad$\{\,$go to every declared label at least once$\,\}$\par -\noindent\qquad\quad\\{breakpoint}: $m\gets0$; - \.{@\char`\{\char`\'BREAKPOINT\char`\'@\char`\}} - -\bugonpage B600, the bottom five lines (05/14/19) - -\tenpoint\noindent -they occupy in a typical production system -(executable code size for dark blocks, global data size for light blocks). -In this way the chart indicates a total of about -$12\times22=264${\ninerm K} bytes of memory, plus -$12\times10=120${\ninerm K} for the -dynamic memory region not shown explicitly. The dynamic memory -is often considerably larger in practice, because it is desirable to -accommodate large macro packages and large pages. - - -% volume C -\hsize=29pc -\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers -\def\dashto{\mathrel{\hbox{-\thinspace-\kern-.05em}}} -\def\ddashto{\mathrel{\hbox{-\thinspace-\thinspace-\kern-.05em}}} -\def\tension{\mathop{\rm tension}} -\def\controls{\mathop{\rm controls}} -\def\and{\,{\rm and}\,} - -\bugonpage Cx, line 4 from the bottom (06/14/20) - -\count255=1 -\def\diamondleaders{\global\advance\count255 by 1 - \ifodd\count255 \kern-10pt \fi - \leaders\hbox to 20pt{\ifodd\count255 \kern13pt \else\kern3pt \fi - .\hss}} -\line{\strut - \hbox to\parindent{\bf\hbox to 1em{\hss20}\hss}% - \rm More About Macros\diamondleaders\hfil\hbox to 2em{\hss175}} - -\bugonpage C39, lines 10 and 11 become three lines (07/04/20) - -\tenpoint\noindent -that has already been designed. All you'll see is -`|(io.mf| |The| |letter| |O| |[79])|' or possibly only `|(io.mf| |[79])|', -followed by~`|*|'. Now the fun starts: You should type - -\bugonpage C68, lines 9, 28, 35, 36, 38 (11/11/17) - -\ninepoint -\halign{\indent\hbox to 160pt{\tt#\hfil}&\tt#\hfil\cr -uniformdeviate -100&-36.1628\cr -z slanted 1/6&(0.16667y+x,y)\cr -(a,b)zscaled(3,4)&(-4b+3a,3b+4a)\cr -(a,b)zscaled dir 30&(-0.5b+0.86603a,0.86603b+0.5a)\cr -(a,b)dotprod(3,4)&4b+3a\cr -} - -\bugonpage C72, lines 4--18 (07/16/20) - -\ninepoint\noindent -\beginsyntax -<numeric atom>\is<numeric variable> - \alt<numeric token primary> - \alt[(]<numeric expression>[)] - \alt[normaldeviate] - \alt[length]<string primary> - \alt[length]<path primary> - \alt[length]<pair primary> - \alt[angle]<pair primary> - \alt[xpart]<pair primary> - \alt[ypart]<pair primary> - \alt<numeric operator><numeric primary> -<numeric token primary>\is<numeric token>[/]<numeric token> - \alt<numeric token not followed by % - `{\tt/}$\thinspace\langle$numeric token$\rangle$'\thinspace> -<numeric primary>\is<numeric atom not followed by {[\char'133]<expression>[,]}> - \alt<numeric atom>[\char'133]<numeric expression>% - [,]<numeric expression>[\char'135] -\endsyntax - -\bugonpage C76, lines 8--16 from the bottom (11/11/17) - -\newdimen\longesteq -\setbox0=\hbox{\indent$z_{12}-z_{11}=z_{14}-z_{13}$\quad} -\longesteq=\wd0 -\tenpoint\noindent \hangindent\longesteq \hangafter0 -tom edge of the type. -\ (With plain \MF's {\bf beginchar} each -character has a ``bounding box'' that runs from $(0,h)$ -at the upper left and $(w,h)$ at the upper right to $(0,-d)$ and~$(w,-d)$ -at the lower left and lower right; variable $d$ represents the depth of -the type. The values of $w$, $h$, and~$d$ might change from character to -character, since the individual pieces of type need not have the same size -in a computer-produced font.) - -\bugonpage C80, line 14 (06/13/20) - -\tenpoint\indent -\\{penpos}\<suffix>(\<unknown>,\thinspace\<known>). - -\bugonpage C83, line 16 (06/13/20) - -\ninepoint\indent -|### 0.5a=-c-0.5b+1.5| - -\bugonpage C83, line 19 (06/13/20) - -\ninepoint\noindent -the only -dependent variable is now $d$, which equals $0.5c+0.75b+0.75$. \ (This is\cutpar - -\bugonpage C96, line 13 from the bottom (10/31/20) - -\tenpoint\noindent -illustrates the -use of $u\0$, $s\0$, $\\{ht}\0$, \\{logo\_pen}, \\{leftstemloc}, $o$, -\\{xgap}, and \\{barheight}: - -\bugonpage C106, lines 19--21 (07/03/20) - -\ninepoint\noindent -pixels. \ (Some typesetting -systems use both of these device-dependent amounts to alter their current -position on a page, just after typesetting each character. Other systems, -like typical |dvi| software associated with \TeX, assume that $\\{chardy}=0$ -but use \\{chardx}\cutpar - -\bugonpage C113, lines 5--11 from the bottom (07/20/20) - -\def\cycle{\hbox{\rm cycle}} -\ninepoint\noindent -\begindisplay -$s\0:=5\\{pt}\0$; \ {\bf define\_pixels}$(s)$; \ \% side of the square\cr -$z_1=(0,0)$; \ $z_2=(s,0)$; \ $z_3=(0,s)$; \ $z_4=(s,s)$;\cr -{\bf for} $k=1$ {\bf upto} 4: - $z[k+4]=z[k]+({2\over3}s,{1\over3}s)$; \ {\bf endfor}\cr -{\bf pickup pencircle} scaled $.4\\{pt}$; \ -{\bf draw} $z_5\dashto z_6\dashto z_8\dashto z_7\dashto \cycle$;\cr -{\bf pickup pencircle} scaled $1.6\\{pt}$; \ -{\bf erase draw} $z_2\dashto z_4\dashto z_3$;\cr -{\bf pickup pencircle} scaled $.4\\{pt}$; \ -{\bf draw} $z_1\dashto z_2\dashto z_4\dashto z_3\dashto \cycle$;\cr -{\bf for} $k=1$ {\bf upto} 4: - {\bf draw} $z[k]\dashto z[k+4]$; \ {\bf endfor}.\cr -\enddisplay - -\bugonpage C114, line 7 (07/20/20) - -\ninepoint\indent -{\bf for} $k=0$ {\bf upto} 4: \ $z[k]=\\{center}+(\\{radius},0)$ - rotated$(90+{360\over5}k)$; \ {\bf endfor} - -\bugonpage C128, lines 13 and 14 (06/13/20) - -\ninepoint\noindent -changed. Plain \MF\ has a {\bf tensepath} operation -that does this. For example, {\bf tensepath}~\\{unitsquare}~$=$ -$(0,0)\ddashto(1,0)\ddashto(1,1)\ddashto(0,1)\ddashto\cycle$. - -\bugonpage C136, lines 18 and 19 (07/17/20) - -\ninepoint\noindent -only -about 0.28 with respect to the initial and final directions; since \MF\ insists -that tensions be at least~0.75, this anomalous path could never have arisen -if the control\cutpar - -\bugonpage C155, line 7 (10/07/20) - -\tenpoint\indent -\<program>\is\<statement list>\<statement>\thinspace|end| - -\bugonpage C160, lines 7--9 (06/25/20) - -\ninepoint\noindent -might produce a transcript -that includes the following diagnostic information: -\begintt -rotatedaround(EXPR0)(EXPR1)-> - shifted-(EXPR0)rotated(EXPR1)shifted(EXPR0) -\endtt - -\bugonpage C165, lines 5--7 from the bottom (11/11/17) - -\ninepoint\noindent -(i.e., parameters in parentheses), -then we name zero or one or two undelimited parameters. -Then comes an `$=$'~sign, -followed by the replacement text, and {\bf enddef}. The `$=$'~sign might also -be~`$:=$'\thinspace; both mean the same thing. - -\bugonpage C171, lines 18--20 (08/16/20) - -\ninepoint\indent -Chapter~14's syntax rules for -\<path primary>, via \<pair primary>. -A pair expression is not considered to be -of type {\bf path} unless the path interpretation is the only~possibility. - -\bugonpage C176, line 7 from the bottom (07/09/20) - -\ninepoint\indent -\quad {\bf if} |@#|$(\\{x\_})\colon\ \\{tx\_} \ \hbox{\bf else}\colon\ - \\{fx\_}\ \hbox{\bf fi}$ - :=\ \\{x\_}\thinspace; {\bf endfor} - -\bugonpage C180, line 3 from the bottom (06/24/20) - -\ninepoint\indent -`$=$' or `$:=$' following {\bf let}. - -\bugonpage C187, line11 from the bottom (07/12/20) - -\ninepoint\indent\qquad -\alt|substring|\thinspace\<pair expression>\thinspace|of|\thinspace - \<string primary> - -\bugonpage C189, line 14 (06/13/20) - -\ninepoint\noindent -`|! |' and followed -by~`|.|', followed by lines of context as in \MF's normal error\cutpar - -\bugonpage C200, line 12 from the bottom (08/27/20) - -\ninepoint\indent -$y_1=y_2=\\{good.y}(.5[-d,h]+1.1\\{pt})$; - -\bugonpage C202, line 17 from the bottom (06/13/20) - -\ninepoint\noindent -command, -and it works only when the \\{penpos} angle is~0. If the \\{penpos} command -is\cutpar - -\bugonpage C210, bottom eight lines, and top ten lines of page C211 (07/16/20) - -\ninepoint\noindent -\beginsyntax -<numeric atom>\is<numeric variable>\alt<numeric argument> - \alt<numeric token primary> - \alt<internal quantity> - \alt[normaldeviate] - \alt[(]<numeric expression>[)] - \alt[begingroup]<statement list><numeric expression>[endgroup] - \alt[length]<numeric primary>\alt[length]<pair primary> - \alt[length]<path primary>\alt[length]<string primary> - \alt[ASCII]<string primary>\alt[oct]<string primary>\alt[hex]<string primary> - \alt<pair part><pair primary>\alt<transform part><transform primary> - \alt[angle]<pair primary> - \alt[turningnumber]<path primary>\alt[totalweight]<picture primary> - \alt<numeric operator><numeric primary> - \alt[directiontime]<pair expression>[of]<path primary> -<numeric token primary>\is<numeric token>[/]<numeric token> - \alt<numeric token not followed by % - `{\tt/}$\thinspace\langle$numeric token$\rangle$'\thinspace> -<numeric primary>\is<numeric atom not followed by {[\char'133]<expression>[,]}> - \alt<numeric atom>[\char'133]<numeric expression>% - [,]<numeric expression>[\char'135] -\endsyntax - -\bugonpage C214, line 6 becomes two lines (07/17/20) - -\ninepoint\noindent -\beginsyntax -<future pen primary>\is<future pen argument> - \alt[pencircle] -\endsyntax - -\bugonpage C214, line 6 from the bottom (07/12/20) - -\ninepoint\noindent -\beginsyntax - \alt[substring]<pair expression>[of]<string primary> -\endsyntax - -\bugonpage C217, lines 20--25 (10/07/20) - -\ninepoint\noindent -\beginsyntax -<program>\is<statement list><non-title statement>[end] - \alt<statement list><non-title statement>[dump] -<statement list>\is<empty>\alt<statement>[;]<statement list> -<statement>\is<empty>\alt<title> - \alt<equation>\alt<assignment>\alt<declaration> - \alt<definition>\alt<compound>\alt<command> -\endsyntax - -\bugonpage C219, line 25 (05/25/20) - -\ninepoint\noindent -to see which of its subscripts and suffixes have occurred. -For example, if you're\cutpar - -\bugonpage C224, lines 7--9 from the bottom (12/21/18) - -\tenpoint\indent -|y4r=-0.9848thinn+259.00049|\par -|x4r=-0.08682thinn+144|\par -|y4=-0.4924thinn+259.00049| - -\bugonpage C226, lines 9 and 10 (11/01/20) - -\ninepoint\noindent -This means that the preloaded base you have specified cannot be used, -because it is corrupted or was prepared for a different version of -\MF\kern-.03em. - -\bugonpage C228, line 27 (06/19/20) - -\ninepoint\indent -|l.94 endfor| - -\bugonpage C228, line 4 from the bottom (07/12/20) - -\ninepoint\noindent -might want to review now.) \ -You probably also have a |proof| mode diagram: - -\bugonpage C234, line 4 of answer 4.6 (07/20/20) - -\ninepoint\indent -{\bf for} $k=1$ {\bf upto} 6: $z[k]'=.2[z[k],z_0]$; {\bf endfor} - -\bugonpage C241, line 2 (11/11/17) - -\ninepoint\indent -|\mode=cheapo; input cheaplogo10| - -\bugonpage C242, line 11 of answer 13.7 (07/20/20) - -\ninepoint\indent -{\bf for} $k=1$ {\bf upto} 4: - $z[k+4]=z[k]+({2\over3}s,{1\over3}s)$; \ {\bf endfor} - -\bugonpage C243, lines 7 and 8 (11/08/15) - -\ninepoint\indent -\indent {\bf draw} subpath$(k,k+1)$ of \\{star}; {\bf cullit};\par\indent -\indent {\bf undraw} subpath$(k+2,k+3)$ of \\{star} {\bf withpen} - \\{eraser}; {\bf cullit}; - -\bugonpage C243, line 3 of answer 13.11 (06/17/20) - -\ninepoint\indent -{\bf def overdraw expr} $c$ = {\bf begingroup save} \\{region}; - -\bugonpage C243, lines 12--16 of answer 13.11 (05/24/20) - -\ninepoint\noindent -\begindisplay -{\bf beginchar}$(\hbox{\tt"M"},1.25\\{in}\0,.5\\{in}\0,0)$; \ - {\bf pickup pencircle} scaled .4\\{pt};\cr -$z_1=(20,-13)$; \ $z_2=(30,-6)$; \ $z_3=(20,1)$; \ $z_4=(4,-7)$;\cr -\indent $z_5=(-12,-13)$; \ $z_6=(-24,-4)$; \ $z_7=(-15,6)$;\cr -{\bf path} $M$; $M=(\\{origin}\dts - z_1\dts z_2\dts z_3\dts z_4\dts z_5\dts z_6\dts z_7\dts$\cr -\indent$\\{origin}\dts -z_7\dts -z_6\dts -z_5\dts -z_4\dts - -z_3\dts -z_2\dts -z_1\dts\cycle)$\cr -\enddisplay - -\bugonpage C246, line 2 of answer 14.13 (08/16/20) - -\ninepoint\noindent -path $z_0\dashto z_1$ is equivalent to `$z_0\dts -\controls1/3[z_0,z_1]\and2/3[z_0,z_1]\dts z_1$', and the\cutpar - -\bugonpage C247, line 1 of answer 15.5 (06/13/20) - -\ninepoint\noindent -\quad{\bf 15.5.}\enspace -{\bf beginchar}$(126,25u\0,\\{h\_height}\0+\\{border}\0,0)$; \ -|"Dangerous left bend"|; - -\bugonpage C247, replacement for answer 15.7 (07/21/20) - -\ninepoint\noindent -\quad{\bf 15.7.}\enspace -Replace lines 10 and 11 by -\begindisplay -{\bf pickup pencircle} scaled 3/4\\{pt} yscaled 1/3 rotated $-60$;\cr -{\bf draw} ($z_1\ldots p$) transformed $t$;\cr -{\bf addto} \\{currentpicture} {\bf also} \\{currentpicture}\cr -\qquad rotatedaround$\bigl((.5w,.5h)$ yscaled \\{aspect\_ratio}$,-180\bigr)$;\cr -\enddisplay - -\bugonpage C249, line 1 of answer 18.9 (08/02/20) - -\ninepoint\noindent -\quad{\bf 18.9.}\enspace -{\bf beginchar}\kern1pt(|"H"|$,13u\0,"ht"\0,0)$; \ - {\bf pickup} \\{broad\_pen}; - -\bugonpage C249, line 11 of answer 18.9 (08/02/20) - -\ninepoint\indent -{\bf filldraw} $\\{bot\_serif\_edge}_4$ - -\bugonpage C250, line 4 of answer 19.1 (04/19/20) - -\ninepoint\noindent -because it saves a wee bit of time and because -`;'\ often belongs before {\bf endfor}. - -\bugonpage C250, replacement for answer 19.3 (07/12/20) - -\ninepoint\noindent -\quad{\bf 19.3.}\enspace -Yes, if and only if $n-{1\over2}$ is an even integer. -\ (Because ambiguous values are rounded upwards.) - -\bugonpage C251, replacement for answer 22.1 (07/12/20) - -\ninepoint\noindent -\quad{\bf 22.1}\enspace -(a) If and only if $n$ is an integer between 0 and 255. -(b) If and only if $s$ is a string of length~1. - -\bugonpage C254, lines 10--13 from the bottom become five lines (06/26/20) - -\ninepoint\noindent -\begintt -? H -I found no right delimiter to match a left one. So I've -put one in, behind the scenes; this may fix the problem. -|null -? -\endtt - -\bugonpage C260, the ``line'' after line 3 (06/14/20) - -\def\bb{$\,\left\{\vcenter\bgroup\halign\bgroup\hfil##\hfil\cr} -\def\ee{\crcr\egroup\egroup\right\}\,$} -\tenpoint\noindent -\bb|font_size|\cr|font_slant|\cr|font_normal_space|\cr - |font_normal_stretch|\cr|font_normal_shrink|\cr|font_x_height|\cr - |font_quad|\cr|font_extra_space|\ee -\bb|=|\cr\noalign{\kern-2pt}|:=|\cr\noalign{\kern-2pt}\<empty>\ee -\<numeric$\0$>; \ -\bb|ligtable|\<ligs/kerns>\cr|charlist|\<codes>\cr|extensible|\<codes>\cr - |fontdimen|\<info>\cr|headerbyte|\<info>\ee;\kern-10pt - -\bugonpage C261, lines 16 and 17 from the bottom (06/14/20) - -\tenpoint\noindent -\bb|proofrule|\cr|screenrule|\ee|(|\<pair>|,|\<pair>|)|; \ -|makegrid(|\<numerics>|)(|\<numerics>|)|;\smallskip\noindent -|proofrulethickness| \<numeric$\0$>; \ |proofoffset| \<pair>. - -\bugonpage C266, lines 19 and 20 (07/04/20) - -\ninepoint\noindent -You can say either `|incr|~|x|' or `|incr|~|(x)|', within -an expression; but neither of them are valid statements by themselves. - -\bugonpage C269, line 11 (01/10/21) - -\ninepoint\indent -|\smode="specmode"; mag=|\<magnification>|; input |\<font file name> - -\bugonpage C277, lines 15--19 (03/06/17) - -\ninepoint\noindent -|def openit = openwindow currentwindow from origen % and please correct|\par -\noindent -| to (screen_rows,screen_cols) at (-50,300) enddef; % "(-50,300)" too|\par -\noindent -|def showit_ = display currentpicture inwindow currentwindow enddef;|\par -\noindent -|def showit = openit; let showit=showit_; showit enddef; % first time only|\par -\kern3pt\hrule\medskip\noindent -Plain \MF\ has several other terse commands -similar to `{\bf openit}' and `{\bf showit}': - -\bugonpage C279, line 1 (11/11/17) - -\ninepoint\noindent -| blacker:=.1; % make pens a teeny bit blacker| - -\bugonpage C289, line 20 (10/07/20) - -\ninepoint\indent -|if {{(pair x) cand x>(0,0)}}: A else: B fi.| - -\bugonpage C291, line 18 (07/24/20) - -\ninepoint\indent -| save u_; setu_ u; let switch_ = if; if false: enddef.| - -\bugonpage C292, line 10 from the bottom (10/23/20) - -\ninepoint\noindent -be known by saying `{\bf if} known $(p-q)$: $p=q$ {\bf else}:~{\bf false fi}'; -transforms could be handled\cutpar - -\bugonpage C293, lines 13 and 14 from the bottom (10/27/20) - -\ninepoint\noindent -$f(-1)$ is false! When $c\rightarrow0$, the quantity $a^3+b^3$ -approaches $-\infty$ when $c$~is positive, $+\infty$ when $c$~is -negative. An attempt to `\\{solve} $f(1,-1)$' will divide by zero and -come\cutpar - -\bugonpage C295, line 2 (07/04/20) - -\ninepoint\noindent -`interpolate $(1,1)\dts(3,2)\dts(15,4)$ of~7' the approximate value 3.37. - -\bugonpage C299, bottom four lines of code become five (08/06/20) - -\ninepoint\noindent -\begintt -primarydef t Bernshtein nn = begingroup save r; r = - begingroup for n=nn downto 2: - for k=1 upto n-1: u_[[[k]]]:=t[[[u_[[[k]]],u_[[[k+1]]] ]]]; - endfor endfor u_[[[1]]] endgroup; numeric u_[[[]]]; - r endgroup enddef; -\endtt - -\bugonpage C299, line 5 after the code becomes two lines (08/06/20) - -\ninepoint\noindent -brackets are nested inside of brackets. -However, the auxiliary variables `|u_[[[|$k$|]]]|' must not remain -independent at the end. - -\bugonpage C305, lines 14--18 (07/08/20) - -\ninepoint\noindent -|width_adj#:=0pt#; % width adjustment for certain characters|\par -\noindent -|serif_fit#:=0pt#; % extra sidebar near lowercase serifs| -\vskip-3pt\noindent\qquad\vdots\par\noindent -|low_asterisk:=false; % should the asterisk be centered at the axis?|\par -\noindent -|math_fitting:=false; % should math-mode spacing be used?| - -\bugonpage C317, line 21 becomes two lines (11/11/17) - -\ninepoint\noindent -\beginsyntax -<label>\is<code label>\alt<code>[::]\alt[\\\\:] -<code label>\is\<code>[:] -\endsyntax - -\bugonpage C318, lines 10--16 from the bottom (11/11/17) - -\ninepoint\noindent -\beginsyntax - \alt<code label><labeled code> -<extensible command>\is[extensible]<code label><four codes> -<four codes>\is<code>[,]<code>[,]<code>[,]<code> -\endsyntax -Notice that a \<code label> can appear in a {\bf ligtable}, {\bf charlist}, or -{\bf extensible} command. - These appearances are mutually exclusive: No code may be -used more than once as a label. Thus, for example, a character with a -ligature/kerning program cannot also be {\bf extensible}, nor can it be -in a {\bf charlist} (except as the final item). - -\bugonpage C333, line 29 (10/25/19) - -\ninepoint\noindent -| "if charcode>0:currentpicture:=currentpicture scaled mg;fi;"| - -\bugonpage C333, bottom two lines become one (11/11/17) - -\ninepoint\noindent -| if unknown scale: scale := max(1,round(pixels_per_inch/300)); fi| - -\bugonpage C339, line 3 (05/21/20) - -\ninepoint\noindent -ing `\char'31', `\char'32', -`\char'33', and~`\char'34') and the uppercase letters (including -`\char'35', `\char'36', and~`\char'37') are\cutpar - -\bugonpage C341, line 14 from the bottom (11/11/17) - -\ninepoint\noindent -prints the |\table| and the |\text|; ^|\bigtest| gives -you the works, plus a mysterious word\cutpar - -\bugonpage C345 and following, selected amendments to the index (01/20/21) - -\eightpoint -*|,| (comma), 57, 72, 73, 129, 155, 165--167, 171, 211--213, 218, 317, 318.\par -`A', 10--11, 163, 164, 248, 302--303.\par -\<addto command>, 118, $\underline{220}$.\par -bell-shaped distribution, $\underline{183}$, 251.\par -|black|, 270, 332--333.\par -\<code> and \<code label>, $\underline{317}$.\par -concatenation, of paths, {\it70}--{\it71}, {\it123}, 127--129, $\underline{130}$, 137, {\it245}, {\it266}.\par -\quad of strings, {\it69}, 73, 84--85, $\underline{187}$, {\it278}, {\it286}, {\it312}.\par -*|directiontime|, {\it135}, $\underline{\it136}$, 211, 245, 265, {\it298}.\par -distance, 76, 84, {\sl see also\/} |length|.\par -|dotprod|, {\it68}--{\it69}, 178, {\it238}, 265.\par -efficiency, 39, 99, 116, 141, 144, 147, 228, 230, 234, 244, 264, 265, 277, 291, 297, 298.\par -empty option in {\bf for\/} list, 171, $\underline{172}$, {\it299}.\par -forbidden tokens, 173, $\underline{218}$--$\underline{219}$, 286.\par -*|from|, $\underline{191}$, 220, {\it252}, {\it277}, {\it312}.\par -Giotto di Bondone, 139.\par -independent variables, $\underline{81}$--$\underline{83}$, 88, 224, 226, 299.\par -|\init|, $\underline{337}$, 342.\par -internal quantities, 54--55, 88, 218, 262, 265--266.\par -*|inwindow|, $\underline{191}$, 220, {\it277}.\par -\<keep or drop>, $\underline{118}$, 220.\par -|labels|, {\it107}, $\underline{274}$, 327--328.\par -*|length|, {\it66}, {\it69}, 72, 210, 238.\par -*|ligtable|, {\it97}, {\it305}--{\it306}, $\underline{316}$--$\underline{317}$.\par -loops, 169, 171--173, 179, 226--227, 259, 290--291, 299.\par -`N', 184--185, 302--303.\par -\<numeric token primary>, 72, $\underline{211}$.\par -|o|, {\it23}, {\it34}, $\underline{93}$, 197, 200, 204, 240, 302.\par -`O', 32--37, 161, 199, 302--303.\par -overshoot, 23, 34, 93, 197, 200, 204, 302.\par -|penpos|, {\it26}--{\it29}, 37, 80, {\it103}, {\it162}, $\underline{273}$, 310.\par -pens, 21--29, 147--152, 297--298.\par -*|rotated|, {\it21}--{\it22}, {\it25}, 27, 44, {\it68}, 73, {\it107}, {\it114}, {\it117}, $\underline{141}$, 213, {\it238}.\par -|rule|, 274, 328.\par -*|scaled|, {\it21}--{\it23}, {\it68}, 73, $\underline{141}$, 213, 244, 291.\par -*|showstopping|, 211, 219, {\it227}, 230, {\it262}.\par -string expressions, {\it69}, 187--189, 258, 286.\par -\<suffix list>, $\underline{171}$, 236.\par -sum, of vectors, 9, {\it68}.\par -|test.mf|, 311--313.\par -\TeX, 1, 34, 40, 91, 96, 98, 101--103, 315, 336--343, 361.\par -text arguments, 219, 288--291, 299.\par -|.tfm|, 39, 315--321, 333, 335.\par -*|to|, $\underline{191}$, 220, {\it252}, {\it277}, {\it312}.\par -undelimited suffix parameters, $\underline{167}$, 176, 266, 270.\par -|undraw|, 113, 118, 120, {\it242}, $\underline{271}$.\par -|unitsquare|, {\it116}, 123--124, 128, 132, 136, $\underline{263}$.\par -*|unknown|, $\underline{170}$, 210.\par -unknown quantities, nonnumeric, 84--85, 143.\par -values, disappearance of, 56, 83, 88, 156--157, 177--178, 218, 239, 299.\par -\<vardef heading>, 165, $\underline{178}$.\par -*|xscaled|, {\it21}--{\it22}, {\it68}, 73, $\underline{141}$, 213, 244, 291.\par - - - -% Volume D -\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers -\def\to{\mathrel{.\,.}} % double dot, used only in math mode - -\bugonpage Dv, line 16 (01/16/21) - -\tenpoint\noindent -\kern12.5mm I believe that the final bug in \MF\ was discovered on January\cutpar - -\bugonpage Dv, bottom two lines (01/16/21) - -\eightpoint\noindent -corporates all of those changes. -I~now believe that the final bug was discovered on 03 July 2020 -and removed in version 2.71828182. % on 16 January 2021 -The finder's fee has converged to \$327.68. - -\hsize=35pc - -\bugonpage D2, last line of \S2 (01/15/21) - -\ninepoint\noindent -$$\hbox{{\bf define} $\\{banner}\equiv\.{\char`\'This\]is\]METAFONT,\]Version\]2.71828182\char`\'}$\quad -$\{\,$printed when \MF\ starts$\,\}$}$$ - -\bugonpage D14, line 1 of \S30 (05/05/14) - -\tenpoint\noindent -{\bf 20.} \quad The \\{input\_ln} function brings the next line of input from the specified -file into available\cutpar - -\bugonpage D21, line 8 of \S47 (10/11/20) - -\ninepoint\noindent\quad -$g$: \\{str\_number};\quad$\{\,$the string just created$\,\}$ - -\bugonpage D27, lines 3 and 4 of \S61 (04/02/17) - -\tenpoint\noindent -is not serious since we assume that this -part of the program is system dependent. - -\bugonpage D28, line 7 (04/02/17) - -\ninepoint\noindent\quad -{\bf var} $k$: $0\dts23$;\quad$\{\,$index to current digit; we assume - that $\vert n\vert<10^{23}\,\}$ - -\bugonpage D32, line 2 of \S78 becomes two lines (06/27/20) - -\ninepoint\noindent\quad -{\bf loop begin} \\{continue}: {\bf if} $\\{interaction}\ne\\{error\_stop\_mode}$ - {\bf then return};\par -\noindent\qquad -\\{clear\_for\_error\_prompt}; \ \\{prompt\_input}(\.{"?\]"}); - -\bugonpage D32, line 11 of \S79 (07/03/20) - -\ninepoint\noindent\quad -\.{"E"}: {\bf if} $\\{file\_ptr}>0$ {\bf then if} - $\\{input\_stack}[\\{file\_ptr}].\\{name\_field}\ge256$ {\bf then} - -\bugonpage D33, line 5 of \S80 (07/03/20) - -\ninepoint\noindent\quad -{\bf if} $\\{file\_ptr}>0$ {\bf then}\par -\noindent\qquad -{\bf if} $\\{input\_stack}[\\{file\_ptr}].\\{name\_field}\ge256$ {\bf then} -\\{print}(\.{"E\]to\]edit\]your\]file."} - -\bugonpage D37, line 9 of \S93 (08/07/20) - -\ninepoint\noindent\qquad -(\.{"Try\]to\]insert\]an\]instruction\]for\]me\](e.g.,\]% - \char`\`I\]show\]x;\char`\'),"}) - -\bugonpage D82, line 2 from the bottom (09/19/19) - -\ninepoint\noindent\quad -{\bf define} $\\{boundary\_char}=41$\quad$\{\,$the boundary character for ligatures$\,\}$ - -\bugonpage D85, lines 3 and 4 of \S194 {(and \S194 actually moves to page D86)} (12/11/20) - -\tenpoint\noindent -information, something special -is needed. The program here simply assumes that suitable values appear in -the global variables \\{sys\_time}, \\{sys\_day}, \\{sys\_month}, and -\\{sys\_year} (which are initialized to noon on 4 July 1776, -in case the implementor is careless). - -\bugonpage D85, the final six lines of \S194 {(and \S194 actually moves to page D86)} (12/11/20) - -\ninepoint\noindent -{\bf procedure} \\{fix\_date\_and\_time};\par -\noindent\quad{\bf begin} -$\\{sys\_time}\gets12\ast60$; \ -$\\{sys\_day}\gets4$; \ -$\\{sys\_month}\gets7$; \ -$\\{sys\_year}\gets1776$;\quad -$\{\,$self-evident truths$\,\}$\par -\noindent\quad$\\{internal}[\\{time}]\gets\\{sys\_time}\ast\\{unity}$;\quad - $\{\,$minutes since midnight$\,\}$\par -\noindent\quad$\\{internal}[\\{day}]\gets\\{sys\_day}\ast\\{unity}$;\quad$\{\,$day of the month$\,\}$\par -\noindent\quad$\\{internal}[\\{month}]\gets\\{sys\_month}\ast\\{unity}$;\quad$\{\,$month of the year$\,\}$\par -\noindent\quad$\\{internal}[\\{year}]\gets\\{sys\_year}\ast\\{unity}$;\quad$\{\,$Anno Domini$\,\}$\par -\noindent\quad{\bf end}; - -\bugonpage D86, replacement for \S196 (12/11/20) - -\tenpoint\noindent -{\bf 196.}\quad Of course we had better declare a few more global variables, -if the previous routines are going to work. -\smallskip -\ninepoint\noindent -$\langle\,$Global variables {\sevenrm\kern.5em13}$\,\rangle+\equiv$\par -\noindent\\{old\_setting}: $0\dts\\{max\_selector}$;\par -\noindent\\{sys\_time}, \\{sys\_day}, \\{sys\_month}, \\{sys\_year}: \\{integer}; -\quad$\{\,$date and time supplied by external system$\,\}$ - -\bugonpage D97, line 2 of \S221 (05/26/17) - -\tenpoint\noindent -the definition of attribute nodes) that -it is convenient to let $\\{info}(p)=0$ stand for `\.{[]}'. - -\goodbreak -\bugonpage D148, line 7 (06/12/18) - -\tenpoint\noindent -but the $\log n$ factor is buried in our -implicit restriction on the maximum raster size.) The\cutpar - -\bugonpage D237, line 5 of \S513 (05/26/17) - -\ninepoint\noindent\quad -{\bf for} $n\gets0$ {\bf to} $\\{n1}-\\{n0}-1$ {\bf do} $\\{env\_move}[n]\gets\\{mm0}$; - -\bugonpage D250, line 2 of \S534 (05/26/17) - -\tenpoint\noindent -direction $\bigl(\\{right\_u}(p),\\{left\_v}(q)\bigr)$; -and there's a line of length $\ge\\{delta}$ from vertex~$q$ to vertex~$r$,\cutpar - -\bugonpage D296, line 11 (06/23/20) - -\tenpoint\noindent -\\{name} points to the \\{eqtb} address of the macro -being expanded, if the current token list\cutpar - -\bugonpage D324, line 13 of \S713 (12/20/20) - -\ninepoint\noindent\qquad\quad -\\{help2}(\.{"After\]\char`\`exitif\]<boolean\]expr>\char`\'\]I\]expect\]to\]see\]a\]% -semicolon."}) - -\bugonpage D326, line 5 from the bottom (06/23/20) - -\ninepoint\noindent\qquad\qquad -$\{\,$invokes a user-defined sequence of commands$\,\}$ - -\bugonpage D334, lines 1 and 2 of \S742 (10/25/20) - -\tenpoint\noindent -{\bf 742.} \ Here is a procedure that ignores text until coming to an {\bf elseif}, -{\bf else}, or {\bf fi} at the current level of {\bf if}$\,\ldots\,${\bf fi} -nesting. After it has acted, \\{cur\_mod} will indicate the token that -was found. - -\bugonpage D339, line 4 of \S757 (06/16/20) - -\tenpoint\noindent\quad -(A user who tries some shenanigan like `{\bf for} $\ldots$ {\bf let} {\bf endfor}' -will be foiled by the \\{get\_symbol}\cutpar - -\bugonpage D351, lines 2--7 of \S536 become five lines (12/11/20) - -\ninepoint\noindent\quad -{\bf begin} \\{wlog}(\\{banner}); -\\{slow\_print}(\\{format\_ident}); -\\{print}(\.{"\]\]"}); -\\{print\_int}(\\{sys\_day}); -\\{print\_char}(\.{"\]"});\par -\noindent\quad -$\\{months}\gets\.{\char`\'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC\char`\'}$;\par -\noindent\quad -{\bf for} $k\gets3\ast\\{sys\_month}-2$ {\bf to} $3\ast\\{sys\_month}$ -{\bf do} \\{wlog}(\\{months}[$k$]);\par -\noindent\quad -\\{print\_char}(\.{"\]"}); -\\{print\_int}(\\{sys\_year}); -\\{print\_char}(\.{"\]"}); -\\{print\_two}(\\{sys\_time} {\bf div} 60); -\\{print\_char}(\.{":"});\par -\noindent\quad -\\{print\_two}(\\{sys\_time} {\bf mod} 60); - -\bugonpage D352, line 2 of \S793 becomes two lines (10/29/20) - -\tenpoint\noindent -command is being processed. -Beware: For historic reasons, this code foolishly conserves a tiny bit -of string pool space; but that can confuse the interactive `\.E' option. - -\bugonpage D352, line 5 from the bottom (10/29/20) - -\ninepoint\noindent -{\bf if} $\\{name}=\\{str\_ptr}-1$ {\bf then} -\ $\{\,$conserve string pool space (but see note above)$\,\}$ - -\bugonpage D354, line 2 from the bottom (07/29/20) - -\tenpoint\noindent -$\\{cur\_type}=\\{path\_type}$ means that \\{cur\_exp} points to the first -node of -a path; nobody else points\cutpar - -\bugonpage D469, lines 18--20 of \S1093 (09/19/19) - -\tenpoint\noindent -so-called boundary character of this font; -the value of \\{next\_char} need not lie between \\{bc} and~\\{ec}. -If the very last instruction of the \\{lig\_kern} array has $\\{skip% -\_byte}=255$, -there is a special ligature/kerning program for a boundary character at the -left, beginning at location $256\ast\\{op\_byte}+$\cutpar - -\bugonpage D469, line 30 of \S1093 (01/15/21) - -\tenpoint\noindent -tional halt; no ligature or kerning command is performed. - -\bugonpage D471, lines 20 and 21 (08/07/20) - -\ninepoint\noindent -\\{param}: {\bf array} $[1\dts\\{max\_font\_dimen}]$ {\bf of} -\\{scaled};\quad$\{\,${\bf fontdimen} parameters$\,\}$\par\noindent -\\{np}: $0\dts\\{max\_font\_dimen}$;\quad$\{\,$the largest {\bf fontdimen} parameter -specified so far$\,\}$ - -\bugonpage D474, line 2 from the bottom (08/07/20) - -\ninepoint\noindent\quad\qquad -\\{help1}(\.{"A\]colon\]should\]follow\]a\]headerbyte\]or\]fontdimen\]location."}); -\\{back\_error}; - -\bugonpage D508, line 3 of \S1189. (10/05/20) - -\tenpoint\noindent -to be in the range $a\le x\le b$. -System error messages should be suppressed when undumping. - -\bugonpage D516, line 6 (10/15/20) - -\tenpoint\noindent\quad -If \\{final\_cleanup} is bypassed, this program doesn't bother to -close the input files that may still be open. - -\bugonpage D519, line 17 (01/15/21) - -\ninepoint\noindent\quad -\\{fix\_date\_and\_time}; -$\\{init\_randoms}(\\{sys\_time}+\\{sys\_day}*\\{unity})$; - -\bugonpage D520, line 18 of \S1212 becomes two lines (10/05/20) - -\ninepoint\noindent\quad -{\bf begin} \\{clear\_terminal};\par -\noindent\quad -{\bf loop} - -\bugonpage D520, lines 11 and 12 from the bottom of \S1212 - become three lines (04/02/17) - -\ninepoint\noindent\qquad\qquad -{\bf begin goto} \\{breakpoint};\par -\noindent\qquad\qquad\quad$\{\,$go to every declared label at least once$\,\}$\par -\noindent\qquad\quad\\{breakpoint}: $m\gets0$; - \.{@\char`\{\char`\'BREAKPOINT\char`\'@\char`\}} - -\bugonpage D566, the bottom five lines (05/14/19) - -\tenpoint\noindent -they occupy in a typical production system -(executable code size for dark blocks, global data size for light blocks). -In this way the chart indicates a total of about -$8\times22=176${\ninerm K} bytes of memory, plus -$8\times15=120${\ninerm K} for the -dynamic memory region not shown explicitly. The dynamic memory -is often considerably larger in practice, because it is desirable to -accommodate large macro packages and large pictures. - - -% volume E -\hsize=29pc - -\newbox\shorthyf \setbox\shorthyf=\hbox{-\kern-.05em} -\mathchardef\period=`\. -{\catcode`\-=\active \global\def-{\copy\shorthyf\mkern3.9mu} - \catcode`\.=\active \global\def.{\period\mkern3mu}} -\def\8#1{\mathrel{\mathcode`\.="8000 \mathcode`\-="8000 - #1\unkern}} % `..' and `--' - - -\bye |