We are pleased to announce a new release of JLang, a Java-to-LLVM ahead-of-time compiler, on Github at JLang: An LLVM backend for the Polyglot compiler. 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 new release adds support for basic Java concurrency mechanisms, including threads, mutexes (synchronized), and condition variables (wait/notify/notifyAll). Support for the java.util.concurrency package has not been added yet.
Note that JLang implements Java 7, so it does not yet support some newer Java features such as lambdas, default methods, and modules.
This release was primarily the work of Yiteng Guo and Drew Zagieboylo. Community involvement in further development of JLang is welcome.