scala 2.12 support/cross-compile

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

scala 2.12 support/cross-compile

Hao Sun
Hi team, I am wondering if there is a schedule to support scala 2.12?
If I need flink 1.3+ with scala 2.12, do I just have to cross compile myself? Is there anything blocking us from using scala 2.12?

Thanks
Reply | Threaded
Open this post in threaded view
|

Re: scala 2.12 support/cross-compile

Stephan Ewen
Hi Hao Sun!

This is work in progress, but Scala 2.12 is a bit tricky. I think the Scala folks have messed this version up a bit, to be honest.

The main blockers is that Scala 2.12 breaks some classes through its addition of SAM interface lambdas (similar to Java). Many of the DataStream API classes have two method variants (one with a Scala Function, one with a Java SAM interface) which now become ambiguously overloaded methods in Scala 2.12.

In addition, Scala 2.12 also needs a different closure cleaner, because Scala 2.12 compiles differently.

I am adding Aljoscha, who has started working on this...

Best,
Stephan


On Wed, Jan 3, 2018 at 4:13 AM, Hao Sun <[hidden email]> wrote:
Hi team, I am wondering if there is a schedule to support scala 2.12?
If I need flink 1.3+ with scala 2.12, do I just have to cross compile myself? Is there anything blocking us from using scala 2.12?

Thanks

Reply | Threaded
Open this post in threaded view
|

Re: scala 2.12 support/cross-compile

Aljoscha Krettek
Hi,

This is the umbrella issue for Scala 2.12 support. As Stephan pointed out, the ClosureCleaner and SAMs are currently the main problems. The first is also a problem for Spark, which track their respective progress here: https://issues.apache.org/jira/browse/SPARK-14540.

Best,
Aljoscha

On 3. Jan 2018, at 10:39, Stephan Ewen <[hidden email]> wrote:

Hi Hao Sun!

This is work in progress, but Scala 2.12 is a bit tricky. I think the Scala folks have messed this version up a bit, to be honest.

The main blockers is that Scala 2.12 breaks some classes through its addition of SAM interface lambdas (similar to Java). Many of the DataStream API classes have two method variants (one with a Scala Function, one with a Java SAM interface) which now become ambiguously overloaded methods in Scala 2.12.

In addition, Scala 2.12 also needs a different closure cleaner, because Scala 2.12 compiles differently.

I am adding Aljoscha, who has started working on this...

Best,
Stephan


On Wed, Jan 3, 2018 at 4:13 AM, Hao Sun <[hidden email]> wrote:
Hi team, I am wondering if there is a schedule to support scala 2.12?
If I need flink 1.3+ with scala 2.12, do I just have to cross compile myself? Is there anything blocking us from using scala 2.12?

Thanks


Reply | Threaded
Open this post in threaded view
|

Re: scala 2.12 support/cross-compile

Hao Sun
Thanks Stephan and Alhoscha for the info!

On Wed, Jan 3, 2018 at 2:41 AM Aljoscha Krettek <[hidden email]> wrote:
Hi,

This is the umbrella issue for Scala 2.12 support. As Stephan pointed out, the ClosureCleaner and SAMs are currently the main problems. The first is also a problem for Spark, which track their respective progress here: https://issues.apache.org/jira/browse/SPARK-14540.

Best,
Aljoscha


On 3. Jan 2018, at 10:39, Stephan Ewen <[hidden email]> wrote:

Hi Hao Sun!

This is work in progress, but Scala 2.12 is a bit tricky. I think the Scala folks have messed this version up a bit, to be honest.

The main blockers is that Scala 2.12 breaks some classes through its addition of SAM interface lambdas (similar to Java). Many of the DataStream API classes have two method variants (one with a Scala Function, one with a Java SAM interface) which now become ambiguously overloaded methods in Scala 2.12.

In addition, Scala 2.12 also needs a different closure cleaner, because Scala 2.12 compiles differently.

I am adding Aljoscha, who has started working on this...

Best,
Stephan


On Wed, Jan 3, 2018 at 4:13 AM, Hao Sun <[hidden email]> wrote:
Hi team, I am wondering if there is a schedule to support scala 2.12?
If I need flink 1.3+ with scala 2.12, do I just have to cross compile myself? Is there anything blocking us from using scala 2.12?

Thanks