Subject: Announcement of TeX 2.96-2.98; other details
From: bbeeton <[email-masked]>
To: [email-masked]
Date: Fri 3 Mar 89 10:58:54-EST

Date:	  3 Mar 89				Message No:	013

To:	  TeX implementors and distributors

From:	  Barbara Beeton

Subject:  Announcement of TeX 2.96-2.98; other details

Some of you are already aware that there exist versions of TeX beyond
2.95.  Although I have had that information for some time, lack of time
and hardware problems have prevented me from obtaining all the details
and sending them out to you.  This morning I received from Don Knuth a
report that another bug has been found and fixed, bring the version to
2.98.  Since I am leaving tomorrow morning for a week of standards
meetings (where I will not have any computer access), and don't have
time before I leave to retrieve the details from Knuth's computer, I
will instead include Knuth's description of the reasons for the changes,
and promise to send the details as soon as possible after I return.

In one of the last few messages, there was a reference in the ERRATA.TeX
extracts to an item, dated 12/23/88, that hadn't been sent to you.  The
missing errata are listed below, incorporating the item of 1/4/89 that
cited the missing one.  Needless to say, the additional bug fixes will
involve more errata; those will be sent along with the bug details.

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

Knuth's descriptions of the changes

2.96:

	[ I can't find the message from Knuth notifying me of the
	  update, but this is the information line in TEX.WEB. ]

   % Version 2.96 corrects bug in "Infinite shrinkage" recovery (January 1989).

2.97:

   In TEX.WEB, there are one too many instances of:
	@.End of file on the terminal@>

   ... when I created version 2.95 in December, I made a bunch of changes
   to ERRATA.TEX etc but I left out the most important change to TEX.WEB
   itself! Namely, consider the following excerpt from TEX82.BUG[tex,dek]:

349. By popular request, undo #347 and fix the bug a more complex way.
@x module 71 [this undoes change #347]
if not input_ln(term_in,true) then t_open_in;
@y
if not input_ln(term_in,true) then fatal_error("End of file on the terminal!");
@z
@x [and there's a lot more]

   Well, I forgot to install that. So the index was right, but not the
   program... At SAIL, I'm unable to test EOF on the terminal.

   *** Folks, please excuse this dreadful oversight. The maintainers of TeX
   must think I'm completely off my rocker. I have now fixed TEX.WEB at
   SAIL, but not at SCORE or anywhere else. I've changed the version number
   to 2.97 simply because there exist versions 2.95--2.96 in which this typo
   is present. Version 2.97 is version 2.96 the way I thought 2.96 was.
   (I also changed the version numbers in INITEX.CH and TRIP*.)

2.98

   Frank Mittelbach and Rainer Schoepf of Gutenberg's city (Mainz) have
   discovered the following bug: If you say simply
	\aftergroup\relax\dump
   to INITEX, you get a spurious error message (one that David Siegel
   used to tell me was pretty funny).

   It was very easy to fix this bug, although I did have to change
   TRIP.TEX as well as the other TRIP* files in order to make TRIP
   verify its absence.

   Another $163.84; am I really going to be able to double the amount
   of reward next year?

other questions:

Wayne Sullivan sent the following inquiry about possible bugs in 2.95:

   I think I have found two 'bugs' in TeX 2.95, athough it would be more
   apt to call them 'mites' rather than bugs, for they have no effect on
   practically all existing installations of TeX. The first is that there
   is to my knowledge no fixed limit on the actual size of font_area or
   font_name for a given font. If either of these exceeded 255 bytes in
   length, the an invalid DVI file could result. The second is that
   get_strings_started calls make_string before the value of init_str_ptr
   is set. In the event of overflow, init_str_ptr is used before it has
   been defined.

Knuth's reply:

   ... I looked at this and decided they were NOT bugs.

   1) We could make TeX guarantee that font area and font name be at most
   255 bytes long, by putting the following code into module 560 just
   after "g\gets null_font":
	if (length(nom)>255) or (length(aire)>255) then
		begin print_err("Font name too long");
		help1("I've substituted \nullfont for a weird font name.");
		error; goto done;
		end;
   But, the DVI problem could arise only if TeX was able to read a valid
   TFM file with an unreasonably long name and area. If we assume that the
   operating system doesn't break, nobody would be able to use this font
   anyway from a DVI file, so I claim such a TFM file will never exist in
   a real system.

   2) It's true that INITEX uses string_vacancies to abort with an
   understandable error message if the implementor has set pool_size too low,
   while INITEX can abort strangely if the implementor has set max_strings
   too low. (The problem in that case is even worse than Mr Sullivan imagines:
   The string "number of strings" may not even be present, nor would its
   array index necessarily be valid.) But an implementor who is that stupid
   doesn't deserve having his hand held....

   I conclude that no changes to 2.95 are needed (yet).

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

Extracts from ERRATA.TeX (differences effective Dec 88)

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

**** FILE PS:<TEX.DOC>ERRATA.TEX.17, 4-34 (21096)
\bugonpage C262, line 15 (11/6/88)

\ninepoint\noindent
|string base_name, base_version; base_name="plain"; base_version="1.6";|
**** FILE PS:<TEX.DOC>ERRATA.NEW.2, 4-34 (21096)
\bugonpage C262, line 15 (12/23/88)

\ninepoint\noindent
|string base_name, base_version; base_name="plain"; base_version="1.7";|

\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)

\ninepoint\noindent
|def |^|cutdraw|| expr p = % caution: you may need autorounding=0|

\bugonpage C272, lines 5 and 6 (12/23/88)

\ninepoint\noindent
|  (cut_ scaled (1+max(pen_lft,pen_rt,pen_top,pen_bot))|\par\noindent
|   rotated theta shifted z)t_;|

\bugonpage C273, lines 20 and 22 (9/26/88)
***************

**** FILE PS:<TEX.DOC>ERRATA.TEX.17, 4-45 (21435)
\bugonpage C331, just below the illustration (7/18/87)
**** FILE PS:<TEX.DOC>ERRATA.NEW.2, 4-56 (21754)
\bugonpage C290, line 6 from the bottom (12/23/88)

\ninepoint\noindent
(2)~A throwaway variable,
`\\{whatever}', nullifies an unwanted equation at the beginning\cutpar

\bugonpage C331, just below the illustration (7/18/87)
***************

**** FILE PS:<TEX.DOC>ERRATA.TEX.17, 4-57 (21758)
\bugonpage C350, left column (7/6/88)
**** FILE PS:<TEX.DOC>ERRATA.NEW.2, 4-74 (22253)
\bugonpage C346, entry for {\tt autorounding} (12/23/88)

\eightpoint\indent\hskip20pt
212, {\it262}, {\it264}, 271--272.

\bugonpage C350, left column (7/6/88)
***************

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

[ end of message 013 ]
-------