On 31.01.2017 09:37, Cédric Champeau wrote:
There are multiple conversations going on for weeks, and I think they
are going nowhere. We could discuss for months what's the best plan for
Groovy, without releasing anything. Here are the challenges that are
waiting for us:
1. release a version of Groovy that integrates Groovy macros
2. upgrade the minimal runtime required for Groovy to 1.7, which is
required to smoothly transition to higher requirements (and also, make
our devs lives easier)
3. upgrade the minimal runtime required for Groovy to 1.8, allowing us
to drop the old call site caching and use indy Groovy everywhere
4. integrate Parrot, which replaces the use of Antlr2 with Antlr4
5. compatibility with Jigsaw, aka "Groovy as a module"
I would like to propose the following plan:
- Groovy 2.5: integrates 1 and 2, to be released ASAP, we've been
waiting for this for too long
- Groovy 2.6: integrate 4, implying backporting Parrot to Java 7
- Groovy 3.0: integrate 3 and 5. The only version with necessary
breaking changes (we have no choice here)
If you insist on a removal of antlr2, then this will be a breaking change, since we leak antlr2 classes in several places. 2.6 is then only an option if antlr2 stays. And considering your earlier statements that there should be only one parser, that means 2.6 has to be 3.0.
And considering that there is now a Java7 version of Parrot and that there will be at least two major versions before we are on JDK8... why not just go with 3.0 right away?
So my -1 based on your argumentation from my side. An alternative plan:
- 3.0 with macro methods and Java7 and parrot
- 4.0 java8 and jigsaw