The Scala team at Lightbend is pleased to announce Scala 2.13.15.
The following changes are highlights of this release:
Breaking changes
-Wconf:x,y
now means-Wconf:x -Wconf:y
, with y overruling x, rather than the reverse (to align with Scala 3 and with user intuition) (#10708 by @som-snytt)- Compiler plugins: rework and improve phase assembly (#10687 by @som-snytt)
- Plugin authors should check to see if they are affected
- Plugin users may see strange errors if a plugin is affected and not adjusted by its author
- Most plugins are not affected
Compatibility
- Support JDK 23 in optimizer (via upgrade to patched ASM 9.7.0) (#10744)
- Support Scala 3.5 in TASTy reader (#10811 by @bishabosha)
- REPL: JLine 3.26.3 (was 3.25.1) (#10827)
Features
- Support alternative JVM system images (via
-system
, like javac) (#10801 by @szeiger) - Add
-Ycollect-statistics
for collecting statistics without printing them (#10795 by @szeiger)
Align with Scala 3
- Add
-Xsource-features:double-definitions
to warn or error for double definitions (#10846 by @som-snytt) - Under
-Xsource:3
, allow importinggiven
, for cross-building (#10786 by @som-snytt) - Under
-Xsource:3
, remove by-name restriction for case copy (#10770 by @som-snytt)
Errors and warnings
- Fix
-Wconf
and-nowarn
to be more consistent (#10750 by @som-snytt) - Add
-Wtostring-interpolated
to warn if interpolator usestoString
(#10776 by @som-snytt) - Improve inferred-
Any
lint (fixing false positives and false negatives) (#9452 by @som-snytt) - Fix false-positive unused warnings in for comprehensions (#10812 by @som-snytt)
- Fix false-positive by-name implicit warnings with
-Wmacros
(#10781 by @som-snytt) - Mention if missing symbol is on the class path (#10774 by @som-snytt)
- Avoid unused import warnings in REPL (#10769 by @som-snytt)
- Add
-Vcyclic
to improve reporting of "cyclic reference" errors (#10680 by @som-snytt)
More changes
For the complete 2.13.15 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.15 is binary-compatible with the whole Scala 2.13 series.
Upgrading from 2.12? Enable -Xmigration
while upgrading to request migration advice from the compiler.
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.
We especially acknowledge and thank A. P. Marki, also known as Som Snytt, who is responsible for many of the improvements in this release.
This release was brought to you by 13 contributors, according to git shortlog -sn --no-merges @ ^v2.13.14 ^2.12.x
. Thank you A. P. Marki, Lukas Rytz, Scala Steward, Seth Tisue, Jamie Thompson, Stefan Zeiger, Hamza Remmal, EnzeXing, Marissa, Philippus Baalman, Samuel Chassot, luozexuan, nbauma109.
Thanks to Lightbend for their continued sponsorship of the Scala 2 team’s efforts. Lightbend offers commercial support for Scala.
Scala 2.13 notes
The release notes for Scala 2.13.0 have important information applicable to the whole 2.13 series.
Obtaining Scala
Scala releases are available through a variety of channels, including (but not limited to):
- Bump the
using scala
setting in your Scala-CLI project - Bump the
scalaVersion
setting in your sbt or Mill project - Download a distribution from scala-lang.org
- Obtain JARs via Maven Central