When we try to import any kind of java modules, the pointer analysis will then include the packages we import (like java.util.hashmap or java.awt.*), resulting in a huge call graph. Is there a way to limit the pointer analysis depth to a higher level?
When I tried the docker image by following the instruction in Qilin wiki, I got output below. It says driver/Main has been compiled by a more recent version of the Java Runtime (class file version 60.0). By the way, when I cloned the repo and ran it in my WSL, same things happened.
Is it anything I missed? Thanks~
root@dce6d3699656:/qilin# python3 run.py antlr ci -print
now running insens for antlr ...
-Xmx256g -timeout=43200 -pae -pe -clinit=ONFLY -lcs -mh -pta=insens -apppath benchmarks/dacapo2006/antlr.jar -libpath benchmarks/dacapo2006/antlr-deps.jar -reflectionlog benchmarks/dacapo2006/antlr-refl.log -mainclass dacapo.antlr.Main -jre=jre1.6.0_45
java -Xms1g -Xmx256g -cp /qilin/Qilin-1.0-SNAPSHOT.jar driver.Main -pae -pe -clinit=ONFLY -lcs -mh -pta=insens -apppath benchmarks/dacapo2006/antlr.jar -libpath benchmarks/dacapo2006/antlr-deps.jar -reflectionlog benchmarks/dacapo2006/antlr-refl.log -mainclass dacapo.antlr.Main -jre=/qilin/benchmarks/JREs/jre1.6.0_45
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: driver/Main has been compiled by a more recent version of the Java Runtime (class file version 60.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601)
Hello! It's nice to see that you did this model, but I don't seem to see any benchmark results in your paper? So have you done it yet? Especially the conclusions of VQA-RAD and PATH-VQA?
Thanks for creating this high performance implementation of the pointer analysis in Java, I find it very easy to install, run, and produce results for my work. I have noticed that your code always runs with multiple threads and I was wondering if it is possible to run it on one thread.
When I run Qilin as following:
java -cp /home/monadic/java_project/Qilin/artifact/Qilin-1.0-SNAPSHOT.jar driver.Main -pae -pe -clinit=ONFLY -lcs -mh -pta=ko -apppath /home/monadic/java_project/Qilin/docs/example/example01/example.jar -mainclass Main -jre=/home/monadic/java_project/Qilin/artifact/benchmarks/JREs/jre1.8.0_312/ -se -jimple
I have encountered the following error:
[main] ERROR driver.PTAOption - Error parsing command line options
java.lang.RuntimeException: Unsupported PTA: ko !
at driver.PTAPattern.parsePTACommand(PTAPattern.java:51)
at driver.PTAPattern.(PTAPattern.java:35)
at driver.PTAOption.parseCommandLineOptions(PTAOption.java:116)
at driver.PTAOption.parseCommandLine(PTAOption.java:98)
at driver.Main.run(Main.java:41)
at driver.Main.mainRun(Main.java:58)
at driver.Main.main(Main.java:172)
How can I do to make Qilin support ko/kc and so on? Thank you.