Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update dependency scala to v2.13.14 #37

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Nov 20, 2022

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
scala (source) 2.13.1 -> 2.13.14 age adoption passing confidence

Release Notes

scala/scala (scala)

v2.13.14: Scala 2.13.14

Compare Source

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
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

v2.13.13: Scala 2.13.13

Compare Source

The Scala team at Lightbend is pleased to announce Scala 2.13.13.

The following changes are highlights of this release:

Language
Compatibility
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
  • 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
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 is NoSuchMethodError: 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

v2.13.12: Scala 2.13.12

Compare 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.

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 throws NoSuchElementException (not IndexOutOfBoundsException) (#​10392 by @​som-snytt)
Regression fixes
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

v2.13.11: Scala 2.13.11

Compare Source

The Scala team at Lightbend is pleased to announce Scala 2.13.11.

The following changes are highlights of this release:

Collections
Compatibility
Align with Scala 3
Lints and warnings
Other notable changes

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 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.

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

v2.13.10: Scala 2.13.10

Compare 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
  • 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):

v2.13.9: Scala 2.13.9

Compare 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
  • Tasty Reader: Add support for Scala 3.2 (#​10068)
  • Tasty Reader: Restrict access to experimental definitions (#​10020)
  • To aid cross-building, accept and ignore using in method calls (#​10064 by @​som-snytt)
  • To aid cross-building, allow ? as a wildcard even without -Xsource:3 (#​9990)
  • Make Scala-3-style implicit resolution explicitly opt-in rather than bundled in -Xsource:3 (#​10012 by @​povder)
  • Prefer type of overridden member when inferring (under -Xsource:3) (#​9891 by @​som-snytt)
JDK version support
Warnings and lints
Language improvements
  • Improve support for Unicode supplementary characters in identifiers and string interpolation (#​9805 by @​som-snytt)
Compiler options
Security
  • Error on source files with Unicode directional formatting characters (#​10017)
  • Prevent Function0 execution during LazyList deserialization (#​10118)
Bugfixes
  • Emit all bridge methods non-final (perhaps affecting serialization compat) (#​9976)
  • Fix null-pointer regression in Vector#prependedAll and Vector#appendedAll (#​9983)
  • Improve concurrent behavior of Java ConcurrentMap wrapper
    (#​10027 by @​igabaydulin)
  • Preserve null policy in wrapped Java Maps (#​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):

v2.13.8: Scala 2.13.8

Compare 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

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):

v2.13.7: Scala 2.13.7

Compare Source

The Scala team at Lightbend is pleased to announce the availability of Scala 2.13.7.

Align with Scala 3
JDK and Java compatibility
Android compatibility
  • Add ClassValueCompat to support systems without java.lang.ClassValue (such as Android) (#​9752 by @​nwk37011)
  • For Android compatibility, make Statics.releaseFence() also catch NoSuchMethodException for java.lang.invoke.VarHandle.releaseFence() call (#​9739 by @​nwk37011)
Concurrency
  • Fix asymmetric failure behavior of Future#{zip,zipWith,traverse,sequence} by making them fail fast regardless of ordering (#​9655 by @​lihaoyi)
Collections
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):

v2.13.6: Scala 2.13.6

Compare Source

The Scala 2 team at Lightbend is pleased to announce the availability of Scala 2.13.6.

Highlights
Other Changes
  • Optimized BigInt implementation (#​9628) by @​denisrosset
  • Support JDK15 text blocks in Java parser (#​9548) by @​harpocrates
  • Stricter override checking for protected Scala members which override Java members (#​9525) by @​kynthus
  • Check private[this] members in override checking (#​9542)
  • More accurate outer checks in patterns (#​9504)
  • Allow renaming imports from _root_ (#​9482) by @​som-snytt
  • Make more annotations extend ConstantAnnotation (9336) by @​BalmungSan
  • A number of syntax changes were added to simplify cross-building between Scala 2 and 3
    • Don't error (only warn) on symbol literals under -Xsource:3 (#​9602)
    • Support writing & instead of with in types under -Xsource:3 (#​9594)
    • Support Scala 3 vararg splice syntax under -Xsource:3 (#​9584)
    • Support Scala 3 wildcard and renaming imports under -Xsource:3 (#​9582)
    • Allow soft keywords open and infix under -Xsource:3 (#​9580)
    • Align leading infix operator with Scala 3 improvements (#​9567)
    • Support ? as wildcard marker under -Xsource:3 (#​9560)
    • Support case in pattern bindings under -Xsource:3 (#​9558)
    • Parse +_ 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):

v2.13.5: Scala 2.13.5

Compare 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

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):

v2.13.4: Scala 2.13.4

Compare Source

Scala 2.13.4:

  • Restores default global ExecutionContext to 2.12 behavior
  • Improves pattern matching, especially in exhaustivity checking
  • Adds experimental support for consuming some libraries built by Scala 3

and more! Details below.

Concurrency

NOTE The following change affects parallelism and performance. If you use scala.concurrent.ExecutionContext.global you may
want 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 tasks
to 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 parallel
execution.

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 binary
compatibility 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:

  • guards (case <pattern> if <condition> => ...) #​9140
  • custom extractors (user-defined unapply or unapplySeq) #​9140/#​9162
  • unsealed types, if you opt in via -Xlint or -Xlint:strict-unsealed-patmat #​9140/#​9299

Additionally,

New warnings reported can be resolved by:

  1. adding any missing cases
  2. in the case of complementary guards (e.g. if n > 0 and if n <= 0) by dropping the last guard
  3. for custom extractors: demarking irrefutable extractors as such, by defining the return type as Some
  4. for sealed types: marking traits or parent classes sealed, parent classes abstract, and classes final
  5. explicitly declaring the default case: case x => throw new MatchError(x)

Otherwise, your options for suppressing warnings include:

  1. annotate the scrutinee with @unchecked, such as (foo: @&#8203;unchecked) match { ... }
  2. disable exhaustivity checking in the presence of guards and custom extractors with -Xnon-strict-patmat-analysis
  3. disable exhaustivity checking of unsealed types with -Xlint:-strict-unsealed-patmat
  4. use -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
  • When compiling on JDK 15, avoid clash with new CharSequence#isEmpty method #​9292
    • The clash is avoided by making CharSequence wrappers in Predef non-implicit.
    • The change is binary compatible, but not source compatible. Cal

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot requested a review from j5ik2o as a code owner November 20, 2022 16:52
@renovate renovate bot changed the title Update dependency scala to v2.13.10 chore(deps): update dependency scala to v2.13.10 Mar 11, 2023
@renovate renovate bot changed the title chore(deps): update dependency scala to v2.13.10 chore(deps): update dependency scala to v2.13.11 Jun 2, 2023
@renovate renovate bot changed the title chore(deps): update dependency scala to v2.13.11 chore(deps): update dependency scala to v2.13.12 Sep 6, 2023
@renovate renovate bot changed the title chore(deps): update dependency scala to v2.13.12 chore(deps): update dependency scala to v2.13.13 Feb 21, 2024
@renovate renovate bot changed the title chore(deps): update dependency scala to v2.13.13 chore(deps): update dependency scala to v2.13.14 Apr 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

0 participants