summaryrefslogtreecommitdiff
path: root/info/digests/tex-implementors/message.15
blob: 7e3aeaeac48a30dcddab0ed5e636eee08afb5ea9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
(Message inbox:23)
Return-Path: 
Date: Sun 9 Apr 89 14:56:06-EST
From: bbeeton <BNB@vax01.ams.com>
Subject: WEB 3.0; TeX change, same version; CM85.BUG
To: TeX-implementors@vax01.ams.com
Message-ID: <608154966.0.BNB@VAX01.AMS.COM>
Mail-System-Version: <VAX-MM(229)+TOPSLIB(132)+PONY(228)@VAX01.AMS.COM>

Date:	  10 Apr 89				Message No:	015

To:	  TeX implementors and distributors

From:	  Barbara Beeton

Subject:  WEB 3.0; TeX change, same version; CM85.BUG


Thanks to Edgar Fuss for the reminder that an ascii-code verification
list would be useful.  I have "borrowed" the relevant material from the
GUTenberg trailer, and it will be attached to all messages from now on.

I received the following message from Knuth on March 25.

    Peter Breitenlohner found a bug in TANGLE and WEAVE, and since their
    version numbers were up to 2.9 I decided to go to version 3
    (also in honor of Wayne Sewell's book on WEB, which will include
    the source listings).

    The bug is in input_ln, and it happens only if a line of input
    is too long (more than 100 characters); so it's not serious, but
    it might as well be fixed. The fix requires the new line
			if final_limit>limit then final_limit:=limit;
    to be added to input_ln just after the line that says "decr(limit)";
        ... (Also the version number gets changed, and a line explaining
    version 3 gets added near the beginning.) ...

    Breitenlohner also found a very minor glitch in TeX that I'll fix ...
    (without changing the version number).

    I just noticed that input_ln is changed in our change files for TANGLE
    and WEAVE, so the bugfix may require change files to be updated...

The glitch has been fixed as of April 8; here is Knuth's commentary:

    the "glitch" is such that it is transparent to all users except
    in certain cases that "can't happen". If the latter cases can in fact
    happen, the users still will see nothing unless they are using
    a non-production version of TeX in which bounds checking is done,
    because the relevant TeX code will be something like this:
	if (x=0) or (mem[x]=0) then causefatalerror
    where x=0 and mem is an array such that mem[0] doesn't exist.
    (On almost all implementations mem[0] does exist.)
    I will be changing that code to something like this:
	if x=0 then causefatalerror;
	if mem[x]=0 then causefatalerror.
    In other words, the change will be simply cosmetic, not necessitating
    a new version number.

I have pointed out to Knuth that, even though the glitch is minor, serious
confusion can result when version numbers are not changed (viz. LaTeX).
However, his decision is final.  In the future, I will refer to this change
as version 2.98a to try to avoid confusion.

I have updated the cumulative difference list beginning with TeX 2.7
(Nov 87) to include all changes through 2.98a; it previously stopped with
version 2.95.  I will be happy to send a copy to anyone requesting it.

Updates to the errata list to incorporate the change are given below.
Also included are some corrections to errors that appeared only in the
July 1987 printing of Volume D; check the publication date of your copy
carefully before making any changes.  One additional error has been
posted to the previous errata file (ERRATA.THR); it fixes the section
number reference in a change on page D68:

	\bugonpage D86, second line of section 198 (2/27/87)

(The reference had previously been given as section 128.)

A "small bug" has been fixed in MFT.WEB; differences are given below.

Message #14 contained a change to SYMBOL.MF, but it turns out that this
was not the only font change since the beginning of the year; a previous
change to the letter m in ROMANL was expanded.  The last few additions
to CM85.BUG are given below in their entirety.  (I have suggested to
Knuth that he date the updates to this file, but since nothing has been
dated so far, I doubt he will wish to start now.)

Finally, Knuth reports that "A new version of GFtoDVI should finally
be ready in a week or so."  He also mentions that he is planning to
"wean himself away" from TeXhax by the end of this year, so that he can
devote himself entirely to The Art of Computer Programming.

    Tentatively I plan to make up a form letter that gives addresses
    of people to write to for help; Phyllis will send that letter out to
    whoever writes me concerning TeX, and I won't see any of the letters.
    I will designate a few people ... who will screen all purported bugs
    and report them directly to me, so that I can spend an hour or two
    max each month on residual maintenance. By next year it looks like
    everything will be stable enough to cast in concrete (I mean silicon?).

