JLang, a Java-to-LLVM compiler
andru at cs.cornell.edu
Mon Feb 25 15:30:40 UTC 2019
We are happy to announce an initial release of JLang, a Java-to-LLVM
ahead-of-time compiler, on Github at
https://polyglot-compiler.github.io/JLang/. JLang compiles Java source
code directly to LLVM, allowing a variety of LLVM back ends to be used
to target various architectures. The JVM and JNI interfaces are
supported with a shared library whose source code is also distributed as
part of JLang. Support for Java libraries is provided by compiling the
OpenJDK Java source into a shared library with JLang and then linking
the OpenJDK native libraries. JLang is built on top of the Polyglot
extensible compiler framework, so it supports experimentation with new
language features and with new implementation techniques.
The current JLang release can be used to compile and run a variety of
Java programs, but it has a number of significant limitations that are
in the process of being addressed:
JLang implements Java 7, so does not yet support some newer Java
features such as lambdas, default methods, or modules.
Java concurrency is not supported.
Some corners of the reflection API need more work.
We welcome the involvement of external contributors. Interested parties
can subscribe to the users mailing list from the JLang web site.
Credits: Daniel Donenfeld, Matt Gharrity, Daniel Weber, Drew Zagieboylo,
Dept. of Computer Science
More information about the discuss