Truffle DSL compiler detection
Paul Driver
frodwith at gmail.com
Mon Feb 27 18:12:39 UTC 2017
That's unfortunately not trivial to discover (it's being called by
leiningen and i'm struggling to find a good way to debug it), but it's
good to know that I was barking up the wrong tree. Thanks Gilles.
On Mon, Feb 27, 2017 at 9:43 AM, Gilles Duboscq
<gilles.m.duboscq at oracle.com> wrote:
> Hi Paul,
>
> Most compilations with the mx tool are also done in a similar way (using javac as a libarary [1]). So there should not be any fundamental problem with this in the Truffle DSL annotation processor.
>
> What are the arguments you pass to JavacTool.run?
>
> Gilles
>
> [1]: https://github.com/graalvm/mx/blob/master/java/com.oracle.mxtool.compilerserver/src/com/oracle/mxtool/compilerserver/JavacDaemon.java
>
> On 27/02/17 18:30, Paul Driver wrote:
>> I'm trying build some truffle code with leiningen (a clojure build
>> tool). It has a "lein javac" task which invokes the java compiler.
>> Under the covers, this calls the ant "javac" task. The compiler being
>> used is in fact oracle javac (as you can see in attached stacktrace)
>> but isn't being invoked by the javac executable, but rather being
>> called as a library.
>>
>> My truffle code compiles when I invoke the javac tool from the command
>> line and under eclipse. My suspicion is that the Class.forName (in
>> https://github.com/graalvm/truffle/blob/master/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/JavaCCompiler.java)
>> is not working as a way to detect javac when it is invoked the way
>> leiningen is invoking it.
>>
>> A relevant piece of stacktrace is pasted below. Any help is appreciated.
>>
>> /home/pdriver/code/jaque/src/java/jaque/truffle/NockNode.java:15:
>> error: Uncaught error in AnnotationProcessor while processing
>> jaque.truffle.NockNode : Parsing of Node jaque.truffle.NockNode
>> failed.
>> public abstract class NockNode extends Node {
>> ^
>> java.lang.RuntimeException: Parsing of Node jaque.truffle.NockNode failed.
>> at com.oracle.truffle.dsl.processor.parser.NodeParser.parseRootType(NodeParser.java:162)
>> at com.oracle.truffle.dsl.processor.parser.NodeParser.parse(NodeParser.java:111)
>> at com.oracle.truffle.dsl.processor.parser.NodeParser.parse(NodeParser.java:101)
>> at com.oracle.truffle.dsl.processor.parser.AbstractParser.parse(AbstractParser.java:72)
>> at com.oracle.truffle.dsl.processor.AnnotationProcessor.process(AnnotationProcessor.java:80)
>> at com.oracle.truffle.dsl.processor.TruffleProcessor.processElement(TruffleProcessor.java:98)
>> at com.oracle.truffle.dsl.processor.TruffleProcessor.processImpl(TruffleProcessor.java:86)
>> at com.oracle.truffle.dsl.processor.TruffleProcessor.process(TruffleProcessor.java:60)
>> at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
>> at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
>> at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
>> at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
>> at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
>> at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
>> at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
>> at com.sun.tools.javac.main.Main.compile(Main.java:523)
>> at com.sun.tools.javac.main.Main.compile(Main.java:381)
>> at com.sun.tools.javac.main.Main.compile(Main.java:370)
>> at com.sun.tools.javac.main.Main.compile(Main.java:361)
>> at com.sun.tools.javac.Main.compile(Main.java:74)
>> at com.sun.tools.javac.api.JavacTool.run(JavacTool.java:237)
>> at user$eval3.invokeStatic(form-init7367735244504712043.clj:1)
>> at user$eval3.invoke(form-init7367735244504712043.clj:1)
>> at clojure.lang.Compiler.eval(Compiler.java:6927)
>> at clojure.lang.Compiler.load(Compiler.java:7379)
>> at clojure.lang.Compiler.loadFile(Compiler.java:7317)
>> at clojure.main$load_script.invokeStatic(main.clj:275)
>> at clojure.main$init_opt.invokeStatic(main.clj:277)
>> at clojure.main$init_opt.invoke(main.clj:277)
>> at clojure.main$initialize.invokeStatic(main.clj:308)
>> at clojure.main$null_opt.invokeStatic(main.clj:342)
>> at clojure.main$null_opt.invoke(main.clj:339)
>> at clojure.main$main.invokeStatic(main.clj:421)
>> at clojure.main$main.doInvoke(main.clj:384)
>> at clojure.lang.RestFn.invoke(RestFn.java:421)
>> at clojure.lang.Var.invoke(Var.java:383)
>> at clojure.lang.AFn.applyToHelper(AFn.java:156)
>> at clojure.lang.Var.applyTo(Var.java:700)
>> at clojure.main.main(main.java:37)
>> Suppressed: java.lang.UnsupportedOperationException: Unsupported
>> compiler for element com.sun.tools.javac.code.Symbol$ClassSymbol.
>> at com.oracle.truffle.dsl.processor.java.compiler.CompilerFactory.getCompiler(CompilerFactory.java:44)
>> at com.oracle.truffle.dsl.processor.parser.NodeParser.loadMembers(NodeParser.java:318)
>> at com.oracle.truffle.dsl.processor.parser.NodeParser.parseNode(NodeParser.java:192)
>> at com.oracle.truffle.dsl.processor.parser.NodeParser.parseRootType(NodeParser.java:158)
>> ... 38 more
>>
More information about the graal-dev
mailing list