[antlr-interest] Runtime backwards compatibility

Benjamin Niemann pink at odahoda.de
Sat Aug 9 14:16:56 PDT 2008


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?

-Ben


More information about the antlr-interest mailing list