Scala 2 compiler and standard library. Bugs at https://github.com/scala/bug; Scala 3 at https://github.com/scala/scala3
The Scala team at Lightbend is pleased to announce Scala 2.13.14.
The following changes are highlights of this release:
-Xsource-features
, for customizing the behavior of -Xsource:3
and -Xsource:3-cross
(#10709)
-Xlint:named-booleans
to -Wunnamed-boolean-literal
(and no longer include it in -Xlint
) (#10704 by @som-snytt)ArrayBuilder
regression in Scala 2.13.13 (OutOfMemoryError
when adding empty arrays) (#10722 by @som-snytt)SHELLOPTS=vi
and -Xjline support
; reinstate -Xnojline
(#10716 by @hvesalai)For the complete 2.13.14 change lists, see all merged PRs and all closed bugs.
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.
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.
The release notes for Scala 2.13.0 have important information applicable to the whole 2.13 series.
Scala releases are available through a variety of channels, including (but not limited to):
using scala
setting in your Scala CLI projectscalaVersion
setting in your sbt or Mill projectThe Scala team at Lightbend is pleased to announce Scala 2.13.13.
The following changes are highlights of this release:
0b
, as in Java (#10656 by @som-snytt)-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)
-Xsource:3
and -Xsource:3-cross
: documentation
-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)java.lang.Deprecated
annotation even in Scala sources (#10517 by @kapunga)final
keyword is absent (#10629 by @som-snytt)-Xlint:pattern-shadow
to lint pattern varids which are backquotable (#8806 by @som-snytt)MODULE$
(#10644 by @som-snytt)-doc-source-url
behavior with 2.12 (#10581 by @lrytz)-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-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
console
task to access the 2.13.13 REPL (sbt/sbt#7502); error message is NoSuchMethodError: org.jline.utils.AttributedString.fromAnsi
-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
For the complete 2.13.13 change lists, see all merged PRs and all closed bugs.
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.
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.
The release notes for Scala 2.13.0 have important information applicable to the whole 2.13 series.
Scala releases are available through a variety of channels, including (but not limited to):
using scala
setting in your Scala CLI projectscalaVersion
setting in your sbt or Mill projectThis release improves compatibility:
-Yrelease
option supplements -release
, allows access to additional JVM packages (#10671 by @som-snytt)And it has bugfixes:
NullPointerException
in some tree-based collections (#10640 by @lrytz)InterruptedException
handling for Future
s (#10379 by @szeiger)For complete 2.12.19 change lists, see all merged PRs and all closed bugs.
As usual for our minor releases, Scala 2.12.19 is binary-compatible with the whole Scala 2.12 series.
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.
The release notes for Scala 2.12.0 have important information applicable to the whole 2.12 series.
Scala releases are available through a variety of channels, including (but not limited to):
scalaVersion
setting in your sbt projectusing scala
setting in your Scala CLI projectThe Scala team at Lightbend is pleased to announce Scala 2.13.12.
The following changes are highlights of this release:
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
.
CodeAction
) (#10406 by @eed3si9n)-quickfix
compiler option to apply quickfixes to source files (#10482 by @lrytz)-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@elidable
under -Xsource:3
(#10377 by @som-snytt)IndexedSeq#head
now throws NoSuchElementException
(not IndexOutOfBoundsException
) (#10392 by @som-snytt)JavaDeprecatedAttr
in ClassfileParser
(#10422 by @som-snytt)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.
The following change is mainly of concern to tooling maintainers.
For the complete 2.13.12 change lists, see all merged PRs and all closed bugs.
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.
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.
The release notes for Scala 2.13.0 have important information applicable to the whole 2.13 series.
Scala releases are available through a variety of channels, including (but not limited to):
using scala
setting in your Scala CLI projectscalaVersion
setting in your sbt or Mill projectThe Scala team at Lightbend is pleased to announce Scala 2.13.11.
The following changes are highlights of this release:
Vector
concatenation (#10159 by @ansvonwa)LinkedHashMap
/LinkedHashSet
implementation (#10221 by @liang3zy22)sealed
in Java sources and classfiles (#10348, #10105 by @som-snytt)implicit _
, implicit (x: Int)
in lambdas, like Scala 3 does (#10327 by @som-snytt)copy
does not suspend case copy
(#10085 by @som-snytt)-Xsource:3
, warn that inherited members no longer take precedence over outer definitions in Scala 3 (#10220, #10339)-Xsource:3
, adjust 2.13.9 change to ignore override type for whitebox macro expansion (#10188 by @som-snytt)-Xsource:3
, use narrowest type for pt of override (#10198 by @som-snytt)-Xsource:3
, warn about change to parenless lambda parens (#10320 by @som-snytt)Unit
, or Int
that incurs widening (#10372 by @som-snytt)Unit
and discarded (#10150 by @som-snytt)javabootclasspath
supersedes jrt
(#10336 by @som-snytt)equals
and hashCode
on IterableWrapper
again (fixing 2.13.9 regression) (#10205 by @som-snytt)-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.
A few regressions have been discovered:
@Deprecated
annotations when extending Java interface with deprecated default method cause java.lang.annotation.AnnotationFormatError
when accessed via Java reflection (2.13.11 regression) (scala/bug#12799)We'll address these in Scala 2.13.12.
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.
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.
The release notes for Scala 2.13.0 have important information applicable to the whole 2.13 series.
Scala releases are available through a variety of channels, including (but not limited to):
scalaVersion
setting in your sbt projectusing scala
setting in your Scala-CLI projectThis release improves compatibility:
It also aids migration to Scala 2.13 and Scala 3:
-Xsource:2.13
, warn when inherited takes precedence over outer definitions (#10297, #10321)-Xsource:2.13
, flag eta-expanding methods without parameter lists (#10283)-Xsource:2.13
, don't GLB binders of type patterns, use the type directly (#10298)and improves linting:
and enables improved tooling:
Block
/Apply
inversion transform (#10176)For complete 2.12.18 change lists, see all merged PRs and all closed bugs.
As usual for our minor releases, Scala 2.12.18 is binary-compatible with the whole Scala 2.12 series.
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.
The release notes for Scala 2.12.0 have important information applicable to the whole 2.12 series.
Scala releases are available through a variety of channels, including (but not limited to):
scalaVersion
setting in your sbt projectusing scala
setting in your Scala-CLI projectThe Scala team at Lightbend is pleased to announce the availability of Scala 2.13.10.
The following changes are highlights of this release:
Library maintainers should avoid publishing libraries using Scala 2.13.9.
-Xsource:3
now respects refinements by whitebox macro overrides (#10160 by @som-snytt)-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.
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.
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.
The release notes for Scala 2.13.0 have important information applicable to the whole 2.13 series.
Scala releases are available through a variety of channels, including (but not limited to):
scalaVersion
setting in your sbt-based projectThe following changes are highlights of this release:
Library maintainers should avoid publishing libraries using Scala 2.13.9. Please use 2.13.10 instead. 2.13.9 has a regression where binary-incompatible bytecode is emitted for case classes which are also value classes (case class ... extends AnyVal
).
using
in method calls (#10064 by @som-snytt)?
as a wildcard even without -Xsource:3
(#9990)-Xsource:3
(#10012 by @povder)-Xsource:3
) (#9891 by @som-snytt)-release
more useful, deprecate -target
, align with Scala 3 (#9982 by @som-snytt)-Wnonunit-statement
to warn about discarded values in statement position (#9893 by @som-snytt)origin=
) (#9939 by @som-snytt)-Wperformance
lints for *Ref
boxing and nonlocal return
(#9889 by @som-snytt)-Vdebug-type-error
(and remove -Yissue-debug
) (#9824 by @tribbloid)Function0
execution during LazyList
deserialization (#10118)Vector#prependedAll
and Vector#appendedAll
(#9983)ConcurrentMap
wrapper
(#10027 by @igabaydulin)Map
s (#10129 by @som-snytt)Changes that shipped in Scala 2.12.16 and 2.12.17 are also included in this release.
For the complete 2.13.9 change lists, see all merged PRs and all closed bugs.
As usual for our minor releases, Scala 2.13.9 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.
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 27 contributors, according to git shortlog -sn --no-merges @ ^v2.13.8 ^2.12.x
. Thank you A. P. Marki, Lukas Rytz, Seth Tisue, Jamie Thompson, Sébastien Doeraene, Scala Steward, Georgi Krastev, Jason Zaugg, Philippus, Balys Anikevicius, Gilad Hoch, NthPortal, Zhang Zhipeng, Arman Bilge, Dale Wijnand, Dominik Helm, Eric Huang, Guillaume Martres, Harrison Houghton, Krzysztof Pado, Michał Pałka, Zeeshan Arif, counter2015, jxnu-liguobin, mcallisto, naveen, philwalk.
Thanks to Lightbend for their continued sponsorship of the Scala core team’s efforts. Lightbend offers commercial support for Scala.
The release notes for Scala 2.13.0 have important information applicable to the whole 2.13 series.
Scala releases are available through a variety of channels, including (but not limited to):
scalaVersion
setting in your sbt-based projectThis release has the following notable changes affecting compatibility:
-release
; deprecate -target
(#10109)It also fixes this regression in Scala 2.12.16:
and aids migration to Scala 2.13:
-Xsource:2.13
, warn about changed precedence in imports (#10095)and eases cross-compilation with Scala 3:
using
in method signature (to aid cross-building with Scala 3) (#10075)and enables improved tooling:
For complete 2.12.17 change lists, see all merged PRs and all closed bugs.
As usual for our minor releases, Scala 2.12.17 is binary-compatible with the whole Scala 2.12 series.
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 7 contributors, according to git shortlog -sn --no-merges @ ^v2.12.16 ^2.11.x
. Thank you Lukas Rytz, Seth Tisue, Sébastien Doeraene, A. P. Marki, Jason Zaugg, Scala Steward, Daniel Esik.
Thanks to Lightbend for their continued sponsorship of the Scala core team’s efforts. Lightbend offers commercial support for Scala.
The release notes for Scala 2.12.0 have important information applicable to the whole 2.12 series.
Scala releases are available through a variety of channels, including (but not limited to):
scalaVersion
setting in your sbt-based projectThis release improves compatibility with recent JDKs:
-target
support JDK 8 through 19 (and deprecate 5 through 7) (#9916)MethodHandle.invoke
(et al) under JDK 17 -release
(#9930)AnyVal#formatted(formatString)
, to avoid conflict with JDK 15+ method (#9783)and aids cross-compiling with Scala 3:
?
as a wildcard even without -Xsource:3
(#10005)and improves security and error reporting:
For complete 2.12.16 change lists, see all merged PRs and all closed bugs.
Scala 2.12.16 contains a regression that was discovered after the artifacts were published. Only mixed compilation of Scala and Java source files together is affected, and only when the Scala code contains references to certain nested classes in the Java sources. The problem manifests as a compile-time type error. Follow link for details and workarounds. We'll fix the problem in Scala 2.12.17 which we expect to release in a few months.
As usual for our minor releases, Scala 2.12.16 is binary-compatible with the whole Scala 2.12 series.
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 18 contributors, according to git shortlog -sn --no-merges @ ^v2.12.15 ^2.11.x
. Thank you Scala Steward, Seth Tisue, Lukas Rytz, Sébastien Doeraene, A. P. Marki, Daniel Le, Jason Zaugg, Guillaume Martres, Frank Thomas, Philippus, Daniela Sfregola, Dale Wijnand, Vadzim Marchanka, hepin.p, naferx, Fredrik Svensson, Štefan Jurčo, Georgi Krastev.
Thanks to Lightbend for their continued sponsorship of the Scala core team’s efforts. Lightbend offers commercial support for Scala.
The release notes for Scala 2.12.0 have important information applicable to the whole 2.12 series.
Scala releases are available through a variety of channels, including (but not limited to):
scalaVersion
setting in your sbt-based project