JLang, a Java-to-LLVM compiler

Andrew Myers andru at cs.cornell.edu
Sat Mar 23 12:29:50 UTC 2019


Thanks! If anyone wants to help add lambdas, that would be great. ;-)

I don't see any fundamental reason why the idea you describe would be 
infeasible, though I am not very knowledgeable about WebAssembly.

A surprisingly large obstacle we faced in this project was the JVM 
run-time support, because it is a wide interface that is not 
particularly well specified. Standardizing this would help support 
projects like the one you propose.

Cheers,

-- Andrew

> Clemens Eisserer <mailto:linuxhippy at gmail.com>
> March 23, 2019 at 6:12 AM
> Hi Andrew,
>
>
> Impressive how complete the implementation seems to be (if there would
> only be Java8 support ;) ), seems like an awesome project.
>
> Would it theoretically possible to feed the generated LLVM-IR through
> the web-assembly backend - assuming the required runtime-components
> are ported and the Boehm-GC would support WebAssembly?
>
> Br, Clemens
> Andrew Myers <mailto:andru at cs.cornell.edu>
> February 25, 2019 at 10:30 AM
> *
>
> 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