What's new in TeX, version 3.14159265?

There have been two bug fixes, one in TeX and one in Metafont. If you look into the tarball, you find a subdirectory called errata. In it you find

tex82.bug
mf84.bug
errorlog.tex

In the last file there's a resumé of the changes, in the first two you can find the actual corrections.1

The bug fix in TeX is related to the control sequence with empty name.

428​. \endcsname\csname should be followed by space in print_cs, just as all other multiletter control sequences are (found by Oleg Bulatov, 14 Sep 2008)

@x module 262
      begin print_esc("csname"); print_esc("endcsname");
@y
      begin print_esc("csname"); print_esc("endcsname"); print_char(" ");
@z

If one runs the (admittedly bizarre) TeX file

\endlinechar=-1
% define the empty control sequence
\def\
{foo}
% define another macro
\def\baz{\
text}
% show \baz
\show\baz

the output on the terminal is

> \baz=macro:
->\csname\endcsnametext .
l.9 \show\baz

while, with the bug fix, it will be

> \baz=macro:
->\csname\endcsname text.
l.9 \show\baz

as it should. The result of \show applied to the empty control sequence is always represented as \csname\endcsname: the bug produces invalid output, as it can be clearly seen.

The bug fix in Metafont is related to a memory leak:

572​. Memory leak in make_ellipse on symmetric pens that don't have a point on the x-axis (Eberhard Mattes, 03 June 2008)
@x module 536
done1: link(p):=s; beta:=-y_coord(h);
@y
done1: if (link(p)<>null) then free_node(link(p),knot_node_size);
link(p):=s; beta:=-y_coord(h);
@z

Congratulations to Oleg Bulatov and Eberhard Mattes (the creator of emTeX, by the way) for having being awarded the check from DEK.


By the way, there is a bug in the bug list: in the first above reported line it should be

\csname\endcsname

and not

\endcsname\csname

Is this worthy a check? ;-)


Footnote

1 An article by Knuth in TUGboat was published after I wrote this answer.


In the file ./errata/TeX82.bug, you will find what you want:

428. \endcsname\csname should be followed by space in print_cs, just as all
other multiletter control sequences are (found by Oleg Bulatov, 14 Sep 2008)

@x module 262
      begin print_esc("csname"); print_esc("endcsname");
@y
      begin print_esc("csname"); print_esc("endcsname"); print_char(" ");
@z

I don't think this is something that could be called 'new (feature)', however, our TeX has just stepped further to the version pi. Oh, if you've read the message just below, you may not like this 'bad news'. :(

999. The absolutely final change (to be made after my death)
@x module 2
@d banner=='This is TeX, Version 3.14159265' {printed when \TeX\ starts}
@y
@d banner=='This is TeX, Version $\pi$' {printed when \TeX\ starts}
@z
When this change is made, the corresponding line should be changed in
Volume B, and also on page 23 of The TeXbook.
My last will and testament for TeX is that no further changes be made
under any circumstances. Improved systems should not be called simply `TeX';
that name, unqualified, should refer only to the program for which I have
taken personal responsibility.  -- Don Knuth

Tags:

Knuth

Tex Core