3.3.4 release thread

Scala 3.3.4-RC1 is ready for testing! The next patch release of Scala 3.3 LTS brings a large number of applicable backports from the Scala 3.4 and 3.5 series.
A stable release is planned for August 26th.

The changelog can be, as always, found on GitHub

The new release was tested using Scala 3 Open Community on over 1500 open-source projects, and as far as we can tell, it is fully backward and forward-source compatible with 3.3.3. However, we’re aware of 1 false-positive pattern-matching regression that’s going to be fixed in the final version.

An additional notable change is the backport of Correct Java signature for value classes appearing in type arguments by jtjeferreira · Pull Request #20463 · scala/scala3 · GitHub. This change fixes and aligns generic signatures of value classes to match their behaviour on the JVM. Before this change generic signatures containing parameters or result types defined as value classes have been using the signatures of value class field underlying type. This change can lead to MiMa failures if generic signature checks are enabled. Differences in generic signatures can only affect code using reflection to access and call generic methods.

10 Likes

As someone who is following the Scala 3 PR queue, I saw the amount of effort it took to backport all these fixes. Thank you @WojciechMazur !

9 Likes

How many additional warnings (vs. 3.3.3) does it create for all those projects combined, if at all?

Scala 3.3.4-RC2 is now available for testing! See the changelog here: Release 3.3.4-RC2 · scala/scala3 · GitHub

The second release candidate introduced fixes to pattern matching that regressed in RC1. Additionally, it includes missing backports for fixes to type refinements in SAM types that regressed in 3.3.2.

Unfortunately, we’ve already found 1 additional regression introduced when fixing pattern matching issues. We’re working on a fix for the upcoming 3.3.4-RC3.

Scala 3.3.4 would introduce new warnings. Some of these are caused by improvements to unused symbols linting. However, there are also some new warning categories - this includes:

In the case of unused symbols, we’re now finding almost 2x more cases, 1420 instances vs 864 in 3.3.3 - however, this increase does not accommodate for changes introduced in tested projects in 2 months, so these stats should be taken with a grain of salt.

1 Like

Scala 3.3.4-RC3 is ready!

The third release candidate fixes the performance regression introduced in RC2. Unfortunately, it also required us to revert improvements to pattern matching - these would become reintroduced in some next LTS release after the underlying performance issue is fixed.

Changelog is as always available on the GitHub releases page

3 Likes

Scala 3.3.4 is now public!

8 Likes