The first release candidate for Scala 3.10.0 is now available for public tests!
Highlights of the release
- Add support for
\sspace escape #26515 - Add support for
//> using depdirectives in the REPL (along with trailing code) #26507 - Add .deb and .rpm packaging #26858
- New stablized features:
- SIP 71: strictEqualityPatternMatching is now enabled by default default & add deprecation mechanics for
-languagefeature flags #26424
- SIP 71: strictEqualityPatternMatching is now enabled by default default & add deprecation mechanics for
- New preview features:
- New experimental features:
The upcoming 3.10.0-RC2 would also introduce support for java records in pattern matching #26497
Breaking changes
Scala 3.10 opens possibility for more breaking changes, this might be related to changes in standard library (inlining, replacement of implicit class with extensions - these might affect macros), deprecation of syntax or changes to the typer aiming to improve its stability.
- Don’t infer implicits from non-accessible companion #25367
- Enhance constant-folding during inlining #25731 - this change is known to break ZIO projects, please upgrade to Release 2.1.26 · zio/zio · GitHub containing a fix to the macros.
- Replace catching StackOverflowError with fuel #25937
- Forbid
thisin top-level definitions #26448 - Replace runtime.Rich* implicits on primitives by direct extension methods. #23872
- Make
->sugar an inline method #24728 - Make
withtype operator an error #26545 - For bytecode generation, use stock ASM (not our old scala-asm fork) #26772
See Release 3.10.0-RC1 · scala/scala3 · GitHub for full list of features
Stable release planned no earlier than September 25