Scala 3.3.8 LTS backports bugfixes and select improvements from the Scala Next series onto the 3.8.4 baseline, verified against over 1500 projects in the Scala 3 Open Community Build for compatibility. Highlights include JDK 26 support, coverage tooling improvements matching Scala 2 parity, a new @uncheckedOverride annotation, Ctrl-C trapping in the REPL, linting fixes, and a new -Yfuture-lazy-vals flag for a JDK 9+ compatible lazy val implementation. The next LTS release will roll forward to updates from the upcoming 3.9.x line, which will itself become a new LTS.

2m read timeFrom scala-lang.org
Post cover image

Questions this post answers

What's new in Scala 3.3.8 LTS?

Scala 3.3.8 LTS backports bugfixes and select improvements from the Scala Next series, including JDK 26 support, coverage tooling improvements matching Scala 2 parity, a new @uncheckedOverride annotation, Ctrl-C trapping in the REPL, and a new -Yfuture-lazy-vals option for a JDK 9+ compatible lazy val implementation. All changes were tested across 1500+ projects for compatibility. Track Scala LTS releases like this on daily.dev before planning an upgrade.

Does Scala 3.3.8 support JDK 26?

Yes, JDK 26 support was added in Scala 3.3.8 LTS as one of the notable backported changes, alongside coverage improvements, REPL Ctrl-C handling, and a new annotation for overridable definitions. Developers tracking JVM and Scala compatibility follow release updates like this on daily.dev.

What is the -Yfuture-lazy-vals option in Scala?

The -Yfuture-lazy-vals option, introduced in Scala 3.3.8 LTS, lets developers compile using a new lazy val implementation that is compatible with all JDK 9 and later versions. It was backported from the Scala Next series after being validated against more than 1500 community projects. Keep up with compiler flag changes like this by following Scala releases on daily.dev.