summaryrefslogtreecommitdiff
path: root/info/digests/tex-implementors/message.25
blob: 843358cfb4919308d5b84b2c5a3a560271bd3eef (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
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
Date:     1 Apr 90                              Message No:     025
 
To:       TeX implementors and distributors
 
From:     Barbara Beeton
 
Subject:  TeX memory capacity; new errata; MF 2.0 changes; WEAVE 3.1
 
 
Now that implementation of TeX 3.0 is underway, I'd like to plan to
publish a new edition of the memory capacity charts that appeared in
TUGboat 7#1 (pp 67-70).  I would like to include all implementations
of TeX 3.0 that have passed the TRIP test.  The next issue is probably
too early to have complete information, so I will ask now for you to
send me the block of code from your change file (or the equivalent)
giving the memory values so that it can be included in the fall issue.
Please make sure you include the following: machine and operating
system for which this implementation is intended, version distributed,
and form of files distributed (e.g., web, exec, exec only).  The
editorial deadline for the fall issue is September 11.
 
One area of memory that is coming under increasing strain is the hash
size.  Syntheses of LaTeX and AMS-TeX must resort to modular design to
avoid overflowing the allowable number of control sequence names.
TEX.WEB for 3.0 still only provides 2100 entries of hash_size (although
the comment that this is generous has been removed).  I don't know of
any actual implementation that provides fewer than 2500 entries, and
most implementations, i suspect, provide even more.  (At the AMS, we
use hash_size=5000 and hash_prime=4253.)  I would like to encourage
all implementors to provide a large enough hash_size (and other memory
values) to accommodate reasonably straightforward use of LaTeX on
book-size documents.  I will ask Frank Mittelbach and Rainer Schoepf
for their recommendations.
 
Some macro packages like PicTeX simply need all the memory they can get.
Most C versions have been extended to provide main memory beyond 64K,
and some implementations for other systems as well.  If you have such
a version, or know about one, please send me whatever information you
have.  (This information will also be included in the memory chart
mentioned earlier.)  In particular, i have received an inquiry asking
whether there are any huge implementations for the PC.
 
TeX 3.0 contains new features for multilingual hyphenation, but it is
likely that the memory allocations for patterns (trie_size, trie_op_size,
others?) will have to be increased.  (I have also received an inquiry
on this topic.)  Since i have no experience with multilingual TeX, I
would appreciate receiving relevant information from anyone who does.
 
Peter Breitenlohner (see question in message #24) has informed me that
he received a reply from Don Knuth confirming that his numbers are right.
The correction has been made in the most recent trip.log, and probably
trap.log as well, though Peter had not seen that yet.
 
Enclosed is the full listing of the latest ERRATA.TEX from labrea.
Don decided to start a new file after publication of the last errata
list with TUGboat 10 #3; that instalment corresponds to ERRATA.FIV.
Note that, unlike previous errata listings, this one contains the
instruction (represented by the caret, ^ ) to place a term in the index.
This probably won't do anything more than put spurious entries into the
index file that's generated when you run the errata through TeX, but it
was a surprise to me, so I thought it worth mentioning.  I did make one
change, namely to put a % in front of the ^L page markers that appear
above every volume break.
 
The second enclosure consists of the latest additions to MF84.BUG.
Please note that number 553 reported in message 23 has been superseded.
The change first reported is actually in the new MF.WEB file, so it is
not lost, just apparently considered by Don to be a "cosmetic change".
 
Two more enclosures contain changes to bring WEAVE.WEB to version 3.1,
and the changes to WEBMAC.TEX to support the new WEAVE.
 
The differences between version 2.0 of MF.WEB and the last one reported
to you, version 1.7, will be sent separately in 4 parts.  (I am keeping
the files to under 30Kb as requested by Wayne Sullivan.)
 
 
########################################################################
 
% Bugs (sigh) in Computers \& Typesetting --- the most recent errata
 
\input manmac
\font\sltt=cmsltt10
\font\niness=cmss9
\font\ninessi=cmssi9
\proofmodefalse
\raggedbottom
\output{\hsize=29pc \onepageout{\unvbox255\kern-\dimen@ \vfil}}
 
\def\today{\number\day\
  \ifcase\month\or
  Jan\or Feb\or Mar\or Apr\or May\or Jun\or
  Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi
  \ \number\year}
 
\def\cutpar{{\parfillskip=0pt\par}}
 
\def\rhead{Bugs in {\tensl Computers \& Typesetting as of \today}}
\def\bugonpage#1(#2) \par{\bigbreak\tenpoint
  \hrule width\hsize
  \line{\lower3.5pt\vbox to13pt{}Page #1\hfil(#2)}\hrule width\hsize
  \nobreak\medskip}
\def\buginvol#1(#2) \par{\bigbreak\penalty-1000\tenpoint
  \hrule width\hsize
  \line{\lower3.5pt\vbox to13pt{}Volume #1\hfil(#2)}\hrule width\hsize
  \nobreak\medskip}
\def\slMF{{\manual 89:;}\-{\manual <=>:}} % slant the logo
\def\0{\raise.7ex\hbox{$\scriptstyle\#$}}
\newcount\nn
\newdimen\nsize \newdimen\msize \newdimen\ninept \ninept=9pt
\newbox\eqbox \setbox\eqbox=\hbox{\kern2pt\eightrm=\kern2pt}
 
\tenpoint
\noindent This is a list of all corrections made to {\sl Computers \&
Typesetting}, Volumes A,~C, and E\null, since 30 September 1989 (when
the revisions for \TeX\ Version 3.0 and \MF\ Version 2.0 were made).
Corrections made to the softcover version of {\sl The \TeX book\/} are
the same as corrections to Volume~A\null. Corrections to the softcover
version of {\sl The \slMF\kern1ptbook\/} are the same as corrections
to Volume~C\null.  Some of the corrections below have already been made in
reprintings of the books. Hundreds of changes, too many to list here,
have been made to Volumes B~and~D because of the upgrades to \TeX\ and
\MF\null.  Readers who need up-to-date information on the \TeX\ and
\MF\ programs should refer to the |WEB| source files until new
printings of Volumes B~and~D are issued. \looseness=-1
 
%
% volume A
 
\bugonpage A99, line 4 from the bottom (2/22/90)
 
\ninepoint\indent
to be chosen because there was no feasible
way to keep total demerits small.
 
\bugonpage A156, line 2 (11/18/89)
 
\ninepoint
Commands like |\mathchardef\alpha="010B| are used in
Appendix~B to define\cutpar
 
\bugonpage A171, lines 24--26 (3/13/90)
 
\ninepoint\noindent
formula produces a result exactly equivalent to
`|\left(|\<subformula>|\right)|', when the \<subformula> doesn't end
with Punct, except that the {delimiters} are forced to
be of the |\big| size regardless of the height and depth of the subformula.
 
\bugonpage A193, lines 16--18 (12/2/89)
 
\ninepoint\noindent
line if you insert
`^|\noalign||{|^|\break||}|'
after the |\cr| for that line. You can prohibit {\sl all\/} breaks
in an |\eqalignno| if you set ^|\interdisplaylinepenalty||=10000|; or you
can enclose the whole works in a ^|\vbox|:
 
\bugonpage A233, bottom 9 lines, and top three on next page (12/2/89)
 
\danger The |\+| macro in Appendix~B works
by putting the \<text> for each column that's followed by~|&|
into an hbox as follows:
\begindisplay
|\hbox to |\<column width>|{|\<text>|\hss}|
\enddisplay
The ^|\hss| means that the text is normally flush left, and that it can
extend to the right of its box. Since |\hfill| is ``more infinite'' than
|\hss| in its ability to stretch, it has the effect of right-justifying or
centering as stated above. Note that |\hfill| doesn't shrink, but |\hss|
does; if the text doesn't fit in its column, it will stick out at the right.
You could cancel the shrinkability of |\hss| by adding ^|\hfilneg|; then
an oversize text would produce an overfull box.
You could also center some text by putting `|\hss|' before it and just
`|&|' after it; in that case the text would be allowed to extend to the
left and right of its column.
 The last column of a |\+|~line (i.e., the column entry that is
followed by |\cr|) is treated differently: The
\<text> is simply put into an hbox with its natural~width.\looseness=-1
 
\bugonpage A254, line 5 from the bottom (10/5/89)
 
\ninepoint\noindent
|\vsize| hasn't changed, and if all insertions have been
held in place, the same page break\cutpar
 
\bugonpage A286, lines 30--32 (3/13/90)
 
\ninepoint\noindent
reading and expanding this \cstok{par}
token, \TeX\ will see the \<vertical command> token again. \ (The current
meaning of the control sequence ^|\par| will be used; \cstok{par} might no
longer stand for \TeX's |\par| primitive.)
 
\bugonpage A290, lines 12--13 (3/24/90)
 
\ninepoint\noindent
simply a single Ord atom without subscripts or superscripts,
or an Acc whose nucleus is an Ord, the
enclosing braces are effectively removed.
 
\bugonpage A340, nonblank line 11 (3/13/90)
 
\tenpoint\noindent
|\topglue 1in % This makes an inch of blank space (1in=2.54cm).|
 
\bugonpage A342, line 6 ( 3/13/90)
 
\tenpoint\noindent
|\topglue| but not |\hglue|. It does not
illustrate |\raggedright| setting of para-\cutpar
 
\bugonpage A346, lines 20--21 (12/3/89)
 
\ninepoint\noindent
streams used by ^|\read| and ^|\write|, to math
^{families} used by ^|\fam|, to sets of hyphenation rules used by
^|\language|, and to insertions (which require
^|\box|, ^|\count|, ^|\dimen|, and ^|\skip| registers all having the
same number).
 
\bugonpage A346, line 20 from the bottom (12/3/89)
 
\ninepoint\noindent
manent value. These macros use registers
|\count10| through |\count20| to hold the\cutpar
 
\bugonpage A346, lines 8--13 from the bottom (12/3/89)
 
\ninepoint\noindent
number was allocated. The inside story of how allocation is actually performed
should be irrelevant when the allocation macros are used at a higher level;
you mustn't assume that |plain.tex| really does allocation in any
particular way.
\beginlines
|\count10=22 % this counter allocates \count registers 23, 24, 25, ...|
\endgroup
 
\bugonpage A347, lines 2--5 (12/3/89)
 
\ninepoint{\parindent=0pt
|\count19=0  % this counter allocates language codes 1, 2, 3, ...|\parbreak
|\count20=255 % this counter allocates insertions 254, 253, 252, ...|\parbreak
|\countdef\insc@unt=20 % nickname for the insertion counter|\parbreak
|\countdef\allocationnumber=21 % the most recent allocation|\parbreak
|\countdef|^|\m@ne||=22 \m@ne=-1 % a handy constant|\par}
 
\bugonpage A347, new line after former line 17 (12/3/89)
 
\ninepoint\noindent
|\outer\def|^|\newlanguage||{\alloc@9\language\chardef\@cclvi}|
 
\bugonpage A352, new line before line 6 from the bottom (3/13/90)
 
\ninepoint\noindent
|\def\topglue{\nointerlineskip \vglue-\topskip \vglue} % for top of page|
 
\bugonpage A355, line 8 from the bottom (12/3/89)
 
\ninepoint\noindent
|  \noindent{\bf#1.\enspace}{\sl#2\par}%|
 
\bugonpage A363, lines 8--9 from the bottom (12/8/89)
 
{\ninepoint\parindent=0pt
|  \if@mid \dimen@=\ht0 \advance\dimen@ by\dp\z@ |%
 |\advance\dimen@ by12\p@|\parbreak%
|    \advance\dimen@ by\pagetotal \advance\dimen@ by-\pageshrink|
\par}
 
\bugonpage A375, line 27 (10/30/89)
 
\ninepoint\noindent
depending on whether or not |\t|~contains
an asterisk. \ (Do you see why?) \ And here's\cutpar
 
\bugonpage A393, lines 3--5 from the bottom (12/3/89)
 
\ninepoint
|\hskip-.17em plus-3em minus.11em|\par
|\vadjust{}\penalty10000|\par
|\leaders\copy\dbox\hskip3.3\wd\dbox plus1fil minus.3\wd\dbox|
 
\bugonpage A444, line 4 (3/13/90)
 
\ninepoint\noindent
Shift box~$x$ down by ${1\over2}\bigl(h(x)-d(x)\bigr)
-a$, where $a=\sigma_{22}$, so that the operator character\cutpar
 
\bugonpage A450, line 8 (12/3/89)
 
\def\\#1{$_{\kern\scriptspace#1}$}
\ninepoint\indent
{\qquad\tt\\0h\\0e\\0n\\5a\\0t\\0 \\1n\\0a\\0 \\0n\\2a\\0t\\0
  \\1t\\0i\\0o\\0 \\2i\\0o\\0 \\0o\\2n\\0}
 
\bugonpage A450, line 14 (12/3/89)
 
\ninepoint
{\tt.\\0h\\0y$_3$p\\0h\\0e\\2n\\5a\\4t\\2i\\0o\\2n\\0.}
 
\bugonpage A450, lines 19 and 20 (12/3/89)
 
\ninepoint\vskip-10pt
\begindisplay
\tt\\0o\\2n\\0
\\0o\\0n\\1c\\0
\\1c\\0a\\0
\\1n\\0a\\0
\\0n\\2a\\0t\\0
\\1t\\0i\\0o\\0
\\2i\\0o\\0
\\0o\\2n\\0
\enddisplay
and this yields `{\tt\\0c\\0o\\2n\\1c\\0a\\0t\\0e\\1n\\2a\\1t\\2i\\0o\\2n\\0}',
i.e., `|con-cate-na-tion|'.
 
\bugonpage A455, last lines before the quotes (11/30/89)
 
\ninepoint\noindent
sit yourself (even in restricted horizontal mode) by saying
^|\setlanguage|\<number>;\break
 this changes the current language but it
does not change |\language|. Each what-\break
sit records the current
|\lefthyphenmin| and |\righthyphenmin|.
 
\bugonpage A467, right column (12/3/89)
 
\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}%
|\hfilneg|, 72, 100, 233, 283, 285, 290, 397.
 
\bugonpage A468, right column (12/2/89)
 
\eightpoint
|\interdisplaylinepenalty|, {\it193}, 349, 362.
 
\bugonpage A469, left column (12/3/89)
 
\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}%
|\language| (hyphenation method), 273, 346, $\underline{455}$.
 
\bugonpage A469, right column (10/30/89)
 
\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}%
|\lefthyphenmin|, 273, {\it364}, $\underline{454}$, 455.
 
\bugonpage A472, left column (12/3/89)
 
\eightpoint
|\newlanguage|, 346, $\underline{347}$.
 
\bugonpage A476, left column (10/30/89)
 
\eightpoint\indent\hbox to0pt{\hss\lower1pt\hbox{*}}%
|\righthyphenmin|, 273, {\it364}, $\underline{454}$, 455.
 
\bugonpage A479, new entry (3/13/90)
 
\eightpoint
|\topglue|, {\it340}, $\underline{352}$.
 
\bugonpage A480, right column (3/13/90)
 
\eightpoint
|\vglue|, $\underline{352}$, {\it408}.
 
\bugonpage A483, the Providence lines (10/8/89)
 
\noindent[Change the first one to
\begintt
Providence RI 02940\kern.05em-9506, USA.
\endtt
Then the second one will be
\begindisplay
Providence RI 02940\kern.05em-9506, USA.
\enddisplay
The second line will also appear on page C361.]
 
%
% volume B
\hsize=35pc
\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
\def\to{\mathrel{.\,.}} % double dot, used only in math mode
 
 
%
% volume C
\hsize=29pc
\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
 
\bugonpage C220, top line (3/13/90)
 
\ninepoint\noindent
modes you get into by hitting
`|S|', `|R|', or `|Q|', respectively, in response to error messages\cutpar
 
\bugonpage C252, line 16 (3/13/90)
 
\ninepoint\indent
| for i:=1 upto n_windows: display blankpicture inwindow i; endfor|
 
\bugonpage C264, lines 4--6 from the bottom (3/24/90)
 
\ninepoint\noindent
|vardef |^|counterclockwise|| primary c =|\par\noindent
| if turningcheck>0:|\par\noindent
|  interim |^|autorounding||:=0;|\par\noindent
|  if |^|turningnumber|| c <= 0: reverse fi fi c enddef;|
 
\bugonpage C306, line 6 (3/13/90)
 
\ninepoint\noindent
| ligtable "'": "'" =: oct"042",                         % close quotes|
 
\bugonpage C309, second line from bottom (11/18/89)
 
\ninepoint\noindent
| define_whole_vertical_blacker_pixels(vair,slab,| $\cdots$ |);|
 
\bugonpage C315, line 9 from the bottom (1/2/90)
 
\ninepoint\noindent
units of printer's points):
 
\bugonpage C337, line 4 from the bottom (1/7/90)
 
\ninepoint\noindent
|\def\startfont{\font\testfont=\fontname \spaceskip=0pt|
 
%
% Volume D
\hsize=35pc
\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
\def\to{\mathrel{.\,.}} % double dot, used only in math mode
 
%
% volume E
\hsize=29pc
\def\dashto{\mathrel{\hbox{-\kern-.05em}\mkern3.9mu\hbox{-\kern-.05em}}}
 
\bugonpage E325, line 13 (3/13/90)
 
\ninepoint\noindent
{\bf if} \\{serifs}: $x_{3r}=\max(x_{1r},{\rm hround}(x_1+.5\\{dot\_diam}
 -.2\\{jut})-.5\\{tiny})$\par\noindent
{\bf else}: $x_3=x_1-.5$ {\bf fi};
 
\bugonpage E483, line 4 (3/13/90)
 
\ninepoint
\rightline{\% Character codes \oct{000}--\oct{100} and \oct{133}--\oct{177}
 are generated.}
 
\bugonpage E544, line 5 (3/13/90)
 
\ninepoint\noindent
\hskip 3em\vdots\hskip2em\raise2pt\hbox{(the rest of the
 program for `$\gamma$' in |greekl| comes here)}
 
\bugonpage E557, line 9 (3/13/90)
 
\ninepoint
\rightline{\sl`Nevermore---Ah nevermore.'\thinspace''}
 
\bugonpage E558, line 21 (3/13/90)
 
\eightpoint\noindent
|Clasp a rare and radiant maiden whom the angels name Lenore."|
 
\bugonpage E570, lines 27--28 look better with proper skewchars (3/13/90)
 
\begingroup
\tenpoint\bf
\textfont0=\tenbf \scriptfont0=\sevenbf
\font\boldi=cmmib10 \font\boldsy=cmbsy10
\skewchar\boldi='177 \skewchar\boldsy='60
\textfont1=\boldi
\textfont2=\boldsy
\noindent Here's some bold 10-point math:
${\hat A}^\Gamma_0
+{\check B}^\Delta_1
-{\tilde C}^\Theta_2
\times{\acute D}^\Lambda_3
/{\grave E}^\Xi_4
\oplus{\dot F}^\Pi_5
\ominus{\ddot G}^\Sigma_6
\otimes{\breve H}^\Phi_7
\oslash{\bar I}^\Psi_8
\odot{\vec J}^{\,\Omega}_9$.
\endgroup
 
%
\bye
 
 
########################################################################
 
Additions to MF84.BUG as of 25 Mar 90
 
553. Global variable used prematurely in do_add_to (Alan Jeffrey, 9 Feb 90)
@x module 403
@!cur_path_type:double_path_code..also_code; {likewise}
@y
@!cur_path_type:double_path_code..contour_code; {likewise}
@z
@x module 1059
begin get_x_next; var_flag:=thing_to_add; scan_primary;
if cur_type<>token_list then
  @<Abandon edges command because there's no variable@>
else  begin lhs:=cur_exp; cur_path_type:=cur_mod;@/
  cur_type:=vacuous; get_x_next; scan_expression;
  if cur_path_type=also_code then @<Augment some edges by others@>
@y
@!add_to_type:double_path_code..also_code; {modifier of \&{addto}}
begin get_x_next; var_flag:=thing_to_add; scan_primary;
if cur_type<>token_list then
  @<Abandon edges command because there's no variable@>
else  begin lhs:=cur_exp; add_to_type:=cur_mod;@/
  cur_type:=vacuous; get_x_next; scan_expression;
  if add_to_type=also_code then @<Augment some edges by others@>
@z
@x module 1064
else  begin lhs:=null;
@y
else  begin lhs:=null; cur_path_type:=add_to_type;
@z
 
554. Balance the parens showing on the terminal (for Lispers).
@x module 631
@!in_open : 0..max_in_open; {the number of lines in the buffer, less one}
@y
@!in_open : 0..max_in_open; {the number of lines in the buffer, less one}
@!open_parens : 0..max_in_open; {the number of open text files}
@z
@x module 657
in_open:=0; max_buf_stack:=0;
@y
in_open:=0; open_parens:=0; max_buf_stack:=0;
@z
@x module 681
  begin print_char(")"); force_eof:=false;
  update_terminal; {show user that file has been read}
@y
  begin print_char(")"); decr(open_parens);
  update_terminal; {show user that file has been read}
  force_eof:=false;
@z
@x module 793
print_char("("); print(name); update_terminal;
@y
print_char("("); incr(open_parens); print(name); update_terminal;
@z
@x module 1209
if job_name=0 then open_log_file;
@y
if job_name=0 then open_log_file;
while open_parens>0 do
  begin print(" )"); decr(open_parens);
  end;
@z
 
-----------Here I draw the line with respect to further changes
 
555. (I sincerely hope that there won't be any more)
 
 
########################################################################
 
Differences between WEAVE.WEB versions 3.0 and 3.1
 
;COMPARISON OF TX:<TEX.TEX>WEAVE-40.WEB.1 AND TX:<TEX.NEW>WEAVE-41.WEB.1
;OPTIONS ARE    /E /3
 
**** FILE TX:<TEX.TEX>WEAVE-40.WEB.1, 1-22 (1401)
% Version 3, for Sewell's book, fixed a long-line bug in input_ln (March, 1989).
% Version 3.1 fixed a bug for programs with only one module (April, 1989).
% Version 4 was major change to allow 8-bit input (September, 1989).
 
% Here is TeX material that gets inserted after \input webmac
**** FILE TX:<TEX.NEW>WEAVE-41.WEB.1, 1-22 (1401)
% Version 3, for Sewell's book, fixed long-line bug in input_ln (March, 1989).
% Version 3.1 fixed a bug for programs with only one module (April, 1989).
% Version 4 was major change to allow 8-bit input (September, 1989).
% Version 4.1, for Breitenlohner, avoids English-only output (March, 1990).
 
% Here is TeX material that gets inserted after \input webmac
***************
 
**** FILE TX:<TEX.TEX>WEAVE-40.WEB.1, 1-45 (2420)
  \centerline{(Version 4)}
  \vfill}
**** FILE TX:<TEX.NEW>WEAVE-41.WEB.1, 1-46 (2495)
  \centerline{(Version 4.1)}
  \vfill}
***************
 
**** FILE TX:<TEX.TEX>WEAVE-40.WEB.1, 1-72 (3524)
@d banner=='This is WEAVE, Version 4'
 
@ The program begins with a fairly normal header, made up of pieces that
**** FILE TX:<TEX.NEW>WEAVE-41.WEB.1, 1-73 (3601)
@d banner=='This is WEAVE, Version 4.1'
 
@ The program begins with a fairly normal header, made up of pieces that
***************
 
**** FILE TX:<TEX.TEX>WEAVE-40.WEB.1, 1-4450 (175079)
`\.{\\A\ section 101.}'; `\.{\\U\ sections 370 and 1009.}';
`\.{\\A\ sections 8, 27\\*, and 64.}'.
 
@p procedure footnote(@!flag:sixteen_bits); {outputs module cross-references}
**** FILE TX:<TEX.NEW>WEAVE-41.WEB.1, 1-4451 (175158)
`\.{\\A101.}'; `\.{\\Us370\ET1009.}'; `\.{\\As8, 27\\*, 51\ETs64.}'.
 
@p procedure footnote(@!flag:sixteen_bits); {outputs module cross-references}
***************
 
**** FILE TX:<TEX.TEX>WEAVE-40.WEB.1, 1-4461 (175460)
out4(" ")("s")("e")("c"); out4("t")("i")("o")("n");
@<Output all the module numbers on the reference list |cur_xref|@>;
**** FILE TX:<TEX.NEW>WEAVE-41.WEB.1, 1-4461 (175508)
@<Output all the module numbers on the reference list |cur_xref|@>;
***************
 
**** FILE TX:<TEX.TEX>WEAVE-40.WEB.1, 1-4472 (175912)
out("~");
loop@+  begin out_mod(num(cur_xref)-flag);
**** FILE TX:<TEX.NEW>WEAVE-41.WEB.1, 1-4471 (175907)
@.\\As@>
@.\\Us@>
loop@+  begin out_mod(num(cur_xref)-flag);
***************
 
**** FILE TX:<TEX.TEX>WEAVE-40.WEB.1, 1-4476 (176085)
  if (num(xlink(cur_xref))>flag)or(cur_xref<>xlink(q)) then out(",");
    {not the last of two}
  out(" ");
  if num(xlink(cur_xref))<=flag then out4("a")("n")("d")("~"); {the last}
  end;
**** FILE TX:<TEX.NEW>WEAVE-41.WEB.1, 1-4476 (176089)
  if num(xlink(cur_xref))>flag then out2(",")(" ") {not the last}
  else begin out3("\")("E")("T"); {the last}
@.\\ET@>
    if cur_xref<>xlink(q) then out("s"); {the last of more than two}
@.\\ETs@>
    end;
  end;
***************
 
 
########################################################################
 
Differences between old WEBMAC.TEX and new
 
;COMPARISON OF TX:<TEX82>WEBMAC.CM.1 AND TX:<BNB.WORK>WEBMAC.TEX.1
;OPTIONS ARE    /E /3
 
**** FILE TX:<TEX82>WEBMAC.CM.1, 1-2 (63)
\xdef\fmtversion{\fmtversion+WEBMAC1.4}
\parskip 0pt % no stretch between paragraphs
**** FILE TX:<BNB.WORK>WEBMAC.TEX.1, 1-2 (63)
\xdef\fmtversion{\fmtversion+WEBMAC4.0} % identifies current set of macros
\parskip 0pt % no stretch between paragraphs
***************
 
**** FILE TX:<TEX82>WEBMAC.CM.1, 1-58 (2559)
\def\note#1#2.{\Y\noindent{\hangindent2em\baselineskip10pt\eightrm#1 #2.\par}}
\def\lapstar{\rlap{*}}
**** FILE TX:<BNB.WORK>WEBMAC.TEX.1, 1-58 (2594)
\def\note#1#2.{\Y\noindent{\hangindent2em\baselineskip10pt\eightrm#1~#2.\par}}
\def\lapstar{\rlap{*}}
***************
 
**** FILE TX:<TEX82>WEBMAC.CM.1, 1-62 (2808)
\def\A{\note{See also}} % cross-reference for multiply defined section names
\def\B{\ma@\{}}egin olled comment
**** FILE TX:<BNB.WORK>WEBMAC.TEX.1, 1-62 (2843)
\def\A{\note{See also section}} % crossref for doubly defined section name
\def\As{\note{See also sections}} % crossref for multiply defined section name
\def\B{\mathopen{\.{@\{}}} % begin controlled comment
***************
 
**** FILE TX:<TEX82>WEBMAC.CM.1, 1-68 (3169)
\def\F{\defin{format}} % format definition
**** FILE TX:<BNB.WORK>WEBMAC.TEX.1, 1-69 (3282)
\def\ET{ and~} % conjunction between two section numbers
\def\ETs{, and~} % conjunction between the last two of several section numbers
\def\F{\defin{format}} % format definition
***************
 
**** FILE TX:<TEX82>WEBMAC.CM.1, 1-96 (4553)
\def\U{\note{This code is used in}} % cross-reference for uses of sections
\let\V=\lor % logical or
**** FILE TX:<BNB.WORK>WEBMAC.TEX.1, 1-99 (4804)
\def\U{\note{This code is used in section}} % crossref for use of a section
\def\Us{\note{This code is used in sections}} % crossref for uses of a section
\let\V=\lor % logical or
***************
 
**** FILE TX:<TEX82>WEBMAC.CM.1, 1-186 (9074)
  \def\U{\note{Used in}} % cross-reference for uses of sections
  \def\:{\par\hangindent 2em}\let\*=*\let\.=\ttentry}
**** FILE TX:<BNB.WORK>WEBMAC.TEX.1, 1-190 (9406)
  \def\U{\note{Used in section}} % crossref for use of a section
  \def\Us{{Used in sections}} % cro for uses on
  \def\:{\par\hangindent 2em}\let\*=*\let\.=\ttentry}
***************
 
 
########################################################################
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  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 025 ]