Thanks Martijn, got it. If we upgrade jdk8 to jdk11 and we want to keep the compatibility, now we can't upgrade scala version indeed. I will stay focused for this problem, thanks a lot ~
Martijn Visser <martijnvis...@apache.org> 于2022年5月9日周一 19:55写道: > Hi Ran, > > Wouldn't a Scala developer who upgrades from Java 8 to Java 11 run into the > problem that his savepoint isn't compatible if we would make such a change? > > Best regards, > > Martijn > > On Mon, 9 May 2022 at 13:31, Ran Tao <chucheng...@gmail.com> wrote: > > > Hi, Martijn. Thanks for responding, i have read these issues, and the > > issues u mentioned are about the compatibility of current released > > version(which use jdk8), so we are stuck with 2.12.7. But my concern is > > more about optional jdk11 build, when we use jdk11, we must enable > > jdk11-target optional profile. > > It will has no impact for current released version(and future newer jdk8 > > released version) and will not breaks compatibility. just set matched > scala > > version property for optional jdk11. then we can use -target:11 for > > generating scala jvm11 bytecode and solve some build errors with jdk11 & > > jdk17 by the way, for example: FLINK-25000 [2] > > > > And i have noticed that the scala community will backport the target jvm > > support from 2.13 to newer 2.12.16[1] It will make -target support JVM > > 8-19. It means if we want to support flink pure jdk11 version, may be > 2.12 > > is both ok. > > > > Can we start a discuss and let other devs involved to vote for supporting > > pure jdk11 version ? > > > > [1] https://github.com/scala/bug/issues/12588 > > [2] > > > > Martijn Visser <martijnvis...@apache.org> 于2022年5月9日周一 15:55写道: > > > > > Hi Ran, > > > > > > Thanks for opening the discussion. There's a Flink ticket already for > > > adding Scala 2.13 support [1] and also for upgrading to the latest > Scala > > > 2.12 version [2]. The problem for upgrading to a later version of Scala > > is > > > outlined in [3]. We couldn't upgrade to later versions of Scala because > > of > > > a breaking change that Scala introduced after Scala 2.12.8. I'm > assuming > > > that this would also block the introduction of Scala 2.13, but I'm no > > Scala > > > expert so I'm looking forward to input from others. > > > > > > One thing suggested was to do an inventory among the Dev and User > mailing > > > list if they would be OK to break the API over sticking with Scala > > 2.12.8. > > > I don't think that was done before. > > > > > > Best regards, > > > > > > Martijn Visser > > > https://twitter.com/MartijnVisser82 > > > https://github.com/MartijnVisser > > > > > > [1] https://issues.apache.org/jira/browse/FLINK-13414 > > > [2 https://issues.apache.org/jira/browse/FLINK-20969 > > > [3] https://issues.apache.org/jira/browse/FLINK-12461 > > > > > > On Mon, 9 May 2022 at 09:26, Ran Tao <chucheng...@gmail.com> wrote: > > > > > > > Hi, guys. > > > > > > > > I have found out that current flink project build with jdk11 wasn't > > > > implemented completed or pure jdk11 version. (higher version has same > > > > problem) > > > > > > > > when enable jdk11, it has some scenarios. > > > > > > > > 1. Using jdk11 but source 1.8 target 1.8 -> it's ok. > > > > 2. Using jdk11 and with jdk11-target so the source 11 and target 11. > -> > > > > build java also ok. But the generated bytecode version of scala class > > is > > > > already 52(jdk8). We can test with any of a scala classes under jdk11 > > > build > > > > target. e.g. > > > > > > > > javap -verbose AggregateDataSet.class | grep major > > > > major version: 52 > > > > > > > > I have test many times and make conclusion that flink jdk11 now is > not > > a > > > > completed or pure jdk11 version because of inconsistent bytecode > > version > > > > with java & scala. And it may cause some problems, for example: > > > > > > > > 1. inconsistent bytecode version between java & scala > > > > 2. Using reflection about class may generate some unknown errors > > > > 3. Runtime jdk11 environment can not optimize these lower bytecode. > > > > > > > > I have dipped into this problem including reading carefully from > scala > > > docs > > > > and asking from scala community[1][2] and found out we must upgrade > > scala > > > > to 2.13(2.11 & 2.12 only support generate bytecode version <=1.8). > the > > > 2.13 > > > > can support generating scala target 11 bytecode and higher and also > > jdk8. > > > > > > > > > > > > So I launch this discussion to see whether we can add scala-2.13 in > > flink > > > > jdk11 profile to support the completed or pure jdk11(or higher) > > version. > > > > > > > > And if we do not support and decide to maintain the current > situation, > > I > > > > think we should let users or developers know this inconsistent > problem, > > > for > > > > example, update or make some comments in flink pom or docs. > > > > > > > > More details: > > > > > > > > https://issues.apache.org/jira/browse/FLINK-27549 > > > > > > > > [1] https://github.com/scala/bug/issues/12588 > > > > > > > > [2] > > > https://docs.scala-lang.org/overviews/jdk-compatibility/overview.html > > > > > > > > > > > > -- > > > > Best, > > > > Ran Tao > > > > > > > > > > > > > -- > > Best, > > Ran Tao > > > -- Best, Ran Tao