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

Re: TeX Licenses & teTeX (Was: Re: forwarded message from Jeff Licquia)



On Thu, Aug 08, 2002 at 03:04:11PM -0400, Boris Veytsman wrote:
> > Date: Thu, 8 Aug 2002 20:26:26 +0200
> > From: "Bernhard R. Link" <blink@informatik.uni-freiburg.de>
> 
> > 
> > I will try to describe some worst-case scenario, to describe, what
> > it is 
> 
> 
> [the scenario is omitted].
> 
> You would be surprised, but this scenario is *not* imaginary. Actually
> this is what really happened to me. I think this story might be
> instructive in this discussion, so please bear with me. 
> 
> This story is very unusual in LaTeX word, where stability is prized,
> but it did happen.
> 
> Carl Heinz, the author of listings package, changed the API several
> times. He was nice enough to number the versions by 0.xx, so I SHOULD
> know better than to use alpha code on production machines, but I badly
> needed this package for my own system of automatic code generation
> (what I call semi-literate programming; at some point I am going to
> write a paper about it for TUG). Actually some changes were made at my
> own request, so I should not complain.
> 
> To make a long story short, each of his incompatible upgrades broke my
> old documents! So what did I do? Several things -- there are several
> of them because I have been living with Carl's changes for four years
> now. 

	My goodness!  Here's where all our experiences with dynamic
libraries pay off.

	For the love of all that is good in this world, when the LaTeX3
team finally releases it to the world: please include these two things:

1. SONAMES
2. Versioned symbols
3. Namespaces

	This solves all your problems in one fell stroke, as long as the
"official" LaTeX team follows all of them.  You can install new packages
with completely different behaviour and if you want documents to always
work; just make sure you declare what version of \documentclass{foo} and
\usepackage{bar} you want.  Backward compatibility issues solved.

	Actually, come to think of it, you could probably implement the
same thing _now_ in LaTeX2e.  Make the default behaviour grab the most
recent versions of things, and people who use "versioned" stuff can ask
for \usepackage[v1]{bar} or something.  Then, you don't need legal
hackery to maintain document compatibility across platforms.  This will
make the sun shine, the grass green, birds sing, and lawyers unhappy.

Simon



Reply to: