This repository was archived by the owner on Feb 19, 2024. It is now read-only.
chore(deps): update dependency scala to v2.13.12 #322
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.10.2
->2.13.12
Release Notes
scala/scala (scala)
v2.13.12
: Scala 2.13.12Compare Source
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
.CodeAction
) (#10406 by @eed3si9n)-quickfix
compiler option to apply quickfixes to source files (#10482 by @lrytz)Align with Scala 3
-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)Collections
IndexedSeq#head
now throwsNoSuchElementException
(notIndexOutOfBoundsException
) (#10392 by @som-snytt)Regression fixes
JavaDeprecatedAttr
inClassfileParser
(#10422 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):
using scala
setting in your Scala CLI projectscalaVersion
setting in your sbt or Mill projectv2.13.11
: Scala 2.13.11Compare Source
The Scala team at Lightbend is pleased to announce Scala 2.13.11.
The following changes are highlights of this release:
Collections
Vector
concatenation (#10159 by @ansvonwa)LinkedHashMap
/LinkedHashSet
implementation (#10221 by @liang3zy22)Compatibility
sealed
in Java sources and classfiles (#10348, #10105 by @som-snytt)Align with Scala 3
implicit _
,implicit (x: Int)
in lambdas, like Scala 3 does (#10327 by @som-snytt)copy
does not suspend casecopy
(#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)Lints and warnings
Unit
, orInt
that incurs widening (#10372 by @som-snytt)Unit
and discarded (#10150 by @som-snytt)Other notable changes
javabootclasspath
supersedesjrt
(#10336 by @som-snytt)equals
andhashCode
onIterableWrapper
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.
Known issues
A few regressions have been discovered:
@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):
scalaVersion
setting in your sbt projectusing scala
setting in your Scala-CLI projectv2.13.10
: Scala 2.13.10Compare Source
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
Library maintainers should avoid publishing libraries using Scala 2.13.9.
Other notable changes
-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.
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):
scalaVersion
setting in your sbt-based projectv2.13.9
: Scala 2.13.9Compare Source
The following changes are highlights of this release:
Regression
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
).Compatibility with Scala 3
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)JDK version support
-release
more useful, deprecate-target
, align with Scala 3 (#9982 by @som-snytt)Warnings and lints
-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 nonlocalreturn
(#9889 by @som-snytt)Language improvements
Compiler options
-Vdebug-type-error
(and remove-Yissue-debug
) (#9824 by @tribbloid)Security
Function0
execution duringLazyList
deserialization (#10118)Bugfixes
Vector#prependedAll
andVector#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.
Compatibility
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.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 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.
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):
scalaVersion
setting in your sbt-based projectv2.13.8
: Scala 2.13.8Compare Source
The Scala team at Lightbend is pleased to announce the availability of Scala 2.13.8.
This is a modest, incremental release focused on addressing regressions in 2.13.7.
Highlights
IndexedSeq
s (including fixing 2.13.7reverseIterator
regression) (#9799 by @som-snytt)releaseFence
regression affecting GraalVM compatibility (#9825 by @lrytz)A few small changes that will ship in 2.12.16 are also included in this release.
For the complete 2.13.8 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.8 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.
This release was brought to you by 8 contributors, according to
git shortlog -sn --no-merges @​ ^v2.13.7 ^2.12.x
. Thank you A. P. Marki, Seth Tisue, Georgi Krastev, Jason Zaugg, Lukas Rytz, Martijn Hoekstra, Philippus Baalman, Chris Kipp.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):
scalaVersion
setting in your sbt-based projectv2.13.7
: Scala 2.13.7Compare Source
The Scala team at Lightbend is pleased to announce the availability of Scala 2.13.7.
Align with Scala 3
import x.{*, given}
under-Xsource:3
(#9724 by @smarter)case
in pattern bindings even without-Xsource:3
(#9721 by @smarter)JDK and Java compatibility
StringConcatFactory
for string concatenation on JDK 9+ (#9556 by @harpocrates)Android compatibility
ClassValueCompat
to support systems withoutjava.lang.ClassValue
(such as Android) (#9752 by @nwk37011)Statics.releaseFence()
also catchNoSuchMethodException
forjava.lang.invoke.VarHandle.releaseFence()
call (#9739 by @nwk37011)Concurrency
Future#{zip,zipWith,traverse,sequence}
by making them fail fast regardless of ordering (#9655 by @lihaoyi)Collections
ArrayBuffer
's iterator fail fast when buffer is mutated (#9258 by @NthPortal)ArrayOps
bugs (by avoidingArraySeq#array
, which does not guarantee element type) (#9641 by @som-snytt)IterableOps.toIterable
(#9774 by @lrytz)Other changes
Some small changes that will ship in 2.12.16 are also included in this release.
For the complete 2.13.7 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.7 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.
This release was brought to you by 25 contributors, according to
git shortlog -sn --no-merges @​ ^v2.13.6 ^2.12.x
. Thank you A. P. Marki, Lukas Rytz, Seth Tisue, Jason Zaugg, Jamie Thompson, NthPortal, Georgi Krastev, Guillaume Martres, Dale Wijnand, Martijn Hoekstra, Alec Theriault, Rafał Sumisławski, Matt Dziuban, Li Haoyi, Doug Roper, Sébastien Doeraene, VladKopanev, danicheg, dengziming, megri, nwk37011, Magnolia.K, 梦境迷离, Mathias, James Judd.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):
scalaVersion
setting in your sbt-based projectv2.13.6
: Scala 2.13.6Compare Source
The Scala 2 team at Lightbend is pleased to announce the availability of Scala 2.13.6.
Highlights
-Vimplicits
and-Vtype-diffs
flags (#7785)s"\""
ands"$""
(#8830 by @eed3si9n and #9536 by @martijnhoekstra)Other Changes
BigInt
implementation (#9628) by @denisrossetprivate[this]
members in override checking (#9542)_root_
(#9482) by @som-snyttConstantAnnotation
(9336) by @BalmungSan-Xsource:3
(#9602)&
instead ofwith
in types under-Xsource:3
(#9594)-Xsource:3
(#9584)-Xsource:3
(#9582)-Xsource:3
(#9580)?
as wildcard marker under-Xsource:3
(#9560)-Xsource:3
(#9558)+_
and-_
in types as identifiers under-Xsource:3
to support Scala 3.2 placeholder syntax (#9605)Some small changes that will ship in 2.12.14 are also included in this release.
For the complete 2.13.6 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.6 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.
This release was brought to you by 25 contributors, according to
git shortlog -sn --no-merges HEAD ^v2.13.5 ^2.12.x
. Thank you A. P. Marki, Lukas Rytz, Dale Wijnand, Jamie Thompson, Seth Tisue, 梦境迷离, Guillaume Martres, Martijn Hoekstra, Denis Rosset, Aaron S. Hawley, Kai, Eugene Yokota, Jason Zaugg, Anatolii Kmetiuk, Ikko Ashimine, superseeker13, Eugene Platonov, Diego E. Alonso Blas, Filipe Regadas, Hatano Yuusuke, Luis Miguel Mejía Suárez, Rafał Sumisławski, Alec Theriault, Tom Grigg, Torsten Schmits.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):
scalaVersion
setting in your sbt-based projectv2.13.5
: Scala 2.13.5Compare Source
Scala 2.13.5
The Scala 2 team at Lightbend is pleased to announce the availability of Scala 2.13.5.
Highlights
Other changes
-target
support JVM 13, 14, 15, 16, and 17 (#9489, #9481)@nowarn
annotations from generated code, for forwards compatibility at compile-time (#9491)-Wunused:synthetics
or-Wunused:params
) (#9346) — thank you @som-snytt!ConstantAnnotation
s (#9379)Map
wrappers handle nulls according toput
/remove
contract (#9344) — thank you @som-snytt!Some small changes that will ship in 2.12.14 are also included in this release.
For complete 2.13.5 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.5 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.
This release was brought to you by 23 contributors, according to
git shortlog -sn --no-merges HEAD ^v2.13.4 ^2.12.x
. Thank you Seth Tisue, A. P. Marki, Dale Wijnand, NthPortal, Jamie Thompson, Lukas Rytz, Martijn Hoekstra, Georgi Krastev, Jason Zaugg, Jasper Moeys, Sakib Hadziavdic, Anatolii Kmetiuk, Arnaud Gourlay, Marcono1234, Chia-Ping Tsai, Mike Skells, Stefan Zeiger, Waleed Khan, Yann Bolliger, Guillaume Martres, 梦境迷离, Ethan Atkins, Darcy Shen.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):
scalaVersion
setting in your sbt-based projectv2.13.4
: Scala 2.13.4Compare Source
Scala 2.13.4:
ExecutionContext
to 2.12 behaviorand more! Details below.
Concurrency
NOTE The following change affects parallelism and performance. If you use
scala.concurrent.ExecutionContext.global
you maywant to adapt your code. (But note that Akka is unaffected, because it uses its own execution contexts.)
In 2.13.0 we made
ExecutionContext.global
"opportunistic". This enabled "batching" of nested tasksto execute on the same thread, avoiding an expensive context switch. That strategy requires
user code to wrap long-running and/or blocking tasks with
blocking { ... }
to maintain parallelexecution.
For 2.13.4, we restore 2.12's default non-batching behavior, which is safer for arbitrary user code. Users wanting
increased performance may override the default, if they believe their code uses
blocking
correctly.We make that choice available via
ExecutionContext.opportunistic
.Using
ExecutionContext.opportunistic
requires a bit of extra boilerplate, made necessary by binarycompatibility constraints on the standard library. Detailed instructions are in
ExecutionContext.global's Scaladoc.
Further detail: #9270/#9296/scala/bug#12089,
Pattern matching
The pattern matcher is now much better at warning you if a match isn't exhaustive.
The following types of matches no longer disable exhaustivity checking:
case <pattern> if <condition> => ...
) #9140unapply
orunapplySeq
) #9140/#9162-Xlint
or-Xlint:strict-unsealed-patmat
#9140/#9299Additionally,
New warnings reported can be resolved by:
if n > 0
andif n <= 0
) by dropping the last guardSome
case x => throw new MatchError(x)
Otherwise, your options for suppressing warnings include:
@unchecked
, such as(foo: @​unchecked) match { ... }
-Xnon-strict-patmat-analysis
-Xlint:-strict-unsealed-patmat
-Wconf
to suppress the warnings globally, with e.g.-Wconf:msg=match may not be exhaustive:i
Scala 3 interop
This release enables the Scala 2 compiler to consume some libraries built in Scala 3. #9109/#9293
The new capability is experimental. To enable it, add
-Ytasty-reader
to your compiler options.Not all Scala 3 built libraries are supported, because not all Scala 3 features can be supported.
The library author must stay within the supported subset.
For more details and caveats see the blog post Forward Compatibility for the Scala 3 Transition.
Standard library changes
CharSequence#isEmpty
method #9292CharSequence
wrappers inPredef
non-implicit.LazyList.cons.apply
lazier #9095MapView#values
preserve laziness #9090ListBuffer
's iterator fail when the buffer is mutated #9174StringOps
methods, despite Unicode concerns #9246Compiler changes
classOf
with object type (e.g.classOf[Foo.type]
) #9279-Yrangepos
) by default #9146Other changes
Some changes that will also ship in 2.12.13 are also included in this release, most notably:
CharSequence#isEmpty
method #9292implicit
was removed fromPredef
's implicit conversions toSeqCharSequence
andArrayCharSequence
.For complete 2.13.4 change lists, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.4 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.
This release was brought to you by 40 contributors, according to
git shortlog -sn --no-merges HEAD ^v2.13.3 ^2.12.x
. Thank you Jamie Thompson, Dale Wijnand, A. P. Marki, NthPortal, Lukas Rytz, Seth Tisue, Jason Zaugg, Georgi Krastev, Eugene Yokota, Martijn Hoekstra, Trey Cahill, Rado Buransky, Ergys Dona, Mike Skells, Greg Pfeil, Kazuhiro Sera, Mitsuhiro Shibuya, NagaChaitanya Vellanki, Sergei Petunin, Sébastien Doeraene, Takahashi Osamu, Viktor Klang, mwielocha, Nicolas Stucki, Jan Arne Sparka, Philippus Baalman, Glenn Liwanag, Rafał Sumisławski, Renato Cavalcanti, Sergei, nooberfsh, Dmitrii Naumenko, Simão Martins, counter2015, Jian Lan, Liu Fengyun, Kanishka, Julien Richard-Foy, Janek Bogucki, Björn Regnell.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):
scalaVersion
setting in your sbt-based projectv2.13.3
: Scala 2.13.3Compare Source
Scala 2.13.3 is primarily a bugfix release.
It also includes:
-Xasync
supportFor more detail, read on.
Behavior changes
Symbol#toString
is nowSymbol(foo)
instead of the deprecated single-quote form'foo
(#8933)Bugfixes
Vector
: restore special cases for small operands inappendedAll
andprependedAll
(#9036)#::
forLazyList
(#8985)@uncheckedVariance
in higher-kinded types (fixing 2.13.2 regression) (#8938)Warnings and linting
-Xlint:nullary-override
is no longer accepted, since this now warns by defaultx op (a, b)
), also lint operator-name definitions (#8951)@nowarn
to use correct semantics for&
(#9032)-Wunused:imports
work again even when-Ymacro-annotations
is enabled (#8962)-Wself-implicit
with-Xlint:implicit-recursion
(#9019)-Xsource:3
, disallow auto-eta-expansion of SAMs (#9049)Experimental
-Xasync
This successor to scala-async allows usage with other effect systems besides
scala.concurrrent.Future
.-Xasync
(#8816)We will publish a blog post with more detail on this work by @retronym, building on his earlier collaboration with @phaller. In the meantime, see the PR description.
This feature will also be included in the 2.12.12 release.
Other changes
For complete 2.13.3 change lists, see all merged PRs and all closed bugs.
Some changes that will ship in 2.12.12 are also included in this release, most notably:
@Deprecated
(#8781)-release 8
: exclude sig files inSymbol#sourceFile
(#8849)Compatibility
As usual for our minor releases, Scala 2.13.3 is binary-compatible with the whole Scala 2.13 series.
Upgrading from 2.12? Enable
-Xmigration
during upgrade 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.
This release was brought to you by 28 contributors, according to
git shortlog -sn --no-merges HEAD ^v2.13.2 ^2.12.x
. Thank you A. P. Marki, Jason Zaugg, Seth Tisue, Dale Wijnand, Lukas Rytz, Georgi Krastev, David Barri, Eugene Yokota, Diego E. Alonso Blas, Akhtiam Sakaev, Glenn Liwanag, changvvb, Evgeny Ganchurin, Mike Skells, Martijn Hoekstra, yudedako, Anatolii Kmetiuk, Gilles Peiffer, JyotiSachdeva.ext, Karol Chmist, Kenji Yoshida, Lorenzo Costanzia di Costigliole, NthPortal, Steven Barnes, Sébastien Doeraene, Travis Brown, counter2015, nogurenn.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):
scalaVersion
setting in your sbt-based projectv2.13.2
: Scala 2.13.2Compare Source
Scala 2.13.2 has:
Vector
implementationVector
Vector
(using "radix-balanced finger tree vectors"), for performance (#8534)Small vectors are now more compactly represented. Some operations are now drastically faster on large vectors. A few operations may be a little slower.
Kudos to @szeiger for this work.
Configurable warnings
-Wconf
flag for configurable warnings,@nowarn
annotation for local suppression (#8373)Note that scala-collection-compat 2.1.6 (or newer) provides
@nowarn
for cross-built projects (as a no-op on 2.11 and 2.12).Special thanks to Roman Janusz (@ghik), whose silencer plugin was the basis for this work.
REPL improvements
-Yrepl-class-based
and-Yuse-magic-imports
(#8748)-Yrepl-class-based
avoids deadlocks-Yuse-magic-imports
improves performance for long sessionsSpecial thanks to @som-snytt for spearheading the JLine 3 upgrade.
We are tracking JLine-related improvements and regressions here. There some known regressions in some less-vital features and behaviors; we plan to address these in future 2.13.x releases.
Language changes
Compiler fixes
getClass
,toString
, etc) from root module import (#8541)Deprecations