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

Consume final ASM 6 #373

Closed
iloveeclipse opened this issue Sep 12, 2017 · 14 comments
Closed

Consume final ASM 6 #373

iloveeclipse opened this issue Sep 12, 2017 · 14 comments

Comments

@iloveeclipse
Copy link
Member

Bad news: final ASM 6 will break API compared with ASM 6 BETA.
Good news: the change is small and they plan to release by the end of September.
So we should consider to switch to the final ASM 6 for the 3.1 release.

See https://mail.ow2.org/wws/arc/asm/2017-09/msg00000.html

@pdillinger
Copy link

The SpotBugs 3.1.0 description says "First SpotBugs release. Same features as FindBugs, plus proper support for Java 8."

Doesn't ASM 5.x have proper support for Java 8? Doesn't ASM 6 support Java 9? Do you mean Java 9? Is there a plan for Java 9 support?

@KengoTODA
Copy link
Member

Doesn't ASM 5.x have proper support for Java 8?

ASM 5 supports Java 8. ASM 6 was introduced at FindBugs 3.1.0 preview version, to support Java 9.

Doesn't ASM 6 support Java 9?

ASM 6 beta support Java 9. You can refer official release note.

Do you mean Java 9? Is there a plan for Java 9 support?

We have plan to support Java 9, but it has no progress for now. Java 9 is not supported by ASM and other bytecode manupilation tools.

So Java 9 will not be supported by SpotBugs 3.1.0, I guess.

@iloveeclipse
Copy link
Member Author

Java 9 is not supported by ASM and other bytecode manupilation tools.

??? ASM 6 has support for Java 9.

So Java 9 will not be supported by SpotBugs 3.1.0, I guess.

I guess we will support it (we had it in FindBugs already, see https://github.com/findbugsproject/findbugs/issues?q=java+9+label%3Ajava9), we just need to validate if the new Java 9 builds broke something again.

@KengoTODA
Copy link
Member

??? ASM 6 has support for Java 9.

Then it's OK. Their release note says that does not work with javac 9 (yet !), so I wasn't so sure.

@KengoTODA
Copy link
Member

we had it in FindBugs already

But Jigsaw broke FindBugs/SpotBugs so current master branch cannot support Java 9 for now 😭

@iloveeclipse
Copy link
Member Author

But Jigsaw broke FindBugs/SpotBugs

Please create an issue for that, with details what is broken again and which JDK build was used.

@iloveeclipse
Copy link
Member Author

Their release note says that does not work with javac 9 (yet !)

I believe this is about using ASM jars as modules for javac, but we don't care about that aspect.

@KengoTODA
Copy link
Member

#101 is the related issue.

@iloveeclipse
Copy link
Member Author

#101 is the related issue.

This is the issue only for running SpotBugs standalone. If SpotBugs is just used as a library (e.g. in Eclipse or maven/jenkins/whatever), it depends on the container configuration, and this is out of our control.

So if this is the only problem, then we can say that we support Java 9 if used as library. Standalone execution is easy to fix anyway, and we can also mention that too, if we didn't manage to merge #101 for 3.1.0 release.

BTW, I believe the #101 is already out-of-date, they changed their mind multiple times and I believe we need just to read some recent JDK 9 docs to get the right options set.

@KengoTODA
Copy link
Member

OK, then our remaining TODO is just about ensuring that SpotBugs can work as library, right?

Then maybe we can make integration test which runs with Maven, And and Gradle. In my understanding we cannot automate test with Eclipse, then we need to check it by hands.

@iloveeclipse
Copy link
Member Author

iloveeclipse commented Sep 20, 2017

our remaining TODO is just about ensuring that SpotBugs can work as library, right?

Yes and no. We can and should try to fix the command line execution.

AFAIK the JDK guys seem to managed really final set of JVM arguments which are still needed for SpotBugs command line application to run. So we should check the latest JDK build/docs (where are they?!?!?, is this only we get: https://docs.oracle.com/javase/9/migrate/toc.htm#JSMIG-GUID-7BB28E4D-99B3-4078-BDC4-FC24180CE82B ?.

Eclipse seem to do some tricks with --add-modules=ALL-SYSTEM (I'm looking at Eclipse code with support for Java 9, see discussion and patches here: https://bugs.eclipse.org/bugs/show_bug.cgi?id=520636 and here: https://git.eclipse.org/c/equinox/rt.equinox.framework.git/commit/?id=5ec02a751ee291e11f6bb6e76ab777f3eb930cc1).

However I don't see --add-modules=ALL-SYSTEM argument in the java documentation, only jdeps mentions this: https://docs.oracle.com/javase/9/tools/jlink.htm#JSWOR-GUID-CECAC52B-CFEE-46CB-8166-F17A8E9280E9 ?!?!?!?

I found https://docs.oracle.com/javase/9/tools/java.htm#JSWOR-GUID-4856361B-8BFD-4964-AE84-121F5F6CF111 where it says following:

--add-modules modulename[,modulename...]
Specifies the root modules to resolve in addition to the initial module. 
modulename can also be ALL-DEFAULT, ALL-SYSTEM, and ALL-MODULE-PATH.

But of course (!?!?!) there is not a single word what all the options actually do.

Beside this, JDK docu say that "--illegal-access=debug" can be used to trace down reflection related issues.

@KengoTODA
Copy link
Member

where are they?!?!?

😭

@KengoTODA
Copy link
Member

KengoTODA commented Sep 21, 2017

I've confirmed that:

Then I will propose a PR to use Java 9 to run smokeTest. -> #393

@iloveeclipse
Copy link
Member Author

ASM 6.0 will be released tomorrow.

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

No branches or pull requests

3 participants