Skip to content

Commit 0bb76ca

Browse files
authored
Merge pull request #2241 from SethTisue/jdk17-compat
2 parents 23a9eb1 + 6a781e1 commit 0bb76ca

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

_overviews/jdk-compatibility/overview.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,11 @@ Lightbend offers [commercial support](https://www.lightbend.com/lightbend-platfo
2626

2727
## Running versus compiling
2828

29-
We generally recommend JDK 8 or 11 for *compiling* Scala code. Since the JVM tends to be backward compatible, it is usually safe to use a newer JVM for *running* your code, especially if you are not using JVM features designated "experimental" or "unsafe".
29+
JDK 8, 11, and 17 are all good choices both for *compiling* and *running* Scala code.
3030

31-
If you compile on JDK 11+ but have users on JDK 8, additional care is needed to avoid using APIs and features that don't exist in 8. Therefore, compiling on 8 may be the safer choice. Some Scala developers use JDK 11+ for their daily work but do release builds on JDK 8.
31+
Since the JVM is normally backwards compatible, it is usually safe to use a newer JVM for *running* your code than the one it was compiled on, especially if you are not using JVM features designated "experimental" or "unsafe".
32+
33+
If you compile on JDK 11+ but have users on an older JDK version, additional care is needed to avoid using APIs and features that don't exist in 8. Therefore, *compiling* on 8 may be the safest choice in this scenario. (Some Scala developers use JDK 11 or 17 for their daily work, but do release builds on JDK 8.)
3234

3335
Additionally, you can also run your Scala application on GraalVM which is a JVM. GraalVM performs well on the Scala benchmarks, and it benefits from GraalVM runtime and runs faster too.
3436

@@ -60,7 +62,7 @@ The Scala compiler does not enforce the restrictions of the Java Platform Module
6062

6163
For sbt users, JDK 11 support requires minimum sbt version 1.1.0. sbt 1.3.9 or newer is recommended. (If you are still on the 0.13.x series, use 0.13.18.)
6264

63-
To track progress on JDK 11 related issues, watch:
65+
To track progress on JDK 11 related issues in Scala, watch:
6466

6567
* the ["Support JDK 11"](https://github.com/scala/scala-dev/issues/139 "scala/scala-dev #139") issue
6668
* the [jdk11 label](https://github.com/scala/bug/labels/jdk11) in scala/bug
@@ -73,7 +75,9 @@ Scala 2.13.6 and 2.12.15 support JDK 17.
7375

7476
The Scala test suite and Scala community build are green on JDK 17.
7577

76-
For possible issues, see the [jdk11](https://github.com/scala/bug/labels/jdk11) and [jdk17](https://github.com/scala/bug/labels/jdk17) labels in the Scala 2 bug tracker.
78+
For sbt users, sbt 1.6.0-RC1 is the first version to support JDK 17, but in practice sbt 1.5.5 may also work. (It will print a warning on startup about `TrapExit` that you can ignore.)
79+
80+
For possible Scala issues, see the [jdk11](https://github.com/scala/bug/labels/jdk11) and [jdk17](https://github.com/scala/bug/labels/jdk17) labels in the Scala 2 bug tracker.
7781

7882
## JDK 18 compatibility notes
7983

0 commit comments

Comments
 (0)