summaryrefslogtreecommitdiff
path: root/info/digests/tex-implementors/message.05
diff options
context:
space:
mode:
Diffstat (limited to 'info/digests/tex-implementors/message.05')
-rw-r--r--info/digests/tex-implementors/message.05441
1 files changed, 441 insertions, 0 deletions
diff --git a/info/digests/tex-implementors/message.05 b/info/digests/tex-implementors/message.05
new file mode 100644
index 0000000000..cd0acb0f40
--- /dev/null
+++ b/info/digests/tex-implementors/message.05
@@ -0,0 +1,441 @@
+
+Subject: correction to TeX 2.92; Metafont 1.4
+
+Date: 30 May 88 Message No: 005
+
+To: TeX implementors and distributors
+
+From: Barbara Beeton
+
+Subject: small error in TeX 2.92; Metafont 1.4
+
+
+An error was present in the listing of differences between TeX.WEB 2.92
+and 2.9 as reported in message 4. The same error was present in the
+TeX.WEB file at SCORE, but has now been fixed.
+
+If you are working from the difference list provided in message 4, the
+following lines should be ignored:
+
+**** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 31-621 (464580)
+@d check_byte_range(#)==begin if (#<bc)or<(#>ec) then abort@+end
+@d current_character_being_worked_on==k+bc-fmem_ptr
+**** FILE TX:<TEX82.NEW>TEX-2-9.WEB.1, 31-621 (464024)
+@d check_byte_range(#)==begin if (#<bc)or(#>ec) then abort@+end
+@d current_character_being_worked_on==k+bc-fmem_ptr
+***************
+
+Thanks to Nelson Beebe and Ken Yap for spotting this.
+
+
+The rest of this message will consist of the additions to MF84.BUG, a
+comparison of the MF.WEB files for version 1.4 and 1.3, and changes to
+the errata list since 23 Dec 87.
+
+########################################################################
+
+Additions to MF84.BUG
+
+540. Typo suppresses an error detection (Chris Thompson, 2May88)
+@x module 963
+ if txy mod unity=0 then if tyy mod unity=0 then
+@y
+ if txx mod unity=0 then if tyy mod unity=0 then
+@z
+
+541. get_x_token can lose a scanned declared variable (Chris Thompson, 4May88)
+@x module 1011
+if equiv(x)=null then new_root(x);
+@y
+@z
+@x module 1011
+done:scan_declared_variable:=h;
+@y
+done: if eq_type(x)<>tag_token then clear_symbol(x,false);
+if equiv(x)=null then new_root(x);
+scan_declared_variable:=h;
+@z
+
+542. (I sincerely hope that there won't be any more)
+
+
+########################################################################
+
+Differences between MF.WEB for 1.4 and for 1.3
+
+;COMPARISON OF PS:<1SCRATCH>MF.WEB.1 AND PS:<TEX.MF>MF.WEB.1
+;OPTIONS ARE /E /3
+
+**** FILE PS:<1SCRATCH>MF.WEB.1, 1-15 (870)
+% Version 1.4 corrected scan_declared_variable timing (May 1988).
+% A few "harmless" optimizations have been made since then.
+
+% A reward of $20.48 will be paid to the first finder of any remaining bug.
+% (This amount will double again in 1989.)
+
+% Although considerable effort has been expended to make the METAFONT program
+**** FILE PS:<TEX.MF>MF.WEB.1, 1-15 (870)
+% A few "harmless" optimizations have been made since then.
+
+% A reward of $10.24 will be paid to the first finder of any remaining bug.
+% (This amount will double again in 1988.)
+
+% Although considerable effort has been expended to make the METAFONT program
+***************
+
+**** FILE PS:<1SCRATCH>MF.WEB.1, 2-81 (7574)
+@d banner=='This is METAFONT, Version 1.4' {printed when \MF\ starts}
+
+@ Different \PASCAL s have slightly different conventions, and the present
+**** FILE PS:<TEX.MF>MF.WEB.1, 1-146 (7508)
+@d banner=='This is METAFONT, Version 1.3' {printed when \MF\ starts}
+
+@ Different \PASCAL s have slightly different conventions, and the present
+***************
+
+**** FILE PS:<1SCRATCH>MF.WEB.1, 43-1162 (768090)
+ if txx mod unity=0 then if tyy mod unity=0 then
+ @<Scale the edges, shift them, and |return|@>;
+**** FILE PS:<TEX.MF>MF.WEB.1, 1-18695 (768065)
+ if txy mod unity=0 then if tyy mod unity=0 then
+ @<Scale the edges, shift them, and |return|@>;
+***************
+
+**** FILE PS:<1SCRATCH>MF.WEB.1, 44-399 (798211)
+h:=get_avail; info(h):=x; t:=h;@/
+**** FILE PS:<TEX.MF>MF.WEB.1, 1-19495 (798187)
+if equiv(x)=null then new_root(x);
+h:=get_avail; info(h):=x; t:=h;@/
+***************
+
+**** FILE PS:<1SCRATCH>MF.WEB.1, 44-407 (798526)
+done: if eq_type(x)<>tag_token then clear_symbol(x,false);
+if equiv(x)=null then new_root(x);
+scan_declared_variable:=h;
+end;
+**** FILE PS:<TEX.MF>MF.WEB.1, 1-19504 (798538)
+done:scan_declared_variable:=h;
+end;
+***************
+
+
+########################################################################
+
+Extracts from ERRATA.TeX (differences as compared with previous version)
+
+;COMPARISON OF TX:<TEX82.NEW>ERRATA.TEX.2 AND TX:<TEX82.DOC>ERRATA.TEX.3
+;OPTIONS ARE /3
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 2-3 (1510)
+\bugonpage A159, line 22 (2/15/88)
+
+\ninepoint\noindent
+`|\nolimits|' if the normal |\displaylimits|
+convention has been overridden; a Rad\cutpar
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 2-2 (1508)
+***************
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 2-15 (1845)
+\bugonpage A326, line 12 (12/12/87)
+
+\ninepoint\noindent
+its natural width. The |\hbox| version also invokes |\everymath|.
+
+\bugonpage A359, lines 35--38 (5/24/88)
+
+\ninepoint\noindent
+|\def\updownarrow{\delimiter"326C33F } \def\arrowvert{\delimiter"033C000 }|%
+ \par\noindent
+|\def\Updownarrow{\delimiter"326D377 } \def\Arrowvert{\delimiter"033D000 } |%
+ \par\noindent
+|\def\vert{\delimiter"026A30C } \def\Vert{\delimiter"026B30D } |%
+ \par\noindent
+|\def\backslash{\delimiter"026E30F } \def\bracevert{\delimiter"033E000 }|
+
+\bugonpage A364, line 35 (5/24/88)
+
+\ninepoint\noindent
+|\def\fmtname{plain}\def\fmtversion{2.92} % identifies the current format|
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 2-8 (1690)
+\bugonpage A326, line 12 (9/20/87)
+
+\ninepoint\noindent
+its natural width. The |\hbox| version also invokes |\everymath|.
+
+***************
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 2-59 (3566)
+\bugonpage A458, left column, line 19 (2/15/88)
+
+\eightpoint\indent
+|\|\| ( $\Vert$ ), {\it146--147}, {\it171}, $\underline{361}$, 435, 438.
+
+\bugonpage A462, left column, line 7 (10/9/87)
+\eightpoint\indent\qquad 152, 178, $\underline{360}$.
+
+\bugonpage A463, left column (4/17/88)
+
+\eightpoint\indent
+\hbox to0pt{\hss\lower1pt\hbox{*}}|\day|, 273, 349, {\it406}.
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 2-36 (2846)
+\bugonpage A462, left column, line 7 (10/9/87)
+
+\eightpoint\indent\qquad 152, 178, $\underline{360}$.
+
+***************
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 2-81 (4195)
+\bugonpage A480, right column (2/15/88)
+
+\eightpoint\indent|\vdots| ( $\vdots$ ), {\it177}, $\underline{359}$.
+
+\bugonpage A481, right column (7/3/87)
+
+\eightpoint|\z@|, $\underline{347}$, 348.\par
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 2-48 (3201)
+\bugonpage A481, right column (7/3/87)
+
+|\z@|, $\underline{347}$, 348.\par
+
+***************
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 3-6 (4592)
+\bugonpage B2, line 32 (4/30/88)
+
+\ninepoint\noindent\hskip10pt
+{\bf define} $\\{banner}\equiv\hbox{\tt\char'23}$%
+{\tt This\]is\]TeX,\]Version\]2.92\char'23}\quad
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 3-6 (3471)
+\bugonpage B2, line 32 (12/23/87)
+
+\ninepoint\noindent\hskip10pt
+{\bf define} $\\{banner}\equiv\hbox{\tt\char'23}$%
+{\tt This\]is\]TeX,\]Version\]2.9\char'23}\quad
+
+***************
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 3-19 (4943)
+\bugonpage B108, new line after line 8 (5/24/88)
+
+\ninepoint\noindent\kern20pt
+$d$: \\{integer};\quad
+$\{\,$number of characters in incomplete current string$\,\}$
+
+\bugonage B108, lines 31--33 (5/24/88)
+
+\ninepoint\noindent\kern10pt
+$\\{str\_room}(l)$; $d\gets\\{cur\_length};\par\noindent\kern10pt
+{\bf while} $\\{pool\_ptr}>\\{str\_start}[\\{str\_ptr}]$ {\bf do}
+ \par\noindent\kern20pt
+{\bf begin} \\{decr}(\\{pool\_ptr});
+ $\\{str\_pool}[\\{pool\_ptr}+l]\gets\\{str\_pool}[\\{pool\_ptr}]$;
+ \par\noindent\kern20pt
+{\bf end};\quad$\{\,$move current string up to make room for another$\,\}$
+\par\noindent\kern10pt
+{\bf for} $k\gets j$ {\bf to} $j+l-1$ {\bf do} $\\{append\_char}(\\{buffer}[k])$;
+\par\noindent\kern10pt
+$\\{text}(p)\gets\\{make\_string}$; $\\{pool\_ptr}\gets\\{pool\_ptr}+d$;
+
+\bugonpage B115, line 12 (4/28/88)
+
+\ninepoint\noindent\hskip10pt
+$\\{group\_code}=0\to\\{max\_group\_code}$;\quad
+ $\{\,$\\{save\_level} for a level boundary$\,\}$
+
+\bugonpage B141, line 19 (4/28/88)
+
+\ninepoint\noindent
+\\{par\_token}: \\{halfword};\quad
+ $\{\,$token representing `|\par|'$\,\}$
+
+\bugonpage B150, line 24 (4/28/88)
+
+\tenpoint\noindent{\bf 358.\quad}%
+The present point in the program is reached only when the \\{expand}
+routine has inserted\cutpar
+
+\bugonpage B151, mini-index (4/28/88)
+
+\eightpoint\noindent
+Delete the entry for `\\{no\_expand}'; replace it by:
+\indent\\{expand}: {\bf procedure}, \S366.
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 3-19 (3822)
+***************
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 3-91 (7266)
+\indent\\{eq\_define}: {\bf procedure}, \S227.\par
+$\\{relax}=0$, \S207.\par
+
+\bugonpage B162, lines 12--14 (4/30/88)
+
+\ninepoint\noindent\hskip10pt
+{\bf repeat} $\\{link}(\\{temp\_head})\gets\\{null}$;\par\noindent\hskip20pt
+{\bf if\/} $(\\{info}(r)>\\{match\_token}+127)\lor
+ (\\{info}(r)<\\{match\_token})$ {\bf then}
+ $s\gets\\{null}$\par\noindent\hskip20pt
+{\bf else begin} $\\{match\_chr}\gets\\{info}(r)-\\{match\_token}$; \
+ $s\gets\\{link}(r)$; \ $r\gets s$; \ $p\gets\\{temp\_head}$; \
+ $m\gets 0$;
+
+\bugonpage B181, line 31 (4/28/88)
+
+\ninepoint\noindent
+[Change `$x$ units per sp' to `$x$ sp per unit'! This change also
+should be made on line~1 of page B183 and line $-8$ of page B590.]
+
+\bugonpage B224, second-last line (4/28/87)
+
+\ninepoint\noindent
+\\{done}: {\bf if} \\{file\_opened} {\bf then} \\{b\_close}(\\{tfm\_file});\par
+\noindent\hskip10pt $\\{read\_font\_info}\gets g$;
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 3-44 (4674)
+\\{eq\_define}: {\bf procedure}, \S227.\par
+$\\{relax}=0$, \S207.\par
+***************
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 3-204 (11136)
+\bugonpage B285, line 21 (4/28/88)
+
+\noindent\tenpoint
+is subsidiary to the \\{nucleus} field of some noad; the dot is replaced by
+`|_|' or `|^|' or `|/|' or `|\|' if $p$ is\cutpar
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 3-134 (7695)
+***************
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 3-232 (12036)
+\bugonpage B387, line 2 (5/24/88)
+
+\tenpoint\noindent
+is quite short. In the following code we set \\{hc}$[\\{hn}+2]$ to the
+impossible value 128, in order to\cutpar
+
+\bugonpage B387, line 8 (5/24/88)
+
+\ninepoint\noindent\kern10pt
+$\\{hc}[0]\gets127$; $\\{hc}[\\{hn}+1]\gets127$;
+ $\\{hc}[\\{hn}+2]\gets128$;\quad$\{\,$insert delimiters$\,\}$
+
+\bugonpage B390, lines 17--18 (5/24/88)
+
+\ninepoint\noindent\kern10pt
+$\langle\,$Enter as many hyphenation exceptions as are listed, until coming
+ to a right brace; then {\bf return\eightrm\kern.5em961}$\,\rangle$;
+\smallskip[The same change applies to lines 20--21, and
+to page~582.]
+
+\bugonpage B396, new line after line 34 (5/24/88)
+
+\ninepoint\noindent\kern10pt
+$\\{trie\_link}(\\{trie\_size})\gets0$;
+$\\{trie\_back}(0)\gets\\{trie\_size}$;\quad
+$\{\,$wrap around$\,\}$
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 3-156 (8407)
+***************
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 3-266 (13062)
+\bugonpage B397, lines 15--17 (5/24/88)
+
+\ninepoint\noindent\kern10pt
+{\bf begin} $c\gets\\{trie\_c}[p]$;\par\noindent\kern10pt
+{\bf if} $c<\\{trie\_min}$ {\bf then} $\\{trie\_min}\gets c$;\par\noindent\kern10pt
+{\bf if} $\\{trie\_min}=0$ {\bf then} $z\gets\\{trie\_link}(\\{trie\_size})$\par
+\noindent\kern10pt
+{\bf else} $z\gets\\{trie\_link}(\\{trie\_min}-1)$;\quad
+$\{\,$get the first conceivably good hole$\,\}$
+
+\bugonpage B400, lines 3--4 (5/24/88)
+
+\ninepoint\noindent
+$\langle\,$Enter all of the patterns into a linked trie, until coming
+ to a right brace{\eightrm\kern.5em961}$\,\rangle\equiv$
+\smallskip[The same change applies to page B399, lines 29--30, and
+to page~582.]
+
+\bugonpage B402, line 10 (5/24/88)
+
+\ninepoint\noindent\kern10pt
+$r\gets\\{trie\_size}$;\quad
+$\{\,$finally, we will zero out the holes$\,\}$
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 3-162 (8584)
+***************
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 3-310 (14406)
+\bugonpage B552, left column (4/28/88)
+
+\eightpoint[Insert `358' into \\{expand}.]
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 3-181 (9073)
+***************
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 3-320 (14633)
+\eightpoint[Delete the entry for \\{low\_mem\_max}.]
+
+\bugonpage B562, left column (4/28/88)
+
+\eightpoint[Remove `358' from \\{no\_expand}.]
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 3-187 (9212)
+[Delete the entry for \\{low\_mem\_max}.]
+
+***************
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 3-335 (15000)
+\bugonpage B568, left column (4/28/88)
+
+\eightpoint[Move `269' from \\{save\_index} to \\{save\_level}.]
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 4-1 (9477)
+***************
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 4-15 (15448)
+\bugonpage C164, line 10 (4/27/88)
+
+\ninepoint\indent
+\quad $y_{\$c}=\\{top}\,y_{\$l}$; \ $y_{\$d}=y_{\$r}$; \
+ $x_{\$c}=x_{\$l}-\\{left\_jut}$; \ $x_{\$d}=x_{\$r}+\\{right\_jut}$;
+
+\bugonpage C175, line 23 (1/11/88)
+
+\ninepoint\noindent
+expand into a sequence of tokens. \
+(The language {\eightrm{SIMULA67}} demonstrated that it is\cutpar
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 4-15 (9816)
+***************
+
+**** FILE TX:<TEX82.NEW>ERRATA.TEX.2, 4-33 (15982)
+\bugonpage C337, line 11 (4/28/88)
+
+\ninepoint
+An online ``menu'' of the available test routines will be typed at your
+terminal\cutpar
+
+\bugonpage C356, left column (1/11/88)
+
+\eightpoint
+SIMULA67 language, 175.
+
+\bugonpage C358, right column (2/15/88)
+
+\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}%
+|yoffset|, 212, $\underline{220}$, 315, 324.
+
+**** FILE TX:<TEX82.DOC>ERRATA.TEX.3, 5-1 (9998)
+***************
+
+
+########################################################################
+
+[ end of message 005 ]
+-------
+