diff --git a/releases/2.13.11.md b/releases/2.13.11.md new file mode 100644 index 0000000000..7041471b9f --- /dev/null +++ b/releases/2.13.11.md @@ -0,0 +1,90 @@ +# Scala 2.13.11 + +The Scala team at Lightbend is pleased to announce the availability of Scala 2.13.11. + +The following changes are highlights of this release: + +### Collections + +* Faster `Vector` concatenation ([#10159](https://github.com/scala/scala/pull/10159) by [@ansvonwa](https://github.com/ansvonwa)) +* New `LinkedHashMap`/`LinkedHashSet` implementation ([#10221](https://github.com/scala/scala/pull/10221) by [@liang3zy22](https://github.com/liang3zy22)) + +### Compatibility + +* Support JDK 20 and 21 by upgrading to ASM 9.5 ([#10363](https://github.com/scala/scala/pull/10363), [#10184](https://github.com/scala/scala/pull/10184) by [@Philippus](https://github.com/Philippus)) +* Fix crash reading JDK 21 classfiles ([#10397](https://github.com/scala/scala/pull/10397)) +* Support Java 17 `sealed` in Java sources and classfiles ([#10348](https://github.com/scala/scala/pull/10348), [#10105](https://github.com/scala/scala/pull/10105) by [@som-snytt](https://github.com/som-snytt)) +* Support Scala 3.3 in TASTy reader ([#10299](https://github.com/scala/scala/pull/10299) by [@bishabosha](https://github.com/bishabosha)) + +### Align with Scala 3 + +* Accept `implicit _`, `implicit (x: Int)` in lambdas, like Scala 3 does ([#10327](https://github.com/scala/scala/pull/10327) by [@som-snytt](https://github.com/som-snytt)) +* Deprecate infix type args, as they are dropped in Scala 3 ([#10255](https://github.com/scala/scala/pull/10255) by [@som-snytt](https://github.com/som-snytt)) +* Allow eta-expansion of methods with dependent types ([#10166](https://github.com/scala/scala/pull/10166)) +* Abstract parent `copy` does not suspend case `copy` ([#10085](https://github.com/scala/scala/pull/10085) by [@som-snytt](https://github.com/som-snytt)) +* Don't GLB binders of type patterns, use the type directly ([#10247](https://github.com/scala/scala/pull/10247)) +* Under `-Xsource:3`, warn that inherited members no longer take precedence over outer definitions in Scala 3 ([#10220](https://github.com/scala/scala/pull/10220), [#10339](https://github.com/scala/scala/pull/10339)) +* Under `-Xsource:3`, adjust 2.13.9 change to ignore override type for whitebox macro expansion ([#10188](https://github.com/scala/scala/pull/10188) by [@som-snytt](https://github.com/som-snytt)) +* Under `-Xsource:3`, use narrowest type for pt of override ([#10198](https://github.com/scala/scala/pull/10198) by [@som-snytt](https://github.com/som-snytt)) +* Under `-Xsource:3`, warn about change to parenless lambda parens ([#10320](https://github.com/scala/scala/pull/10320) by [@som-snytt](https://github.com/som-snytt)) + +### Lints and warnings + +* Lint select from `Unit`, or `Int` that incurs widening ([#10372](https://github.com/scala/scala/pull/10372) by [@som-snytt](https://github.com/som-snytt)) +* Lint for integral divisions that are widened to a float ([#10369](https://github.com/scala/scala/pull/10369) by [@som-snytt](https://github.com/som-snytt)) +* Lint if args adapted to `Unit` and discarded ([#10150](https://github.com/scala/scala/pull/10150) by [@som-snytt](https://github.com/som-snytt)) +* Warn that implicit should have explicit type ([#10083](https://github.com/scala/scala/pull/10083) by [@som-snytt](https://github.com/som-snytt)) + +### Other notable changes + +* Disallow mixins where super calls bind to vals ([#10268](https://github.com/scala/scala/pull/10268)) +* Make scalac's argument-file processing more like javac's in handling spaces and line breaks ([#10319](https://github.com/scala/scala/pull/10319) by [@som-snytt](https://github.com/som-snytt)) +* Bump JLine and JNA versions ([#10318](https://github.com/scala/scala/pull/10318)) +* `javabootclasspath` supersedes `jrt` ([#10336](https://github.com/scala/scala/pull/10336) by [@som-snytt](https://github.com/som-snytt)) +* Report total errors on stderr ([#10272](https://github.com/scala/scala/pull/10272) by [@som-snytt](https://github.com/som-snytt)) +* Fix pathologically slow compilation of some pattern matches since 2.13.7 ([#10258](https://github.com/scala/scala/pull/10258) by [@KisaragiEffective](https://github.com/KisaragiEffective)) +* Provide `equals` and `hashCode` on `IterableWrapper` again (fixing 2.13.9 regression) ([#10205](https://github.com/scala/scala/pull/10205) by [@som-snytt](https://github.com/som-snytt)) +* Improvements to `-Vimplicits`; errors now show complete implicit search tree ([#9944](https://github.com/scala/scala/pull/9944) by [@tribbloid](https://github.com/tribbloid)) +* `-Vprint` defaults to `-Vprint:typer`; phases may be prefixed with `~` to mean "before and after" ([#10173](https://github.com/scala/scala/pull/10173) by [@som-snytt](https://github.com/som-snytt)) + +2.13.11 also includes the changes from Scala 2.12.18. (A few of the most significant, such as those involving JDK 20 and 21 compatibility, are listed above.) + +For the complete 2.13.11 change lists, see [all merged PRs](https://github.com/scala/scala/pulls?q=is%3Amerged%20milestone%3A2.13.11) and [all closed bugs](https://github.com/scala/bug/issues?utf8=%E2%9C%93&q=is%3Aclosed+milestone%3A2.13.11). + +## 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](https://github.com/scala/bug/issues/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](https://github.com/scala/bug/issues/12799)) + +We'll address these in Scala 2.13.12. + +## Compatibility + +As usual for our minor releases, Scala 2.13.11 is [binary-compatible](https://docs.scala-lang.org/overviews/core/binary-compatibility-of-scala-releases.html) 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](https://www.lightbend.com/scala) for their continued sponsorship of the Scala 2 team’s efforts. Lightbend offers [commercial support](https://www.lightbend.com/lightbend-platform-subscription) for Scala. + +## Scala 2.13 notes + +The [release notes for Scala 2.13.0](https://github.com/scala/scala/releases/v2.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](https://scala-lang.org/download/2.13.11.html) +* Obtain JARs via [Maven Central](https://search.maven.org/search?q=g:org.scala-lang%20AND%20v:2.13.11)