Re: [abc] Correct Jasmin version and other strange behavior

From: Jennifer Lhotak <jlhotak@cs.mcgill.ca>
Date: Mon Aug 22 2005 - 17:26:30 BST

You need to use the new jasminclasses.jar version 2.2.2 if you want to use
the Java 1.5 bytecode with Soot.

Jennifer

On Mon, 22 Aug 2005 eric@bodden.de wrote:

> 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
>
Received on Mon Aug 22 18:08:03 2005

This archive was generated by hypermail 2.1.8 : Tue Aug 23 2005 - 02:50:12 BST