Scala 2.12.11
The Scala 2.12.11 release mainly brings bug fixes and performance improvements.
Highlights
- Performance improvements in the collections library: algorithmic improvements and changes to avoid unnecessary allocations (list of PRs)
- Performance improvements in the compiler (list of PRs, minor effects in our benchmarks)
- Improvements to
-Yrepl-class-based
, an alternative internal REPL encoding that avoids deadlocks (details on #8712) - A new
-Yrepl-use-magic-imports
flag that avoids deep class nesting in the REPL, which can lead to deteriorating performance in long sessions (#8576) - Fix some
toX
methods that could expose the underlying mutability of aListBuffer
-generated collection (#8674)
JDK 9+ support
- ASM was upgraded to 7.3.1, allowing the optimizer to run on JDK 13+ (#8676)
:javap
in the REPL now works on JDK 9+ (#8400)
Other changes
- Support new labels for creating durations for consistency:
Duration("1m")
,Duration("3 hrs")
(#8325, #8450) - Fix memory leak in runtime reflection's
TypeTag
caches (#8470) and some thread safety issues in runtime reflection (#8433) - When using compiler plugins, the ordering of compiler phases may change due to #8427
For more details, see the full list of merged PRs and the list of closed bugs.
Compatibility
Custom subclasses of immutable.HashSet
and immutable.HashMap
that override elemHashCode
are no longer supported. Note that HashSet
and HashMap
are sealed
, and their subclasses in the standard library are marked @deprecatedInheritance
. More details in scala-dev#675.
As usual for our minor releases, Scala 2.12.11 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 15 contributors, according to git shortlog -sn --no-merges v2.12.10..v2.12.11
. Thank you Jason Zaugg, Mike Skells, Harrison Houghton, Dale Wijnand, Seth Tisue, Lukas Rytz, A. P. Marki, Laurynas Lubys, Diego E. Alonso Blas, Daniele Torelli, Philippus, Aaron S. Hawley, leitoh, Eugene Yokota.
Thanks to Lightbend for their continued sponsorship of the Scala core team's efforts. Lightbend offers commercial support for Scala.
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