I hope that his prediction is correct.  I will try to make my next message
concentrate on TRIP and TRAP; however that will have to wait until I return
from an ISO WG8 meeting which will take me out of town from April 14-23.
Thanks for your patience.


########################################################################

Changes to TEX.WEB (comparison with ver

**** FILE PS:<TEX.WEB>TEX.WEB.14, 1-15177 (656587)
begin q:=link(cur_align);
if (cur_align=null)or(q=null) then confusion("endv");
@:this can't happen endv}{\quad endv@>
**** FILE PS:<TEX.NEW>TEX.WEB.1, 1-15177 (656587)
begin if cur_align=null then confusion("endv");
q:=link(cur_align);@+if q=null then confusion("endv");
@:this can't happen endv}{\quad endv@>
***************


########################################################################

Additions to TEX82.BUG

352. Cosmetic change to validate comment in 115 (Breitenlohner, 20 Mar 89)
@x
begin q:=link(cur_align);
if (cur_align=null)or(q=null) then confusion("endv");
@y
begin if cur_align=null then confusion("endv");
q:=link(cur_align);@+if q=null then confusion("endv");
@z

353. (I sincerely hope that there won't be any more)


########################################################################

Extracts from ERRATA.TeX (differences as compared with previous version)

;COMPARISON OF PS:<TEX.DOC>ERRATA.TEX.23 AND PS:<TEX.DOC>ERRATA.NEW.3
;OPTIONS ARE    /E /3

**** FILE PS:<TEX.DOC>ERRATA.TEX.23, 3-342 (17239)
\bugonpage B338, second-last line (8/19/87)
**** FILE PS:<TEX.DOC>ERRATA.NEW.3, 3-342 (17239)
\bugonpage B332, lines 11 and 12 from the bottom (4/8/89)

\ninepoint
\noindent\hskip10pt
{\bf begin if\/} $\\{cur\_align}=\\{null}$ {\bf then}
 \\{confusion}({\tt\char'23endv\char'23});\par\noindent\hskip10pt
$q\gets\\{link}(\\{cur\_align})$; \ {\bf if\/} $q=\\{null} {\bf then}
 \\{confusion}({\tt\char'23endv\char'23});

\bugonpage B338, second-last line (8/19/87)
***************

**** FILE PS:<TEX.DOC>ERRATA.TEX.23, 5-36 (26064)
\bugonpage D347, new line of code after line 5 (12/14/88)
**** FILE PS:<TEX.DOC>ERRATA.NEW.3, 5-36 (26397)
\bugonpage D67, in the July 1987 printing (4/7/89)

\ninepoint\noindent
[Delete line 7, which has a redundant `{\bf if\/} $r=p$ {\bf then}';
move line 8 to the left 10 points for alignment; and restore the following
line (which was deleted by mistake after l\noindent\hskip10pt
$\\{node\_size}(p)\gets q-p$\quad$\{\,$reset the size in case it grew$\,\}$

\noindent
These corrections are needed only in the reprinting made July, 1987.]

\bugonpage D228, in the July 1987 printing (4/7/89)

\ninepoint\noindent
[Delete lines 14--15, which were inserted erroneously from a previous errata
list; and restore the following lines (which were deleted by mistake):

\noindent\hskip20pt
{\bf begin} \\{double}(\\{max\_coef}); \
\\{double}(\\{x0}); \
\\{double}(\\{x1}); \
\\{double}(\\{x2});\par\noindent\hskip20pt
\\{double}(\\{y0}); \
\\{double}(\\{y1}); \
\\{double}(\\{y2});\par\noindent\hskip20pt
{\bf end}

\noindent
These corrections are needed only in the reprinting made July, 1987.]

\bugonpage D248, in the July 1987 printing (4/7/89)

\ninepoint\noindent
[Delete line 16, which begins with `$d\gets\\{take\_fraction}';
and restore the following line (which was deleted by mistake after line 22):

\noindent\hskip10pt
{\bf if\/} $d<\\{alpha}$ {\bf then} $d\gets\\{alpha}$

\noindent
These corrections are needed only in the reprinting made July, 1987.]

\bugonpage D347, new line of code after line 5 (12/14/88)
***************

**** FILE PS:<TEX.DOC>ERRATA.TEX.23, 5-96 (28009)
\bugonpage D511, line 11 (12/14/88)
**** FILE PS:<TEX.DOC>ERRATA.NEW.3, 5-140 (29751)
\bugonpage D510, in the July 1987 printing (4/7/89)

\ninepoint\noindent
[Move the 7th-to-last line, which begins with `\\{internal}[\\{fontmaking}]',
one line down, and indent it to the right by 10 more points.

This correction is needed only in the reprinting made July, 1987.]

\bugonpage D511, line 11 (12/14/88)
***************


########################################################################

Differences between TANGLE.WEB 2.9 and 3.0

;COMPARISON OF PS:<TEX.WEB>TANGLE.WEB.5 AND PS:<TEX.NEW>TANGLE.WEB.2
;OPTIONS ARE    /E /3

**** FILE PS:<TEX.WEB>TANGLE.WEB.5, 1-16 (971)
% Here is TeX material that gets inserted after \input webmac
**** FILE PS:<TEX.NEW>TANGLE.WEB.2, 1-15 (969)
% Version 3, for Sewell's book, fixed a long-line bug in input_ln (March, 1989).
% Here is TeX material that gets inserted after \input webmac
***************

**** FILE PS:<TEX.WEB>TANGLE.WEB.5, 1-33 (1672)
  \centerline{(Version 2.9)}
  \vfill}
**** FILE PS:<TEX.NEW>TANGLE.WEB.2, 1-34 (1754)
  \centerline{(Version 3)}
  \vfill}
***************

**** FILE PS:<TEX.WEB>TANGLE.WEB.5, 2-26 (2936)
@d banner=='This is TANGLE, Version 2.9'

@ The program begins with a fairly normal header, made up of pieces that
**** FILE PS:<TEX.NEW>TANGLE.WEB.2, 2-26 (3016)
@d banner=='This is TANGLE, Version 3'

@ The program begins with a fairly normal header, made up of pieces that
***************

**** FILE PS:<TEX.WEB>TANGLE.WEB.5, 4-104 (24505)
      print_nl('! Input line too long'); loc:=0; error;
**** FILE PS:<TEX.NEW>TANGLE.WEB.2, 4-104 (24583)
      if final_limit>limit then final_limit:=limit;
      print_nl('! Input line too long'); loc:=0; error;
***************


########################################################################

Differences between WEAVE.WEB 2.9 and 3.0

;COMPARISON OF PS:<TEX.WEB>WEAVE.WEB.6 AND PS:<TEX.WEB>WEAVE.WEB.7
;OPTIONS ARE    /E /3

**** FILE PS:<TEX.WEB>WEAVE.WEB.6, 1-23 (1403)
% Here is TeX material that gets inserted after \input webmac
**** FILE PS:<TEX.WEB>WEAVE.WEB.7, 1-22 (1401)
% Version 3, for Sewell's book, fixed a long-line bug in input_ln (March, 1989).
% Here is TeX material that gets inserted after \input webmac
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.6, 1-42 (2192)
  \centerline{(Version 2.9)}
  \vfill}
**** FILE PS:<TEX.WEB>WEAVE.WEB.7, 1-43 (2274)
  \centerline{(Version 3)}
  \vfill}
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.6, 1-69 (3298)
@d banner=='This is WEAVE, Version 2.9'

@ The program begins with a fairly normal header, made up of pieces that
**** FILE PS:<TEX.WEB>WEAVE.WEB.7, 1-70 (3378)
@d banner=='This is WEAVE, Version 3'

@ The program begins with a fairly normal header, made up of pieces that
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.6, 1-590 (24677)
      print_nl('! Input line too long'); loc:=0; error;
**** FILE PS:<TEX.WEB>WEAVE.WEB.7, 1-591 (24755)
      if final_limit>limit then final_limit:=limit;
      print_nl('! Input line too long'); loc:=0; error;
***************


########################################################################

CM85.BUG -- the last 40 lines (as of 23 Jan 89)

@x in ROMANL, the letter m
lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l;
lft x3l=hround(.5w-.5stem); x5-x3=x3-x1;
if not monospace: r:=hround(x5+x1)-l; fi  % change width for better fit
@y
lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; % stem, sic
lft x3l=hround(.5w-.5mfudged.stem); x5-x3=x3-x1;
if not monospace: r:=hround(x5+x1)+r-w; fi  % change width for better fit
@z

@x a new routine for CMBASE, following change_width
@y
def center_on(expr x) = if not monospace: % change width for symmetric fit
 r:=r+2x-w; w:=2x; fi enddef;
@z
@x in SYMBOL, the elementary division operator
x3-.5dot_size=hround(.5w-.5dot_size); w:=r:=2x3;
@y
x3-.5dot_size=hround(.5w-.5dot_size); center_on(x3);
@z
Similarly, whenever the construction "w:=r:=2x*" appears, change it to
"center_on(x*)". This happens in the programs for elementary division operator
(as noted above), large triangle, large inverted triangle, lattice top,
lattice bottom, dagger mark, double dagger mark, club/diamond/heart/spade suit
(all in SYMBOL), plus the diamond operator and universal quantifier in SYM.
The following additional change needs to be made in the programs
for lattice top and lattice bottom:
@x
x1=x2=good.x .5w; center_on(x1); lft x3=hround u; x4=r-x3;
@y
x1=x2=good.x .5w; center_on(x1); lft x3=hround u; x4=w-x3;
@z

@x in SYMBOL, at end of zero-width slash
labels(1,2); zero_width; endchar;
@y
labels(5,6); zero_width; endchar;
@z

(I sincerely hope there won't be any more!)


########################################################################

Updates to MFT.WEB (differences as compared with previous version)

;COMPARISON OF PS:<TEX.MF>MFT.WEB.2 AND PS:<TEX.NEW>MFT.WEB.4
;OPTIONS ARE    /3

**** FILE PS:<TEX.MF>MFT.WEB.2, 1-7 (349)

% Here is TeX material that gets inserted after \input webmac
**** FILE PS:<TEX.NEW>MFT.WEB.4, 1-6 (347)
% Version 0.4 fixed minor bug regarding empty comments (April 8, 1989).

% Here is TeX material that gets inserted after \input webmac
***************

**** FILE PS:<TEX.MF>MFT.WEB.2, 1-29 (1204)
  \centerline{(Version 0.3, August 1985)}
  \vfill}
**** FILE PS:<TEX.NEW>MFT.WEB.4, 1-30 (1277)
  \centerline{(Version 0.4, April 1989)}
  \vfill}
***************

**** FILE PS:<TEX.MF>MFT.WEB.2, 1-116 (5413)
@d banner=='This is MFT, Version 0.3'

@ The program begins with a fairly normal header, made up of pieces that
**** FILE PS:<TEX.NEW>MFT.WEB.4, 1-116 (5483)
@d banner=='This is MFT, Version 0.4'

@ The program begins with a fairly normal header, made up of pieces that
***************

**** FILE PS:<TEX.MF>MFT.WEB.2, 1-1837 (71552)
repeat incr(loc);
until (loc=limit)or(buffer[loc]="|");
copy(id_first);
**** FILE PS:<TEX.NEW>MFT.WEB.4, 1-1828 (71604)
while (loc<limit)and(buffer[loc]<>"|") do incr(loc);
copy(id_first);
***************


########################################################################

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Character code reference
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%                       Upper case letters: ABCDEFGHIJKLMNOPQRSTUVWXYZ
%                       Lower case letters: abcdefghijklmnopqrstuvwxyz
%                                   Digits: 0123456789
% Square, curly, angle braces, parentheses: [] {} <> ()
%           Backslash, slash, vertical bar: \ / |
%                              Punctuation: . ? ! , : ;
%          Underscore, hyphen, equals sign: _ - =
%                Quotes--right left double: ' ` "
%"at", "number" "dollar", "percent", "and": @ # $ % &
%           "hat", "star", "plus", "tilde": ^ * + ~
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

[ end of message 015 ]
-------