Highlights
- Adds support for configurable warnings and errors (
@nowarn
and-Wconf
), backported from 2.13
For a tour of this capability, consult this blog post by Lukas Rytz.
Standard library
- To permit compiling on JDK 15, avoid clash with new
CharSequence#isEmpty
method #9292- The clash is avoided by making
CharSequence
wrappers inPredef
non-implicit. - The change is binary compatible, but not source compatible. Call sites may need updating.
- The same change was included in Scala 2.13.4.
- The clash is avoided by making
Other changes
- Improves pattern matching exhaustivity warnings for patterns involving tuples
- Improves performance of building
immutable.{TreeMap,TreeSet}
by using mutation within the builder
For complete 2.12.13 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.12.13 is binary-compatible with the whole Scala 2.12 series.
The internal implementation of groupBy
has been optimized to reduce allocations. This can result in different ordering elements if you iterate the resulting Map
. The ordering of the returned map is not specified behaviour and should not be relied upon, for ordering sensitive use cases consider building a LinkedHashMap
or TreeMap
instead.
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 40 contributors, according to git shortlog -sn --no-merges HEAD ^v2.12.12 ^2.11.x
. Thank you Mike Skells, Jason Zaugg, Lukas Rytz, Dale Wijnand, A. P. Marki, Harrison Houghton, Darcy Shen, Seth Tisue, Ivano Pagano, João Ferreira, Ethan Atkins, NthPortal.
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