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

[23] Top Level Bug for Java 23 Support for JDT.Core #2212

Closed
22 of 24 tasks
mpalat opened this issue Mar 25, 2024 · 14 comments
Closed
22 of 24 tasks

[23] Top Level Bug for Java 23 Support for JDT.Core #2212

mpalat opened this issue Mar 25, 2024 · 14 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@mpalat
Copy link
Contributor

mpalat commented Mar 25, 2024

Umbrella bug for Java 23 activities - Ref :
https://openjdk.org/projects/jdk/23/
https://openjdk.org/projects/jdk/23/spec/

for updates on 23

Features for Java 23 release:

Batch Compiler:

JSR 398 Issue:

The following issues may warrant issues of their own - Will be created if required

  • JSR 199: Java Compiler API -
  • JSR 269: Pluggable Annotation-Processing API

IDE Support for the relevant features listed above under Batch Compiler

Additional Tracking for Issues

Release Activities captured in:

@mpalat mpalat added this to the BETA_JAVA23 milestone Mar 25, 2024
@mpalat mpalat added the enhancement New feature or request label Apr 12, 2024
@stephan-herrmann
Copy link
Contributor

stephan-herrmann commented May 23, 2024

Should ecj follow the behavior change proposed in Proposal to change default annotation processing policy in JDK 23? I.e., change the default to -proc:none?

@jarthana
Copy link
Member

jarthana commented May 28, 2024

Should ecj follow the behavior change proposed in Proposal to change default annotation processing policy in JDK 23? I.e., change the default to -proc:none?

* see also [Add -proc:full to batch compiler #2347](https://github.com/eclipse-jdt/eclipse.jdt.core/issues/2347)

Personally, I am not very keen. If we come across a compelling reason in future, we can do this. For the time being, we can just add support for -proc:full

@stephan-herrmann
Copy link
Contributor

Personally, I am not very keen. If we come across a compelling reason in future, we can do this. For the time being, we can just add support for -proc:full

Fair enough 😄

Just for completeness, here's the reasoning from the original proposal:

This policy of implicitly running annotation processors by default may have been
reasonable when the feature was introduced in JDK 6 circa 2006, but from
a current perspective, in the interest of making build output more
robust against annotation processors unintentionally being placed on the
class path, the policy should not be the default anymore.

But since this default is not part of any specification we are free to choose (keep) our own default.

Perhaps right now, users might be badly surprised when we change the default. In the future, once users have adjusted to the change in javac, they'll probably start complaining about ecj. Let's see.

@stephan-herrmann
Copy link
Contributor

@stephan-herrmann
Copy link
Contributor

Specifications have been posted for Public Review, see announcement in https://mail.openjdk.org/pipermail/java-se-spec-experts/2024-July/000384.html

None of the specifications affecting the compiler have changes after 2024-06-04

@stephan-herrmann
Copy link
Contributor

@mpalat I think it would be easier to track progress if we close all issues without impact on JDT, no?

On my list I see a need for JDT-work only in JEP 455 and JEP 467. Am I missing any?

@mpalat
Copy link
Contributor Author

mpalat commented Jul 17, 2024

@mpalat I think it would be easier to track progress if we close all issues without impact on JDT, no?

@stephan-herrmann Agree.. the idea is to someone to investigate each of the JEPs listed so that we don't miss out atleast knowing that there is change/no change. Hence I keep listing all the JEPs release after release. Yes, it makes sense if we investigate some of the issues which are not relevant. I will also take up some.

On my list I see a need for JDT-work only in JEP 455 and JEP 467. Am I missing any?

Mostly yes. Additionally, JSR 398 - no issue created yet - only a placeholder - will also need to be investigated.

@stephan-herrmann
Copy link
Contributor

Specifications and RI are final, see https://mail.openjdk.org/pipermail/java-se-spec-experts/2024-August/000391.html

@stephan-herrmann
Copy link
Contributor

stephan-herrmann commented Sep 1, 2024

Here's some status from running relevant tests with run.javac enabled:

👍 This looks pretty good! 👍

Some random existing tests neighboring the above:

  • ModuleCompilationTests
    • 8 errors, 4 of which can be resolved by test changes (javac error message changed, or javac bug got fixed)
  • PatternMatching16Test
    • 83 failures, obviously not suitable for running back-to-back with javac23
    • 67 errors vs javac16
  • RecordPatternTest 4 errors - 1 avoidable by suitable configuration, remaining:
    • javac-generated code throws ArithmeticException instead of expected MatchException (see comments in tests):
      • testGH1977_instance_field()
      • testGH1977_static_field()
      • testIssue1985_2()
  • SwitchPatternTest: 5 errors (some related to wrongly configured --enable-preview, others not yet analysed)
  • SwitchPatternTest21: 2 errors
    • testInternalDomination_this() (ecj no error, javac 2 errors)
    • testNaming() // javac jdk21 allows components to be named, but they can't be referenced

to be continued in #2959

@stephan-herrmann
Copy link
Contributor

Here's some status from running relevant tests with run.javac enabled:

Confirmation of javac bug is here: https://mail.openjdk.org/pipermail/compiler-dev/2024-September/027729.html

We'll check equivalence of compilers in the next preview round (possibly with amendments in JLS).

@stephan-herrmann
Copy link
Contributor

Let's declare success here! 🍾

@mpalat
Copy link
Contributor Author

mpalat commented Sep 20, 2024

Let's declare success here! 🍾

YES 🙏

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

No branches or pull requests

3 participants