diff options
Diffstat (limited to 'info/digests/tex-implementors/message.01')
-rw-r--r-- | info/digests/tex-implementors/message.01 | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/info/digests/tex-implementors/message.01 b/info/digests/tex-implementors/message.01 new file mode 100644 index 0000000000..3a8ae258df --- /dev/null +++ b/info/digests/tex-implementors/message.01 @@ -0,0 +1,201 @@ +Date: 25 Nov 87 Message No: 001 + +To: TeX implementors and distributors + +From: Barbara Beeton + +Subject: First informational message from the early-warning system + + +Below is an extract from Knuth's TeX82.BUG file dated 17 Nov 87, 15:03. +This includes changes from version 2.2 - 2.7 inclusive. + +Note that this file contains only essential changes to program code. +Some trivial code changes and most changes to documentation are not +included in this list. Most appear in the ERRATA.TeX file, but that is +not the easiest source of information to use when updating a .WEB file. + +I have used the TOPS-20 program SRCCOM to generate a differences list +between Knuth's version 2.7 file and a version 2.0 file received on a +distribution tape. If you would like a copy, let me know; it is about +31Kbytes -- too big to want to include in a general message, but well +able to be sent out on request. + +I understand that corrected pages of volumes B, C and D of C&T have been +sent to Addison-Wesley, so revised editions should be appearing in a few +months. The latest version of Knuth's errata list is dated 18 Nov 87; it +contains only changes since 15 Jun 87, and is about 9Kbytes. This too +will be sent to anyone requesting it. + +Future messages will assume that TeX version 2.7 is the baseline version. + +Here is the summary from TeX.WEB describing the nature of the changes. + +% Version 2.1 corrects anomalies in discretionary breaks (January 1987). +% Version 2.2 corrects "(Please type...)" with null \endlinechar (April 1987). +% Version 2.3 avoids incomplete page in premature termination (August 1987). +% Version 2.4 fixes \noaligned rules in indented displays (August 1987). +% Version 2.5 saves cur_order when expanding tokens (September 1987). +% Version 2.6 adds 10sp slop when shipping leaders (November 1987). +% Version 2.7 improves rounding of negative-width characters (November 1987). +% A reward of $40.96 will be paid to the first finder of any remaining bug. +% (This amount will double again in 1988.) + +************************************************************************ + +*** Version 2.1 was released on January 26, 1987. + +326. Removal of redundant code (found by Pat Monardo, 5 Feb 87) +@x module 1224 [this change need not be made, since it has no effect] + char_def_code: define(p,char_given,cur_val); + math_char_def_code: define(p,math_given,cur_val); +@y the cases cannot occur, so we simply don't list them +@z + +327. More robustness is needed when debugging (Ronaldo Am\'a, 14 Apr 87) +@x module 174 +begin while p>null do +@y maybe mem_min>null (but nodes shouldn't be put in location mem_min exactly) +begin while p>mem_min do +@z +@x module 182 +@p procedure show_node_list(@!p:pointer); {prints a node list symbolically} +@y +@p procedure show_node_list(@!p:integer); {prints a node list symbolically} +@z +@x module 182, continued +while p>null do +@y +while p>mem_min do +@z + +328. Storage allocation can be more elegant and efficient (4/21/87) +@x module 127 +if r=p then if ((rlink(p)<>rover) or (llink(p)<>rover)) then +@y +if r=p then if rlink(p)<>p then +@z + +329. Miscalculation of empty-line condition (April 22, 1987) +@x module 360 + begin if limit=start then {previous line was empty} +@y + begin if (end_line_char<0)or(end_line_char>127) then incr(limit); + if limit=start then {previous line was empty} +@z + +330. A case where we don't have to assume system bookkeeping (April 28, 1987) +@x module 560 +done: b_close(tfm_file); read_font_info:=g; +@y [suggested by Jim Sterken] +done: if file_opened then b_close(tfm_file); +read_font_info:=g; +@z [this was not a bug, according to the comment in module 28] + +331. jump_out must fix unfinished output (Found by Klaus Gunterman, 3 Aug 87) +@x module 593 +doing_leaders:=false; dead_cycles:=0; +@y +doing_leaders:=false; dead_cycles:=0; cur_s:=-1; +@z +@x module 617 +cur_s:=-1; ensure_dvi_open; +@y +ensure_dvi_open; +@z +@x module 640 +dvi_out(eop); incr(total_pages); +@y +dvi_out(eop); incr(total_pages); cur_s:=-1; +@z +@x module 642 +if total_pages=0 then print_nl("No pages of output.") +@y +while cur_s>-1 do + begin if cur_s>0 then dvi_out(pop) + else begin dvi_out(eop); incr(total_pages); + end; + decr(cur_s); + end; +if total_pages=0 then print_nl("No pages of output.") +@z + +332. \hangindent=1pt$$\halign{...\cr\noalign{\hrule}}$$ problem (19 Aug 87) +@x module 805 +q:=link(head); +@y +q:=link(head); s:=head; +@z +@x module 805, continued + q:=link(q); +@y + s:=q; q:=link(q); +@z +@x module 806 +if is_running(depth(q)) then depth(q):=depth(p); +@y +if is_running(depth(q)) then depth(q):=depth(p); +if o<>0 then + begin r:=link(q); link(q):=null; q:=hpack(q,natural); + shift_amount(q):=o; link(q):=r; link(s):=q; + end; +@z + +333. \hskip 0pt plus 1fil\ifdim problem (found by Alan Guth, 20 Aug 87) +@x module 366 +@!cvl_backup,@!radix_backup:small_number; {to save |cur_val_level| and |radix|} +@y +@!cvl_backup,@!radix_backup,@!co_backup:small_number; + {to save |cur_val_level|, etc.} +@z +@x +backup_backup:=link(backup_head); +@y +co_backup:=cur_order; backup_backup:=link(backup_head); +@z +@x +link(backup_head):=backup_backup; +@y +cur_order:=co_backup; link(backup_head):=backup_backup; +@z + +334. leaders too sensitive near exact multiples (M. F. Bridgland, 9 Nov 87) +@x module 626 + begin edge:=cur_h+rule_wd; lx:=0; +@y + begin rule_wd:=rule_wd+10; {compensate for floating-point rounding} + edge:=cur_h+rule_wd; lx:=0; +@z +@x ibid + cur_h:=edge; goto next_p; +@y + cur_h:=edge-10; goto next_p; +@z +@x module 635 + begin edge:=cur_v+rule_ht; lx:=0; +@y + begin rule_ht:=rule_ht+10; {compensate for floating-point rounding} + edge:=cur_v+rule_ht; lx:=0; +@z +@x ibid + cur_v:=edge; goto next_p; +@y + cur_v:=edge-10; goto next_p; +@z + +335. Glitch in fixed-point multiplication of negatives (W.G. Sullivan, 17Nov87) +@x module 572 +begin alpha:=16*z; beta:=16; +while z>=@'40000000 do + begin z:=z div 2; beta:=beta div 2; + end; +@y +begin alpha:=16; +while z>=@'40000000 do + begin z:=z div 2; alpha:=alpha+alpha; + end; +beta:=256 div alpha; alpha:=alpha*z; +@z + +336. (I sincerely hope that there won't be any more) +------- |