summaryrefslogtreecommitdiff
path: root/info/digests/tex-implementors/message.01
diff options
context:
space:
mode:
Diffstat (limited to 'info/digests/tex-implementors/message.01')
-rw-r--r--info/digests/tex-implementors/message.01201
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)
+-------