This release improves compatibility:
- Support JDK 20 and 21 with ASM 9.5 upgrade, by @Philippus (#10185, #10362)
- Fix crash reading JDK 21 classfiles (#10397)
It also aids migration to Scala 2.13 and Scala 3:
- Under
-Xsource:2.13
, warn when inherited takes precedence over outer definitions (#10297, #10321) - Under
-Xsource:2.13
, flag eta-expanding methods without parameter lists (#10283) - Under
-Xsource:2.13
, don't GLB binders of type patterns, use the type directly (#10298)
and improves linting:
- Lint for integral divisions that are widened to a float (#10313)
and enables improved tooling:
- Preserve tree attachment in the typer's
Block
/Apply
inversion transform (#10176)
For complete 2.12.18 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.12.18 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 6 contributors, according to git shortlog -sn --no-merges @ ^v2.12.17 ^2.11.x
. Thank you Seth Tisue, Lukas Rytz, Scala Steward, A. P. Marki, Jason Zaugg, Philippus Baalman.
Thanks to Lightbend for their continued sponsorship of the Scala 2 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 project - Bump the
using scala
setting in your Scala-CLI project - Download a distribution from scala-lang.org
- Obtain JARs via Maven Central