(gisted because the draft at https://github.com/scala/scala/releases is only visible to owners)
Main highlights of this release:
- When running the compiler 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. Details in the PR: scala/scala#6362. - 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. (thanks @mkeskells!) PR: scala/scala#6124. - The
raw""
ands""
string interpolators are now intercepted by the compiler to produce more efficient bytecode. PR: scala/scala#6093. - 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. PRs: scala/scala#6412, scala/scala#6314. (thanks @xeno-by and @jvican!)
Further highlights:
- The
apply
method on thePartialFunction
companion object is now deprecated. PR: scala/scala#6005. - Scala JARs (library, reflect, compiler) now have an
Automatic-Module-Name
attribute in their manifests. PR: scala/scala#6395. - Enabling unused warnings now leads to fewer false positives. (thanks @som-snytt!) PR: scala/scala#6190.
- Explicit eta-expansion (
foo _
) of a nullary method no longer gives a deprecation warning. PR: scala/scala#6177.
For more details, check out all closed bugs and merged PRs.
Compiler performance since 2.12.4 is stable.
As usual for minor releases, Scala 2.12.5 is binary compatible with the whole Scala 2.12 series.
A big thank you to everyone who's helped improve Scala by reporting bugs, improving our documentation, spreading kindness in discussions around Scala, and submitting and reviewing pull requests! You are all magnificent.
This release was brought to you by 36 contributors, according to git shortlog -sn --no-merges v2.12.4..v2.12.5
. Thank you, Jason Zaugg, A. P. Marki, Mike Skells, Harrison Houghton, Adriaan Moors, Lukas Rytz, Seth Tisue, jvican, Eyal Farago, Philippus Baalman, Martijn Hoekstra, Stefan Zeiger, howtonotwin, Jasper Moeys, Cong Zhao, Piotr Kukielka, Rex Kerr, Ben Elliott, id.ilych, Markus Hauck, mkeskells, Steve Robinson, Viktor Klang, ghik, Ólafur Páll Geirsson, Aaron S. Hawley, Janek Bogucki, Håkon Hjelde Wold, Jonathan Frawley, Dale Wijnand, Marconi Lanna, Pavel Petlinsky, Antoine Gourlay, Alex Levenson, Shohei Shimomura, Teemu Lehtinen!
The release notes for Scala 2.12.0 have important information applicable to the whole 2.12 series.
Scala releases are available through a variety of channels, including (but not limited to):
- Bump the
scalaVersion
setting in your sbt-based project - Download a distribution from scala-lang.org
- Obtain JARs via Maven Central
no comments here, please, as GitHub doesn't send notifications. go to https://gitter.im/scala/contributors or https://contributors.scala-lang.org/t/getting-ready-for-2-12-5/1618/11