[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: forwarded message from Jeff Licquia

> Date: Fri, 19 Jul 2002 14:45:35 +1200
> From: Nick Phillips <nwp@nz.lemon-computing.com>

> Under the LPPL we are not allowed to fix the engine either; we have to wait
> for D. E. Knuth to do it. Which I'm sure he would do, unless he happened
> to have been run over by a bus that morning (unlikely, as he claims to be
> sitting at home working on Volume 4 of The Art of Computer Programming
> most of the time, but...). In which case we would have a nightmare time
> trying to migrate all our LaTeX users from LaTeX to not-LaTeX, which would
> be identical to LaTeX but for the fact that it used not-quite-TeX instead
> of TeX...

I think there is a misunderstanding here. You seem to think that at
the run time LaTeX makes the choice to use TeX for its engine. The
situation is exactly opposite: the engine makes the choice of using a
macro package. When the executable "tex" is called with argv[0] equal
to "latex", it loads the file latex.fmt, which is LaTeX. The
consequence is, *any* engine that can grok latex.fmt, can use
LaTeX. Actually, there ARE non-TeX programs that use LaTeX as macro
packages. The most popular among such programs is pdftex. I use pdftex
almost as often as tex. When pdftex is called as pdflatex, it loads
latex.fmt and processes the documents "almost like TeX". The only
difference is, it produces PDF output instead of DVI. The authors of
pdftex took care to make the printed output of their program in the
"compatibility mode" to be exactly like the output of TeX, but they
were not compelled to do this by the license.

It does not mean LaTeX is completely agnostic about the engine: the
engine can a flag (pdftex sets \pdfoutput) which can be read from
LaTeX and used to do things that are possible with pdftex but
impossible with Knuthian TeX. Nevertheless you do NOT need to change
LaTeX kernel to change the engine.

> If on the other hand the LaTeX license allowed us to do "whatever we like,
> so long as anything that's called LaTeX produces identical output (documents)
> to unmodified LaTeX for all valid input" then we could butcher LaTeX to use
> a not-quite-TeX that had the bug fixed, and still produced identical output.

This is impossible due to a nice rendition of Goedel
theorem. Basically it says that if your language is complex enough
(well, if you can program a Turing machine in your language), then you
cannot make a program that can in finite time automatically prove or
disprove that a pair of programs gives identical results for all valid
inputs. Since TeX the language is Turing-complete (note that TeX the
engine is not, because it has limitation for the number of registers),
you never can prove that two LaTeXs give identical output for all
valid inputs.

Good luck


What makes us so bitter against people who outwit us is that they think
themselves cleverer than we are.

To UNSUBSCRIBE, email to debian-legal-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

Reply to: