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
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.
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.
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.