JLang, a Java-to-LLVM compiler

Andrew Myers 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, 
Yizhou Zhang


-----
Andrew Myers
Dept. of Computer Science
Cornell University

*


More information about the discuss mailing list