[tex-live] e-TeX register sparse array bug

Olaf Weber olaf at infovore.xs4all.nl
Thu Aug 12 11:33:42 CEST 2004


Through the Debian people I found out about a bug in e-TeX's handling
of registers.

$ cat etex-bug.tex
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\makeatletter
\dimendef\z@=256\relax
\z@=0pt\relax
\[aa\]
\show\z@
\end{document}
$ latex etex-bug.tex
This is pdfeTeX, Version 3.141592-1.20a-rc7.1-2.1 (Web2C 7.5.3)
output format initialized to DVI
entering extended mode
(./etex-bug.tex
LaTeX2e <2003/12/01>
Babel <v3.8c> and hyphenation patterns for english, french, german, ngerman, ca
talan, croatian, czech, danish, dutch, estonian, finnish, greek, hungarian, ita
lian, latin, mongolian, norwegian, polish, portuguese, romanian, russian, slove
ne, slovak, spanish, swedish, ukenglish, ukrainian, welsh, dumylang, nohyphenat
ion, loaded.
(/usr/local/share/texmf-dist/tex/latex/base/article.cls
Document Class: article 2004/02/16 v1.4f Standard LaTeX document class
(/usr/local/share/texmf-dist/tex/latex/base/size10.clo))
(/usr/local/share/texmf-dist/tex/latex/amslatex/amsmath.sty
For additional information on amsmath, use the `?' option.
(/usr/local/share/texmf-dist/tex/latex/amslatex/amstext.sty
(/usr/local/share/texmf-dist/tex/latex/amslatex/amsgen.sty))
(/usr/local/share/texmf-dist/tex/latex/amslatex/amsbsy.sty)
(/usr/local/share/texmf-dist/tex/latex/amslatex/amsopn.sty)) (./etex-bug.aux)
> \z@=\count652.
l.8 \show\z@

?

Note that it prints \z@=\count652 instead of printing \z@=\dimen256
like omega or aleph does.  This is evidence that e-TeX's internal
datastructures are messed up.

I believe the problem here to be that register 256 was deallocated
despite references to it still existing, this because \z@ started out
as one of the registers in the 0..255 range, and the references made
while it was in that range weren't accounted for.  The amsmath code is
needed just to provide enough "churn" to actually make this problem
manifest itself in the example.

-- 
Olaf Weber

               (This space left blank for technical reasons.)



More information about the tex-live mailing list