Scala 2.12.4
Our benchmarks show a further 5–10% reduction in compile times since 2.12.3.
Improved Java 9 friendliness, with more to come!
- #6097 Fix runtime reflection of empty package members under Java 9
- #6098 Adapt to change in Java 9 classloader hierarchy
This release addresses (#6120) a privilege escalation vulnerability that was identified in the Scala compilation daemon CVE-2017-15288.
We'd like to highlight a few of the excellent contributions by @hrhino and @TomasMikula, previewing 2.13 improvements (available now under -Xsource:2.13
):
- #5867 Include the parts of a compound/refinement type in implicit scope
- #6074 Resolve implicit instances for abstract types, according to the spec
- #6069 Higher-kinded type variable unification
For Spark, with love:
- #6101 Make Lazy* classes serializable
Preparing for simplification of named arguments in 2.13:
- #6089 Deprecate assignments in argument position
Rather than pollute /tmp
,
- #6120 Move compilation daemon portfile under
~/.scalac/
For more details, check out all closed bugs and merged PRs.
As usual for minor releases, Scala 2.12.4 is binary compatible with the whole Scala 2.12 series.
Contributors
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 24 contributors, according to git shortlog -sn --no-merges v2.12.3..v2.12.4
. Thank you, Jason Zaugg, Lukas Rytz, jvican, Adriaan Moors, A. P. Marki, Harrison Houghton, Tomas Mikula, Philippus Baalman, Miles Sabin, Seth Tisue, Dhirendra Kumar Kashyap, Martijn Hoekstra, Martin Grotzke, Martynas Mickevičius, Matt Sicker, Mike, Mike Skells, Rex Kerr, cong, Allison H, Janek Bogucki, Edmund Noble, Jasper Moeys, Kenji Yoshida!
Scala 2.12 Notes
The release notes for Scala 2.12.0 have important information applicable to the whole 2.12 series.
Obtaining Scala
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