Thomas Bushnell, BSG writes: > Frank Mittelbach <[EMAIL PROTECTED]> writes: > > > Not perfectly but more or less it does. First of all, true > > compatibility backward and forward can only be achived by no change > > at all, even adding only features would potentially break existing > > documents... > > It either *does* break them or it does not, and it's actually very > easy to know the difference. It does not "potentially" do anything.
of course it does only "potentially" break things. What you don't seem to understand is that the users document + the code from packages + the code from the kernel together determine the result. You aren't in a situation like with C programs where data and program are strictly separated. If you add a new option to gcc then nothing will break on all with respect to existing usages. If on the other hand you extend a language that in itself provides mechanisms to extend itself then all types of breakage are possible depending on the data (!) fed to it. TeX and as a result LaTeX is a language like lisp where there is no distinction between data and code. To make the most simples of an example, suppose a user document contains \usepackage{foo} \newcommand\bar{...} then if you extend the package foo to define a command bar (add a feature) that particular document breaks. Simple as that. frank -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]