Skip to content

Releases: scala/scala

Scala 2.13.10

13 Oct 13:02
v2.13.10
4905801
Compare
Choose a tag to compare

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

Scala 2.13.9

21 Sep 21:03
v2.13.9
986dcc1
Compare
Choose a tag to compare

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

  • Add -Wnonunit-statement to warn about discarded values in statement position (#9893 by @som-snytt)
  • Make unused-import warnings easier to silence (support filtering by origin=) (#9939 by @som-snytt)
  • Add -Wperformance lints for *Ref boxing and nonlocal return (#9889 by @som-snytt)

Language improvements

  • Improve support for Unicode supplementary characters in identifiers and string interpolation (#9805 by @som-snytt)

Compiler options

  • Use subcolon args to simplify optimizer options (#9810 by @som-snytt)
  • For troubleshooting compiler, add -Vdebug-type-error (and remove -Yissue-debug) (#9824 by @tribbloid)

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

Scala 2.12.17

16 Sep 21:44
v2.12.17
45183fa
Compare
Choose a tag to compare

This release has the following notable changes affecting compatibility:

  • Always emit Java 8 bytecode on 2.12, regardless of -release; deprecate -target (#10109)
  • Upgrade the 2.12 scala-compiler's dependency on scala-xml to 2.1.0 (was 1.0.6) (#10108)

It also fixes this regression in Scala 2.12.16:

  • Correctly handle overloads in mixed compilation with Java inner classes (fixing 2.12.16 regression) (#10045)

and aids migration to Scala 2.13:

  • Under -Xsource:2.13, warn about changed precedence in imports (#10095)

and eases cross-compilation with Scala 3:

  • Accept and ignore using in method signature (to aid cross-building with Scala 3) (#10075)

and enables improved tooling:

  • Tooling support: Add a tree attachment to mark auto-applications (#10063)
  • Tooling support: Attachments for infix Apply and postfix Select (#10042)
  • Tooling support: Fix AST positions for XML literals, selections from blocks (#10040)

For complete 2.12.17 change lists, see all merged PRs and all closed bugs.

Compatibility

As usual for our minor releases, Scala 2.12.17 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 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.

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

Scala 2.12.16

10 Jun 15:02
v2.12.16
c850a83
Compare
Choose a tag to compare

This release improves compatibility with recent JDKs:

  • Use ASM 9.3, enabling JDK 19 support (#10000)
  • Make -target support JDK 8 through 19 (and deprecate 5 through 7) (#9916)
  • Fix codegen for MethodHandle.invoke (et al) under JDK 17 -release (#9930)
  • Deprecate AnyVal#formatted(formatString), to avoid conflict with JDK 15+ method (#9783)

and aids cross-compiling with Scala 3:

  • Allow ? as a wildcard even without -Xsource:3 (#10005)

and improves security and error reporting:

  • For security, error on source files with Unicode directional formatting characters (#10023, #10030)
  • Fix range position end for infix calls (#9761)

For complete 2.12.16 change lists, see all merged PRs and all closed bugs.

Known issue

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.

Compatibility

As usual for our minor releases, Scala 2.12.16 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 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.

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

Scala 2.13.8

13 Jan 00:53
v2.13.8
4b2151c
Compare
Choose a tag to compare

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

  • Make REPL work again on Mac M1 (upgrade JLine & JNA) (#9807 by @SethTisue)
  • Fix slicing of views of IndexedSeqs (including fixing 2.13.7 reverseIterator regression) (#9799 by @som-snytt)
  • Fix 2.13.7 regression in implicit resolution (#9829 by @joroKr21)
  • Fix 2.13.7 releaseFence regression affecting GraalVM compatibility (#9825 by @lrytz)
  • Fix 2.13.7 regression affecting wildcards and F-bounded types (#9806 by @joroKr21)

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

Scala 2.13.7

01 Nov 15:09
v2.13.7
fe0df69
Compare
Choose a tag to compare

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

  • Make ArrayBuffer's iterator fail fast when buffer is mutated (#9258 by @NthPortal)
  • Fix ArrayOps bugs (by avoiding ArraySeq#array, which does not guarantee element type) (#9641 by @som-snytt)
  • Deprecate IterableOps.toIterable (#9774 by @lrytz)

Other changes

  • Accept supplementary Unicode characters in identifiers (#9687 by @som-snytt)
  • Improve tab completion and code assist in REPL (#9656 by @retronym)

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

Scala 2.12.15

14 Sep 19:45
v2.12.15
96a6669
Compare
Choose a tag to compare

This release improves compatibility with JDK 17 and 18:

  • Avoids IllegalArgumentException in JDK 17+ for lambda deserialization (#9676)
  • Upgrades to ASM 9.2, for JDK 18 support in optimizer (#9701)

and facilitates cross-building with Scala 3 with:

  • Allow case in pattern bindings even without -Xsource:3 (#9740 by @smarter)
  • Allow import x.{*, given} under -Xsource:3 (#9736 by @smarter)
  • Handle star in import selector (under -Xsource:3) (#9665 by @som-snytt)

For complete 2.12.15 change lists, see all merged PRs and all closed bugs.

Compatibility

As usual for our minor releases, Scala 2.12.15 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 4 contributors, according to git shortlog -sn --no-merges @ ^v2.12.14 ^2.11.x. Thank you Jason Zaugg, Seth Tisue, A.P. Marki, Guillaume Martres.

Thanks to Lightbend for their continued sponsorship of the Scala core 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):

Scala 2.12.14

28 May 02:22
v2.12.14
21a8a7a
Compare
Choose a tag to compare

For complete 2.12.14 change lists, see all merged PRs and all closed bugs.

Compatibility

As usual for our minor releases, Scala 2.12.14 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 40 contributors, according to git shortlog -sn --no-merges HEAD ^v2.12.13 ^2.11.x. Thank you Jason Zaugg, Lukas Rytz, Guillaume Martres, Dale Wijnand, Seth Tisue, A. P. Marki, Mike Skells, Tom Grigg, Kai, Mario Galic, Martijn Hoekstra, tanishiking, Philippus, Adriaan Moors, Sébastien Doeraene, Tobias Schlatter, Andrii, Filipe Regadas, Alexey Kotlyarov.

Thanks to Lightbend for their continued sponsorship of the Scala core 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):

Scala 2.13.6

17 May 09:58
v2.13.6
9468b9a
Compare
Choose a tag to compare

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

Scala 2.13.5

22 Feb 21:01
v2.13.5
8cc248d
Compare
Choose a tag to compare

Scala 2.13.5

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

Highlights

Other changes

  • Assorted improvements to exhaustivity checking in pattern matching (#9479, #9472, #9474, #9313, #9462)
  • Assorted improvements to handling of higher-kinded types, aligning with Scala 3 (#9400, #9404, #9405, #9414, #9417, #9439) — thank you @joroKr21!
  • Make -target support JVM 13, 14, 15, 16, and 17 (#9489, #9481)
  • Omit @nowarn annotations from generated code, for forwards compatibility at compile-time (#9491)
  • Add linting of unused context bounds (via -Wunused:synthetics or -Wunused:params) (#9346) — thank you @som-snytt!
  • Lift artificial restrictions on ConstantAnnotations (#9379)
  • Make Java Map wrappers handle nulls according to put/remove contract (#9344) — thank you @som-snytt!
  • Make language specification available as a PDF (#7432) — thank you @sake92!

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