Update dependency scala to v2.13.18
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| scala (source) | 2.13.15 → 2.13.18 |
Release Notes
scala/scala (scala)
v2.13.18: Scala 2.13.18
The 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 a null 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 a Seq.
In Scala 3 (the syntax is method(arg*)), this conversion is done by the ScalaRunTime.wrapXArray methods.
These methods were simplified in 2.13.17, which changed the semantics of a method((null: Array[T])*) invocation.
#11165 restores the previous null 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 the override 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, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.18 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.17 ^2.12.x. Thank you Lukas Rytz, A. P. Marki, Scala Steward, Seth Tisue, NthPortal, Evgeny Vereshchagin, Kenji Yoshida, Philippus Baalman.
Thanks to Akka for their continued sponsorship of the Scala 2 team’s efforts. Akka 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 scalasetting in your Scala-CLI project - Bump the
scalaVersionsetting in your sbt or Mill project - Download a distribution from scala-lang.org
- Obtain JARs via Maven Central
v2.13.17: Scala 2.13.17
The 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 to 2.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, see all merged PRs and all 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 - See scala/scala#13128 for details
Scaladoc @define no longer works if the doc comment is on an object
- See scala/bug#13129 for details and a workaround
-Wunused:privates now warns about unused private final val declarations. When such a val is only referenced as argument to a Java annotation, it is incorrectly reported as unused
- See scala/bug#13130 for details
- Workaround: add
@nowarn("cat=unused-privates")to thevaldeclaration
Semantic change when passing a null sequence parameter in Scala 3, i.e., foo((null: Array[T])*). Within def foo(xs: T*), the value xs is no longer null.
- 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 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 @​ ^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 to Akka for their continued sponsorship of the Scala 2 team’s efforts. Akka 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 scalasetting in your Scala-CLI project - Bump the
scalaVersionsetting in your sbt or Mill project - Download a distribution from scala-lang.org
- Obtain JARs via Maven Central
v2.13.16: Scala 2.13.16
The 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, see all merged PRs and all closed bugs.
Compatibility
As usual for our minor releases, Scala 2.13.16 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 19 contributors, according to git 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 to Akka for their continued sponsorship of the Scala 2 team’s efforts. Akka 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 scalasetting in your Scala-CLI project - Bump the
scalaVersionsetting in your sbt or Mill project - Download a distribution from scala-lang.org
- Obtain JARs via Maven Central
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 was generated by Mend Renovate. View the repository job log.