- Notifications
You must be signed in to change notification settings - Fork3.1k
Releases: scala/scala
Scala 2.13.18
98f40d0The Scala team at Akka is pleased to announce Scala 2.13.18.
This release fixes several regressions from 2.13.17. It is compatible with JDKs 8 to 26.
The following are highlights of this release:
Restore traditional behavior when passing anull array to a varargs method in Scala 3
When passing an array as "sequence argument" to a varargs method,method(arg: _*), the array is converted to aSeq.
In Scala 3 (the syntax ismethod(arg*)), this conversion is done by theScalaRunTime.wrapXArray methods.
These methods were simplified in 2.13.17, which changed the semantics of amethod((null: Array[T])*) invocation.
#11165 restores the previousnull handling semantics.
Fixes for false positive warnings
- #11162 reverts
-Xlint:infer-anyto the behavior of 2.13.16.
The lint was extended in 2.13.17 to warn wheneverNothingis inferred for a higher-kinded type parameterT[_].
The new warning showed up in many projects: often as a false positive, but even the "true" positive warning was considered unhelpful / spurious in real-world use cases. - Fix false positive unused warning for private val used in annotation#11149
- Fix false positive
-Xlint:universal-methodswarning in synthetic code#11159
JDK 26 support
- Compiling on Java 26 is now supported#11179
New@uncheckedOverride annotation
The new@uncheckedOverride annotation is equivalent to theoverride keyword, except that it allows to override nothing. This is useful when cross-building: a method may override or not, depending on the version of some dependency.#11179
GPG key change
This release is signed with a different GPG key than previous Scala 2 releases. The new key is the same one used by Scala 3.#11158
Other notable changes
- On Java 25+,
sbt runnow detects main methods that are non-static, non-public or without parameter list#11137 - Regression fix: 2.13.17 was accidentally dropping certain annotations#11173
- Deprecate the
-Xmain-classcompiler flag#11156
More changes
For the complete 2.13.18 change lists, seeall merged PRs andall closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.18 isbinary-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 togit shortlog -sn --no-merges @ ^v2.13.17 ^2.12.x. Thank you Lukas Rytz, A. P. Marki, Scala Steward, Seth Tisue, NthPortal, Evgeny Vereshchagin, Kenji Yoshida, Philippus Baalman.
Thanks toAkka for their continued sponsorship of the Scala 2 team’s efforts. Akka offers commercial support for Scala.
Scala 2.13 notes
Therelease 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 scalasetting in your Scala-CLI project - Bump the
scalaVersionsetting in your sbt or Mill project - Download a distribution fromscala-lang.org
- Obtain JARs viaMaven Central
Assets10
Uh oh!
There was an error while loading.Please reload this page.
Scala 2.13.17
05169c7The Scala team at Akka is pleased to announce Scala 2.13.17.
This release is compatible with the new JDK 25 LTS.
See below for known issues / regressions in this release.
The following are highlights of this release:
Compatibility
- JDK 25 support in optimizer (#11046)
- Support Scala 3.7 in the TASTy reader (#11100)
- When parsing Java sources, skip JDK 21+’s JEP 445 compact compilation units (#11066)
Breaking changes
- Mix in the
productPrefixhash statically in case classhashCode(#11023)- The synthetic
hashCodemethod of a case class no longer callsproductPrefix. This changes the hash code of case classes that overrideproductPrefix.
- The synthetic
- Improve
scala.util.Usingsuppression order (NonFatalsuppressesControlThrowable) (#11000 by@NthPortal)- When multiple exceptions are thrown, a predefined order determines which exception is rethrown and which is attached as "suppressed"
- Users of scala-collection-compat can upgrade to2.14.0 to get the same behavior change
- If you use
Usingin a project that crossbuilds to Scala 3, you may wish to wait for a Scala 3 release that includes the 2.13.17 standard library, or use a dependency override to force the upgrade in your build
Features and notable changes
- Fix
AnnotationInfowhen using named/default arguments, support custom annotation subclasses (#10976)- Users can now define, for example,
class nodep extends annotation.nowarn("cat=deprecation")and use@nodepto silence deprecations
- Users can now define, for example,
- Show
nowarn/-Wconffilters for a warning with@nowarn("verbose")(#10985) - Use
toVectorfor XML literal sequences (#11065)
Scala 3 compatibility and migration
- Allow using
-Xsource-featureswithout-Xsource:3(#11123) - Lint inferred structural types (#10942)
- In case this warning is undesired, it can be disabled using
-Xlint:_,-infer-structural
- In case this warning is undesired, it can be disabled using
- Port
summonIgnoringfrom 3.7 asc.inferImplicitValueIgnoring(#11068 by@MateuszKubuszok)
Notable bug fixes
- Allow optimizer use within Bazel (don't attempt inlining methods without instructions) (#11016)
- Reduce memory footprint of evaluated elements in
LazyList(#10937) - Deregister stale callbacks in
Future.firstCompletedOf(prevents memory leaks) (#10927) - Require
-Xsource-features:eta-expand-alwaysfor eta-expansion without an expected type (#10907 by@som-snytt)
More changes
For the complete 2.13.17 change lists, seeall merged PRs andall closed bugs.
Known issues / regressions
False positive lint warning:a type was inferred to be kind-polymorphic
- A new warning was added to the existing
-Xlint:infer-anyflag (which is also enabled with plain-Xlint) - The implementation issues false positive warnings
- To revert back to the behavior of Scala 2.13.16, add
-Wconf:cat=lint-infer-any&msg=kind-polymorphic:s - Seescala/scala#13128 for details
Scaladoc@define no longer works if the doc comment is on anobject
- Seescala/bug#13129 for details and a workaround
-Wunused:privates now warns about unusedprivate final val declarations. When such aval is only referenced as argument to a Java annotation, it is incorrectly reported as unused
- Seescala/bug#13130 for details
- Workaround: add
@nowarn("cat=unused-privates")to thevaldeclaration
Semantic change when passing anull sequence parameter in Scala 3, i.e.,foo((null: Array[T])*). Withindef foo(xs: T*), the valuexs is no longernull.
- Merely updating
scala-libraryon the classpath to 2.13.17 can change the runtime behavior of previously compiled code - See#11165 for details
Compatibility
As usual for our minor releases, Scala 2.13.17 isbinary-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 togit shortlog -sn --no-merges @ ^v2.13.16 ^2.12.x. Thank you A. P. Marki, Lukas Rytz, Seth Tisue, Alec Theriault, Jason Zaugg, Sébastien Doeraene, Scala Steward, Bernhard, Tomasz Godzik, Vasil Vasilev, Arthur Soulié, Emil Ejbyfeldt, Hamza Remmal, Jiri Vanek, Kenji Yoshida, Lorenzo Gabriele, Marissa, Mateusz Kubuszok, Matthew Lutze, Philippus Baalman, Stefan Zeiger, philwalk, 虎鸣.
Thanks toAkka for their continued sponsorship of the Scala 2 team’s efforts. Akka offers commercial support for Scala.
Scala 2.13 notes
Therelease 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 scalasetting in your Scala-CLI project - Bump the
scalaVersionsetting in your sbt or Mill project - Download a distribution fromscala-lang.org
- Obtain JARs viaMaven Central
Assets10
Uh oh!
There was an error while loading.Please reload this page.
Scala 2.13.16
3f6bdaeThe Scala team at Akka (formerly Lightbend) is pleased to announce Scala 2.13.16.
The following changes are highlights of this release:
Breaking change
- On the empty string,
.tailand.initnow throw (instead of returning the empty string) (#10851 by@sh0hei)- This is a bugfix, but be aware that existing code might, perhaps inadvertently, be relying on the old behavior
Compatibility
- Support Scala 3.6 in TASTy reader (#10893)
- Support JDK 24 in optimizer (via ASM upgrade) (#10888 by@Philippus)
REPL
- REPL: JLine 3.27.1 (was 3.26.3) and on Windows use JNI not JNA (#10899,#10898,#10882)
- These upgrades hopefully won't be noticed, but, REPL users on Windows take note
- JNA is no longer a dependency of
scala-compiler.jar
Align with Scala 3
- Under
-Xsource:3, deprecate infix named args (#10857 by@som-snytt)
Errors and warnings
- Fix 2.13.15-only false positives with
-Wunused:patvars(#10870 by@som-snytt)
Collections
- Do not use
rangeHashwhenrangeDiffis 0 (#10912 by@Friendseeker)- This may affect fragile code relying on ordering of hash-based collections
- Deprecate
collection.mutable.AnyRefMap(#10862 by@wangyum)- Since Scala 2.13.0 it has no performance advantage over
collection.mutable.HashMap
- Since Scala 2.13.0 it has no performance advantage over
More changes
For the complete 2.13.16 change lists, seeall merged PRs andall closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.16 isbinary-compatible with the whole Scala 2.13 series.
Upgrading from 2.12? Enable-Xmigration while upgrading to request migration advice from the compiler.
Contributors
A big thank you to everyone who's helped improve Scala by reporting bugs, improving our documentation, spreading kindness in discussions around Scala, and submitting and reviewing pull requests! You are all magnificent.
We especially acknowledge and thank A. P. Marki, also known as Som Snytt, who is responsible for many of the improvements in this release.
This release was brought to you by 19 contributors, according togit shortlog -sn --no-merges @ ^v2.13.15 ^2.12.x. Thank you A. P. Marki, Seth Tisue, Scala Steward, Lukas Rytz, Friendseeker, Ondra Pelech, Philippus Baalman, Benjamin Maurer, Corey O'Connor, Eric Seidel2, Hamza Remmal, Jamie Thompson, João Costa, Kenji Yoshida, Mathias Kools, Rikito Taniguchi, Yuming Wang, rochala, sh0hei.
Thanks toAkka for their continued sponsorship of the Scala 2 team’s efforts. Akka offers commercial support for Scala.
Scala 2.13 notes
Therelease 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 scalasetting in your Scala-CLI project - Bump the
scalaVersionsetting in your sbt or Mill project - Download a distribution fromscala-lang.org
- Obtain JARs viaMaven Central
Assets9
Uh oh!
There was an error while loading.Please reload this page.
Scala 2.13.15
b6f70d2The Scala team at Lightbend is pleased to announce Scala 2.13.15.
The following changes are highlights of this release:
Breaking changes
-Wconf:x,ynow means-Wconf:x -Wconf:y, with y overruling x, rather than the reverse (to align with Scala 3.4+ and with user intuition) (#10708 by@som-snytt)- Compiler plugins: rework and improve phase assembly (#10687 by@som-snytt)
- Plugin authors should check to see if they are affected
- Plugin users may see strange errors if a plugin is affected and not adjusted by its author
- Most plugins are not affected
Compatibility
- Support JDK 23 in optimizer (via upgrade to patched ASM 9.7.0) (#10744)
- Support Scala 3.5 in TASTy reader (#10811 by@bishabosha)
- REPL: JLine 3.26.3 (was 3.25.1) (#10827)
Features
- Support alternative JVM system images (via
-system, like javac) (#10801 by@szeiger) - Add
-Ycollect-statisticsfor collecting statistics without printing them (#10795 by@szeiger)
Align with Scala 3
- Add
-Xsource-features:double-definitionsto warn or error for double definitions (#10846 by@som-snytt) - Under
-Xsource:3, allow importinggiven, for cross-building (#10786 by@som-snytt) - Under
-Xsource:3, remove by-name restriction for case copy (#10770 by@som-snytt)
Errors and warnings
- Fix
-Wconfand-nowarnto be more consistent (#10750 by@som-snytt) - Add
-Wtostring-interpolatedto warn if interpolator usestoString(#10776 by@som-snytt) - Improve inferred-
Anylint (fixing false positives and false negatives) (#9452 by@som-snytt) - Fix false-positive unused warnings in for comprehensions (#10812 by@som-snytt)
- (Still seeing false positives, or new false positives? see#10870)
- Fix false-positive by-name implicit warnings with
-Wmacros(#10781 by@som-snytt) - Mention if missing symbol is on the class path (#10774 by@som-snytt)
- Avoid unused import warnings in REPL (#10769 by@som-snytt)
- Add
-Vcyclicto improve reporting of "cyclic reference" errors (#10680 by@som-snytt)
More changes
For the complete 2.13.15 change lists, seeall merged PRs andall closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.15 isbinary-compatible with the whole Scala 2.13 series.
Upgrading from 2.12? Enable-Xmigration while upgrading to request migration advice from the compiler.
Contributors
A big thank you to everyone who's helped improve Scala by reporting bugs, improving our documentation, spreading kindness in discussions around Scala, and submitting and reviewing pull requests! You are all magnificent.
We especially acknowledge and thank A. P. Marki, also known as Som Snytt, who is responsible for many of the improvements in this release.
This release was brought to you by 13 contributors, according togit shortlog -sn --no-merges @ ^v2.13.14 ^2.12.x. Thank you A. P. Marki, Lukas Rytz, Scala Steward, Seth Tisue, Jamie Thompson, Stefan Zeiger, Hamza Remmal, EnzeXing, Marissa, Philippus Baalman, Samuel Chassot, luozexuan, nbauma109.
Thanks toLightbend for their continued sponsorship of the Scala 2 team’s efforts. Lightbend offerscommercial support for Scala.
Scala 2.13 notes
Therelease 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 scalasetting in your Scala-CLI project - Bump the
scalaVersionsetting in your sbt or Mill project - Download a distribution fromscala-lang.org
- Obtain JARs viaMaven Central
Assets9
Uh oh!
There was an error while loading.Please reload this page.
Scala 2.12.20
13f19f4This release improvescompatibility:
- Support JDK 23 in optimizer (via upgrade to patched ASM 9.7.0) (#10747 by@Philippus)
- Bump scala-xml dependency to 2.3.0 (was 2.2.0) (#10782)
andcompiler profiling:
For complete 2.12.20 change lists, seeall merged PRs andall closed bugs.
Compatibility
As usual for our minor releases, Scala 2.12.20 isbinary-compatible with the whole Scala 2.12 series.
Contributors
A big thank you to everyone who's helped improve Scala by reporting bugs, improving our documentation, spreading kindness in discussions around Scala, and submitting and reviewing pull requests! You are all magnificent.
This release was brought to you by 8 contributors, according togit shortlog -sn --no-merges @ ^v2.12.19. Thank you Scala Steward, Seth Tisue, Lukas Rytz, A. P. Marki, Hamza Remmal, Philippus Baalman, Stefan Zeiger, nbauma109.
Thanks toLightbend for their continued sponsorship of the Scala 2 team’s efforts. Lightbend offerscommercial support for Scala 2.
Scala 2.12 notes
Therelease notes for Scala 2.12.0 have important information applicable to the whole 2.12 series.
Obtaining Scala
Scala releases are available through a variety of channels, including (but not limited to):
- Bump the
scalaVersionsetting in your sbt project - Bump the
using scalasetting in your Scala CLI project - Download a distribution fromscala-lang.org
- Obtain JARs viaMaven Central
Assets9
Uh oh!
There was an error while loading.Please reload this page.
Scala 2.13.14
a527019The 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:3and-Xsource:3-cross(#10709)- A section of the Scala 3 Migration Guide documents these flags:documentation
Regression fixes
- Rename
-Xlint:named-booleansto-Wunnamed-boolean-literal(and no longer include it in-Xlint) (#10704 by@som-snytt) - Fix
ArrayBuilderregression in Scala 2.13.13 (OutOfMemoryErrorwhen adding empty arrays) (#10722 by@som-snytt) - Fix 2.13.13 regression in Scaladoc compilation when using Scala 3 definitions (#10700 by@bishabosha)
Other improvements
- Unused warnings: for macros, by default, look for usages in expansion (#10693 by@som-snytt)
- REPL: Upgrade to JLine 3.25.1 (was 3.24.1) (#10717)
- Remove
SHELLOPTS=viand-Xjline support; reinstate-Xnojline(#10716 by@hvesalai)
More changes
For the complete 2.13.14 change lists, seeall merged PRs andall closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.14 isbinary-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 togit 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 toLightbend for their continued sponsorship of the Scala 2 team’s efforts. Lightbend offerscommercial support for Scala.
Scala 2.13 notes
Therelease 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 scalasetting in your Scala CLI project - Bump the
scalaVersionsetting in your sbt or Mill project - Download a distribution fromscala-lang.org
- Obtain JARs viaMaven Central
Assets9
Uh oh!
There was an error while loading.Please reload this page.
Scala 2.13.13
fcc67cdThe Scala team at Lightbend is pleased to announce Scala 2.13.13.
The following changes are highlights of this release:
Language
- Support binary integer literals using
0b, as in Java (#10656 by@som-snytt)
Compatibility
- TASTy reader: support Scala 3.4 (#10670 by@bishabosha)
- Support certain Java libraries compiled on JDK 21 (#10675 by@SethTisue)
- For JDK 22 support, upgrade to ASM 9.6 (#10576 by@Philippus)
Align with Scala 3
- Allow either
-Xsource:3(for preparing to switch to 3) or-Xsource:3-cross(for crossbuilding on 2 and 3); some existing users of-Xsource:3should switch to-Xsource:3-crossto avoid unwanted behavior changes (#10573 by@som-snytt)- A new section in the Scala 3 Migration Guide documents
-Xsource:3and-Xsource:3-cross:documentation
- A new section in the Scala 3 Migration Guide documents
- For migration to 3, accommodate case companion as function (#10648 by@som-snytt)
- Scala 3 migration warning for implicits found in package prefix (#10621 by@lrytz)
Other improvements
-Yreleasesupplements-release, allows access to additional JVM packages (#10543 by@som-snytt)-Xlintnow enables-Xlint:named-booleansto lint unnamed boolean literal args (#10612 by@som-snytt)- Respect
java.lang.Deprecatedannotation even in Scala sources (#10517 by@kapunga) - Optimize tail recursion on effectively final methods even when
finalkeyword is absent (#10629 by@som-snytt) - Add
-Xlint:pattern-shadowto lint pattern varids which are backquotable (#8806 by@som-snytt) - In mixed compilation, allow Java sources to reference
MODULE$(#10644 by@som-snytt) - Scaladoc: re-align
-doc-source-urlbehavior with 2.12 (#10581 by@lrytz)
Known issues
- When upgrading to 2.13.13, existing users of
-Xsource:3should explicitly consider switching to-Xsource:3-cross. Some behaviors of-Xsource:3have changed, e.g. in result type inference for inherited methods; seenew doc page for details - Some library authors who were already using
-Xsource:3are getting MiMa failures when upgrading to 2.13.13 and switching from-Xsource:3to-Xsource:3-cross. If you’re in this situation, you may need to wait for 2.13.14; seescala/bug#12961 - Users of sbt must upgrade to sbt 1.9.9 to use the
consoletask to access the 2.13.13 REPL (sbt/sbt#7502); error message isNoSuchMethodError: org.jline.utils.AttributedString.fromAnsi - Regression: Scaladoc generation may fail if you are using the TASTy reader to access Scala 3 dependencies (scala/bug#12955); error message is "Unsupported Scala 3 generic tuple type"; we'll fix it in 2.13.14
- Regression: on JDK 11 (but not 8 or 17 or 21), the REPL prints a harmless "illegal reflective access" warning at startup (scala/bug#12957); we'll fix it in 2.13.14
- The inclusion of
-Xlint:named-booleansin-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, seeall merged PRs andall closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.13 isbinary-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 togit 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 toLightbend for their continued sponsorship of the Scala 2 team’s efforts. Lightbend offerscommercial support for Scala.
Scala 2.13 notes
Therelease 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 scalasetting in your Scala CLI project - Bump the
scalaVersionsetting in your sbt or Mill project - Download a distribution fromscala-lang.org
- Obtain JARs viaMaven Central
Assets9
Uh oh!
There was an error while loading.Please reload this page.
Scala 2.12.19
afbad90This release improvescompatibility:
- Support certain Java libraries compiled on JDK 21 (#10675 by@SethTisue)
- Support JDK 22 in optimizer (by upgrading to ASM 9.6) (#10575 by@Philippus)
- New
-Yreleaseoption supplements-release, allows access to additional JVM packages (#10671 by@som-snytt) - Update compiler's scala-xml dependency to2.2.0 (was 2.1.0) (#10459 by@SethTisue)
And it hasbugfixes:
- Fix rare
NullPointerExceptionin some tree-based collections (#10640 by@lrytz) - Improved
InterruptedExceptionhandling forFutures (#10379 by@szeiger)
For complete 2.12.19 change lists, seeall merged PRs andall closed bugs.
Compatibility
As usual for our minor releases, Scala 2.12.19 isbinary-compatible with the whole Scala 2.12 series.
Contributors
A big thank you to everyone who's helped improve Scala by reporting bugs, improving our documentation, spreading kindness in discussions around Scala, and submitting and reviewing pull requests! You are all magnificent.
This release was brought to you by 9 contributors, according togit 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 toLightbend for their continued sponsorship of the Scala 2 team’s efforts. Lightbend offerscommercial support for Scala 2.
Scala 2.12 notes
Therelease notes for Scala 2.12.0 have important information applicable to the whole 2.12 series.
Obtaining Scala
Scala releases are available through a variety of channels, including (but not limited to):
- Bump the
scalaVersionsetting in your sbt project - Bump the
using scalasetting in your Scala CLI project - Download a distribution fromscala-lang.org
- Obtain JARs viaMaven Central
Assets9
Uh oh!
There was an error while loading.Please reload this page.
Scala 2.13.12
80514f7The Scala team at Lightbend is pleased to announce Scala 2.13.12.
The following changes are highlights of this release:
Feature: Quickfixes
For some errors and warnings, the compiler now suggests an edit that could fix the issue. Tooling such as IDEs can then offer the edits, or the compiler itself will make the change if run again with-quickfix.
- Implement quickfixes, aka actionable diagnostics (via
CodeAction) (#10406 by@eed3si9n) - Add
-quickfixcompiler option to apply quickfixes to source files (#10482 by@lrytz) - Add quickfixes to some warnings and errors (#10484 by@lrytz)
Align with Scala 3
- Emit migration warnings under
-Xsource:3as fatal warnings, not errors (#10439 by@som-snytt,#10511)-Xmigrationwill demote the errors to warnings-Wconf:cat=scala3-migration:swill silence these errors/warnings altogether
- Warn about
@elidableunder-Xsource:3(#10377 by@som-snytt)
Collections
IndexedSeq#headnow throwsNoSuchElementException(notIndexOutOfBoundsException) (#10392 by@som-snytt)
Regression fixes
- Deduplicate
JavaDeprecatedAttrinClassfileParser(#10422 by@som-snytt) - Avoid brittle flags encoding for Java enums (#10424 by@som-snytt)
Scaladoc tool changes
Library authors should be aware that the behavior of-doc-source-url has changed, as follows:
You may need to adjust your build accordingly, to avoid generating broken source links.
Tooling
The following change is mainly of concern to tooling maintainers.
Other notable changes
For the complete 2.13.12 change lists, seeall merged PRs andall closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.12 isbinary-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 togit 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 toLightbend for their continued sponsorship of the Scala 2 team’s efforts. Lightbend offerscommercial support for Scala.
Scala 2.13 notes
Therelease 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 scalasetting in your Scala CLI project - Bump the
scalaVersionsetting in your sbt or Mill project - Download a distribution fromscala-lang.org
- Obtain JARs viaMaven Central
Assets9
Uh oh!
There was an error while loading.Please reload this page.
Scala 2.13.11
f113b1aThe Scala team at Lightbend is pleased to announce Scala 2.13.11.
The following changes are highlights of this release:
Collections
- Faster
Vectorconcatenation (#10159 by@ansvonwa) - New
LinkedHashMap/LinkedHashSetimplementation (#10221 by@liang3zy22)
Compatibility
- Support JDK 20 and 21 by upgrading to ASM 9.5 (#10363,#10184 by@Philippus)
- Fix crash reading JDK 21 classfiles (#10397)
- Support Java 17
sealedin Java sources and classfiles (#10348,#10105 by@som-snytt) - Support Scala 3.3 in TASTy reader (#10299 by@bishabosha)
Align with Scala 3
- Accept
implicit _,implicit (x: Int)in lambdas, like Scala 3 does (#10327 by@som-snytt) - Deprecate infix type args, as they are dropped in Scala 3 (#10255 by@som-snytt)
- Allow eta-expansion of methods with dependent types (#10166)
- Abstract parent
copydoes not suspend casecopy(#10085 by@som-snytt) - Don't GLB binders of type patterns, use the type directly (#10247)
- Under
-Xsource:3, warn that inherited members no longer take precedence over outer definitions in Scala 3 (#10220,#10339) - Under
-Xsource:3, adjust 2.13.9 change to ignore override type for whitebox macro expansion (#10188 by@som-snytt) - Under
-Xsource:3, use narrowest type for pt of override (#10198 by@som-snytt) - Under
-Xsource:3, warn about change to parenless lambda parens (#10320 by@som-snytt)
Lints and warnings
- Lint select from
Unit, orIntthat incurs widening (#10372 by@som-snytt) - Lint for integral divisions that are widened to a float (#10369 by@som-snytt)
- Lint if args adapted to
Unitand discarded (#10150 by@som-snytt) - Warn that implicit should have explicit type (#10083 by@som-snytt)
Other notable changes
- Disallow mixins where super calls bind to vals (#10268)
- Make scalac's argument-file processing more like javac's in handling spaces and line breaks (#10319 by@som-snytt)
- Bump JLine and JNA versions (#10318)
javabootclasspathsupersedesjrt(#10336 by@som-snytt)- Report total errors on stderr (#10272 by@som-snytt)
- Fix pathologically slow compilation of some pattern matches since 2.13.7 (#10258 by@KisaragiEffective)
- Provide
equalsandhashCodeonIterableWrapperagain (fixing 2.13.9 regression) (#10205 by@som-snytt) - Improvements to
-Vimplicits; errors now show complete implicit search tree (#9944 by@tribbloid) -Vprintdefaults to-Vprint:typer; phases may be prefixed with~to mean "before and after" (#10173 by@som-snytt)
2.13.11 also includes thechanges 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, seeall merged PRs andall 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
@Deprecatedannotations when extending Java interface with deprecated default method causejava.lang.annotation.AnnotationFormatErrorwhen 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 isbinary-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 togit 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 toLightbend for their continued sponsorship of the Scala 2 team’s efforts. Lightbend offerscommercial support for Scala.
Scala 2.13 notes
Therelease 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
scalaVersionsetting in your sbt project - Bump the
using scalasetting in your Scala-CLI project - Download a distribution fromscala-lang.org
- Obtain JARs viaMaven Central
Assets9
Uh oh!
There was an error while loading.Please reload this page.