TeX Year 2000 (Y2K) Issues in Summary
This page summarizes the year 2000 issues surrounding TeX and METAFONT, based
on discussions in the newsgroup comp.text.tex and among the members
of the mailing list email@example.com. We attempt herein to
merely set forth the chief matters at hand, without engaging the controversial
aspects of what solutions should be taken.
See the TrueTeX home page at http://truetex.com.
1. Crashing: The programs TeX and METAFONT themselves will not
crash due to dates. (However, each executable implementation depends on
a run-time library and an operating system, which should be
evaluated in this regard.)
2. Timestamps: A 2-digit year is (a) printed in logfiles, and (b) stored in
format file and base file time stamps. These items should not be of
general concern, because they are intended for human readers and not as
input to other programs.
On November 24, 1998, Donald Knuth
granted an unusual permission to modify TeX and METAFONT to use 4-digit
(nearly all implementations, such as web2c, had already been doing so),
I agree that it would now be best to remove the "mod 100" from TeX
module 1328 and from MF module 1200 (and from METAPOST in the
corresponding place). I hereby give permission to implementors to make
such changes in their change files. No change to the version numbers are
needed. [As reported by Barbara Beeton on the tex-implementors
This permission means that 4-digit timestamps, while changing the output
of TeX and METAFONT slightly from the current autographs,
still meet Knuth's authoritative standards
required of software calling itself TeX or METAFONT.
3. The \year primitive: TeX TRIP certification, in the strictest sense, does not
require that \year return a meaningful value (TeX may be certifiably
implemented on platforms that do not even supply date reporting, such as
standard Pascal). The TeXbook does define \year as "the current year of our
Lord", which is the only correct meaning of \year for those implementations
which can supply a meaningful value, which is to say nearly all of them.
In short, TeX implementations should provide a value in \year giving the
4-digit year Anno Domini, or the value 1776 if the platform does not
support a date function. TeX does not provide any state variables to
indicate whether \year contains a meaningful value, and while 1776 could have
been considered a signal value for a lack of meaning to \year, this is not a
4. External software: The TeX corpus embodies many accessory programs, such
as macro packages and DVI translators, which may compute dates from the
value of \year (or rarely, from timestamps). Such accessories should be
checked individually for correct behavior when \year is assumed to return
a correct 4-digit \year value before and after 2000. Accessories with an
additional "defensive level" of correctness will behave reasonably when
\year contains a two-digit value or a meaningless value such as 1776.
Last updated Tue Nov 24 15:14:55 EST 1998.