Re: [abc-users] Re: compiler error when compiling berkeley DB

From: Pavel Avgustinov <pavel.avgustinov_at_magd.ox.ac.uk>
Date: Tue, 11 Mar 2008 10:08:04 +0000

Hi Thomas,

Both of these seem to be caused by abc's Polyglot-based front-end. To
confirm, please try to process the source either with soot alone (which
will parse the java source with Polyglot) or with Polyglot itself.

Unfortunately it has been our experience that control- and data-flow
analyses like definite return (the first error you report) or definite
assignment (the second, probably) are often problematic with Polyglot.
We have reported a number of such issues to its authors, and if the bugs
are indeed inherited in this way rather than caused by abc then we
currently aren't able to track them down and fix them.

Having said that, work has been going quite well on the implementation
of a new frontend for abc, based on the JastAddJ extensible Java
compiler; in our experience this is often much more reliable than
Polyglot, and (moreover) we are actively looking for and fixing bugs in
abc-ja. We hope that the next abc release (by the end of this month)
will contain the new frontend; in the meantime if you would like to try
it out, you can get it directly from svn, as discussed several times on
this list recently. The relevant repository URL to check out is
http://abc.comlab.ox.ac.uk/products/trunk/abc-full .

Please let us know the results of your experiments.

Best wishes,
- Pavel

Thomas Pawlitzki wrote:
> Hello again,
>
> when i replace the method getNextDuplicate() with a simple
> return null;
> abc runs not in the error mentioned before.
>
> But I get another error:
> abc:
> [java] abc started on Tue Mar 11 07:35:19 CET 2008
> [java] Exception in thread "main"
> polyglot.util.InternalCompilerError: unhandled exception during
> compilation
> [java] at abc.main.CompileSequence.runSequence(CompileSequence.java:89)
> [java] at abc.main.Main.run(Main.java:487)
> [java] at abc.main.Main.main(Main.java:144)
> [java] Caused by: java.lang.NullPointerException
> [java] at
> polyglot.visit.InitChecker.checkLocalAssign(InitChecker.java:941)
> [java] at polyglot.visit.InitChecker.check(InitChecker.java:781)
> [java] at polyglot.visit.DataFlow.post(DataFlow.java:723)
> [java] at polyglot.visit.DataFlow.dataflow(DataFlow.java:410)
> [java] at polyglot.visit.DataFlow.leaveCall(DataFlow.java:693)
> [java] at polyglot.visit.InitChecker.leaveCall(InitChecker.java:324)
> [java] at
> polyglot.visit.ErrorHandlingVisitor.leaveCall(ErrorHandlingVisitor.java:127)
> [java] at
> polyglot.visit.ErrorHandlingVisitor.leave(ErrorHandlingVisitor.java:251)
> [java] at polyglot.visit.DataFlow.leave(DataFlow.java:683)
> [java] at polyglot.visit.NodeVisitor.visitEdge(NodeVisitor.java:223)
> [java] at polyglot.ext.jl.ast.Node_c.visitChild(Node_c.java:140)
> [java] at polyglot.ext.jl.ast.Node_c.visitList(Node_c.java:197)
> [java] at
> polyglot.ext.jl.ast.ClassBody_c.visitChildren(ClassBody_c.java:61)
> [java] at polyglot.visit.NodeVisitor.visitEdge(NodeVisitor.java:216)
> [java] at polyglot.ext.jl.ast.Node_c.visitChild(Node_c.java:140)
> [java] at
> polyglot.ext.jl.ast.ClassDecl_c.visitChildren(ClassDecl_c.java:137)
> [java] at polyglot.visit.NodeVisitor.visitEdge(NodeVisitor.java:216)
> [java] at polyglot.ext.jl.ast.Node_c.visitChild(Node_c.java:140)
> [java] at polyglot.ext.jl.ast.Node_c.visitList(Node_c.java:197)
> [java] at
> polyglot.ext.jl.ast.SourceFile_c.visitChildren(SourceFile_c.java:108)
> [java] at polyglot.visit.NodeVisitor.visitEdge(NodeVisitor.java:216)
> [java] at polyglot.ext.jl.ast.Node_c.visit(Node_c.java:144)
> [java] at polyglot.frontend.VisitorPass.run(VisitorPass.java:48)
> [java] at
> polyglot.frontend.AbstractExtensionInfo.runPass(AbstractExtensionInfo.java:308)
> [java] at
> polyglot.frontend.AbstractExtensionInfo.enforceInvariants(AbstractExtensionInfo.java:454)
> [java] at
> polyglot.frontend.AbstractExtensionInfo.runPass(AbstractExtensionInfo.java:260)
> [java] at
> polyglot.frontend.AbstractExtensionInfo.runToPass(AbstractExtensionInfo.java:228)
> [java] at
> polyglot.frontend.AbstractExtensionInfo.runAllPasses(AbstractExtensionInfo.java:195)
> [java] at
> polyglot.frontend.AbstractExtensionInfo.runToCompletion(AbstractExtensionInfo.java:110)
> [java] at polyglot.frontend.Compiler.compile(Compiler.java:95)
> [java] at abc.main.CompileSequence.compile(CompileSequence.java:283)
> [java] at abc.main.CompileSequence.runSequence(CompileSequence.java:79)
> [java] ... 2 more
> [java] Java Result: 1
>
> Greetings,
> Thomas
>
>
Received on Tue Mar 11 2008 - 10:10:21 GMT

This archive was generated by hypermail 2.2.0 : Tue Mar 11 2008 - 13:40:11 GMT