Date: 9 Jul 88 Message No: 006 To: TeX implementors and distributors From: Barbara Beeton Subject: TeX 2.93 and MF 1.5 I received the following message from Don Knuth on 20 Jun 88: Chris Thompson did it again (in TeXHax 47.88). The bug he found occurs just before TeX runs out of memory, on machines where mem_min has been made negative. (The bug does not occur on the vast majority of implementations, where mem_min=0.) It's the same bug in both TeX and MF, and it's easily fixed. I put the corrections into ERRATA.TEX and into the sources at SAIL. This message will contain the additions to TeX82.BUG and MF84.BUG, comparisons between the TeX.WEB files for versions 2.92 and 2.93, and MF.WEB for versions 1.4 and 1.5, and additions to ERRATA.TeX. In response to a suggestion from Craig Platt, I have reversed the order of the files being compared. Now they will be in logical order -- older first, then newer. All relevant files, including TRIP.* and TRAP.* are now up to date at SCORE. Chris Thompson (the same one who's causing all the changes) requested a clarification of when the files are converted from SAIL code to ASCII. The conversion is done at the same time they are moved from SAIL to SCORE, so that by the time one of these messages comes around, everything is (should be -- mistakes are not impossible) in standard form and the files can be FTP'ed without worry. Message #004 promised information on using anonymous FTP. Here is that information. Most systems on the Internet (this includes the Arpanet, NSFnet and some others, but not Bitnet, and I don't know about uucp) support a File Transfer Protocol (FTP) program that enables a user to make a connection to another node on the network and copy or send files between the two connected nodes. If the remote node supports anonymous FTP, it is not necessary for the user to have an account at that node. An FTP session (run on a TOPS-20 system) looks something like this. @ftp score.stanford.edu ... FTP> cd <tex.web> < Please log in first, with USER, PASS and ACCT. LOGIN (user) anonymous Password: anonymous ... FTP> get -chrono-.dir web-chrono.dir [source file] [target file] PS:<TEX.WEB>-CHRONO-.DIR.14 => <BNB>WEB-CHRONO.DIR.1;P777700 !! [OK] FTP> exit In this session, I was retrieving the chrono listing of the contents of the <TEX.WEB> directory, in which are located TeX.WEB and its change files, TANGLE and WEAVE, and so forth. Most of the <TEX.*> subdirectories contain chrono files, and these chrono files are regenerated automatically every weekend. The subdirectories listed below are the ones that become part of the standard TeX distribution (with the possible exception of <TEX.LOCAL>). <TEX.AMSFONTS> .TFM and raster files of 300 dpi AMS fonts <TEX.AMSTEX> AMSTeX.TeX and related macros and documentation <TEX.BIBTEX> the BiBTeX system, for use with LaTeX <TEX.CM> .MF sources of the CM* fonts <TEX.DOC> manuals, bug and errata lists and other documentation <TEX.GF> .GF font files <TEX.INPUTS> various macro files and similar <TEX.LATEX> the LaTeX macros and style files <TEX.LN03> fonts for the LN03 printer <TEX.LOCAL> (not sure; probably things local to Stanford) <TEX.MF> MF.WEB and change files, ``fontware'' <TEX.TEST> TRIP, TRAP and other test-related files <TEX.TEXHAX> the TeXhax archives <TEX.TUGBOAT> items that have appeared in TUGboat <TEX.WEB> TANGLE and WEB; TeX.WEB and change files TRIP and TRAP details will be sent in later messages. ######################################################################## Additions to TeX82.BUG 344. Avoid negative divisor rounding upward (Chris Thompson, fixed 19Jun88) @x module 126 else t:=(lo_mem_max+hi_mem_min+2) div 2; {|lo_mem_max+2<=t<hi_mem_min|} @y else t:=lo_mem_max+1+(hi_mem_min-lo_mem_max)div 2; {|lo_mem_max+2<=t<hi_mem_min|} @z 345. (I sincerely hope that there won't be any more) ######################################################################## Differences between TeX.WEB for 2.92 and for 2.93 ;COMPARISON OF TX:<TEX82.NEW>TEX-2-92.WEB.1 AND TX:<TEX82.NEW>TEX-2-93.WEB.1 ;OPTIONS ARE /E /3 **** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 1-31 (2023) % A reward of $81.92 will be paid to the first finder of any remaining bug. **** FILE TX:<TEX82.NEW>TEX-2-93.WEB.1, 1-30 (2021) % Version 2.93 fixes negative halving in allocator when mem_min<0 (June 1988). % A reward of $81.92 will be paid to the first finder of any remaining bug. *************** **** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 2-93 (9207) @d banner=='This is TeX, Version 2.92' {printed when \TeX\ starts} @ Different \PASCAL s have slightly different conventions, and the present **** FILE TX:<TEX82.NEW>TEX-2-93.WEB.1, 2-93 (9287) @d banner=='This is TeX, Version 2.93' {printed when \TeX\ starts} @ Different \PASCAL s have slightly different conventions, and the present *************** **** FILE TX:<TEX82.NEW>TEX-2-92.WEB.1, 10-221 (115748) else t:=(lo_mem_max+hi_mem_min+2) div 2; {|lo_mem_max+2<=t<hi_mem_min|} p:=llink(rover); q:=lo_mem_max; rlink(p):=q; llink(rover):=q;@/ **** FILE TX:<TEX82.NEW>TEX-2-93.WEB.1, 10-221 (115828) else t:=lo_mem_max+1+(hi_mem_min-lo_mem_max)div 2; {|lo_mem_max+2<=t<hi_mem_min|} p:=llink(rover); q:=lo_mem_max; rlink(p):=q; llink(rover):=q;@/ *************** ######################################################################## Additions to MF84.BUG 542. Avoid negative divisor rounding upward (Chris Thompson, fixed 19Jun88) @x module 168 else t:=(lo_mem_max+hi_mem_min+2) div 2; {|lo_mem_max+2<=t<hi_mem_min|} @y else t:=lo_mem_max+1+(hi_mem_min-lo_mem_max)div 2; {|lo_mem_max+2<=t<hi_mem_min|} @z 543. (I sincerely hope that there won't be any more) ######################################################################## Differences between MF.WEB for 1.5 and for 1.4 ;COMPARISON OF TX:<TEX82.NEW>MF-1-4.WEB.1 AND TX:<TEX82.NEW>MF-1-5.WEB.1 ;OPTIONS ARE /E /3 **** FILE TX:<TEX82.NEW>MF-1-4.WEB.1, 1-16 (937) % 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. **** FILE TX:<TEX82.NEW>MF-1-5.WEB.1, 1-16 (937) % Version 1.5 fixes negative halving in allocator when mem_min<0 (June 1988). % A few "harmless" optimizations have been made without changing versions. % A reward of $20.48 will be paid to the first finder of any remaining bug. *************** **** FILE TX:<TEX82.NEW>MF-1-4.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 TX:<TEX82.NEW>MF-1-5.WEB.1, 2-81 (7668) @d banner=='This is METAFONT, Version 1.5' {printed when \MF\ starts} @ Different \PASCAL s have slightly different conventions, and the present *************** **** FILE TX:<TEX82.NEW>MF-1-4.WEB.1, 11-190 (138945) else t:=(lo_mem_max+hi_mem_min+2) div 2; {|lo_mem_max+2<=t<hi_mem_min|} if t>mem_min+max_halfword then t:=mem_min+max_halfword; **** FILE TX:<TEX82.NEW>MF-1-5.WEB.1, 11-190 (139039) else t:=lo_mem_max+1+(hi_mem_min-lo_mem_max)div 2; {|lo_mem_max+2<=t<hi_mem_min|} if t>mem_min+max_halfword then t:=mem_min+max_halfword; *************** ######################################################################## Extracts from ERRATA.TeX (differences as compared with previous version) ;COMPARISON OF TX:<TEX82.DOC>ERRATA.TEX.59 AND TX:<TEX82.NEW>ERRATA.TEX.1 ;OPTIONS ARE /E /3 **** FILE TX:<TEX82.DOC>ERRATA.TEX.59, 3-10 (4711) {\tt This\]is\]TeX,\]Version\]2.92\char'23}\quad $\{\,$printed when \TeX\ starts$\,\}$ **** FILE TX:<TEX82.NEW>ERRATA.TEX.1, 3-10 (4711) {\tt This\]is\]TeX,\]Version\]2.93\char'23}\quad $\{\,$printed when \TeX\ starts$\,\}$ *************** **** FILE TX:<TEX82.DOC>ERRATA.TEX.59, 3-19 (4943) \bugonpage B108, new line after line 8 (5/24/88) **** FILE TX:<TEX82.NEW>ERRATA.TEX.1, 3-19 (4943) \bugonpage B54, line 35 (6/19/88) \ninepoint\noindent\kern10pt {\bf else} $t\gets\\{lo\_mem\_max}+1+(\\{hi\_mem\_min}-\\{lo\_mem\_max}) \mathbin{\bf div}2$;\quad $\{\,\\{lo\_mem\_max}+2\le t<\\{hi\_mem\_min}\,\}$ \bugonpage B108, new line after line 8 (5/24/88) *************** **** FILE TX:<TEX82.DOC>ERRATA.TEX.59, 5-10 (18625) {\tt This\]is\]METAFONT,\]Version\]1.4\char'23}\quad $\{\,$printed when \MF\ starts$\,\}$ \bugonpage D420, bottom line (5/25/88) **** FILE TX:<TEX82.NEW>ERRATA.TEX.1, 5-10 (18847) {\tt This\]is\]METAFONT,\]Version\]1.5\char'23}\quad $\{\,$printed when \MF\ starts$\,\}$ \bugonpage D66, line 35 (6/19/88) \ninepoint\noindent\kern10pt {\bf else} $t\gets\\{lo\_mem\_max}+1+(\\{hi\_mem\_min}-\\{lo\_mem\_max}) \mathbin{\bf div}2$;\quad $\{\,\\{lo\_mem\_max}+2\le t<\\{hi\_mem\_min}\,\}$ \bugonpage D420, bottom line (5/25/88) *************** ######################################################################## [ end of message 006 ] -------