[Tex/LaTex] What’s new in TeX, version 3.14159265

knuthtex-core

The new Knuth TeX has been released in early this month, and its version number is 3.14159265 now. It can be downloaded here.

What's new in this release?

And a further-more question, where can one find the change log of TeX (itself), and will D.E.K. himself summarize the change(s) somewhere?

Best Answer

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.

Related Question