Skip to content

Scala 2.12.11

Compare
Choose a tag to compare
@lrytz lrytz released this 16 Mar 12:50
· 10496 commits to 2.13.x since this release
v2.12.11
cd8410d

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 a ListBuffer-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):