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

Support the Eclipse Java Compiler #422

Closed
wants to merge 1 commit into from
Closed

Support the Eclipse Java Compiler #422

wants to merge 1 commit into from

Conversation

ascopes
Copy link
Owner

@ascopes ascopes commented Apr 8, 2023

Addresses GH-163, reintegrating ECJ into the framework.

@ascopes ascopes added new feature A new feature help needed Looking for people with time/resources/knowledge to help out with this one 👕 large labels Apr 8, 2023
@ascopes ascopes self-assigned this Apr 8, 2023
@ascopes ascopes marked this pull request as draft April 8, 2023 13:35
@github-actions
Copy link

github-actions bot commented Apr 8, 2023

Test Results

  3 364 files    3 364 suites   1s ⏱️
32 098 tests 31 689 ✔️ 287 💤 122
32 499 runs  32 090 ✔️ 287 💤 122

For more details on these failures, see this check.

Results for commit e472f19.

♻️ This comment has been updated with latest results.

@ascopes ascopes force-pushed the task/ecj branch 4 times, most recently from 0e5a023 to 5335723 Compare April 10, 2023 11:01
@codecov-commenter
Copy link

codecov-commenter commented Apr 10, 2023

Codecov Report

❗ No coverage uploaded for pull request base (main@64223ee). Click here to learn what that means.
The diff coverage is 90.43%.

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #422   +/-   ##
=======================================
  Coverage        ?   88.60%           
=======================================
  Files           ?       97           
  Lines           ?     3046           
  Branches        ?      241           
=======================================
  Hits            ?     2699           
  Misses          ?      298           
  Partials        ?       49           
Impacted Files Coverage Δ
...n/java/io/github/ascopes/jct/junit/CommonTags.java 0.00% <0.00%> (ø)
...s/jct/filemanagers/impl/EcjJctFileManagerImpl.java 60.00% <60.00%> (ø)
...ilemanagers/impl/EcjJctFileManagerFactoryImpl.java 71.42% <71.42%> (ø)
...ascopes/jct/compilers/impl/EcjJctCompilerImpl.java 80.00% <80.00%> (ø)
.../io/github/ascopes/jct/compilers/JctCompilers.java 100.00% <100.00%> (ø)
...opes/jct/compilers/impl/EcjJctFlagBuilderImpl.java 100.00% <100.00%> (ø)
.../jct/compilers/impl/JctCompilationFactoryImpl.java 100.00% <100.00%> (ø)
...jct/containers/impl/PathWrappingContainerImpl.java 72.46% <100.00%> (ø)
...pes/jct/filemanagers/ForwardingJctFileManager.java 100.00% <100.00%> (ø)
...github/ascopes/jct/junit/EcjCompilersProvider.java 100.00% <100.00%> (ø)

scripts/ecj.sh Outdated Show resolved Hide resolved
scripts/ecj.sh Outdated Show resolved Hide resolved
@ascopes ascopes force-pushed the task/ecj branch 4 times, most recently from 1beb52f to 320bd22 Compare April 28, 2023 07:11
@ascopes
Copy link
Owner Author

ascopes commented Apr 30, 2023

This is now blocked by the following bug I have opened with ECJ: eclipse-jdt/eclipse.jdt.core#958

@ascopes ascopes marked this pull request as ready for review May 1, 2023 13:58
@ascopes ascopes marked this pull request as draft May 1, 2023 13:58
@ascopes ascopes force-pushed the task/ecj branch 2 times, most recently from 70b3669 to b6c61bd Compare May 7, 2023 09:37
@ascopes ascopes force-pushed the task/ecj branch 4 times, most recently from 39347a8 to 346747c Compare June 24, 2023 07:51
@ascopes
Copy link
Owner Author

ascopes commented Jun 24, 2023

Appears 3.34.0 of ECJ no longer supports Java 11. This will be an additional problem that will need to be worked around.

@ascopes ascopes changed the title Add ECJ support back into the framework Support the Eclipse Java Compiler Jun 24, 2023
@ascopes ascopes force-pushed the task/ecj branch 2 times, most recently from f2e0721 to f6aa0d8 Compare June 27, 2023 07:05
@ascopes ascopes force-pushed the task/ecj branch 3 times, most recently from d84b758 to c686847 Compare July 13, 2023 08:11
Implement a ForwardingJctFileManager to use for aggregation/delegation

Add EcjJctFlagBuilderImpl for ECJ integration

Implement EcjJctCompilerImpl and requried components

Implement .newEcjCompiler() static method in JctCompilers class

Implement EcjCompilerTest annotation and provider.

Set 'since' attributes to 'TBC' for ECJ features

Enable EcjCompilerTest on BasicLegacyCompilationIntegrationTest

Enable EcjCompilerTest on BasicModuleCompilationIntegrationTest

Add placeholders for EcjCompilerTest on BasicMultiModuleCompilationIntegrationTest

This is currently marked as disabled due to buggy behaviour for MODULE_SOURCE_PATH
locations in ECJ.

Enable ECJ for CompilingSpecificClassesIntegrationTest

Enable MultiTieredCompilationIntegrationTest for ECJ

This is currently failing due to an integration issue with the classpath.

Bump ECJ from 3.30.0 to 3.33.0

Tidy up modified integration tests

Fix classpath lookups for ECJ when package names are slash-delimited

Fix PathWrappingContainerImpl logs

Output compiler verbose log messages to stderr rather than stdout

Enable ECJ in Avaje Inject tests

Add script to programmatically invoke ECJ

Enable -XprintProcessorInfo and -XprintRounds when .verbose(true) on ECJ compilers

Set minimum ECJ release version to JDK 8 rather than JDK 11.
@ascopes
Copy link
Owner Author

ascopes commented Jul 18, 2023

Per eclipse-jdt/eclipse.jdt.core#1153, it appears ECJ will no longer support Java 11, meaning any changes needed to fix outstanding issues and bugs we are seeing will not be supported on Java 11 if/when they are considered.

@ascopes ascopes closed this Jul 18, 2023
@ascopes ascopes deleted the task/ecj branch December 26, 2024 13:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help needed Looking for people with time/resources/knowledge to help out with this one new feature A new feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants