The Scala 2.12.11 release mainly brings bug fixes and performance improvements.
- 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-importsflag that avoids deep class nesting in the REPL, which can lead to deteriorating performance in long sessions (#8576)
- Fix some
toXmethods that could expose the underlying mutability of a
ListBuffer-generated collection (#8674)
JDK 9+ support
- ASM was upgraded to 7.3.1, allowing the optimizer to run on JDK 13+ (#8676)
:javapin the REPL now works on JDK 9+ (#8400)
- Support new labels for creating durations for consistency:
Duration("3 hrs")(#8325, #8450)
- Fix memory leak in runtime reflection's
TypeTagcaches (#8470) and some thread safety issues in runtime reflection (#8433)
- When using compiler plugins, the ordering of compiler phases may change due to #8427
Custom subclasses of
immutable.HashMap that override
elemHashCode are no longer supported. Note that
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.
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.
Scala 2.12 notes
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):