Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JDK compat page: add Scala 3 LTS column #3083

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

SethTisue
Copy link
Member

@SethTisue SethTisue commented Oct 14, 2024

realized recently that was a significant omission we ought to address

@Gedochao @sjrd need your help here — I left two cells blank because I don't know what to put, and I'm not sure some other entries are correct (see below)

@SethTisue
Copy link
Member Author

in addition to the blank cells, I'm also wondering if the Scala 3 LTS column values are actually correct. I no longer remember what the basis for the "3.3.4" and "3.3.5" entries was

JDK 21 support landed in scala/scala3#17536, in scala/scala3@5038c9c which is in 3.3.1's history but not 3.3.0's , so I believe that 3.3.1 entry is correct for JDK 21

but what about 22 and 23? did we actually do anything to support those versions?

I suspect the "3.3.4" and "3.3.5" entries might have come about because those are the versions were we upgraded ASM. in Scala 2, it makes sense for the ASM upgrade PRs to be the vital ones, because the Scala 2 optimizer uses ASM to read bytecode

but Scala 3 doesn't have the optimizer. does it ever use ASM for reading bytecode, or does it only ever use ASM to generate bytecode? if the latter, than maybe 3.3.1 actually works fine on JDK 22 and 23 and the table ought to indicate that?

I see that https://www.scala-lang.org/news/3.3.4 does say "Support for JDK 22", but there's no link that goes with it. what is the basis for that claim? I would like to understand

cc @Philippus, who has taken an interest in ASM upgrades

cc @bishabosha who is responsible for scala/scala3#18618 and might have some insight

@bishabosha
Copy link
Member

bishabosha commented Oct 14, 2024

You are right that 3.3.0 didn't work with JDK 21, it crashed in a weird way due to the constant pool change - so in 3.4.0 (and backported to LTS) we introduced more explicit reporting of breaking due to failures in reading class files

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants