Scala 2.12.5 version has been released. Scala is a popular programming language for a data scientist. It is mostly favored by aspiring or seasoned data scientists who are planning to work with Apache Spark for Big Data analysis.
With the new version 2.12.5, Scala has brought in four major highlights. Most importantly, Scala 2.12.5 is binary compatible with the whole Scala 2.12 series.
Major highlights:
- When compiling on Java 9 or higher, the new-release N flag changes the compilation classpath to match the JDK version N. This works for the JDK itself and for multi-release JARs on the classpath.
- With the new -Ybackend-parallelism N compiler flag, the backend can now run bytecode serialization, classfile writing, and method-local optimizations (-opt:l:method) in parallel on N threads.
- The raw”” and s”” string interpolators are now intercepted by the compiler to produce more efficient bytecode.
- The -Ycache-plugin-class-loader and -Ycache-macro-class-loader flags enable caching of classloaders for compiler plugins and macro definitions. This can lead to significant performance improvements.
Other features include:
- The apply method on the PartialFunction companion object is now deprecated.
- Scala JARs (library, reflect, compiler) now have an Automatic-Module-Name attribute in their manifests.
- Enabling unused warnings now lead to fewer false positives.
- Explicit eta-expansion (foo _) of a nullary method no longer gives a deprecation warning.
Scala releases are available through a variety of channels, including:
- Bump the scalaVersion setting in your sbt-based project
- Download a distribution from scala-lang.org
- Obtain JARs via Maven Central
However, there is regression since 2.12.4 when compiling code on Java 9 or 10 that uses macros. Users must either compile on Java 8 or wait for 2.12.6.
You can check out all closed bugs and merged PRs for further details.