-
Notifications
You must be signed in to change notification settings - Fork 76
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 for newer versions of Java #171
Comments
There are some architectural issues with the way that Phosphor pushes taint tags around that became very problematic with some of the code generation in newer versions of Java. There are no easy workarounds. With that said... 🤣 great timing on reporting this issue: I, minutes ago, completed a refactoring that should resolve those conflicts (7879f79). My next step will be to merge the java14 branch into this one, and am hopeful that once I resolve the syntactic conflicts, this refactoring should solve all of the remaining issues and Phosphor will soon support all versions of Java >= 7. I'll update here as I find out more - it is hard to predict how long these things will take, because there's a chance that this will solve everything, and also a chance that it will just allow me to find other problems that I didn't imagine :) |
Awesome! That's great to know :-) We'll await the merge then. |
This is moving forward, and I now have a version that is passing our complete integration test suite on Java 16 (using Adoptium/OpenJDK). I'd be curious to know if this version (in phosphor-0.1.0-dev) works for your application, and if not, what kinds of errors you see. I just added some hurried documentation, please note that compared to the prior version of Phosphor, there are now 3 jars: one to use as a javaagent ( |
Thank you for maintaining such a great tool @jon-bell ! I've tried to use phosphor with Java 11 and I got following exceptions:
It seems that |
@aoli-al Is exactly Java 11 a requirement? Would you please try with 16? |
Unfortunately, I'm trying to instrument some upstream software, and I can only compile it using Java 11. I'll let you know if the dependency can be fixed easily. |
OK. Feel free to muck around with the unsafe wrappers. I am working on some more significant changes for performance that might also solve this problem eventually. |
Also to be clear: you can still compile your upstream software using Java 11 - but then run it using a 16 VM. |
Right, that would solve my problem. Thank you! BTW, mvn 3.6.3 (the latest version on Ubuntu 20.04) does not support Java 16. Maybe we can add a maven wrapper to make it easier to compile? |
@aoli-al You should be able to compile Phosphor with Java 11 - it just needs to be run using version 16 right now. |
Hi @jon-bell , I've tested phosphor against some complex applications and I saw some crashes. Here is the minimal reproducible program I have. Shall I move this discussion to a new issue to make it more trackable?
|
Feel free to open a new issue for that; even better would be a PR :) The missing method should be effectively the same as |
Hi, I haven't had any issues with the data tracking (which has been great!), but I get the following error when I try to instrument any class with control tracking enabled. I have a minimal example here: Class: package com.example;
public class Test {
public static void main(String[] args) {
return;
}
} Error:
(This repeats several times) Should I make a new issue for this? |
@keltono This is a known issue as stated on the readme for the branch. It is entirely unimplemented. My development cycles for this refactoring are limited, and my primary goal right now is to resolve performance regressions. |
ah, understood. Not sure how I missed that. Thanks! |
My group has found some nice use cases for Phosphor, and we're hoping to use it in an upcoming project that requires at least Java 11.
The
master
branch README says that support for Java 9+ is on the roadmap, and I can see ajava14
branch with WIP commits. What is that status of this feature? What are the main blockers for using Phosphor with newer versions of Java? Are there workarounds that will let us use Phosphor (with possibly reduced functionality) in say Java 14?Thanks!
The text was updated successfully, but these errors were encountered: