
Scala 2.12.0-RC1 released - pedrorijo91
https://issues.scala-lang.org/projects/SI/versions/11503
======
adriaanm
Keen eye! The release is tagged and the artifacts are indeed on maven central,
but we are holding the official announcement for a few days to be able to
launch with a nice set of community libraries already published. So much for
flying under the radar :-)

------
walkingolof
Here is the 2.12 roadmap [http://www.scala-
lang.org/news/2.12-roadmap](http://www.scala-lang.org/news/2.12-roadmap)

------
virtualwhys
Great.

What's the status on performance slowdown wrt to relying on Java 8 default
methods in 2.12[1]? Hopefully this is not a JVM limitation[2] and can be
sorted out during the RC cycle.

Fewer generated class files _and_ improved performance would very much be a
nice-to-have.

[1] [http://www.scala-lang.org/blog/2016/07/08/trait-method-
perfo...](http://www.scala-lang.org/blog/2016/07/08/trait-method-
performance.html)

[2]
[https://bugs.openjdk.java.net/browse/JDK-8161334](https://bugs.openjdk.java.net/browse/JDK-8161334)

~~~
PartOSolution25
The blog entry doesn't mention the impact of that performance regression on
Scala 3 (aka Dotty).

~~~
virtualwhys
Sure, but Dotty is like hindsight, (arriving the year) 2020.

Regardless, there's a significant performance regression to sort out prior to
the 2.12 GA. If it is a JVM limitation it won't be solved until at least Java
9 (according to the fix version listed in the bug report), which will mean
2.12 loses one of the stated goals of the release: reduction in number of
generated class files (with perhaps slightly faster build times).

Anyway, we'll see in the coming weeks/months if a resolution or workaround
manifests.

------
wiradikusuma
too bad they require JDK8 while App Engine supports only JDK7 :(

~~~
pas
What does this mean?

They probably require JDK8 for compiling/building the class files, but can you
target 1.7?

See target flag for javac (
[http://stackoverflow.com/a/21206909](http://stackoverflow.com/a/21206909) )

~~~
pjmlp
You can only make use of the target flag when not making use of new bytecodes
oder APIs introduced in a specific Java version.

Scala 2.12 is replacing some of their own code with Java 8 new features, so
they rely on a Java 8 compatible JVM.

This will also prevent Scala 2.12 to target Android, because even Android N
isn't 100% Java 8 compatible, specially the low level JVM features like
invokedynamic and method handles are not supported on DEX format.

