summaryrefslogtreecommitdiff
path: root/info/digests/tex-implementors/message.12
blob: 31b99678e0b56b46141872ff4e80fedc86ab3ff4 (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
Received: from robin by clan.nott.ac.uk id aa18295; 7 Jan 89 15:05 PST
Received: from nss.cs.ucl.ac.uk by much.Cs.Nott.AC.UK id aa11805;
          7 Jan 89 23:04 GMT
Received: from vax02.ams.com by NSS.Cs.Ucl.AC.UK   via Satnet with SMTP
           id aa06018; 7 Jan 89 22:53 GMT
Date: Sat 7 Jan 89 17:40:07-EST
From: bbeeton <BNB@vax02.ams.com>
Subject: more errata; corrections to TEX82.BUG and CM changes, etc.
To: TeX-implementors@vax02.ams.com
Message-ID: <600216007.0.BNB@VAX02.AMS.COM>
Mail-System-Version: <VAX-MM(229)+TOPSLIB(132)+PONY(205)@VAX02.AMS.COM>

Date:	  7 Jan 89				Message No:	012

To:	  TeX implementors and distributors

From:	  Barbara Beeton

Subject:  more errata; corrections to TEX82.BUG and CM changes


Don Knuth says

    people still read those books 
    and still find mistakes! I just added errata for pages A383 and C271.
    Page A383 should have been updated when I made TeX version 1.3 in 1985!

Changes to ERRATA.TEX are included below.

A small correction has been made to TEX82.BUG in a very old change; it
affects only documentation, and corrects a module number.


Chris Thompson has informed me that some lines in the difference list for
SYMBOL.MF were corrupted.  I believe that all of these were in the final
context lines, so anyone who has tried to apply the changes by hand has
probably been able to get a correct file.  Nonetheless, the correct
difference list is given below.  (The discrepancies are due to a glitch in
the software used to transfer the difference files from a DEC-20 to a
VAX/VMS.  I knew this was a problem, and checked all the difference files
accordingly, or so I thought.  This one slipped through somehow.  Apologies.)


After contemplating the nature of the last two bug fixes to TeX and MF, I
have decided that a cumulative list of differences might be useful to anyone
who may have delayed installing the changes conveyed in these messages.
The following cumulative difference lists now exist, and I will be happy to
send one or more of them to anyone who sends me a specific request.

	TeX 2.0 (Dec 86) through 2.7 (Nov 87)
	TeX 2.7 (Nov 87) through 2.95 (Dec 88)
	MF 1.3 (Dec 86) through 1.7 (Dec 88)


When I communicated the changes for TANGLE 2.9 in message 11, I failed to
include Knuth's explanation.  Here it is.

    At the suggestion of Wayne Sewell, who is writing a book about WEB,
    I've removed a restriction: One can now use a nonnumeric macro
    before declaring it. (The old documentation for section 59 of TANGLE
    mentioned that this restriction wasn't really necessary. I've finally
    eliminated it, because Wayne found it a hassle, and I wanted to reward
    him for all his hard work.

    The only change, except to version number and documentation, is
    to insert `if t=numeric then' before the first err_print in section 59.
    The only change as far as users go is that some programs that used to
    give error messages will now run without error.

    Programmers who use a macro before declaring it may get a spurious
    warning about conflict between identifiers with the same first six letters;
    TANGLE won't know that certain identifiers will later become macros.

The changes to TANGLE precipitated some changes in the WEB manual.  Those
changes are listed below.


In response to an inquiry for suggestions on how the TRIP and TRAP LOG files
might safely be sent across unpredictable gateways, I was sent two small C
programs, one to hexify files and the other to unhex them.  Here is the
description and a warning that came with the code:

    The C programs hex.c and unhex.c translate between 8-bit binary files
    and straight hex files, in which every pair of hexadecimal digits
    corresponds to a single 8-bit byte.  Certain files in the Kermit
    distribution are in this format.  You can recognize them because they
    contain only the characters 0-9 and A-F -- no colons or other characters.
 
    Warning - HEX.C doesn't work under Microsoft C on the IBM PC family:
    getchar() returns EOF (-1) whenever it reads a 0xFF byte from the input
    file.  Seems like a bug in MSC...  Since everything is an int, there
    shouldn't be any sign extension going on.  Boo.  Testing with feof()
    wouldn't help either, because getchar() buffers ahead.  Maybe use
    single-character read()?

This seems the most promising method I've heard about so far.  I doubt very
much that any 0xFF bytes will occur in the LOG files, so that doesn't seem
a problem.  I plan to test this out, and if I can succeed in making it work
here, the next message will include the C code, and then I will begin to
send out the long-awaited TRIP and TRAP.  If anyone believes they would have
a problem with this technique, please let me know; on the other hand, if
anyone has another reasonable suggestion, I'd like to hear that too.


I was notified by my system administrator that at least two copies of the
last message failed to be sent, but the addresses were scrambled and there
was no way to identify the intended recipients.  If you have missed any
messages, please let me know, and also acknowledge receipt of this one.
I will be out of town from Jan 13-30, and I will try, after I return, to
query anyone from whom I haven't received a reply.  (TRIP and TRAP will
also have to wait until after I return, but I hope finally to be able to
take care of them quickly then.)


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

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

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

**** FILE PS:<TEX.DOC>ERRATA.TEX.18, 2-51 (2996)
\bugonpage A454, lines 23--29 (8/13/87)
**** FILE PS:<TEX.DOC>ERRATA.NEW.2, 2-51 (2996)
\bugonpage A383, lines 7--15 from the bottom (1/4/89)

\begintt
 209 strings out of 1685
 1659 string characters out of 17636
 27618 words of memory out of 52821
 1172 multiletter control sequences out of 2500
\endtt
Consequently there was plenty of room for more macros: $52821-27618=
25203$ unused cells of main memory, $2500-1172=1328$ of name memory,
$1685-209=1476$ of string memory, and $17636-1659=15977$ of character memory.
But a fairly large \TeX\ was being used, and only the macros of
Appendices B and~E were loaded; in other circumstances it might have
been necessary to conserve space.

\bugonpage A454, lines 23--29 (8/13/87)
***************

**** FILE PS:<TEX.DOC>ERRATA.TEX.18, 2-100 (4766)
\bugonpage A480, right column (2/15/88)
**** FILE PS:<TEX.DOC>ERRATA.NEW.2, 2-115 (5382)
\bugonpage A474, left column (12/27/88)

\eightpoint\indent
\hbox to0pt{\hss\lower1pt\hbox{*}}|\parshape|, 101--102, 214, 271, 277, 283,

\bugonpage A480, right column (2/15/88)
***************

**** FILE PS:<TEX.DOC>ERRATA.TEX.18, 4-39 (21232)
\bugonpage C271, line 4 from the bottom (12/23/88)
**** FILE PS:<TEX.DOC>ERRATA.NEW.2, 4-39 (21991)
\bugonpage C271, line 12 (1/4/89)

\ninepoint\noindent
the user and \MF's primitive picture commands.
First, some important program\cutpar

\bugonpage C271, line 4 from the bottom (12/23/88)
***************


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

Correction to TEX82.BUG in change no. 300 (25 Nov 84)

;COMPARISON OF PS:<TEX.DOC>TEX82.BUG.14 AND PS:<BEETON.BB>TEX82.BUG.2
;OPTIONS ARE    /E /3

**** FILE PS:<TEX.DOC>TEX82.BUG.14, 19-463 (139100)
@x module 693
  print_int(dyn_used); print("; max so far: ");
**** FILE PS:<TEX.DOC>TEX82.BUG.15, 19-463 (139100)
@x module 639
  print_int(dyn_used); print("; max so far: ");
***************


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

Differences in SYMBOL.MF

;COMPARISON OF PS:<TEX.CM>SYMBOL.MF.7 AND PS:<TEX.CM>SYMBOL.MF.8
;OPTIONS ARE    /E /3

**** FILE PS:<TEX.CM>SYMBOL.MF.7, 1-47 (1929)
x3-.5dot_size=hround(.5w-.5dot_size); w:=r:=2x3;
y3+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]+.5dot_size);
**** FILE PS:<TEX.CM>SYMBOL.MF.8, 1-47 (1929)
x3-.5dot_size=hround(.5w-.5dot_size); center_on(x3);
y3+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]+.5dot_size);
***************

**** FILE PS:<TEX.CM>SYMBOL.MF.7, 1-500 (21343)
.5[x1,x2]=x3=good.x .5w; w:=r:=2x3; lft x1=hround(.5w-u*sqrt48);
draw z1--z2--z3--cycle;  % stroke
**** FILE PS:<TEX.CM>SYMBOL.MF.8, 1-500 (21347)
.5[x1,x2]=x3=good.x .5w; center_on(x3); lft x1=hround(.5w-u*sqrt48);
draw z1--z2--z3--cycle;  % stroke
***************

**** FILE PS:<TEX.CM>SYMBOL.MF.7, 1-508 (21625)
.5[x1,x2]=x3=good.x .5w; w:=r:=2x3; lft x1=hround(.5w-u*sqrt48);
draw z1--z2--z3--cycle;  % stroke
**** FILE PS:<TEX.CM>SYMBOL.MF.8, 1-508 (21633)
.5[x1,x2]=x3=good.x .5w; center_on(x3); lft x1=hround(.5w-u*sqrt48);
draw z1--z2--z3--cycle;  % stroke
***************

**** FILE PS:<TEX.CM>SYMBOL.MF.7, 1-615 (26376)
x1=x2=good.x .5w; w:=r:=2x1; lft x3=hround u; x4=r-x3;
bot y1=0; y2-y1=x4-x3;
**** FILE PS:<TEX.CM>SYMBOL.MF.8, 1-615 (26388)
x1=x2=good.x .5w; center_on(x1); lft x3=hround u; x4=w-x3;
bot y1=0; y2-y1=x4-x3;
***************

**** FILE PS:<TEX.CM>SYMBOL.MF.7, 1-626 (26691)
x1=x2=good.x .5w; w:=r:=2x1; lft x3=hround u; x4=r-x3;
bot y1=0; y2-y1=x4-x3;
**** FILE PS:<TEX.CM>SYMBOL.MF.8, 1-626 (26707)
x1=x2=good.x .5w; center_on(x1); lft x3=hround u; x4=w-x3;
bot y1=0; y2-y1=x4-x3;
***************

**** FILE PS:<TEX.CM>SYMBOL.MF.7, 1-932 (39305)
x1=x2=x3=x4; x1-.5stem=hround(.5w-.5stem); w:=r:=2x1;
x5-.5stem=hround u; x6=w-x5;
**** FILE PS:<TEX.CM>SYMBOL.MF.8, 1-932 (39325)
x1=x2=x3=x4; x1-.5stem=hround(.5w-.5stem); center_on(x1);
x5-.5stem=hround u; x6=w-x5;
***************

**** FILE PS:<TEX.CM>SYMBOL.MF.7, 1-946 (39921)
x1=x2=x3; x1-.5stem=hround(.5w-.5stem); w:=r:=2x1;
x4-.5stem=hround u; x5=w-x4;
**** FILE PS:<TEX.CM>SYMBOL.MF.8, 1-946 (39945)
x1=x2=x3; x1-.5stem=hround(.5w-.5stem); center_on(x1);
x4-.5stem=hround u; x5=w-x4;
***************

**** FILE PS:<TEX.CM>SYMBOL.MF.7, 1-979 (41448)
x1=x4=x30=x33=good.x .5w; w:=r:=2x1;
x2=good.x(x1-.5u)-eps; lft x1-rt x10=hround .5pt; lft x12=hround .5u;
**** FILE PS:<TEX.CM>SYMBOL.MF.8, 1-979 (41476)
x1=x4=x30=x33=good.x .5w; center_on(x1);
x2=good.x(x1-.5u)-eps; lft x1-rt x10=hround .5pt; lft x12=hround .5u;
***************

**** FILE PS:<TEX.CM>SYMBOL.MF.7, 1-997 (42416)
x1=x4=good.x .5w; w:=r:=2x1;
lft x2=hround u; x3=w-x2;
**** FILE PS:<TEX.CM>SYMBOL.MF.8, 1-997 (42448)
x1=x4=good.x .5w; center_on(x1);
lft x2=hround u; x3=w-x2;
***************

**** FILE PS:<TEX.CM>SYMBOL.MF.7, 1-1009 (42973)
x1=x5=good.x .5w; w:=r:=2x1;
lft x7=hround u; x8=4u; x2+x8=x3+x7=x4+x6=w;
**** FILE PS:<TEX.CM>SYMBOL.MF.8, 1-1009 (43009)
x1=x5=good.x .5w; center_on(x1);
lft x7=hround u; x8=4u; x2+x8=x3+x7=x4+x6=w;
***************

**** FILE PS:<TEX.CM>SYMBOL.MF.7, 1-1023 (43554)
x1=x10=good.x .5w; w:=r:=2x1;
x2=good.x(x1-.5u)-eps; lft x1-rt x6=hround .5pt; x5=x6;
**** FILE PS:<TEX.CM>SYMBOL.MF.8, 1-1023 (43594)
x1=x10=good.x .5w; center_on(x1);
x2=good.x(x1-.5u)-eps; lft x1-rt x6=hround .5pt; x5=x6;
***************


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

Changes in the WEB manual

;COMPARISON OF PS:<TEX.DOC>WEBMAN.TEX.2 AND PS:<TEX.DOC>WEBMAN.TEX.3
;OPTIONS ARE    /E /3

**** FILE PS:<TEX.DOC>WEBMAN.TEX.2, 1-198 (11598)
A module begins with the pair of symbols `\.{@\ }' or `\.{@*}', where
**** FILE PS:<TEX.DOC>WEBMAN.TEX.3, 3-43 (11596)
\eject % page break inserted Dec 88

A module begins with the pair of symbols `\.{@\ }' or `\.{@*}', where
***************

**** FILE PS:<TEX.DOC>WEBMAN.TEX.2, 1-361 (21994)
and \\{char}, even though \\{buffer} and \\{char}
**** FILE PS:<TEX.DOC>WEBMAN.TEX.3, 3-208 (22031)
\vadjust{\eject} % page break inserted Dec 88
and \\{char}, even though \\{buffer} and \\{char}
***************

**** FILE PS:<TEX.DOC>WEBMAN.TEX.2, 1-413 (24876)
than one; it must not be a single letter. Furthermore, the identifier must
be making its first appearance in the \.{WEB} file; a macro must be defined
before it is used.

Numeric macros are subject to the following restrictions:\quad
(1)~The right-hand side of the numeric definition must be made entirely from
integer constants, numeric macros, preprocessed strings (see below), and
**** FILE PS:<TEX.DOC>WEBMAN.TEX.3, 4-18 (24959)
than one; it must not be a single letter.

Numeric macros are subject to the following restrictions:\quad
(1)~The identifier must
be making its first appearance in the \.{WEB} file;
a numeric macro must be defined before it is used.\quad
(2)~The right-hand side of the numeric definition must be made entirely from
integer constants, numeric macros, preprocessed strings (see below), and
***************

**** FILE PS:<TEX.DOC>WEBMAN.TEX.2, 1-425 (25582)
(2)~The numeric value must be less than $2^{15}=32768$ in absolute value.
(For larger values, you can use `\.{==}' in place of~`\.=', thus making use
**** FILE PS:<TEX.DOC>WEBMAN.TEX.3, 4-31 (25670)
(3)~The numeric value must be less than $2^{15}=32768$ in absolute value.
(For larger values, you can use `\.{==}' in place of~`\.=', thus making use
***************


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


[ end of message 012 ]
-------