[antlr-interest] Runtime backwards compatibility

Gavin Lambert antlr at mirality.co.nz
Sat Aug 9 19:33:54 PDT 2008


At 09:30 10/08/2008, Johannes Luber wrote:
 >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.

That's my understanding of how it works (at least as long as the 
assembly is strong-named, which is a requirement to be put into 
the GAC), but I've never availed myself of this either, except to 
note that multiple versions of the .NET Framework itself can be 
installed side-by-side, and if they are then applications will 
continue to run with the versions they were built with instead of 
the latest ones.  (However they *can* use later versions in the 
absence of their desired ones -- but I think that's not automatic, 
but instead because MS attach a manifest to the framework 
explicitly permitting such use.)

In the case of the ANTLR runtimes, I've usually considered them to 
be the sort that you'd deploy privately with the application 
(whether as a .dll next to the app or statically linked to them), 
rather than the sort that'd be centrally managed.

And I'm not convinced that centrally managed runtimes are all that 
commonly flexible either -- in my (admittedly limited) experience 
I've seen a number of programs in the Linux world refuse to work 
with later versions of the CRT and other runtimes until they are 
upgraded themselves.

 >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.

Not until the lexer's been "fixed" :)  (I know, I know, I do go on 
about that.)



More information about the antlr-interest mailing list