[antlr-interest] Runtime backwards compatibility

Johannes Luber jaluber at gmx.de
Sat Aug 9 14:30:05 PDT 2008


Benjamin Niemann schrieb:
> Hello ANTLR maniacs,
> 
> here's an issue that's been wandering around in my mind for quite a while now:
> The runtime for 3.1 breaks compatibility with recognizers generated by
> 3.0.x - at least for Java and Python, but I assume that the other
> targets are affected as well. This conflicts with the way applications
> are packaged on many systems, i.e. they handle the runtime library as
> separate package that will be updated independently of the main app.
> Perhaps some targets don't suffer from this problem, when they have
> some versioned import schema, but at least for Python there can be
> only one 'antlr3' package installed globally.
> 
> I see the following possibilities:
> 
> 1) The ANTLR 3.x line is not yet mature enough to worry about things
> like this. Let's wait until the API has stabilized enough to justify
> the extra effort and talk about this later.
> 2) Application devs are supposed to package the correct runtime with
> their application. But they loose the advantage of fine grained
> package management systems, i.e. their apps don't benefit
> automagically from fixes and improvements of the runtime - even if it
> wouldn't break compatibility. That's what they have to do now, even if
> 1) is true.
> 3) Make sure that incompatible versions can be installed
> simultaneously on a system, e.g. rename the Python package to
> 'antlr3_1'.
> 4) Ooops, that's a problem, I haven't thought about this yet.
> 
> What are your thoughts?

For C#, the GAC handles multiple versions of the runtime (however one 
does install assemblies in the GAC...). Breaking API changes aren't thus 
propagated to users of earlier versions - at least that's I've heard, 
.NET should work. Never used that feature myself before, so, more 
knowledgeable people, correct me if I'm wrong.

Otherwise, I do consider ANTLR not stable yet. There are too many 
missing features, too many possible changes to declare ANTLR done. How 
much the targets are affected, is another question. But at earliest 3.2 
will have the features and general maturity to be called by me as the 
real first version which fulfills the promises of Ter.

Johannes
> 
> -Ben
> 



More information about the antlr-interest mailing list