Tuesday, April 27, 2010

VMKit: JVM and .Net runtimes for LLVM

The VMKit project is an implementation of a JVM and CLI virtual machine (.Net is an implementation of the CLI). It translates Java bytecode and MSIL in the LLVM IR and uses the LLVM framework  for optimizations and compilation. For garbage collection, it uses MMTk. You can get and build  the source today.
Features

VMKit provides the following features:

End-User Features:

   * Runs any Java and .Net applications on MacOSX and Unix-based systems.
   * Precise garbage collection.
   * Just-in-Time and Ahead-of-Time compilation.
   * Portable on many architectures (x86, x64, ppc32, ppc64, arm).

Developer Features:

   * Relatively small code base (~ 20k loc per VM)
   * Infrastructure for running multiple VM/applications in a single process
   * Infrastructure for virtual machine research and development

Why?

The development of VMKit was started out of a need to factorize virtual machine development. The JVM and CLI virtual machine have many similarities, but are too high-level to be the basis of a "universal" virtual machine. The LLVM IR on the opposite is low-level enough to be able to execute these VMs. VMKit is a proof of concept implementation towards that direction.


Read more:  LLVM Home

Posted via email from jasper22's posterous