Hi.
I have tried to integrate the new Soot version into abc.
When using the sootclasses.jar with the old jasmin version I get:
[java] jas.jasError: Unknown directive or badly formed number.
[java] at jasmin.Scanner.next_token(Scanner.java:213)
[java] at jasmin.parser.scan(parser.java:409)
[java] at java_cup.runtime.lr_parser.parse(lr_parser.java:563)
[java] at jasmin.ClassFile.readJasmin(ClassFile.java:821)
[java] at jasmin.Main.assemble(Main.java:24)
[java] at soot.util.JasminOutputStream.flush(JasminOutputStream.java:35)
[java] at
sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:410)
[java] at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:152)
[java] at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213)
[java] at java.io.PrintWriter.flush(PrintWriter.java:270)
[java] at soot.PackManager.writeClass(PackManager.java:676)
[java] at soot.PackManager.writeOutput(PackManager.java:390)
[java] at soot.PackManager.writeOutput(PackManager.java:342)
[java] at abc.main.Main.output(Main.java:952)
[java] at abc.main.Main.run(Main.java:515)
[java] at abc.main.Main.main(Main.java:196)
[java] Jasmin: Found 1 errors
and similar...
When using the 1.2.7 version of jasmin, I get instead:
java.lang.NoSuchMethodError:
jasmin.Main.assemble(Ljava/io/InputStream;Ljava/io/OutputStream;Z)V
So what version of Jasmin is correct for that version of Soot?
Also:
I have tried to compare your JHotDraw benchmark to my tool JLO.
When tyring to compile JHotDraw with abc 1.0.2 (with the Soot/Jasmin/Polyglot
version from the abc site), I get:
[java] Exception in thread "main" polyglot.util.InternalCompilerError:
Exception while processing <org.jhotdraw.applet.DrawApplet:
java.lang.String[] getRequiredVersions()>
[java] at abc.main.Main.weave(Main.java:824)
[java] at abc.main.Main.run(Main.java:483)
[java] at abc.main.Main.main(Main.java:196)
[java] Caused by: java.lang.RuntimeException: Attempting to push a
non-constant cp entry
[java] at soot.coffi.CFG.processCPEntry(CFG.java:2716)
[java] at soot.coffi.CFG.processFlow(CFG.java:1722)
[java] at soot.coffi.CFG.jimplify(CFG.java:1341)
[java] at soot.coffi.CFG.jimplify(CFG.java:1125)
[java] at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:98)
[java] at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:80)
[java] at soot.SootMethod.retrieveActiveBody(SootMethod.java:304)
[java] at abc.main.Main.weave(Main.java:820)
[java] ... 2 more
(abc gets JHotdraw as Java 1.5 bytecode compiled with Eclipse)
So can anyone tell me how I can correctly process Java 5 bytecode with abc? (I
am only using annotations as single Java 5 feature)
Thanks,
Eric
-- Eric Bodden Chair 2 for Computer Science RWTH Aachen University, Germany
This archive was generated by hypermail 2.1.8 : Mon Aug 22 2005 - 18:10:12 BST