3.3.0 release thread

We have released Scala 3.3.0-RC2.

According to our current plan, Scala 3.3 will become the first LTS version of the language. It will also bring many vital improvements to the language, including:

  • lightweight lazy vals implementation enabled by default
  • fewerBraces enabled for all code
  • boundary/break control abstractions (read more)
  • linting with warnings about:
    • unused values
    • unused imports
    • discarded non-Unit values

Important notice about GraalVM and 3.3.0-RC2:

If you are generating a GraalVM native image for code compiled with Scala 3.3.0-RC2 and encounter some runtime problems, like hanging or strange errors, try recompiling your code with -Ylegacy-lazy-vals flag enabled. This is a known problem and will either be resolved in the following RCs, or we will revert to old lazy vals as a default one.

1 Like

What about RC1?

Due to a very subtle flaw in our vcs flow, we have released RC1 producing the output with the wrong version of TASTy. This was not desired, as code compiled with 3.3.0-RC1 could have been used as a dependency of a code compiled with Scala 3.2. This could have led to undefined behavior. We have decided to fix the bug and release the RC2 immediately.

1 Like

We have released 3.0.0-RC3

The latest release candidate fixes problems with lazy vals in native images. It also resolves a few bugs around GADTs, some of which had been avoided fixing for many months.