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