Releases: scala/scala
Scala 2.13.16
The Scala team at Akka (formerly Lightbend) is pleased to announce Scala 2.13.16.
The following changes are highlights of this release:
Breaking change
- On the empty string,
.tail
and.init
now throw (instead of returning the empty string) (#10851 by @sh0hei)- This is a bugfix, but be aware that existing code might, perhaps inadvertently, be relying on the old behavior
Compatibility
- Support Scala 3.6 in TASTy reader (#10893)
- Support JDK 24 in optimizer (via ASM upgrade) (#10888 by @Philippus)
REPL
- REPL: JLine 3.27.1 (was 3.26.3) and on Windows use JNI not JNA (#10899, #10898, #10882)
- These upgrades hopefully won't be noticed, but, REPL users on Windows take note
- JNA is no longer a dependency of
scala-compiler.jar
Align with Scala 3
- Under
-Xsource:3
, deprecate infix named args (#10857 by @som-snytt)
Errors and warnings
- Fix 2.13.15-only false positives with
-Wunused:patvars
(#10870 by @som-snytt)
Collections
- Do not use
rangeHash
whenrangeDiff
is 0 (#10912 by @Friendseeker)- This may affect fragile code relying on ordering of hash-based collections
- Deprecate
collection.mutable.AnyRefMap
(#10862 by @wangyum)- Since Scala 2.13.0 it has no performance advantage over
collection.mutable.HashMap
- Since Scala 2.13.0 it has no performance advantage over
More changes
For the complete 2.13.16 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.16 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 19 contributors, according to git shortlog -sn --no-merges @ ^v2.13.15 ^2.12.x
. Thank you A. P. Marki, Seth Tisue, Scala Steward, Lukas Rytz, Friendseeker, Ondra Pelech, Philippus Baalman, Benjamin Maurer, Corey O'Connor, Eric Seidel2, Hamza Remmal, Jamie Thompson, João Costa, Kenji Yoshida, Mathias Kools, Rikito Taniguchi, Yuming Wang, rochala, sh0hei.
Thanks to Akka for their continued sponsorship of the Scala 2 team’s efforts. Akka 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
Scala 2.13.15
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.4+ 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)
- (Still seeing false positives, or new false positives? see #10870)
- 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
Scala 2.12.20
This release improves compatibility:
- Support JDK 23 in optimizer (via upgrade to patched ASM 9.7.0) (#10747 by @Philippus)
- Bump scala-xml dependency to 2.3.0 (was 2.2.0) (#10782)
and compiler profiling:
For complete 2.12.20 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.12.20 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 8 contributors, according to git shortlog -sn --no-merges @ ^v2.12.19
. Thank you Scala Steward, Seth Tisue, Lukas Rytz, A. P. Marki, Hamza Remmal, Philippus Baalman, Stefan Zeiger, nbauma109.
Thanks to Lightbend for their continued sponsorship of the Scala 2 team’s efforts. Lightbend offers commercial support for Scala 2.
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
Scala 2.13.14
The Scala team at Lightbend is pleased to announce Scala 2.13.14.
The following changes are highlights of this release:
Align with Scala 3
- Introduce
-Xsource-features
, for customizing the behavior of-Xsource:3
and-Xsource:3-cross
(#10709)- A section of the Scala 3 Migration Guide documents these flags: documentation
Regression fixes
- Rename
-Xlint:named-booleans
to-Wunnamed-boolean-literal
(and no longer include it in-Xlint
) (#10704 by @som-snytt) - Fix
ArrayBuilder
regression in Scala 2.13.13 (OutOfMemoryError
when adding empty arrays) (#10722 by @som-snytt) - Fix 2.13.13 regression in Scaladoc compilation when using Scala 3 definitions (#10700 by @bishabosha)
Other improvements
- Unused warnings: for macros, by default, look for usages in expansion (#10693 by @som-snytt)
- REPL: Upgrade to JLine 3.25.1 (was 3.24.1) (#10717)
- Remove
SHELLOPTS=vi
and-Xjline support
; reinstate-Xnojline
(#10716 by @hvesalai)
More changes
For the complete 2.13.14 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.14 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 9 contributors, according to git shortlog -sn --no-merges @ ^v2.13.13 ^2.12.x
. Thank you A. P. Marki, Lukas Rytz, Seth Tisue, Scala Steward, Jamie Thompson, Antoine Amiguet, Heikki Vesalainen, Robert Stoll, guqicun.
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
Scala 2.13.13
The Scala team at Lightbend is pleased to announce Scala 2.13.13.
The following changes are highlights of this release:
Language
- Support binary integer literals using
0b
, as in Java (#10656 by @som-snytt)
Compatibility
- TASTy reader: support Scala 3.4 (#10670 by @bishabosha)
- Support certain Java libraries compiled on JDK 21 (#10675 by @SethTisue)
- For JDK 22 support, upgrade to ASM 9.6 (#10576 by @Philippus)
Align with Scala 3
- Allow either
-Xsource:3
(for preparing to switch to 3) or-Xsource:3-cross
(for crossbuilding on 2 and 3); some existing users of-Xsource:3
should switch to-Xsource:3-cross
to avoid unwanted behavior changes (#10573 by @som-snytt)- A new section in the Scala 3 Migration Guide documents
-Xsource:3
and-Xsource:3-cross
: documentation
- A new section in the Scala 3 Migration Guide documents
- For migration to 3, accommodate case companion as function (#10648 by @som-snytt)
- Scala 3 migration warning for implicits found in package prefix (#10621 by @lrytz)
Other improvements
-Yrelease
supplements-release
, allows access to additional JVM packages (#10543 by @som-snytt)-Xlint
now enables-Xlint:named-booleans
to lint unnamed boolean literal args (#10612 by @som-snytt)- Respect
java.lang.Deprecated
annotation even in Scala sources (#10517 by @kapunga) - Optimize tail recursion on effectively final methods even when
final
keyword is absent (#10629 by @som-snytt) - Add
-Xlint:pattern-shadow
to lint pattern varids which are backquotable (#8806 by @som-snytt) - In mixed compilation, allow Java sources to reference
MODULE$
(#10644 by @som-snytt) - Scaladoc: re-align
-doc-source-url
behavior with 2.12 (#10581 by @lrytz)
Known issues
- When upgrading to 2.13.13, existing users of
-Xsource:3
should explicitly consider switching to-Xsource:3-cross
. Some behaviors of-Xsource:3
have changed, e.g. in result type inference for inherited methods; see new doc page for details - Some library authors who were already using
-Xsource:3
are getting MiMa failures when upgrading to 2.13.13 and switching from-Xsource:3
to-Xsource:3-cross
. If you’re in this situation, you may need to wait for 2.13.14; see scala/bug#12961 - Users of sbt must upgrade to sbt 1.9.9 to use the
console
task to access the 2.13.13 REPL (sbt/sbt#7502); error message isNoSuchMethodError: org.jline.utils.AttributedString.fromAnsi
- Regression: Scaladoc generation may fail if you are using the TASTy reader to access Scala 3 dependencies (scala/bug#12955); error message is "Unsupported Scala 3 generic tuple type"; we'll fix it in 2.13.14
- Regression: on JDK 11 (but not 8 or 17 or 21), the REPL prints a harmless "illegal reflective access" warning at startup (scala/bug#12957); we'll fix it in 2.13.14
- The inclusion of
-Xlint:named-booleans
in-Xlint
(#10612) has already proved at least somewhat controversial, and will likely be adjusted for 2.13.14; you can leave feedback on this at #10704
More changes
For the complete 2.13.13 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.13 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 23 contributors, according to git shortlog -sn --no-merges @ ^v2.13.12 ^2.12.x
. Thank you A. P. Marki, Lukas Rytz, Jamie Thompson, Seth Tisue, Scala Steward, friendseeker, Paul J Thordarson, Philippus Baalman, Shardul Chiplunkar, Stefan Zeiger, Dale Wijnand, Dmitry Komanov, Eugene Yokota, Georgi Krastev, GerretS, Jason Zaugg, Martijn, Mohammad Yousuf Minhaj Zia, Roberto Tyley, Ryan Scheidter, Trey Cahill, c, Dependabot.
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
Scala 2.12.19
This release improves compatibility:
- Support certain Java libraries compiled on JDK 21 (#10675 by @SethTisue)
- Support JDK 22 in optimizer (by upgrading to ASM 9.6) (#10575 by @Philippus)
- New
-Yrelease
option supplements-release
, allows access to additional JVM packages (#10671 by @som-snytt) - Update compiler's scala-xml dependency to 2.2.0 (was 2.1.0) (#10459 by @SethTisue)
And it has bugfixes:
- Fix rare
NullPointerException
in some tree-based collections (#10640 by @lrytz) - Improved
InterruptedException
handling forFuture
s (#10379 by @szeiger)
For complete 2.12.19 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.12.19 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 9 contributors, according to git shortlog -sn --no-merges @ ^v2.12.18 ^2.11.x
. Thank you Scala Steward, Seth Tisue, A. P. Marki, Lukas Rytz, Stefan Zeiger, Dmitry Komanov, Philippus Baalman, cahilltr, dependabot.
Thanks to Lightbend for their continued sponsorship of the Scala 2 team’s efforts. Lightbend offers commercial support for Scala 2.
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
Scala 2.13.12
The Scala team at Lightbend is pleased to announce Scala 2.13.12.
The following changes are highlights of this release:
Feature: Quickfixes
For some errors and warnings, the compiler now suggests an edit that could fix the issue. Tooling such as IDEs can then offer the edits, or the compiler itself will make the change if run again with -quickfix
.
- Implement quickfixes, aka actionable diagnostics (via
CodeAction
) (#10406 by @eed3si9n) - Add
-quickfix
compiler option to apply quickfixes to source files (#10482 by @lrytz) - Add quickfixes to some warnings and errors (#10484 by @lrytz)
Align with Scala 3
- Emit migration warnings under
-Xsource:3
as fatal warnings, not errors (#10439 by @som-snytt, #10511)-Xmigration
will demote the errors to warnings-Wconf:cat=scala3-migration:s
will silence these errors/warnings altogether
- Warn about
@elidable
under-Xsource:3
(#10377 by @som-snytt)
Collections
IndexedSeq#head
now throwsNoSuchElementException
(notIndexOutOfBoundsException
) (#10392 by @som-snytt)
Regression fixes
- Deduplicate
JavaDeprecatedAttr
inClassfileParser
(#10422 by @som-snytt) - Avoid brittle flags encoding for Java enums (#10424 by @som-snytt)
Scaladoc tool changes
Library authors should be aware that the behavior of -doc-source-url
has changed, as follows:
You may need to adjust your build accordingly, to avoid generating broken source links.
Tooling
The following change is mainly of concern to tooling maintainers.
Other notable changes
For the complete 2.13.12 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.12 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 a large share of the improvements in this release.
This release was brought to you by 12 contributors, according to git shortlog -sn --no-merges @ ^v2.13.11 ^2.12.x ^366ba2f
. Thank you A. P. Marki, Lukas Rytz, Seth Tisue, Scala Steward, Michel Davit, Nicolas Stucki, Alex Leigh, Eugene Yokota, Georgi Krastev, Jamie Willis, Julien Richard-Foy, NthPortal.
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
Scala 2.13.11
The Scala team at Lightbend is pleased to announce Scala 2.13.11.
The following changes are highlights of this release:
Collections
- Faster
Vector
concatenation (#10159 by @ansvonwa) - New
LinkedHashMap
/LinkedHashSet
implementation (#10221 by @liang3zy22)
Compatibility
- Support JDK 20 and 21 by upgrading to ASM 9.5 (#10363, #10184 by @Philippus)
- Fix crash reading JDK 21 classfiles (#10397)
- Support Java 17
sealed
in Java sources and classfiles (#10348, #10105 by @som-snytt) - Support Scala 3.3 in TASTy reader (#10299 by @bishabosha)
Align with Scala 3
- Accept
implicit _
,implicit (x: Int)
in lambdas, like Scala 3 does (#10327 by @som-snytt) - Deprecate infix type args, as they are dropped in Scala 3 (#10255 by @som-snytt)
- Allow eta-expansion of methods with dependent types (#10166)
- Abstract parent
copy
does not suspend casecopy
(#10085 by @som-snytt) - Don't GLB binders of type patterns, use the type directly (#10247)
- Under
-Xsource:3
, warn that inherited members no longer take precedence over outer definitions in Scala 3 (#10220, #10339) - Under
-Xsource:3
, adjust 2.13.9 change to ignore override type for whitebox macro expansion (#10188 by @som-snytt) - Under
-Xsource:3
, use narrowest type for pt of override (#10198 by @som-snytt) - Under
-Xsource:3
, warn about change to parenless lambda parens (#10320 by @som-snytt)
Lints and warnings
- Lint select from
Unit
, orInt
that incurs widening (#10372 by @som-snytt) - Lint for integral divisions that are widened to a float (#10369 by @som-snytt)
- Lint if args adapted to
Unit
and discarded (#10150 by @som-snytt) - Warn that implicit should have explicit type (#10083 by @som-snytt)
Other notable changes
- Disallow mixins where super calls bind to vals (#10268)
- Make scalac's argument-file processing more like javac's in handling spaces and line breaks (#10319 by @som-snytt)
- Bump JLine and JNA versions (#10318)
javabootclasspath
supersedesjrt
(#10336 by @som-snytt)- Report total errors on stderr (#10272 by @som-snytt)
- Fix pathologically slow compilation of some pattern matches since 2.13.7 (#10258 by @KisaragiEffective)
- Provide
equals
andhashCode
onIterableWrapper
again (fixing 2.13.9 regression) (#10205 by @som-snytt) - Improvements to
-Vimplicits
; errors now show complete implicit search tree (#9944 by @tribbloid) -Vprint
defaults to-Vprint:typer
; phases may be prefixed with~
to mean "before and after" (#10173 by @som-snytt)
2.13.11 also includes the changes from Scala 2.12.18. (A few of the most significant, such as those involving JDK 20 and 21 compatibility, are listed above.)
For the complete 2.13.11 change lists, see all merged PRs and all closed bugs.
Known issues
A few regressions have been discovered:
- Exhaustivity checker emits spurious warning when matching on Java enum type (2.13.11 regression) (scala/bug#12800)
- Duplicated
@Deprecated
annotations when extending Java interface with deprecated default method causejava.lang.annotation.AnnotationFormatError
when accessed via Java reflection (2.13.11 regression) (scala/bug#12799)
We'll address these in Scala 2.13.12.
Compatibility
As usual for our minor releases, Scala 2.13.11 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 a large share of the improvements in this release.
This release was brought to you by 28 contributors, according to git shortlog -sn --no-merges @ ^v2.13.10 ^2.12.x
. Thank you A. P. Marki, Lukas Rytz, Seth Tisue, Anselm von Wangenheim, Scala Steward, Liang Yan, Jamie Thompson, jxnu-liguobin, AminMal, Jason Zaugg, Kenji Yoshida, Rituraj, ashish, Chris Kipp, Dale Wijnand, Francesco Kriegel, Georgi Chochov, Goooler, João Costa, Kisaragi Marine, Rafał Sumisławski, Ruslans Tarasovs, Simon R, Sébastien Doeraene, Tomasz Godzik, Zhang Zhipeng, danarmak, hepin.p.
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
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
Scala 2.12.18
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
Scala 2.13.10
The Scala team at Lightbend is pleased to announce the availability of Scala 2.13.10.
The following changes are highlights of this release:
Binary compatibility regression fixed
- Fix 2.13.9 regression which broke binary compatibility of case classes which are also value classes (#10155)
Library maintainers should avoid publishing libraries using Scala 2.13.9.
Other notable changes
- Fix 2.13.9 regression in linting, causing spurious "variable x is never used" warnings (#10154)
-Xsource:3
now respects refinements by whitebox macro overrides (#10160 by @som-snytt)- Scaladoc tool: fix parsing bug which could cause very slow performance or incorrect output (#10175 by @liang3zy22)
- Restore
-Vprint-args
, for echoing arguments provided to compiler (#10164 by @som-snytt)
For the complete 2.13.10 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.10 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 an especially large share of the improvements in this release.
This release was brought to you by 6 contributors, according to git shortlog -sn --no-merges @ ^v2.13.9 ^2.12.x
. Thank you A. P. Marki, Liang Yan, Seth Tisue, Antoine Parent, Luc Henninger, 梦境迷离.
Thanks to Lightbend for their continued sponsorship of the Scala core 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
scalaVersion
setting in your sbt-based project - Download a distribution from scala-lang.org
- Obtain JARs via Maven Central